Skip to content

cuda.core 1.0.0 release prep: support policy, docs, and release notes#2032

Draft
leofang wants to merge 4 commits intoNVIDIA:mainfrom
leofang:cuda-core-support-policy
Draft

cuda.core 1.0.0 release prep: support policy, docs, and release notes#2032
leofang wants to merge 4 commits intoNVIDIA:mainfrom
leofang:cuda-core-support-policy

Conversation

@leofang
Copy link
Copy Markdown
Member

@leofang leofang commented May 6, 2026

Summary

  • Add cuda_core/docs/source/support.rst covering versioning (SemVer), CUDA version support (dual major versions), Python version support (CPython EOL schedule), experimental free-threading support, and release cadence (bimonthly target). Closes Document cuda.core support policy #2030.
  • Fix broken CCCL doc URLs for cuda.coop and cuda.compute (old paths return 404), and add missing nvFatbin and NVML to the cuda.bindings interface list across all 3 synced files (README.md, cuda_python/DESCRIPTION.rst, cuda_python/docs/source/index.rst).
  • Fill in missing 1.0.0 release note entries: green contexts, system.Device NVML APIs (MIG, NVLink, ProcessInfo, utilization), system.typing module, NVML enum re-wrapping, tensor bridge breaking change, system.Device renames, privatized helper classes, and multiple bug fixes.
  • Update api.rst pre-1.0 warning to stable-API statement, install.rst free-threading version reference, and add 1.0.0 entry to nv-versions.json.

Closes #2030

Add support.rst covering versioning (SemVer), CUDA version support
(dual major versions), Python version support (CPython EOL schedule),
free-threading (experimental), and release cadence (bimonthly).

Closes NVIDIA#2030
@copy-pr-bot
Copy link
Copy Markdown
Contributor

copy-pr-bot Bot commented May 6, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions github-actions Bot added the cuda.core Everything related to the cuda.core module label May 6, 2026
@leofang leofang added this to the cuda.core v1.0.0 milestone May 6, 2026
@leofang leofang self-assigned this May 6, 2026
@leofang leofang added documentation Improvements or additions to documentation P1 Medium priority - Should do labels May 6, 2026
- Update cuda.coop and cuda.compute URLs from the old
  nvidia.github.io/cccl/python/{coop,compute} paths (now 404)
  to the current unstable doc paths.
- Add nvFatbin and NVML to the cuda.bindings interface list.
- Update all three synced files: README.md, cuda_python/DESCRIPTION.rst,
  and cuda_python/docs/source/index.rst.
@leofang leofang changed the title Document cuda.core support policy Document cuda.core support policy and fix README May 6, 2026
leofang added 2 commits May 6, 2026 03:31
Add new features (green contexts, system.Device NVML APIs, system.typing
module, NVML enum re-wrapping), breaking changes (tensor bridge behavior,
system.Device renames, privatized helper classes, UUID format change,
removed enums), and bug fixes (is_managed for pool alloc, nvJitLink log
error handling, NVML event set init, Device.arch unknown, empty field
values, runtime error messages, wheel size reduction).
- api.rst: replace pre-1.0 warning with stable-API statement and link
  to support policy.
- install.rst: update free-threading version reference from 0.4.0 to
  1.0.0.
- nv-versions.json: add 1.0.0 entry for the version switcher dropdown.
@leofang leofang changed the title Document cuda.core support policy and fix README cuda.core 1.0.0 release prep: support policy, docs, and release notes May 6, 2026
@leofang leofang added P0 High priority - Must do! and removed P1 Medium priority - Should do labels May 6, 2026
:meth:`Device.create_context`, then use :meth:`Context.create_stream` and
:attr:`Context.resources` to work within the partitioned resources.
(`#1976 <https://github.com/NVIDIA/cuda-python/pull/1976>`__)
- Added the :mod:`cuda.core.system` module for NVIDIA Management Library (NVML)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was added in 0.6.0. Below is just changes (additions) to it.

Suggested change
- Added the :mod:`cuda.core.system` module for NVIDIA Management Library (NVML)
- Changes to :mod:`cuda.core.system` module for NVIDIA Management Library (NVML)

Comment on lines +50 to +53
- Moved all :mod:`cuda.core.system` enums into a new :mod:`cuda.core.system.typing`
module. Imports from ``cuda.core.system`` continue to work but the canonical
location is now ``cuda.core.system.typing``.
(`#2022 <https://github.com/NVIDIA/cuda-python/pull/2022>`__)
Copy link
Copy Markdown
Contributor

