Skip to content

Commit 6959cb9

Browse files
leofangrwgk
andauthored
Add numba-cuda-mlir docs, cuda-core dependency, and toolkit extras (#2101)
* Add numba-cuda-mlir to docs, cuda-core/cuda-cccl deps to metapackage, cuda-toolkit extras - Mention numba-cuda-mlir in README.md and DESCRIPTION.rst above the existing numba.cuda entry - Add cuda-core~=1.0.0 and cuda-cccl~=1.0.0 as required dependencies of the cuda-python metapackage (closes #148, closes #691) - Add bare cuda-toolkit==13.* to cuda-bindings[all] and remove cudla from the component-specific extras (closes #903) - Add cuda-toolkit==12.*/13.* to cuda-core's cu12/cu13 extras * Add numba-cuda-mlir to cuda-python docs index.rst * Update install.rst * Adjust PR 2101 dependencies for 13.3 Drop cuda-cccl from the metapackage until free-threaded Python wheels are available, and keep cuDLA in cuda-bindings[all] via a guarded direct dependency. * Constrain cuDLA optional dependency to CUDA 13 Keep cuda-bindings[all] consistent with the CUDA 13 toolkit dependencies when installing cuDLA on Linux aarch64. --------- Co-authored-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
1 parent 11eb35f commit 6959cb9

7 files changed

Lines changed: 19 additions & 5 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python. It c
77
* [cuda.pathfinder](https://nvidia.github.io/cuda-python/cuda-pathfinder/latest): Utilities for locating CUDA components installed in the user's Python environment
88
* [cuda.coop](https://nvidia.github.io/cccl/unstable/python/coop.html): A Python module providing CCCL's reusable block-wide and warp-wide *device* primitives for use within Numba CUDA kernels
99
* [cuda.compute](https://nvidia.github.io/cccl/unstable/python/compute/index.html): A Python module for easy access to CCCL's highly efficient and customizable parallel algorithms, like `sort`, `scan`, `reduce`, `transform`, etc. that are callable on the *host*
10+
* [numba-cuda-mlir](https://nvidia.github.io/numba-cuda-mlir/): An evolution of Numba CUDA that improves upon its technical foundation and performance to provide the future of CUDA Python JIT compilation. It currently supports developing CUDA **SIMT** kernels in Python, providing Python bindings for accelerated device libraries, and serving as a compiler for user-defined functions in accelerated libraries.
1011
* [numba.cuda](https://nvidia.github.io/numba-cuda/): A Python DSL that exposes CUDA **SIMT** programming model and compiles a restricted subset of Python code into CUDA kernels and device functions
1112
* [cuda.tile](https://docs.nvidia.com/cuda/cutile-python/): A new Python DSL that exposes CUDA **Tile** programming model and allows users to write NumPy-like code in CUDA kernels
1213
* [nvmath-python](https://docs.nvidia.com/cuda/nvmath-python/latest): Pythonic access to NVIDIA CPU & GPU Math Libraries, with [*host*](https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#host-apis), [*device*](https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#device-apis), and [*distributed*](https://docs.nvidia.com/cuda/nvmath-python/latest/distributed-apis/index.html) APIs. It also provides low-level Python bindings to host C APIs ([nvmath.bindings](https://docs.nvidia.com/cuda/nvmath-python/latest/bindings/index.html)).

cuda_bindings/docs/source/install.rst

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Runtime Requirements
1212
* Linux (x86-64, arm64) and Windows (x86-64)
1313
* Python 3.10 - 3.14
1414
* Driver: Linux (580.65.06 or later) Windows (580.88 or later)
15-
* Optionally, NVRTC, nvJitLink, NVVM, and cuFile from CUDA Toolkit 13.x
15+
* Optionally, NVRTC, nvJitLink, nvFatBin, NVVM, cuFile, and cuDLA from CUDA Toolkit 13.x
1616

1717
.. note::
1818

@@ -52,10 +52,12 @@ Where the optional dependencies include:
5252

5353
* ``nvidia-cuda-nvrtc`` (NVRTC runtime compilation library)
5454
* ``nvidia-nvjitlink`` (nvJitLink library)
55+
* ``nvidia-nvfatbin`` (nvFatBin library)
5556
* ``nvidia-nvvm`` (NVVM library)
5657
* ``nvidia-cufile`` (cuFile library, Linux only)
58+
* ``nvidia-cudla`` (cuDLA library, Linux aarch64 only)
5759

58-
These are now installed through the ``cuda-toolkit`` metapackage for improved dependency resolution.
60+
These are now installed through the ``cuda-toolkit`` metapackage, where available, for improved dependency resolution.
5961

6062
Installing from Conda
6163
---------------------
@@ -74,6 +76,10 @@ For example:
7476
7577
$ conda install -c conda-forge cuda-python cuda-version=13
7678
79+
.. note::
80+
81+
Tegra users can install the cuDLA conda package from conda-forge through ``conda install -c conda-forge libcudla cuda-version=13``, if it does not already exist on the system.
82+
7783
Installing from Source
7884
----------------------
7985

cuda_bindings/pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ dependencies = ["cuda-pathfinder >=1.4.2"]
3636

3737
[project.optional-dependencies]
3838
all = [
39-
"cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin,cudla]==13.*",
39+
"cuda-toolkit[nvrtc,nvjitlink,nvvm,nvfatbin]==13.*",
4040
"cuda-toolkit[cufile]==13.*; sys_platform == 'linux'",
41+
"cuda-toolkit==13.*",
42+
"nvidia-cudla==13.*; platform_system == 'Linux' and platform_machine == 'aarch64'",
4143
]
4244

4345
[dependency-groups]

cuda_core/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ dependencies = [
5454
]
5555

5656
[project.optional-dependencies]
57-
cu12 = ["cuda-bindings[all]==12.*"]
58-
cu13 = ["cuda-bindings[all]==13.*"]
57+
cu12 = ["cuda-bindings[all]==12.*", "cuda-toolkit==12.*"]
58+
cu13 = ["cuda-bindings[all]==13.*", "cuda-toolkit==13.*"]
5959

6060
[dependency-groups]
6161
test = ["cython>=3.2,<3.3", "setuptools", "pytest>=6.2.4", "pytest-benchmark", "pytest-randomly", "pytest-repeat", "pytest-rerunfailures", "pytest-timeout", "cloudpickle", "psutil", "cffi"]

cuda_python/DESCRIPTION.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ CUDA Python is the home for accessing NVIDIA's CUDA platform from Python. It con
1212
* `cuda.pathfinder <https://nvidia.github.io/cuda-python/cuda-pathfinder/latest>`_: Utilities for locating CUDA components installed in the user's Python environment
1313
* `cuda.coop <https://nvidia.github.io/cccl/unstable/python/coop.html>`_: A Python module providing CCCL's reusable block-wide and warp-wide *device* primitives for use within Numba CUDA kernels
1414
* `cuda.compute <https://nvidia.github.io/cccl/unstable/python/compute/index.html>`_: A Python module for easy access to CCCL's highly efficient and customizable parallel algorithms, like ``sort``, ``scan``, ``reduce``, ``transform``, etc. that are callable on the *host*
15+
* `numba-cuda-mlir <https://nvidia.github.io/numba-cuda-mlir/>`_: An evolution of Numba CUDA that improves upon its technical foundation and performance to provide the future of CUDA Python JIT compilation. It currently supports developing CUDA **SIMT** kernels in Python, providing Python bindings for accelerated device libraries, and serving as a compiler for user-defined functions in accelerated libraries.
1516
* `numba.cuda <https://nvidia.github.io/numba-cuda/>`_: A Python DSL that exposes CUDA **SIMT** programming model and compiles a restricted subset of Python code into CUDA kernels and device functions
1617
* `cuda.tile <https://docs.nvidia.com/cuda/cutile-python/>`_: A new Python DSL that exposes CUDA **Tile** programming model and allows users to write NumPy-like code in CUDA kernels
1718
* `nvmath-python <https://docs.nvidia.com/cuda/nvmath-python/latest>`_: Pythonic access to NVIDIA CPU & GPU Math Libraries, with `host <https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#host-apis>`_, `device <https://docs.nvidia.com/cuda/nvmath-python/latest/overview.html#device-apis>`_, and `distributed <https://docs.nvidia.com/cuda/nvmath-python/latest/distributed-apis/index.html>`_ APIs. It also provides low-level Python bindings to host C APIs (`nvmath.bindings <https://docs.nvidia.com/cuda/nvmath-python/latest/bindings/index.html>`_).

cuda_python/docs/source/index.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ multiple components:
1212
- `cuda.pathfinder`_: Utilities for locating CUDA components installed in the user's Python environment
1313
- `cuda.coop`_: A Python module providing CCCL's reusable block-wide and warp-wide *device* primitives for use within Numba CUDA kernels
1414
- `cuda.compute`_: A Python module for easy access to CCCL's highly efficient and customizable parallel algorithms, like ``sort``, ``scan``, ``reduce``, ``transform``, etc. that are callable on the *host*
15+
- `numba-cuda-mlir`_: An evolution of Numba CUDA that improves upon its technical foundation and performance to provide the future of CUDA Python JIT compilation. It currently supports developing CUDA **SIMT** kernels in Python, providing Python bindings for accelerated device libraries, and serving as a compiler for user-defined functions in accelerated libraries.
1516
- `numba.cuda`_: A Python DSL that exposes CUDA **SIMT** programming model and compiles a restricted subset of Python code into CUDA kernels and device functions
1617
- `cuda.tile`_: A new Python DSL that exposes CUDA **Tile** programming model and allows users to write NumPy-like code in CUDA kernels
1718
- `nvmath-python`_: Pythonic access to NVIDIA CPU & GPU Math Libraries, with `host`_, `device`_, and `distributed`_ APIs. It also provides low-level Python bindings to host C APIs (`nvmath.bindings`_).
@@ -22,6 +23,7 @@ multiple components:
2223

2324
.. _cuda.coop: https://nvidia.github.io/cccl/unstable/python/coop.html
2425
.. _cuda.compute: https://nvidia.github.io/cccl/unstable/python/compute/index.html
26+
.. _numba-cuda-mlir: https://nvidia.github.io/numba-cuda-mlir/
2527
.. _numba.cuda: https://nvidia.github.io/numba-cuda/
2628
.. _cuda.tile: https://docs.nvidia.com/cuda/cutile-python/
2729
.. _nvmath-python: https://docs.nvidia.com/cuda/nvmath-python/latest
@@ -52,6 +54,7 @@ be available, please refer to the `cuda.bindings`_ documentation for installatio
5254
cuda.pathfinder <https://nvidia.github.io/cuda-python/cuda-pathfinder/latest>
5355
cuda.coop <https://nvidia.github.io/cccl/unstable/python/coop.html>
5456
cuda.compute <https://nvidia.github.io/cccl/unstable/python/compute/index.html>
57+
numba-cuda-mlir <https://nvidia.github.io/numba-cuda-mlir/>
5558
numba.cuda <https://nvidia.github.io/numba-cuda/>
5659
cuda.tile <https://docs.nvidia.com/cuda/cutile-python/>
5760
nvmath-python <https://docs.nvidia.com/cuda/nvmath-python/>

cuda_python/setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
version=version,
3333
install_requires=[
3434
f"cuda-bindings{matcher}{version}",
35+
"cuda-core~=1.0.0",
3536
"cuda-pathfinder~=1.1",
3637
],
3738
extras_require={

0 commit comments

Comments
 (0)