Skip to content

Prepare cuda.core v1.2.1 with Windows on ARM support - #2935

Merged
Andy-Jost merged 10 commits into
NVIDIA:release/cuda-core-v1.2.1from
Andy-Jost:ajost/release-cuda-core-v1.2.1
Sep 23, 2026
Merged

Andy-Jost merged 10 commits into
NVIDIA:release/cuda-core-v1.2.1from
Andy-Jost:ajost/release-cuda-core-v1.2.1

Conversation

@Andy-Jost

Copy link
Copy Markdown
Contributor

Summary

Patch release of cuda.core 1.2.0 that adds Windows on ARM (win_arm64) wheels. The branch starts at the cuda-core-v1.2.0 tag and carries a minimal set of changes; everything else on main waits for 1.3.0.

Cherry-picked from main:

From the CUDA 13.4 integration (#2437, #2788 via #2789):

  • Map the ClocksEventReasons values BOARD_LIMIT and RELIABILITY added in CUDA 13.4. Reading a device's clock-event reasons raised ValueError for an unknown reason bit on hardware that reports them.
  • Map the NVIDIA DLA, vGameDev and NPU brand types instead of "Unknown".
  • Test updates: accept the DLA- UUID prefix, exclude the new memory-location enum value from the coverage check, and cover Device.get_all_devices.

Build and docs:

  • Build every wheel against CUDA 13.4.2 (ci/versions.yml and the pixi pins). Windows on ARM toolkits start at 13.4, and one toolkit for all platforms avoids a mixed release.
  • 1.2.1 release notes and the install page: Windows on ARM wheels are CUDA 13 only, Python 3.11 and newer, and need cuda-bindings 13.4.1 or newer.

Validation

  • pre-commit run --all-files passes.
  • Requested before tagging: install a cuda-core-python3XX-win-arm64-* wheel from this PR's CI run on a Windows on ARM system with cuda-bindings 13.4.2 and run the cuda_core test suite. The clock-event and brand fixes address the failures seen there with 1.2.0.

Release plan

Merge here, tag cuda-core-v1.2.1 on the merge commit, wait for the tag-triggered CI run, run the release workflow in dry-run mode, then release.

🤖 Generated with Claude Code

Andy-Jost and others added 9 commits September 22, 2026 11:19
Since 1.2.0, Buffer.from_handle binds a default-stream deallocation
token to the current context for every owning memory resource. Memory
the device cannot access has no stream ordering to preserve, so skip the
binding when mr.is_device_accessible is False. Such buffers record no
deallocation stream and never call the driver.

Fixes NVIDIA#2769

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
(cherry picked from commit 3fef50b)
(cherry picked from commit 9d762dd)
(cherry picked from commit 7cfdad7)
Release branch off the cuda-core-v1.2.0 tag. Windows on ARM wheels need
the CUDA 13.4 toolkit, so the build moves to CUDA 13.4.2 for every
platform (ci/versions.yml and the pixi cuda-version pins). The WoA build
jobs themselves are cherry-picked from main in the preceding commits.

From the CUDA 13.4 integration on main (NVIDIA#2437, NVIDIA#2788, merged via NVIDIA#2789):
- Map the ClocksEventReasons BOARD_LIMIT and RELIABILITY values that
  CUDA 13.4 added. Device.current_clock_event_reasons and
  Device.supported_clock_event_reasons raised ValueError for an unknown
  reason bit on devices that report them.
- Map the NVIDIA DLA, vGameDev and NPU brand types instead of "Unknown".
- Test updates: accept the "DLA-" UUID prefix, exclude the new 13.4
  memory-location enum value from the coverage check, and cover
  Device.get_all_devices.

The 1.2.1 release notes and the install page describe the new wheels:
CUDA 13 only, Python 3.11 and newer, cuda-bindings 13.4.1 or newer.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Scheduled pixi update --no-install for this workspace only.

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 04d4753)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Scheduled pixi update --no-install for this workspace only.

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 7aa0648)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Andy-Jost Andy-Jost added this to the cuda.core 1.2.1 milestone Sep 22, 2026
@Andy-Jost Andy-Jost added P0 High priority - Must do! cuda.core Everything related to the cuda.core module labels Sep 22, 2026
@Andy-Jost Andy-Jost self-assigned this Sep 22, 2026
@Andy-Jost Andy-Jost added the feature New feature or request label Sep 22, 2026
@github-actions github-actions Bot added CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module labels Sep 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This branch builds with CUDA 13.4.2 but tests on 13.3.0, so the test
jobs install published cuda-bindings 13.3.x to cover the real-world
combination. No 13.3.x wheel exists for Python 3.15, so the three 3.15
and 3.15t test jobs fail at pip install before any test runs. 1.2.1
ships no 3.15 wheels, so nothing is lost; the 3.15 build jobs remain.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@leofang

leofang commented Sep 23, 2026

Copy link
Copy Markdown
Member

Q: Is it possible to avoid touching anything under cuda_bindings/?

@Andy-Jost

Copy link
Copy Markdown
Contributor Author

Q: Is it possible to avoid touching anything under cuda_bindings/?

I don't think so because WoA requires we build with CUDA 13.4.

@Andy-Jost
Andy-Jost merged commit bb136a3 into NVIDIA:release/cuda-core-v1.2.1 Sep 23, 2026
430 of 434 checks passed
@Andy-Jost
Andy-Jost deleted the ajost/release-cuda-core-v1.2.1 branch September 23, 2026 17:35
github-actions Bot pushed a commit that referenced this pull request Sep 24, 2026
Removed preview folders for the following PRs:
- PR #2428
- PR #2935
- PR #2938
- PR #2944
- PR #2946
Andy-Jost added a commit that referenced this pull request Sep 30, 2026
…itcher (#2962)

The "Choose Version" dropdown on every cuda.core docs page is driven by
one file at the docs root, cuda-core/nv-versions.json, which each page
fetches by absolute URL. Every docs deploy copies its own checkout's copy
over that root file. Deploys from main keep it current; a release built
from a release branch overwrote it with that branch's older list, which
hid every version released from main after the branch point until the
next main deploy restored it (seen with cuda-core-v1.2.1, #2935/#2944).

Delete the switcher files from the release build output next to the
existing removal of latest/. The deploy action runs with clean: false, so
the root copy on gh-pages is left untouched and main alone owns it. The
new version's entry is added on main as part of release prep.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure cuda.bindings Everything related to the cuda.bindings module cuda.core Everything related to the cuda.core module feature New feature or request P0 High priority - Must do!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants