cuda.core Support Policy#
Versioning Scheme#
cuda.core follows Semantic Versioning (SemVer) with the version
format major.minor.patch:
Major: Bumped when a new CUDA major release is out and support for the oldest CUDA major version is dropped. Breaking API changes only happen at major-version boundaries.
Minor: Bumped when new, backward-compatible features are added, or when a new Python feature release is out and the oldest supported Python version reaches EOL.
Patch: Bumped for bug fixes and backward-compatible maintenance updates.
Unlike cuda.bindings, the cuda.core version is not aligned with the CUDA Toolkit version.
Consult the table below or the release notes to determine which CUDA versions are
supported by a given cuda.core release.
Project Lifecycle & Release Cadence#
cuda.corefollows its own release cadence, independent of CUDA Toolkit releases, as long as SemVer guarantees are maintained.We currently aim for bimonthly releases, though this is subject to change.
Major version releases are aligned to CUDA major version releases.
New features may be delivered in minor releases at any time — not gated by the CUDA Toolkit release schedule.
Patch releases can be made on an as-needed basis, subject to urgency and the team’s bandwidth.
We currently do not plan to maintain multiple releases, nor have any backport policy for new features or bug fixes.
Deprecation notices will be issued at least for one (1) minor release, before the actual removal happens.
CUDA Version Support#
cuda.core is actively maintained to support the two (2) most recent CUDA major versions. For
example, cuda.core 1.x supports CUDA 12 and 13.
In particular, what this entails is that all CUDA minor versions within the two major releases
(12.x, 13.x) are supported by the same cuda-core package, at run time: any CUDA driver and any
CUDA Toolkit libraries of a supported major work with the same cuda-core wheel. The one input
this does not extend to is cuda-bindings, which has a per-release minimum (see
cuda-bindings Version Requirements below).
When a new CUDA major version is released and support for the oldest major version is dropped,
cuda.core will release a new major version (e.g., 1.x → 2.0.0).
|
Supported CUDA versions |
|---|---|
1.x |
12, 13 |
As with any CUDA library, certain features may impose additional requirements on the minimum CUDA library or CUDA driver versions. Refer to the individual module documentation for details.
cuda-bindings Version Requirements#
Each cuda-core release declares, for each supported CUDA major version, a minimum
cuda-bindings version, its floor: the newest cuda-bindings release of that major at the
time of the cuda-core release, which is the version the published wheels are built against.
The floors of the current release are recorded in cuda/core/_bindings_floor.py and in the
cu12/cu13 extras of cuda-core.
|
CUDA 12 |
CUDA 13 |
|---|---|---|
1.3.x |
|
|
At run time,
import cuda.corerequires an installedcuda-bindingsof the same major as thecuda-corebuild in use and at least as new as that build’s floor. An oldercuda-bindingsfails at import with a message that names the version found, the version required, and thepipcommand that fixes it. A newercuda-bindingsof the same major is supported.At build time, a source build requires
cuda-bindingsat or above the floor and acuda.h(CUDA_PATHorCUDA_HOME) of the same major.minor as thatcuda-bindings, which is the headercuda-bindingsitself was generated from. Any other configuration fails the build with a message that names what was found and what is required. Building against an older CUDA Toolkit than the floor’s minor is not supported.The CUDA driver is unaffected. Feature availability is decided by the driver alone: a feature the installed driver lacks raises when it is used, as before.
A floor is raised only in a release that needs a newer cuda-bindings API, and every such
change is listed under “Breaking Changes” in the release notes.
Python Version Support#
cuda.core supports all Python versions following the CPython EOL schedule. As of writing, Python 3.10 – 3.14 are supported.
When a new Python feature version is released and the oldest supported version reaches EOL,
cuda.core will bump its minor version accordingly.
Free-threading Build Support#
Starting cuda-core 0.4.0, packages for the free-threaded interpreter are shipped to PyPI and conda-forge.
This support is currently experimental.
For now, you are responsible for making sure that calls into the underlying CUDA libraries are thread-safe. This is subject to change.
The NVIDIA CUDA Python team reserves the right to amend the above support policy. Any major changes, however, will be announced to users in advance.