@mdboom mdboom May 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is really part of the note above. The fact that we merged it and them immediately moved it is uninteresting to our users. It's also dangerously incorrect (their old locations will not continue to work, publicly).

Suggested change
- Moved all :mod:`cuda.core.system` enums into a new :mod:`cuda.core.system.typing`
module. Imports from ``cuda.core.system`` continue to work but the canonical
location is now ``cuda.core.system.typing``.
(`#2022 <https://github.com/NVIDIA/cuda-python/pull/2022>`__)

Comment on lines +249 to +252
- Removed ``BrandType``, ``NvlinkVersion``, ``PcieUtilCounter``, ``Pstates``,
and ``TemperatureSensors`` enums from ``cuda.core.system``; the underlying
values are now returned as plain strings or accessed through other APIs.
(`#2014 <https://github.com/NVIDIA/cuda-python/pull/2014>`__)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Covered by the enum changes above.

Suggested change
- Removed ``BrandType``, ``NvlinkVersion``, ``PcieUtilCounter``, ``Pstates``,
and ``TemperatureSensors`` enums from ``cuda.core.system``; the underlying
values are now returned as plain strings or accessed through other APIs.
(`#2014 <https://github.com/NVIDIA/cuda-python/pull/2014>`__)

Comment on lines +277 to +279
- Fixed a potential crash when NVML event set creation failed, due to
``__dealloc__`` freeing an uninitialized handle.
(`#1992 <https://github.com/NVIDIA/cuda-python/pull/1992>`__)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Fixed a potential crash when NVML event set creation failed, due to
``__dealloc__`` freeing an uninitialized handle.
(`#1992 <https://github.com/NVIDIA/cuda-python/pull/1992>`__)
- Fixed a potential crash when NVML event set creation failed on Windows, due to
``__dealloc__`` freeing an uninitialized handle.
(`#1992 <https://github.com/NVIDIA/cuda-python/pull/1992>`__)


- **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 minor
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python calls these "feature releases", because "minor" sort of makes sense because it's the second number, it undersells the importance of them (and it doesn't follow semver anyway).

Suggested change
- **Minor**: Bumped when new, backward-compatible features are added, or when a new Python minor
- **Minor**: Bumped when new, backward-compatible features are added, or when a new Python feature

``cuda.core`` supports all Python versions following the `CPython EOL schedule
<https://devguide.python.org/versions/>`_. As of writing, Python 3.10 – 3.14 are supported.

When a new Python minor version is released and the oldest supported version reaches EOL,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When a new Python minor version is released and the oldest supported version reaches EOL,
When a new Python feature version is released and the oldest supported version reaches EOL,

- Supported CUDA versions
* - 1.x
- 12, 13

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to add that certain features in cuda_core may require a specific minimum version of cuda_bindings? (I'm thinking of NVML support specifically, but that may not be the only case). Saying it supports "any 12 or 13" is a bit misleading.

As a minimum, I'm going to file another pull request to document the minimum required cuda_bindings version that will set next to the cuda.core.system docs.

Comment on lines +45 to +49
- Re-wrapped NVML enums as human-readable ``StrEnum`` subclasses instead of raw
integer re-exports from ``cuda.bindings.nvml``. Added
:class:`~system.typing.GpuP2PCapsIndex`, :class:`~system.typing.GpuP2PStatus`,
and :class:`~system.typing.GpuTopologyLevel` enums.
(`#2014 <https://github.com/NVIDIA/cuda-python/pull/2014>`__)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Re-wrapped NVML enums as human-readable ``StrEnum`` subclasses instead of raw
integer re-exports from ``cuda.bindings.nvml``. Added
:class:`~system.typing.GpuP2PCapsIndex`, :class:`~system.typing.GpuP2PStatus`,
and :class:`~system.typing.GpuTopologyLevel` enums.
(`#2014 <https://github.com/NVIDIA/cuda-python/pull/2014>`__)
- Re-wrapped NVML enums as human-readable ``StrEnum`` subclasses instead of raw
integer re-exports from ``cuda.bindings.nvml``. These are available in
``cuda.core.system.typing``.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will probably generate a merge conflict as a reminder, but not to selves: /IF/ we choose to merge #2037, we should make sure typing -> enums here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#2037 not being merged, so we are good as-is here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cuda.core Everything related to the cuda.core module documentation Improvements or additions to documentation P0 High priority - Must do!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document cuda.core support policy

2 participants