Skip to content

Avoid unnecessarily loading and checking driver version #962

@cpcloud

Description

@cpcloud
+ python -c 'import cuda.cccl.parallel'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/cuda/cccl/parallel/__init__.py", line 5, in <module>
    from . import experimental
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/cuda/cccl/parallel/experimental/__init__.py", line 5, in <module>
    from .algorithms import (
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/cuda/cccl/parallel/experimental/algorithms/__init__.py", line 6, in <module>
    from ._merge_sort import merge_sort as merge_sort
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/cuda/cccl/parallel/experimental/algorithms/_merge_sort.py", line 11, in <module>
    from .. import _cccl_interop as cccl
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/cuda/cccl/parallel/experimental/_cccl_interop.py", line 17, in <module>
    from numba import cuda, types
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numba_cuda/numba/cuda/__init__.py", line 73, in <module>
    from .device_init import *
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numba_cuda/numba/cuda/device_init.py", line 71, in <module>
    from .intrinsic_wrapper import (
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numba_cuda/numba/cuda/intrinsic_wrapper.py", line 8, in <module>
    @jit(device=True)
     ^^^^^^^^^^^^^^^^
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numba_cuda/numba/cuda/decorators.py", line 151, in jit
    lto = _have_nvjitlink() and not debug
          ^^^^^^^^^^^^^^^^^
  File "/home/conda/staged-recipes/build_artifacts/cccl-python_1757530738279/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/site-packages/numba_cuda/numba/cuda/cudadrv/driver.py", line 137, in _have_nvjitlink
    nvjitlink_internal._inspect_function_pointer("__nvJitLinkVersion")
  File "cuda/bindings/_internal/nvjitlink.pyx", line 247, in cuda.bindings._internal.nvjitlink._inspect_function_pointer
  File "cuda/bindings/_internal/nvjitlink.pyx", line 250, in cuda.bindings._internal.nvjitlink._inspect_function_pointer
  File "cuda/bindings/_internal/nvjitlink.pyx", line 198, in cuda.bindings._internal.nvjitlink._inspect_function_pointers
  File "cuda/bindings/_internal/nvjitlink.pyx", line 70, in cuda.bindings._internal.nvjitlink._check_or_init_nvjitlink
  File "cuda/bindings/_internal/nvjitlink.pyx", line 83, in cuda.bindings._internal.nvjitlink._check_or_init_nvjitlink
RuntimeError: something went wrong

Ideally, there'd be a way (perhaps something analogous to strerror?) to grab the CUDA error message, if such a thing exists, and throw that into the exception.

Metadata

Metadata

Assignees

Labels

P1Medium priority - Should dobugSomething isn't workingcuda.bindingsEverything related to the cuda.bindings module

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions