55CUDA Bindings
66=============
77
8- Numba supports two bindings to the CUDA Driver APIs: its own internal bindings
9- based on ctypes, and the official `NVIDIA CUDA Python bindings
10- <https://nvidia.github.io/cuda-python/> `_. Functionality is equivalent between
11- the two bindings.
12-
13- The internal bindings are used by default. If the NVIDIA bindings are installed,
14- then they can be used by setting the environment variable
15- ``NUMBA_CUDA_USE_NVIDIA_BINDING `` to ``1 `` prior to the import of Numba. Once
16- Numba has been imported, the selected binding cannot be changed.
8+ Numba-CUDA uses the official `NVIDIA CUDA Python bindings
9+ <https://nvidia.github.io/cuda-python/> `_ for all CUDA Driver interactions.
10+ Numba-CUDA previously provided its own internal ctypes-based bindings; the
11+ public APIs exposing those bindings are kept for compatibility, but if you
12+ need to interact directly with the CUDA Driver or other CUDA libraries we
13+ recommend using the `cuda-python <https://nvidia.github.io/cuda-python/ >`_
14+ package directly.
1715
1816
1917Per-Thread Default Streams
2018--------------------------
2119
2220Responsibility for handling Per-Thread Default Streams (PTDS) is delegated to
23- the NVIDIA bindings when they are in use. To use PTDS with the NVIDIA bindings,
24- set the environment variable ``CUDA_PYTHON_CUDA_PER_THREAD_DEFAULT_STREAM `` to
25- ``1 `` instead of Numba's environmnent variable
26- :envvar: `NUMBA_CUDA_PER_THREAD_DEFAULT_STREAM `.
21+ the NVIDIA bindings. To use PTDS, set the environment variable
22+ ``CUDA_PYTHON_CUDA_PER_THREAD_DEFAULT_STREAM `` to ``1 `` instead of Numba's
23+ environment variable :envvar: `NUMBA_CUDA_PER_THREAD_DEFAULT_STREAM `.
2724
2825.. seealso ::
2926
@@ -35,13 +32,5 @@ set the environment variable ``CUDA_PYTHON_CUDA_PER_THREAD_DEFAULT_STREAM`` to
3532Roadmap
3633-------
3734
38- In Numba 0.56, the NVIDIA Bindings will be used by default, if they are
39- installed.
40-
41- In future versions of Numba:
42-
43- - The internal bindings will be deprecated.
44- - The internal bindings will be removed.
45-
46- At present, no specific release is planned for the deprecation or removal of
47- the internal bindings.
35+ The ctypes-based internal bindings have been removed in favor of the NVIDIA
36+ bindings. Future work focuses on expanding usage of ``cuda.core `` APIs.
0 commit comments