Installation#

Runtime Requirements#

cuda.core is supported on all platforms that CUDA is supported. Specific dependencies are as follows:

CUDA 12

CUDA 13

CUDA Toolkit[1]

12.x

13.x

Driver

525.60.13+ (Linux), 527.41+ (Windows)

580.65+ (Linux), 580.88+ (Windows)

cuda.core supports Python 3.10 - 3.14, on Linux (x86-64, arm64) and Windows (x86-64). Experimental free-threaded builds for Python 3.14 are also provided.

Free-threading Build Support#

As of cuda-core 0.4.0, experimental packages for the free-threaded interpreter are shipped.

  1. Support for these builds is best effort, due to heavy use of built-in modules that are known to be thread-unsafe, such as ctypes.

  2. For now, you are responsible for making sure that calls into the cuda-core library are thread-safe. This is subject to change.

Installing from PyPI#

cuda.core works with cuda.bindings (part of cuda-python) 12 or 13. Test dependencies now use the cuda-toolkit metapackage for improved dependency resolution. For example with CUDA 12:

$ pip install cuda-core[cu12]

and likewise use [cu13] for CUDA 13.

Note that using cuda.core with NVRTC installed from PyPI via pip install requires cuda.bindings 12.8.0+. Likewise, with nvJitLink it requires 12.8.0+.

Installing from Conda (conda-forge)#

Same as above, cuda.core can be installed in a CUDA 12 or 13 environment. For example with CUDA 12:

$ conda install -c conda-forge cuda-core cuda-version=12

and likewise use cuda-version=13 for CUDA 13.

Note that to use cuda.core with nvJitLink installed from conda-forge requires cuda.bindings 12.8.0+.

Development environment#

The sections above cover end-user installation. The section below focuses on a repeatable development workflow (editable installs and running tests).

Development with uv#

uv is a fast Python package and project manager. For example, to work on cuda-core against CUDA 13:

$ git clone https://github.com/NVIDIA/cuda-python
$ cd cuda-python/cuda_core
$ uv venv
$ source .venv/bin/activate   # On Windows: .venv\Scripts\activate
$ uv pip install -e .[cu13] --group test

Run tests:

$ python -m pytest tests

Development with pixi#

pixi provides a reproducible development environment across the repository. From the repository root:

$ git clone https://github.com/NVIDIA/cuda-python
$ cd cuda-python
$ pixi run -e cu13 test-core

To run all repository tests (pathfinder → bindings → core):

$ pixi run -e cu13 test

Use -e cu12 to test against CUDA 12 instead.

Installing from Source#

$ git clone https://github.com/NVIDIA/cuda-python
$ cd cuda-python/cuda_core
$ pip install .

cuda-bindings 12.x or 13.x is a required dependency.