From 13750f0505a7068f0b784e93f4200bf734232cec Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Fri, 29 May 2026 15:58:27 -0400 Subject: [PATCH 1/2] ci: add windows arm64 CPU to nightly CI --- .github/workflows/test-runner.yml | 15 ++++++++++++--- .github/workflows/tests-nightly.yml | 11 ++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-runner.yml b/.github/workflows/test-runner.yml index 7750646c1..f06bdf815 100644 --- a/.github/workflows/test-runner.yml +++ b/.github/workflows/test-runner.yml @@ -112,6 +112,11 @@ jobs: TEST_RUNNER="windows-2025" fi ;; + windows-arm64) + BUILD_OS="windows-11-arm" + ARCH="arm64" + TEST_RUNNER="windows-11-arm" + ;; *) echo "::error::Unsupported platform: ${{ inputs.platform }}" exit 1 @@ -152,8 +157,10 @@ jobs: # Windows: Setup MSVC (needed for both CPU and CUDA builds) - name: Setup MSVC - if: inputs.platform == 'windows' + if: startsWith(inputs.platform, 'windows') uses: ilammy/msvc-dev-cmd@v1.13.0 + with: + arch: ${{ inputs.platform == 'windows-arm64' && 'arm64' || 'x64' }} # Build CPU backend - name: Build C++ @@ -198,12 +205,14 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: ${{ inputs.platform == 'windows-arm64' && '3.12' || '3.10' }} # Windows: Setup MSVC for torch.compile - name: Setup MSVC - if: inputs.platform == 'windows' + if: startsWith(inputs.platform, 'windows') uses: ilammy/msvc-dev-cmd@v1.13.0 + with: + arch: ${{ inputs.platform == 'windows-arm64' && 'arm64' || 'x64' }} - name: Install torch (nightly) if: inputs.torch_version == 'nightly' diff --git a/.github/workflows/tests-nightly.yml b/.github/workflows/tests-nightly.yml index db8a1d6d2..f13737026 100644 --- a/.github/workflows/tests-nightly.yml +++ b/.github/workflows/tests-nightly.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [linux-x64, linux-aarch64, macos, windows] + platform: [linux-x64, linux-aarch64, macos, windows, windows-arm64] # default runners don't have AVX-512 support, but icelake does cpu_type: ["", icelake] torch_version: ["2.4.1", "2.12.0", "nightly"] @@ -33,12 +33,21 @@ jobs: cpu_type: icelake - platform: windows cpu_type: icelake + - platform: windows-arm64 + cpu_type: icelake + # windows-arm64: torch >= 2.7.0 required (first version with official WoA wheels) + - platform: windows-arm64 + torch_version: "2.4.1" include: # Add aarch64 with torch 2.5.1 - platform: linux-aarch64 cpu_type: "" torch_version: "2.5.1" + # Add windows-arm64 with minimum torch 2.7.1 + - platform: windows-arm64 + cpu_type: "" + torch_version: "2.7.1" uses: ./.github/workflows/test-runner.yml with: From 515bc955ebf899c6dc22257b97a47237a4a2fbb3 Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:02:16 -0400 Subject: [PATCH 2/2] Tests: build WoA on arm64 runner properly --- .github/workflows/test-runner.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-runner.yml b/.github/workflows/test-runner.yml index f06bdf815..53c57912d 100644 --- a/.github/workflows/test-runner.yml +++ b/.github/workflows/test-runner.yml @@ -42,6 +42,7 @@ jobs: inputs.platform == 'linux-x64' && 'ubuntu-22.04' || inputs.platform == 'linux-aarch64' && 'ubuntu-22.04-arm' || inputs.platform == 'macos' && 'macos-15' || + inputs.platform == 'windows-arm64' && 'windows-11-arm' || 'windows-2025' }} outputs: