diff --git a/.github/workflows/native_release.yml b/.github/workflows/native_release.yml index b76e433..56f6f10 100644 --- a/.github/workflows/native_release.yml +++ b/.github/workflows/native_release.yml @@ -697,7 +697,7 @@ jobs: backend_glob: "*ggml-blas*.dll" - arch: arm64 vcpkg_triplet: arm64-windows - runs_on: windows-11-arm + runs_on: windows-11-vs2026-arm backend: vulkan include_core: true needs_cuda: false @@ -706,7 +706,7 @@ jobs: backend_glob: "*ggml-vulkan*.dll" - arch: arm64 vcpkg_triplet: arm64-windows - runs_on: windows-11-arm + runs_on: windows-11-vs2026-arm backend: blas include_core: false needs_cuda: false diff --git a/.github/workflows/validate_wrapper.yml b/.github/workflows/validate_wrapper.yml index f63edae..8d7eb1c 100644 --- a/.github/workflows/validate_wrapper.yml +++ b/.github/workflows/validate_wrapper.yml @@ -134,7 +134,7 @@ jobs: windows-arm64-kleidiai: needs: changes if: needs.changes.outputs.native == 'true' - runs-on: windows-11-arm + runs-on: windows-11-vs2026-arm timeout-minutes: 30 strategy: fail-fast: false diff --git a/CMakePresets.json b/CMakePresets.json index 2ac4822..9fb51bd 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -175,7 +175,7 @@ "name": "windows-arm64-full", "inherits": "windows-base", "binaryDir": "${sourceDir}/build/wa64", - "generator": "Visual Studio 17 2022", + "generator": "Visual Studio 18 2026", "architecture": { "value": "ARM64", "strategy": "set" diff --git a/docs/platform_backend_strategy.md b/docs/platform_backend_strategy.md index 4047e42..d1a0158 100644 --- a/docs/platform_backend_strategy.md +++ b/docs/platform_backend_strategy.md @@ -69,6 +69,14 @@ The Android artifact check is `tools/validate_android_cpu_isa.py --help`. - `third_party/opencl-stubs/` - auto-built OpenCL ICD loader from `third_party/OpenCL-ICD-Loader` + `third_party/OpenCL-Headers` - Linux arm64 builds on x64 runners require `aarch64-linux-gnu-gcc/g++`, `libopenblas-dev:arm64`, and `libvulkan-dev:arm64`. +- Windows ARM64 uses the `Visual Studio 18 2026` generator (CMake >= 4.2) with + the ClangCL toolset. CI pins the `windows-11-vs2026-arm` runner because the + `windows-11-arm` label moved to that image in September 2026 + (actions/runner-images#14602), and that image has no VS 2022 instance. + `tools/build.py windows --arch arm64` therefore needs VS 2026. With only + VS 2022 installed, configure directly with + `cmake --preset windows-arm64-full -G "Visual Studio 17 2022"` in a fresh + build directory. - Windows MSVC builds disable IPO/LTCG for `llama-common` and `mtmd` by default. Current MSVC `link.exe` can access-violate when linking the large `llama-common` utility DLL with `/LTCG`. CMake's automatic Windows export