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

@isVoid isVoid commented Aug 10, 2026

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

Group Delivery and layout Pathfinder change
Unchanged CTK core utilities nvcc, 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 utility Compute Sanitizer exposes bin/compute-sanitizer.bat, which launches compute-sanitizer/compute-sanitizer.exe. Prefer the launcher and retain the direct executable fallback.
Changed standalone utility Nsight 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 utility Nsight 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.

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

copy-pr-bot Bot commented Aug 10, 2026

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

isVoid commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

/ok to test daf96fb

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

Copy link
Copy Markdown

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

Labels

bug Something isn't working cuda.pathfinder Everything related to the cuda.pathfinder module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant