Skip to content

[CI] Enable Windows ARM64 wheels - #691

Open
vortex-captain wants to merge 8 commits into
apache:mainfrom
chinazhangchao:chao_windowsarm64_fix
Open

[CI] Enable Windows ARM64 wheels#691
vortex-captain wants to merge 8 commits into
apache:mainfrom
chinazhangchao:chao_windowsarm64_fix

Conversation

@vortex-captain

@vortex-captain vortex-captain commented Jul 28, 2026

Copy link
Copy Markdown

Summary

  • add a native Windows ARM64 wheel job and enable ARM64 in cibuildwheel
  • select the MSVC developer environment from the running Python architecture so JIT extensions are built for ARM64 rather than x64
  • omit the PyTorch dependency on Windows ARM64 because official PyTorch wheels are not currently available for that platform, hence skipping tests requiring PyTorch on CI for win_arm64

Validation

  • Windows ARM64 publish job: 465/465 C++ tests passed
  • CPython 3.12 ARM64: 2414 passed, 44 skipped, 3 xfailed
  • CPython 3.13 ARM64: 2416 passed, 42 skipped, 3 xfailed
  • CPython 3.14t ARM64: 2418 passed, 40 skipped, 3 xfailed
  • Windows AMD64, Linux x86_64/ARM64, and macOS ARM64 wheel jobs passed
  • regular lint, docs, Windows AMD64, Linux x86_64/ARM64, and macOS ARM64 CI passed

A local private PyTorch 2.14 Windows ARM64 wheel was also tested with the released tvm-ffi 0.1.12 ARM64 wheel. The suite reported 2300 passed, 17 skipped, and 4 xfailed. Only these two optional addon-build tests failed:

  • test_build_torch_c_dlpack_extension
  • test_parallel_build

Those failures are due to tvm-ffi 0.1.12 compiling the addon as C++17 while the PyTorch 2.14 headers require C++20. Current main already selects C++20 for PyTorch 2.13 and newer.

Future steps

  • Remove the Windows ARM64 PyTorch dependency exclusion and re-enable PyTorch-dependent tests once official PyTorch wheels are available for win_arm64.

chinazhangchao and others added 6 commits July 24, 2026 15:23
…sion

- Fix Python library path detection in _build_optional_torch_c_dlpack.py to
  also check for versioned Python library (e.g. python312.lib) in addition to
  the major-only name (python3.lib). Some Python distributions like nuget-cpython
  (used by cibuildwheel on Windows) only provide the versioned library. When only
  the versioned library is found, explicitly add it to linker flags so pybind11's
  #pragma comment directive can resolve correctly.

- Fix test_optional_torch_c_dlpack.py to use platform-appropriate library
  extension: .dll on Windows, .so elsewhere. Previously hardcoded .so caused
  test failures on Windows even when build succeeded.
…ilure

Fix Windows wheel build: versioned Python lib detection and .dll extension
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@tqchen

tqchen commented Jul 28, 2026

Copy link
Copy Markdown
Member

good to understand usecases, likely we will align with pytorch on availability of win arm64 wheel

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants