Skip to content

Commit 3bfacab

Browse files
Andy-Jostclaude
andcommitted
docs(cuda.core): finalize 1.3.0 release notes, docs switcher, and metapackage pin
Expand the 1.3.0 highlights, add entries for user-facing PRs that had none, drop stale Python 3.10 remarks, and add a Known issues section (#2795, #2765). Add 1.3.0 to nv-versions.json and bump the cuda-python metapackage pin to cuda-core~=1.3.0. Co-Authored-By: Claude Opus 5.5 <[email protected]>
1 parent fe9bb74 commit 3bfacab

3 files changed

Lines changed: 80 additions & 7 deletions

File tree

‎cuda_core/docs/nv-versions.json‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"version": "latest",
44
"url": "https://nvidia.github.io/cuda-python/cuda-core/latest/"
55
},
6+
{
7+
"version": "1.3.0",
8+
"url": "https://nvidia.github.io/cuda-python/cuda-core/1.3.0/"
9+
},
610
{
711
"version": "1.2.2",
812
"url": "https://nvidia.github.io/cuda-python/cuda-core/1.2.2/"

‎cuda_core/docs/source/release/1.3.0-notes.rst‎

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@ Highlights
1111

1212
- Support for Python 3.10 is dropped (end of life).
1313

14+
- ``cuda.core`` now requires a minimum ``cuda-bindings`` version per CUDA major: 12.9.8 for
15+
CUDA 12 and 13.5.0 for CUDA 13. See the breaking changes below.
16+
17+
- :class:`VirtualMemoryResource` buffers can be shared with other processes through POSIX file
18+
descriptors or fabric handles.
19+
20+
- :func:`host_launch` enqueues a Python callable or a compiled host function on a stream in
21+
stream order.
22+
23+
- A new :doc:`error handling <../error_handling>` policy: :class:`CUDAWarning` reports CUDA
24+
errors that cannot be raised, and :class:`CUDAOutOfMemoryError` is a :class:`MemoryError`.
25+
1426
Breaking Changes
1527
----------------
1628

@@ -72,8 +84,27 @@ New features
7284
linker. :meth:`Linker.link` also accepts ``"ltoir"`` on nvJitLink 13.3 or
7385
newer so incremental LTO chains can retain IR until their final link. Direct
7486
PTX and CUBIN inputs are rejected for this target because they carry no LTOIR
75-
and nvJitLink would otherwise silently omit them.
76-
(`#2369 <https://github.com/NVIDIA/cuda-python/issues/2369>`__)
87+
and nvJitLink would otherwise silently omit them. Incremental links with
88+
link-time optimization disable the nvJitLink intermediate cache, which
89+
crashed after repeated links on Windows.
90+
(`#2369 <https://github.com/NVIDIA/cuda-python/issues/2369>`__,
91+
`#3038 <https://github.com/NVIDIA/cuda-python/issues/3038>`__)
92+
93+
- Added the ``priority`` option to :class:`LaunchConfig`, which sets the
94+
execution priority of a kernel launch. Lower numbers are higher priorities.
95+
The valid range is the device's stream priority range, as for
96+
:attr:`StreamOptions.priority`. A nonzero value outside it raises
97+
``ValueError``.
98+
(`#2631 <https://github.com/NVIDIA/cuda-python/issues/2631>`__)
99+
100+
- Added the ``cluster_scheduling_policy_preference`` option to
101+
:class:`LaunchConfig`: ``"DEFAULT"``, ``"SPREAD"``, or
102+
``"LOAD_BALANCING"``. It requires compute capability 9.0 or newer.
103+
(`#2629 <https://github.com/NVIDIA/cuda-python/issues/2629>`__)
104+
105+
- The PyTorch tensor bridge uses the stable ``PyObject`` to ``Tensor`` C API
106+
of PyTorch 2.14 and newer, and no longer caps the supported PyTorch
107+
version. PyTorch 2.3 to 2.13 keep the previous path.
77108

78109
- Added the read-only :attr:`ManagedBuffer.last_prefetch_location` property,
79110
which reports the destination requested by the most recent explicit
@@ -296,8 +327,8 @@ Fixes and enhancements
296327

297328
- When a :class:`Device` method has to run in the device's context and the
298329
caller's context cannot be restored afterwards, the created resource is
299-
destroyed and the raised ``CUDAError`` now carries a note (Python 3.11+;
300-
appended to the message on 3.10) stating that the caller's context could not
330+
destroyed and the raised ``CUDAError`` now carries a note
331+
stating that the caller's context could not
301332
be restored and which context is current. Previously the error named only
302333
the driver status of the failed ``cuCtxSetCurrent`` call. If the call itself
303334
failed as well, its error is raised and the restoration failure is the note.
@@ -315,8 +346,7 @@ Fixes and enhancements
315346
context is current, returning ``None``.
316347

317348
- A failed rollback of a partially embedded child graph node is now attached
318-
as a note to the exception that triggered the rollback (reported as
319-
:class:`CUDAWarning` on Python 3.10), and a failed ``cuStreamEndCapture``
349+
as a note to the exception that triggered the rollback, and a failed ``cuStreamEndCapture``
320350
made when a still-building :class:`~graph.GraphBuilder` is garbage collected
321351
is now reported as :class:`CUDAWarning`; both were silent.
322352

@@ -447,6 +477,33 @@ Fixes and enhancements
447477
cuda.core error, please report".
448478
(`#3202 <https://github.com/NVIDIA/cuda-python/issues/3202>`__)
449479

480+
- A process that made a device current with :meth:`Device.set_current` no
481+
longer crashes at interpreter shutdown. The primary context was released
482+
from a thread-local destructor after Python had finalized.
483+
(`#2743 <https://github.com/NVIDIA/cuda-python/issues/2743>`__)
484+
485+
- :meth:`Buffer.from_ipc_descriptor` no longer deadlocks when two threads
486+
import IPC buffers at the same time.
487+
(`#2840 <https://github.com/NVIDIA/cuda-python/issues/2840>`__)
488+
489+
- :class:`Linker` passes boolean nvJitLink options as ``1`` or ``0``.
490+
Newer nvJitLink versions reject the ``true`` and ``false`` values that it
491+
passed before.
492+
(`#3254 <https://github.com/NVIDIA/cuda-python/issues/3254>`__)
493+
494+
- :class:`Program` with ``code_type="nvvm"`` now raises :class:`CUDAError`
495+
for twelve :class:`ProgramOptions` fields that libNVVM cannot use, such as
496+
``pch`` and ``no_cache``. Before, they were silently ignored.
497+
(`#2954 <https://github.com/NVIDIA/cuda-python/issues/2954>`__)
498+
499+
- A failed IPC export that receives an invalid file descriptor from the
500+
driver now raises the original error. The rollback used to close the
501+
invalid descriptor and replace the error with ``EBADF``.
502+
503+
- A new graph no longer adopts the metadata of a destroyed graph when the
504+
driver reuses its handle address. Cleanup of the old graph could
505+
invalidate the new one.
506+
450507
Deprecations
451508
------------
452509

@@ -456,3 +513,15 @@ Deprecations
456513

457514
- ``TimeoutError`` is now ``NvmlTimeoutError``.
458515
- ``MemoryError`` is now ``NvmlMemoryError``.
516+
517+
Known issues
518+
------------
519+
520+
- :class:`PinnedMemoryResource` rejects ``HOST_NUMA`` pools on CUDA 12.6 to
521+
12.8 drivers, although the driver supports them. This regression is present
522+
since 1.2.0.
523+
(`#2795 <https://github.com/NVIDIA/cuda-python/issues/2795>`__)
524+
525+
- :meth:`SMResource.split` with ``dry_run=True`` raises on
526+
CUDA 13 when a group requests a nonzero SM count.
527+
(`#2765 <https://github.com/NVIDIA/cuda-python/issues/2765>`__)

‎cuda_python/setup.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
f"cuda-bindings{matcher}{version}",
3333
# Bump this with every cuda-core release and release cuda-python right
3434
# after it; see .github/RELEASE-core.md and cuda_python/AGENTS.md.
35-
"cuda-core~=1.2.0",
35+
"cuda-core~=1.3.0",
3636
"cuda-pathfinder~=1.1",
3737
],
3838
extras_require={

0 commit comments

Comments
 (0)