"docs/git@developer.sourcefind.cn:OpenDAS/mmcv.git" did not exist on "4fb59b9830a880e5962e6cf43b9c57738867f712"
Commit 10bfaf36 authored by rusty1s's avatar rusty1s
Browse files

either load GPU or CPU libraries

parent 5809ad86
...@@ -5,18 +5,21 @@ import torch ...@@ -5,18 +5,21 @@ import torch
__version__ = '1.2.1' __version__ = '1.2.1'
suffix = 'cuda' if torch.cuda.is_available() else 'cpu'
for library in ['_version', '_basis', '_weighting']: for library in ['_version', '_basis', '_weighting']:
torch.ops.load_library(importlib.machinery.PathFinder().find_spec( cuda_spec = importlib.machinery.PathFinder().find_spec(
f'{library}_{suffix}', [osp.dirname(__file__)]).origin) f'{library}_cuda', [osp.dirname(__file__)])
cpu_spec = importlib.machinery.PathFinder().find_spec(
if torch.cuda.is_available(): # pragma: no cover f'{library}_cpu', [osp.dirname(__file__)])
cuda_version = torch.ops.torch_spline_conv.cuda_version() spec = cuda_spec or cpu_spec
if spec is not None:
if cuda_version == -1: torch.ops.load_library(spec.origin)
major = minor = 0 else: # pragma: no cover
elif cuda_version < 10000: raise ImportError(f"Could not find module '{library}_cpu' in "
f"{osp.dirname(__file__)}")
cuda_version = torch.ops.torch_sparse.cuda_version()
if torch.cuda.is_available() and cuda_version != -1: # pragma: no cover
if cuda_version < 10000:
major, minor = int(str(cuda_version)[0]), int(str(cuda_version)[2]) major, minor = int(str(cuda_version)[0]), int(str(cuda_version)[2])
else: else:
major, minor = int(str(cuda_version)[0:2]), int(str(cuda_version)[3]) major, minor = int(str(cuda_version)[0:2]), int(str(cuda_version)[3])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment