|
| 1 | +.. SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE |
| 2 | +
|
| 3 | +************************************************************** |
| 4 | +cuda-python: Metapackage collection of CUDA Python subpackages |
| 5 | +************************************************************** |
| 6 | + |
| 7 | +CUDA Python is the home for accessing NVIDIA's CUDA platform from Python. It consists of multiple components: |
| 8 | + |
| 9 | +* `cuda.core <https://nvidia.github.io/cuda-python/cuda-core/latest>`_: Pythonic access to CUDA Runtime and other core functionalities |
| 10 | +* `cuda.bindings <https://nvidia.github.io/cuda-python/cuda-bindings/latest>`_: Low-level Python bindings to CUDA C APIs |
| 11 | +* `cuda.cooperative <https://nvidia.github.io/cccl/cuda_cooperative/>`_: A Python package providing CCCL's reusable block-wide and warp-wide *device* primitives for use within Numba CUDA kernels |
| 12 | +* `cuda.parallel <https://nvidia.github.io/cccl/cuda_parallel/>`_: A Python package for easy access to CCCL's highly efficient and customizable parallel algorithms, like `sort`, `scan`, `reduce`, `transform`, etc, that are callable on the *host* |
| 13 | +* `numba.cuda <https://nvidia.github.io/numba-cuda/>`_: Numba's target for CUDA GPU programming by directly compiling a restricted subset of Python code into CUDA kernels and device functions following the CUDA execution model. |
| 14 | + |
| 15 | +For access to NVIDIA CPU & GPU Math Libraries, please refer to `nvmath-python <https://docs.nvidia.com/cuda/nvmath-python/latest>`_. |
| 16 | + |
| 17 | +CUDA Python is currently undergoing an overhaul to improve existing and bring up new components. All of the previously available functionalities from the `cuda-python` package will continue to be available, please refer to the `cuda.bindings <https://nvidia.github.io/cuda-python/cuda-bindings/latest>`_ documentation for installation guide and further detail. |
| 18 | + |
| 19 | +cuda-python as a metapackage |
| 20 | +============================ |
| 21 | + |
| 22 | +`cuda-python` is now a metapackage that contains a collection of subpackages. Each subpackage is versioned independently, allowing installation of each component as needed. |
| 23 | + |
| 24 | +Subpackage: cuda.core |
| 25 | +--------------------- |
| 26 | + |
| 27 | +The `cuda.core` package offers idiomatic, pythonic access to CUDA Runtime and other functionalities. |
| 28 | + |
| 29 | +The goals are to |
| 30 | + |
| 31 | +1. Provide **idiomatic ("pythonic")** access to CUDA Driver, Runtime, and JIT compiler toolchain |
| 32 | +2. Focus on **developer productivity** by ensuring end-to-end CUDA development can be performed quickly and entirely in Python |
| 33 | +3. **Avoid homegrown** Python abstractions for CUDA for new Python GPU libraries starting from scratch |
| 34 | +4. **Ease** developer **burden of maintaining** and catching up with latest CUDA features |
| 35 | +5. **Flatten the learning curve** for current and future generations of CUDA developers |
| 36 | + |
| 37 | +Subpackage: cuda.bindings |
| 38 | +------------------------- |
| 39 | + |
| 40 | +The `cuda.bindings` package is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python. |
| 41 | + |
| 42 | +The list of available interfaces are: |
| 43 | + |
| 44 | +* CUDA Driver |
| 45 | +* CUDA Runtime |
| 46 | +* NVRTC |
| 47 | +* nvJitLink |
| 48 | +* NVVM |
0 commit comments