mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
Summary: This PR adds in cuSPARSELt as a backend to PyTorch. It is now possible to see if cuSPARSELt is available and the version if it is with ``` torch.backends.cusparselt.is_available() torch.backends.cusparselt.version() ``` Test Plan: ``` python test/test_sparse_semi_structured.py -k test_cusparselt_backend ``` Reviewers: Subscribers: Tasks: Tags: Pull Request resolved: https://github.com/pytorch/pytorch/pull/128534 Approved by: https://github.com/cpuhrsch, https://github.com/eqy, https://github.com/syed-ahmed
43 lines
820 B
Python
43 lines
820 B
Python
# mypy: allow-untyped-defs
|
|
from typing import Optional
|
|
|
|
import torch
|
|
|
|
|
|
__all__ = [
|
|
"version",
|
|
"is_available",
|
|
]
|
|
|
|
try:
|
|
from torch._C import _cusparselt
|
|
except ImportError:
|
|
_cusparselt = None # type: ignore[assignment]
|
|
|
|
__cusparselt_version: Optional[int] = None
|
|
|
|
if _cusparselt is not None:
|
|
|
|
def _init():
|
|
global __cusparselt_version
|
|
if __cusparselt_version is None:
|
|
__cusparselt_version = _cusparselt.getVersionInt()
|
|
return True
|
|
|
|
else:
|
|
|
|
def _init():
|
|
return False
|
|
|
|
|
|
def version() -> Optional[int]:
|
|
"""Return the version of cuSPARSELt"""
|
|
if not _init():
|
|
return None
|
|
return __cusparselt_version
|
|
|
|
|
|
def is_available() -> bool:
|
|
r"""Return a bool indicating if cuSPARSELt is currently available."""
|
|
return torch._C._has_cusparselt
|