Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 328
[doc-only] cuda.core v0.6.0 release notes#1651
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
85705ef773f6f80382a28feb85c7File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,33 +1,84 @@ | ||
| .. SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| .. SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| .. SPDX-License-Identifier: Apache-2.0 | ||
| .. currentmodule:: cuda.core | ||
| ``cuda.core`` 0.6.0 Release Notes | ||
| ================================== | ||
| Highlights | ||
| ---------- | ||
| - Added the ``cuda.core.system`` module for NVML-based system and device queries. | ||
| - Several :class:`~utils.StridedMemoryView` improvements, including bfloat16 dlpack support | ||
| and numpy array interoperability. | ||
| - Improved support for Python object protocols across core API classes. | ||
| - Performance improvements through Cythonization and reduced Python overhead. | ||
| Breaking Changes | ||
| ---------------- | ||
| - Building ``cuda.core`` from source now requires ``cuda-bindings`` >= 12.9.0, due to Cython-level | ||
| dependencies on the NVVM bindings (``cynvvm``). Pre-built wheels are unaffected. The previous | ||
| minimum was 12.8.0. | ||
| New features | ||
| ------------ | ||
| - Added public access to default CUDA streams via module-level constants ``LEGACY_DEFAULT_STREAM`` and ``PER_THREAD_DEFAULT_STREAM`` | ||
| - Added the ``cuda.core.system`` module for NVML-based system and device queries, including | ||
| device attributes, clocks, temperatures, fans, events, and PCI information. | ||
| Users can now access default streams directly from the ``cuda.core`` namespace: | ||
| - :class:`~utils.StridedMemoryView` improvements: | ||
| .. code-block:: python | ||
| - Added ``from_array_interface`` constructor for creating views from numpy arrays. | ||
| - Improved structured dtype array support. | ||
| - Added bfloat16 dlpack support when the optional ``ml_dtypes`` package is installed. | ||
| from cuda.core import LEGACY_DEFAULT_STREAM, PER_THREAD_DEFAULT_STREAM | ||
| - Added public access to default CUDA streams via module-level constants | ||
| ``LEGACY_DEFAULT_STREAM`` and ``PER_THREAD_DEFAULT_STREAM``, replacing the previous | ||
| workaround of using ``Stream.from_handle(0)``. | ||
| # Use legacy default stream (synchronizes with all blocking streams) | ||
| LEGACY_DEFAULT_STREAM.sync() | ||
| - Added :meth:`Kernel.from_handle` for wrapping an existing ``CUfunction`` handle into a | ||
| :class:`Kernel` object, enabling interoperability with foreign CUDA handles. | ||
| # Use per-thread default stream (non-blocking, thread-local) | ||
| PER_THREAD_DEFAULT_STREAM.sync() | ||
| - Added ``__eq__``, ``__hash__``, ``__weakref__``, and ``__repr__`` support for core API classes | ||
leofang marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| including :class:`Buffer`, :class:`LaunchConfig`, :class:`Kernel`, :class:`ObjectCode`, | ||
| :class:`Stream`, and :class:`Event`. | ||
| The legacy default stream synchronizes with all blocking streams in the same CUDA context, ensuring strict ordering but potentially limiting concurrency. The per-thread default stream is local to the calling thread and does not synchronize with other streams, enabling concurrent execution in multi-threaded applications. | ||
| - Added NVVM ``extra_sources`` and ``use_libdevice`` options to :class:`ProgramOptions` for | ||
| multi-module NVVM compilation and automatic libdevice loading. | ||
| - Added CUDA version compatibility check at import time to detect mismatches between | ||
| ``cuda.core`` and the installed ``cuda-bindings`` version. | ||
| This replaces the previous undocumented workaround of using ``Stream.from_handle(0)`` to access the legacy default stream. | ||
| Fixes and enhancements | ||
| ----------------------- | ||
| ---------------------- | ||
| - Eliminated spurious CUDA driver errors during interpreter shutdown by ensuring | ||
| resources are destroyed in the correct order. | ||
| - Fixed a bug preventing weak references to core API objects. | ||
| - Fixed zero-sized allocations in legacy memory resources, which previously failed on | ||
| certain platforms. | ||
| - Improved performance by Cythonizing :class:`Program` and :class:`ObjectCode` internals. | ||
| - Reduced :class:`~utils.StridedMemoryView` construction overhead. | ||
| - ``__hash__`` and ``__eq__`` on core API classes no longer require a CUDA context. | ||
| - Device attribute queries now gracefully handle unsupported attributes on older CUDA | ||
| drivers, returning sensible defaults instead of raising errors. | ||
| - Added a warning when :class:`ManagedMemoryResource` is created on platforms without | ||
| concurrent managed access support. | ||
| - Reduced wheel and installed package sizes by excluding Cython source files and build | ||
| artifacts from distribution packages. | ||
| None. | ||
| - Slightly improved typing support. | ||
This file was deleted.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.