Skip to content

Fix Windows binary utility discovery on Arm64 - #2586

Open
isVoid wants to merge 4 commits into
NVIDIA:mainfrom
isVoid:agent/fix-woa-binary-utility-layouts
Open

Fix Windows binary utility discovery on Arm64#2586
isVoid wants to merge 4 commits into
NVIDIA:mainfrom
isVoid:agent/fix-woa-binary-utility-layouts

Conversation

@isVoid

Copy link
Copy Markdown
Contributor

What changed

  • Prefer the CTK bin/compute-sanitizer.bat launcher, with compute-sanitizer/compute-sanitizer.exe as the compatibility fallback.
  • Resolve standalone Nsight Systems to the native machine target only: target-windows-x64/nsys.exe on x64 or target-windows-armv8/nsys.exe on Arm64. There is no cross-architecture fallback.
  • Prefer the standalone Nsight Compute ncu.bat launcher, then fall back to the native machine binary: target/windows-desktop-win7-x64/ncu.exe on x64 or target/windows-desktop-win10-t23x-a64/ncu.exe on Arm64.
  • Detect the Windows machine architecture independently of the Python interpreter architecture, and route the existing nsight-sys / nsight-compute aliases through the same rules.

Binary layout survey

GroupDelivery and layoutPathfinder change
Unchanged CTK core utilitiesnvcc, nvdisasm, cuobjdump, nvprune, fatbinary, bin2c, and nvlink remain at bin/<utility>.exe in both CUDA 13.3 x64 and CUDA 13.4 x64/Arm64. The installed executable architecture changes with the CTK installer, but the path does not.None; the existing CTK bin search remains unchanged.
Changed CTK utilityCompute Sanitizer exposes bin/compute-sanitizer.bat, which launches compute-sanitizer/compute-sanitizer.exe.Prefer the launcher and retain the direct executable fallback.
Changed standalone utilityNsight Systems is not delivered under the CTK root and has no root launcher. Its product tree contains architecture targets under target-windows-x64 and target-windows-armv8.Read the installed-product root and select only the native machine target.
Changed standalone utilityNsight Compute is not delivered under the CTK root. Its product root provides ncu.bat, with direct executables under architecture-specific target directories.Prefer the launcher and retain a native direct-binary fallback.

The existing IS_WINDOWS macro is intentionally unchanged.

Backward compatibility

  • CUDA 13.3 remains supported on Windows x64 through the unchanged core-tool paths and the x64 Nsight direct-binary paths.
  • CUDA 13.3 is not treated as a Windows Arm64 installation; Windows Arm64 support starts with CUDA 13.4.
  • Existing wheel and Conda search locations retain their priority before system-product discovery.

Testing

  • pixi run pytest tests/: 1296 passed, 4 skipped.
  • Scoped pre-commit checks, Ruff formatting/lint, and mypy-pathfinder: passed.

@isVoidisVoid added this to the cuda.pathfinder next milestone Aug 10, 2026
@isVoidisVoid added bug Something isn't working cuda.pathfinder Everything related to the cuda.pathfinder module labels Aug 10, 2026
@copy-pr-bot

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@isVoid
isVoid marked this pull request as ready for review August 10, 2026 07:11
@isVoid

Copy link
Copy Markdown
ContributorAuthor

/ok to test daf96fb

@isVoidisVoid self-assigned this Aug 10, 2026
@github-actions

Copy link
Copy Markdown

@isVoidisVoid added the PR review get-together Mark PRs you'd like the team to review at the weekly PR review get-together. label Aug 10, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't workingcuda.pathfinderEverything related to the cuda.pathfinder modulePR review get-togetherMark PRs you'd like the team to review at the weekly PR review get-together.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@isVoid