Commit 7f2dd88b0 for llama.cpp
commit 7f2dd88b0ac393357ae6a9e1992185a48c20b13b
Author: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>
Date: Sun Oct 4 18:46:15 2026 +0200
ci : add windows arm64 vulkan release (#29954)
* add windows vulkan arm64 release
* add link
diff --git a/.github/workflows/build-vulkan.yml b/.github/workflows/build-vulkan.yml
index 4ba143ef6..c4c08621f 100644
--- a/.github/workflows/build-vulkan.yml
+++ b/.github/workflows/build-vulkan.yml
@@ -172,6 +172,7 @@ jobs:
ctest -L main --verbose --timeout 900
windows:
+ name: windows / ${{ matrix.arch }}
runs-on: windows-2025
cache-mode: write
@@ -179,6 +180,12 @@ jobs:
actions: write
contents: read
+ strategy:
+ matrix:
+ include:
+ - arch: 'x64'
+ - arch: 'arm64'
+
env:
VULKAN_VERSION: 1.4.357.0
@@ -190,7 +197,7 @@ jobs:
- name: ccache
uses: ggml-org/ccache-action@v1.2.24
with:
- key: cpu-windows-2025-x64-vulkan
+ key: cpu-windows-2025-${{ matrix.arch }}-vulkan
variant: ccache
evict-old-files: 1d
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
@@ -199,7 +206,7 @@ jobs:
id: get_vulkan
run: |
curl.exe -o $env:RUNNER_TEMP/VulkanSDK-Installer.exe -L "https://sdk.lunarg.com/sdk/download/${env:VULKAN_VERSION}/windows/vulkansdk-windows-X64-${env:VULKAN_VERSION}.exe"
- & "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install
+ & "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install ${{ matrix.arch == 'arm64' && 'com.lunarg.vulkan.arm64' || '' }}
Add-Content $env:GITHUB_ENV "VULKAN_SDK=C:\VulkanSDK\${env:VULKAN_VERSION}"
Add-Content $env:GITHUB_PATH "C:\VulkanSDK\${env:VULKAN_VERSION}\bin"
@@ -212,18 +219,19 @@ jobs:
id: cmake_build
run: |
cmake -S . -B build -G "Ninja Multi-Config" `
- -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake `
+ -D CMAKE_TOOLCHAIN_FILE=cmake/${{ matrix.arch }}-windows-llvm.cmake `
-DCMAKE_BUILD_TYPE=Release `
-DGGML_NATIVE=OFF `
-DLLAMA_BUILD_SERVER=ON `
-DGGML_RPC=ON `
-DGGML_BACKEND_DL=ON `
- -DGGML_CPU_ALL_VARIANTS=ON `
+ -DGGML_CPU_ALL_VARIANTS=${{ matrix.arch == 'x64' && 'ON' || 'OFF' }} `
-DGGML_VULKAN=ON `
-DLLAMA_BUILD_BORINGSSL=ON
cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS}
- name: Test
+ if: ${{ matrix.arch == 'x64' }}
id: cmake_test
run: |
cd build
@@ -234,7 +242,7 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
with:
- key: cpu-windows-2025-x64-vulkan
+ key: cpu-windows-2025-${{ matrix.arch }}-vulkan
older: 5m
min: 1
dry-run: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' }}
diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml
index 31fb1481a..f500b3de2 100644
--- a/.github/workflows/release-publish.yml
+++ b/.github/workflows/release-publish.yml
@@ -193,6 +193,7 @@ jobs:
- [Windows x64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-cuda-13.4-x64.zip) - [CUDA 13.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/cudart-llama-bin-win-cuda-13.4-x64.zip)
- [Windows arm64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-cuda-13.4-arm64.zip) - [CUDA 13.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/cudart-llama-bin-win-cuda-13.4-arm64.zip)
- [Windows x64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-vulkan-x64.zip)
+ - [Windows arm64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-vulkan-arm64.zip)
- [Windows x64 (OpenVINO)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-openvino-${{ needs.windows-openvino.outputs.openvino_version }}-x64.zip)
- [Windows x64 (SYCL)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-sycl-x64.zip)
- [Windows x64 (ROCm 10.0)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-rocm-10.0-x64.zip)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index c826de1fd..6852fbee6 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1125,6 +1125,10 @@ jobs:
arch: 'x64'
defines: '-DGGML_VULKAN=ON'
target: 'ggml-vulkan'
+ - backend: 'vulkan'
+ arch: 'arm64'
+ defines: '-DGGML_VULKAN=ON -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake'
+ target: 'ggml-vulkan'
- backend: 'opencl-adreno'
arch: 'arm64'
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/opencl-arm64-release" -DGGML_OPENCL=ON -DGGML_OPENCL_USE_ADRENO_KERNELS=ON'
@@ -1140,7 +1144,7 @@ jobs:
if: ${{ matrix.backend == 'vulkan' }}
run: |
curl.exe -o $env:RUNNER_TEMP/VulkanSDK-Installer.exe -L "https://sdk.lunarg.com/sdk/download/${env:VULKAN_VERSION}/windows/vulkansdk-windows-X64-${env:VULKAN_VERSION}.exe"
- & "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install
+ & "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install ${{ matrix.arch == 'arm64' && 'com.lunarg.vulkan.arm64' || '' }}
Add-Content $env:GITHUB_ENV "VULKAN_SDK=C:\VulkanSDK\${env:VULKAN_VERSION}"
Add-Content $env:GITHUB_PATH "C:\VulkanSDK\${env:VULKAN_VERSION}\bin"
diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml
index 1abaaf94b..75730350e 100644
--- a/.github/workflows/winget.yml
+++ b/.github/workflows/winget.yml
@@ -35,10 +35,11 @@ jobs:
repo: context.repo.repo,
});
const { tag_name: version, assets: assets } = releases.find(({assets}) => assets.find(asset => asset.name.includes('win-vulkan')));
- const { browser_download_url: asset_url } = assets.find(asset => asset.name.includes('win-vulkan'));
+ const { browser_download_url: asset_url_x64 } = assets.find(asset => asset.name.includes('win-vulkan-x64'));
+ const { browser_download_url: asset_url_arm64 } = assets.find(asset => asset.name.includes('win-vulkan-arm64'));
console.log("Latest release:", version);
core.setOutput('VERSION', version);
- core.setOutput('ASSETURL', asset_url);
+ core.setOutput('ASSETURL', `${asset_url_x64} ${asset_url_arm64}`);
- name: Update manifest
run: |