jobs:
- ubuntu-24-sycl:
- strategy:
- matrix:
- build: [fp32]
- include:
- - build: fp32
- fp16: OFF
-
- runs-on: ubuntu-24.04
-
- env:
- ONEAPI_ROOT: /opt/intel/oneapi/
- ONEAPI_INSTALLER_VERSION: "2025.3.3"
- LEVEL_ZERO_VERSION: "1.28.2"
- LEVEL_ZERO_UBUNTU_VERSION: "u24.04"
-
- continue-on-error: true
-
- steps:
- - uses: actions/checkout@v6
-
- - name: Use oneAPI Installation Cache
- uses: actions/cache@v5
- id: cache-sycl
- with:
- path: ${{ env.ONEAPI_ROOT }}
- key: oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
-
- - name: Download & Install oneAPI
- shell: bash
- if: steps.cache-sycl.outputs.cache-hit != 'true'
- run: |
- cd /tmp
- wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/56f7923a-adb8-43f3-8b02-2b60fcac8cab/intel-deep-learning-essentials-2025.3.3.16_offline.sh -O intel-deep-learning-essentials_offline.sh
- sudo bash intel-deep-learning-essentials_offline.sh -s -a --silent --eula accept
-
- - name: Install Level Zero SDK
- shell: bash
- run: |
- cd /tmp
- wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero.deb
- wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero-devel_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero-devel.deb
- sudo apt-get install -y ./level-zero.deb ./level-zero-devel.deb
-
- - name: Clone
- id: checkout
- uses: actions/checkout@v6
-
- - name: ccache
- uses: ggml-org/ccache-action@v1.2.21
- with:
- key: ubuntu-24-sycl-${{ matrix.build }}
- evict-old-files: 1d
- save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
-
- - name: Build
- id: cmake_build
- run: |
- source /opt/intel/oneapi/setvars.sh
- cmake -B build \
- -G "Ninja" \
- -DCMAKE_BUILD_TYPE=Release \
- -DGGML_SYCL=ON \
- -DCMAKE_C_COMPILER=icx \
- -DCMAKE_CXX_COMPILER=icpx \
- -DLLAMA_OPENSSL=OFF \
- -DGGML_NATIVE=OFF \
- -DGGML_SYCL_F16=${{ matrix.fp16 }}
- time cmake --build build --config Release -j $(nproc)
-
- windows-latest-sycl:
- runs-on: windows-2022
-
- defaults:
- run:
- shell: bash
-
- env:
- WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b60765d1-2b85-4e85-86b6-cb0e9563a699/intel-deep-learning-essentials-2025.3.3.18_offline.exe
- WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel
- LEVEL_ZERO_SDK_URL: https://github.com/oneapi-src/level-zero/releases/download/v1.28.2/level-zero-win-sdk-1.28.2.zip
- ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI"
- ONEAPI_INSTALLER_VERSION: "2025.3.3"
- steps:
- - name: Clone
- id: checkout
- uses: actions/checkout@v6
-
- - name: Use oneAPI Installation Cache
- uses: actions/cache@v5
- id: cache-sycl
- with:
- path: ${{ env.ONEAPI_ROOT }}
- key: oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
-
- - name: Download & Install oneAPI
- shell: bash
- if: steps.cache-sycl.outputs.cache-hit != 'true'
- run: |
- scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL
-
- - name: Install Level Zero SDK
- shell: pwsh
- run: |
- Invoke-WebRequest -Uri "${{ env.LEVEL_ZERO_SDK_URL }}" -OutFile "level-zero-win-sdk.zip"
- Expand-Archive -Path "level-zero-win-sdk.zip" -DestinationPath "C:/level-zero-sdk" -Force
- "LEVEL_ZERO_V1_SDK_PATH=C:/level-zero-sdk" | Out-File -FilePath $env:GITHUB_ENV -Append
-
- - name: ccache
- uses: ggml-org/ccache-action@v1.2.21
- with:
- key: windows-latest-sycl
- variant: ccache
- evict-old-files: 1d
- save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
-
- # TODO: add ssl support ; we will also need to modify win-build-sycl.bat to accept user-specified args
-
- - name: Build
- id: cmake_build
- run: examples/sycl/win-build-sycl.bat
+# TODO: this build is disabled to save Github Actions resources (https://github.com/ggml-org/llama.cpp/pull/23705)
+# in order to enable it again, we have to provision dedicated runners to run it
+# ubuntu-24-sycl:
+# strategy:
+# matrix:
+# build: [fp32]
+# include:
+# - build: fp32
+# fp16: OFF
+#
+# runs-on: ubuntu-24.04
+#
+# env:
+# ONEAPI_ROOT: /opt/intel/oneapi/
+# ONEAPI_INSTALLER_VERSION: "2025.3.3"
+# LEVEL_ZERO_VERSION: "1.28.2"
+# LEVEL_ZERO_UBUNTU_VERSION: "u24.04"
+#
+# continue-on-error: true
+#
+# steps:
+# - uses: actions/checkout@v6
+#
+# - name: Use oneAPI Installation Cache
+# uses: actions/cache@v5
+# id: cache-sycl
+# with:
+# path: ${{ env.ONEAPI_ROOT }}
+# key: cache-gha-oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
+#
+# - name: Download & Install oneAPI
+# shell: bash
+# if: steps.cache-sycl.outputs.cache-hit != 'true'
+# run: |
+# cd /tmp
+# wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/56f7923a-adb8-43f3-8b02-2b60fcac8cab/intel-deep-learning-essentials-2025.3.3.16_offline.sh -O intel-deep-learning-essentials_offline.sh
+# sudo bash intel-deep-learning-essentials_offline.sh -s -a --silent --eula accept
+#
+# - name: Install Level Zero SDK
+# shell: bash
+# run: |
+# cd /tmp
+# wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero.deb
+# wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero-devel_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero-devel.deb
+# sudo apt-get install -y ./level-zero.deb ./level-zero-devel.deb
+#
+# - name: Clone
+# id: checkout
+# uses: actions/checkout@v6
+#
+# - name: ccache
+# uses: ggml-org/ccache-action@v1.2.21
+# with:
+# key: ubuntu-24-sycl-${{ matrix.build }}
+# evict-old-files: 1d
+# save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+#
+# - name: Build
+# id: cmake_build
+# run: |
+# source /opt/intel/oneapi/setvars.sh
+# cmake -B build \
+# -G "Ninja" \
+# -DCMAKE_BUILD_TYPE=Release \
+# -DGGML_SYCL=ON \
+# -DCMAKE_C_COMPILER=icx \
+# -DCMAKE_CXX_COMPILER=icpx \
+# -DLLAMA_OPENSSL=OFF \
+# -DGGML_NATIVE=OFF \
+# -DGGML_SYCL_F16=${{ matrix.fp16 }}
+# time cmake --build build --config Release -j $(nproc)
+
+# TODO: this build is disabled to save Github Actions resources (https://github.com/ggml-org/llama.cpp/pull/23705)
+# in order to enable it again, we have to provision dedicated runners to run it
+# windows-latest-sycl:
+# runs-on: windows-2022
+#
+# defaults:
+# run:
+# shell: bash
+#
+# env:
+# WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b60765d1-2b85-4e85-86b6-cb0e9563a699/intel-deep-learning-essentials-2025.3.3.18_offline.exe
+# WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel
+# LEVEL_ZERO_SDK_URL: https://github.com/oneapi-src/level-zero/releases/download/v1.28.2/level-zero-win-sdk-1.28.2.zip
+# ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI"
+# ONEAPI_INSTALLER_VERSION: "2025.3.3"
+# steps:
+# - name: Clone
+# id: checkout
+# uses: actions/checkout@v6
+#
+# - name: Use oneAPI Installation Cache
+# uses: actions/cache@v5
+# id: cache-sycl
+# with:
+# path: ${{ env.ONEAPI_ROOT }}
+# key: cache-gha-oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
+#
+# - name: Download & Install oneAPI
+# shell: bash
+# if: steps.cache-sycl.outputs.cache-hit != 'true'
+# run: |
+# scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL
+#
+# - name: Install Level Zero SDK
+# shell: pwsh
+# run: |
+# Invoke-WebRequest -Uri "${{ env.LEVEL_ZERO_SDK_URL }}" -OutFile "level-zero-win-sdk.zip"
+# Expand-Archive -Path "level-zero-win-sdk.zip" -DestinationPath "C:/level-zero-sdk" -Force
+# "LEVEL_ZERO_V1_SDK_PATH=C:/level-zero-sdk" | Out-File -FilePath $env:GITHUB_ENV -Append
+#
+# - name: ccache
+# uses: ggml-org/ccache-action@v1.2.21
+# with:
+# key: windows-latest-sycl
+# variant: ccache
+# evict-old-files: 1d
+# save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+#
+# # TODO: add ssl support ; we will also need to modify win-build-sycl.bat to accept user-specified args
+#
+# - name: Build
+# id: cmake_build
+# run: examples/sycl/win-build-sycl.bat
name: llama-bin-macos-${{ matrix.build }}.tar.gz
ubuntu-cpu:
-
strategy:
matrix:
include:
id: cache-openvino
with:
path: ./openvino_toolkit
- key: openvino-toolkit-v${{ env.OPENVINO_VERSION_FULL }}-${{ runner.os }}
+ key: cache-gha-openvino-toolkit-v${{ env.OPENVINO_VERSION_FULL }}-${{ runner.os }}
- name: Setup OpenVINO Toolkit
if: steps.cache-openvino.outputs.cache-hit != 'true'
path: cudart-llama-bin-win-cuda-${{ matrix.cuda }}-x64.zip
name: cudart-llama-bin-win-cuda-${{ matrix.cuda }}-x64.zip
- windows-sycl:
-
- runs-on: windows-2022
-
- defaults:
- run:
- shell: bash
-
- env:
- WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b60765d1-2b85-4e85-86b6-cb0e9563a699/intel-deep-learning-essentials-2025.3.3.18_offline.exe
- WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel
- LEVEL_ZERO_SDK_URL: https://github.com/oneapi-src/level-zero/releases/download/v1.28.2/level-zero-win-sdk-1.28.2.zip
- ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI"
- ONEAPI_INSTALLER_VERSION: "2025.3.3"
-
- steps:
- - name: Clone
- id: checkout
- uses: actions/checkout@v6
-
- - name: Use oneAPI Installation Cache
- uses: actions/cache@v5
- id: cache-sycl
- with:
- path: ${{ env.ONEAPI_ROOT }}
- key: oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
-
- - name: Download & Install oneAPI
- shell: bash
- if: steps.cache-sycl.outputs.cache-hit != 'true'
- run: |
- scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL
-
- - name: Install Level Zero SDK
- shell: pwsh
- run: |
- Invoke-WebRequest -Uri "${{ env.LEVEL_ZERO_SDK_URL }}" -OutFile "level-zero-win-sdk.zip"
- Expand-Archive -Path "level-zero-win-sdk.zip" -DestinationPath "C:/level-zero-sdk" -Force
- "LEVEL_ZERO_V1_SDK_PATH=C:/level-zero-sdk" | Out-File -FilePath $env:GITHUB_ENV -Append
-
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: "24"
- cache: "npm"
- cache-dependency-path: "tools/ui/package-lock.json"
-
- - name: ccache
- uses: ggml-org/ccache-action@v1.2.21
- with:
- key: windows-latest-sycl
- variant: ccache
- evict-old-files: 1d
-
- - name: Build
- id: cmake_build
- shell: cmd
- run: |
- call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
- cmake -G "Ninja" -B build ^
- -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx ^
- -DCMAKE_BUILD_TYPE=Release ^
- -DGGML_BACKEND_DL=ON -DBUILD_SHARED_LIBS=ON ^
- -DGGML_CPU=OFF -DGGML_SYCL=ON ^
- -DLLAMA_BUILD_BORINGSSL=ON
- cmake --build build --target ggml-sycl -j
-
- - name: Build the release package
- id: pack_artifacts
- run: |
- echo "cp oneAPI running time dll files in ${{ env.ONEAPI_ROOT }} to ./build/bin"
-
- cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_sycl_blas.5.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_core.2.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_tbb_thread.2.dll" ./build/bin
-
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_level_zero.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_level_zero_v2.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_opencl.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_loader.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_win_proxy_loader.dll" ./build/bin
- ZE_LOADER_DLL=$(find "${{ env.ONEAPI_ROOT }}" "$LEVEL_ZERO_V1_SDK_PATH" -iname ze_loader.dll -print -quit 2>/dev/null || true)
- if [ -n "$ZE_LOADER_DLL" ]; then
- echo "Using Level Zero loader: $ZE_LOADER_DLL"
- cp "$ZE_LOADER_DLL" ./build/bin
- else
- echo "Level Zero loader DLL not found in oneAPI or SDK; relying on system driver/runtime"
- fi
-
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/sycl8.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/svml_dispmd.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libmmd.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libiomp5md.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/sycl-ls.exe" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libsycl-fallback-bfloat16.spv" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libsycl-native-bfloat16.spv" ./build/bin
-
- cp "${{ env.ONEAPI_ROOT }}/dnnl/latest/bin/dnnl.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/tbb/latest/bin/tbb12.dll" ./build/bin
-
- cp "${{ env.ONEAPI_ROOT }}/tcm/latest/bin/tcm.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/tcm/latest/bin/libhwloc-15.dll" ./build/bin
- cp "${{ env.ONEAPI_ROOT }}/umf/latest/bin/umf.dll" ./build/bin
-
- echo "cp oneAPI running time dll files to ./build/bin done"
- 7z a -snl llama-bin-win-sycl-x64.zip ./build/bin/*
-
- - name: Upload the release package
- uses: actions/upload-artifact@v6
- with:
- path: llama-bin-win-sycl-x64.zip
- name: llama-bin-win-sycl-x64.zip
-
- ubuntu-24-sycl:
-
- strategy:
- matrix:
- build: [fp32]
- include:
- - build: fp32
- fp16: OFF
-
- runs-on: ubuntu-24.04
-
- env:
- ONEAPI_ROOT: /opt/intel/oneapi/
- ONEAPI_INSTALLER_VERSION: "2025.3.3"
- LEVEL_ZERO_VERSION: "1.28.2"
- LEVEL_ZERO_UBUNTU_VERSION: "u24.04"
-
- steps:
- - name: Clone
- id: checkout
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Use oneAPI Installation Cache
- uses: actions/cache@v5
- id: cache-sycl
- with:
- path: ${{ env.ONEAPI_ROOT }}
- key: oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
-
- - name: Download & Install oneAPI
- shell: bash
- if: steps.cache-sycl.outputs.cache-hit != 'true'
- run: |
- cd /tmp
- wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/56f7923a-adb8-43f3-8b02-2b60fcac8cab/intel-deep-learning-essentials-2025.3.3.16_offline.sh -O intel-deep-learning-essentials_offline.sh
- sudo bash intel-deep-learning-essentials_offline.sh -s -a --silent --eula accept
-
- - name: Install Level Zero SDK
- shell: bash
- run: |
- cd /tmp
- wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero.deb
- wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero-devel_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero-devel.deb
- sudo apt-get install -y ./level-zero.deb ./level-zero-devel.deb
-
- - name: Setup Node.js
- uses: actions/setup-node@v6
- with:
- node-version: "24"
- cache: "npm"
- cache-dependency-path: "tools/ui/package-lock.json"
-
- - name: ccache
- uses: ggml-org/ccache-action@v1.2.21
- with:
- key: ubuntu-24-sycl-${{ matrix.build }}
- evict-old-files: 1d
- save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
-
- - name: Build
- id: cmake_build
- run: |
- source /opt/intel/oneapi/setvars.sh
- cmake -B build \
- -G "Ninja" \
- -DCMAKE_BUILD_TYPE=Release \
- -DGGML_SYCL=ON \
- -DCMAKE_C_COMPILER=icx \
- -DCMAKE_CXX_COMPILER=icpx \
- -DLLAMA_OPENSSL=OFF \
- -DGGML_NATIVE=OFF \
- -DGGML_SYCL_F16=${{ matrix.fp16 }}
- time cmake --build build --config Release -j $(nproc)
-
- - name: Determine tag name
- id: tag
- uses: ./.github/actions/get-tag-name
-
- - name: Pack artifacts
- id: pack_artifacts
- run: |
- cp LICENSE ./build/bin/
- tar -czvf llama-${{ steps.tag.outputs.name }}-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz --transform "s,^\.,llama-${{ steps.tag.outputs.name }}," -C ./build/bin .
-
- - name: Upload artifacts
- uses: actions/upload-artifact@v6
- with:
- path: llama-${{ steps.tag.outputs.name }}-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz
- name: llama-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz
+# TODO: this build is disabled to save Github Actions resources (https://github.com/ggml-org/llama.cpp/pull/23705)
+# in order to enable it again, we have to provision dedicated runners to run it
+# windows-sycl:
+#
+# runs-on: windows-2022
+#
+# defaults:
+# run:
+# shell: bash
+#
+# env:
+# WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b60765d1-2b85-4e85-86b6-cb0e9563a699/intel-deep-learning-essentials-2025.3.3.18_offline.exe
+# WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel
+# LEVEL_ZERO_SDK_URL: https://github.com/oneapi-src/level-zero/releases/download/v1.28.2/level-zero-win-sdk-1.28.2.zip
+# ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI"
+# ONEAPI_INSTALLER_VERSION: "2025.3.3"
+#
+# steps:
+# - name: Clone
+# id: checkout
+# uses: actions/checkout@v6
+#
+# - name: Use oneAPI Installation Cache
+# uses: actions/cache@v5
+# id: cache-sycl
+# with:
+# path: ${{ env.ONEAPI_ROOT }}
+# key: cache-gha-oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
+#
+# - name: Download & Install oneAPI
+# shell: bash
+# if: steps.cache-sycl.outputs.cache-hit != 'true'
+# run: |
+# scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL
+#
+# - name: Install Level Zero SDK
+# shell: pwsh
+# run: |
+# Invoke-WebRequest -Uri "${{ env.LEVEL_ZERO_SDK_URL }}" -OutFile "level-zero-win-sdk.zip"
+# Expand-Archive -Path "level-zero-win-sdk.zip" -DestinationPath "C:/level-zero-sdk" -Force
+# "LEVEL_ZERO_V1_SDK_PATH=C:/level-zero-sdk" | Out-File -FilePath $env:GITHUB_ENV -Append
+#
+# - name: Setup Node.js
+# uses: actions/setup-node@v6
+# with:
+# node-version: "24"
+# cache: "npm"
+# cache-dependency-path: "tools/ui/package-lock.json"
+#
+# - name: ccache
+# uses: ggml-org/ccache-action@v1.2.21
+# with:
+# key: windows-latest-sycl
+# variant: ccache
+# evict-old-files: 1d
+#
+# - name: Build
+# id: cmake_build
+# shell: cmd
+# run: |
+# call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
+# cmake -G "Ninja" -B build ^
+# -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx ^
+# -DCMAKE_BUILD_TYPE=Release ^
+# -DGGML_BACKEND_DL=ON -DBUILD_SHARED_LIBS=ON ^
+# -DGGML_CPU=OFF -DGGML_SYCL=ON ^
+# -DLLAMA_BUILD_BORINGSSL=ON
+# cmake --build build --target ggml-sycl -j
+#
+# - name: Build the release package
+# id: pack_artifacts
+# run: |
+# echo "cp oneAPI running time dll files in ${{ env.ONEAPI_ROOT }} to ./build/bin"
+#
+# cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_sycl_blas.5.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_core.2.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_tbb_thread.2.dll" ./build/bin
+#
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_level_zero.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_level_zero_v2.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_opencl.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_loader.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_win_proxy_loader.dll" ./build/bin
+# ZE_LOADER_DLL=$(find "${{ env.ONEAPI_ROOT }}" "$LEVEL_ZERO_V1_SDK_PATH" -iname ze_loader.dll -print -quit 2>/dev/null || true)
+# if [ -n "$ZE_LOADER_DLL" ]; then
+# echo "Using Level Zero loader: $ZE_LOADER_DLL"
+# cp "$ZE_LOADER_DLL" ./build/bin
+# else
+# echo "Level Zero loader DLL not found in oneAPI or SDK; relying on system driver/runtime"
+# fi
+#
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/sycl8.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/svml_dispmd.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libmmd.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libiomp5md.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/sycl-ls.exe" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libsycl-fallback-bfloat16.spv" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libsycl-native-bfloat16.spv" ./build/bin
+#
+# cp "${{ env.ONEAPI_ROOT }}/dnnl/latest/bin/dnnl.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/tbb/latest/bin/tbb12.dll" ./build/bin
+#
+# cp "${{ env.ONEAPI_ROOT }}/tcm/latest/bin/tcm.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/tcm/latest/bin/libhwloc-15.dll" ./build/bin
+# cp "${{ env.ONEAPI_ROOT }}/umf/latest/bin/umf.dll" ./build/bin
+#
+# echo "cp oneAPI running time dll files to ./build/bin done"
+# 7z a -snl llama-bin-win-sycl-x64.zip ./build/bin/*
+#
+# - name: Upload the release package
+# uses: actions/upload-artifact@v6
+# with:
+# path: llama-bin-win-sycl-x64.zip
+# name: llama-bin-win-sycl-x64.zip
+
+# TODO: this build is disabled to save Github Actions resources (https://github.com/ggml-org/llama.cpp/pull/23705)
+# in order to enable it again, we have to provision dedicated runners to run it
+# ubuntu-24-sycl:
+#
+# strategy:
+# matrix:
+# build: [fp32]
+# include:
+# - build: fp32
+# fp16: OFF
+#
+# runs-on: ubuntu-24.04
+#
+# env:
+# ONEAPI_ROOT: /opt/intel/oneapi/
+# ONEAPI_INSTALLER_VERSION: "2025.3.3"
+# LEVEL_ZERO_VERSION: "1.28.2"
+# LEVEL_ZERO_UBUNTU_VERSION: "u24.04"
+#
+# steps:
+# - name: Clone
+# id: checkout
+# uses: actions/checkout@v6
+# with:
+# fetch-depth: 0
+#
+# - name: Use oneAPI Installation Cache
+# uses: actions/cache@v5
+# id: cache-sycl
+# with:
+# path: ${{ env.ONEAPI_ROOT }}
+# key: cache-gha-oneAPI-${{ env.ONEAPI_INSTALLER_VERSION }}-${{ runner.os }}
+#
+# - name: Download & Install oneAPI
+# shell: bash
+# if: steps.cache-sycl.outputs.cache-hit != 'true'
+# run: |
+# cd /tmp
+# wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/56f7923a-adb8-43f3-8b02-2b60fcac8cab/intel-deep-learning-essentials-2025.3.3.16_offline.sh -O intel-deep-learning-essentials_offline.sh
+# sudo bash intel-deep-learning-essentials_offline.sh -s -a --silent --eula accept
+#
+# - name: Install Level Zero SDK
+# shell: bash
+# run: |
+# cd /tmp
+# wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero.deb
+# wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero-devel_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero-devel.deb
+# sudo apt-get install -y ./level-zero.deb ./level-zero-devel.deb
+#
+# - name: Setup Node.js
+# uses: actions/setup-node@v6
+# with:
+# node-version: "24"
+# cache: "npm"
+# cache-dependency-path: "tools/ui/package-lock.json"
+#
+# - name: ccache
+# uses: ggml-org/ccache-action@v1.2.21
+# with:
+# key: ubuntu-24-sycl-${{ matrix.build }}
+# evict-old-files: 1d
+# save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+#
+# - name: Build
+# id: cmake_build
+# run: |
+# source /opt/intel/oneapi/setvars.sh
+# cmake -B build \
+# -G "Ninja" \
+# -DCMAKE_BUILD_TYPE=Release \
+# -DGGML_SYCL=ON \
+# -DCMAKE_C_COMPILER=icx \
+# -DCMAKE_CXX_COMPILER=icpx \
+# -DLLAMA_OPENSSL=OFF \
+# -DGGML_NATIVE=OFF \
+# -DGGML_SYCL_F16=${{ matrix.fp16 }}
+# time cmake --build build --config Release -j $(nproc)
+#
+# - name: Determine tag name
+# id: tag
+# uses: ./.github/actions/get-tag-name
+#
+# - name: Pack artifacts
+# id: pack_artifacts
+# run: |
+# cp LICENSE ./build/bin/
+# tar -czvf llama-${{ steps.tag.outputs.name }}-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz --transform "s,^\.,llama-${{ steps.tag.outputs.name }}," -C ./build/bin .
+#
+# - name: Upload artifacts
+# uses: actions/upload-artifact@v6
+# with:
+# path: llama-${{ steps.tag.outputs.name }}-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz
+# name: llama-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz
ubuntu-22-rocm:
uses: actions/cache@v5
with:
path: C:\Program Files\AMD\ROCm
- key: rocm-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ runner.os }}
+ key: cache-gha-rocm-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ runner.os }}
- name: ccache
uses: ggml-org/ccache-action@v1.2.21
path: llama-${{ steps.tag.outputs.name }}-xcframework.zip
name: llama-${{ steps.tag.outputs.name }}-xcframework.zip
-
- openEuler-cann:
- strategy:
- matrix:
- include:
- # 910b with aclgraph (both architectures)
- - arch: x86
- chip_type: '910b'
- build: 'Release'
- use_acl_graph: 'on'
- - arch: aarch64
- chip_type: '910b'
- build: 'Release'
- use_acl_graph: 'on'
- # 310p without aclgraph (both architectures)
- - arch: x86
- chip_type: '310p'
- build: 'Release'
- use_acl_graph: 'off'
- - arch: aarch64
- chip_type: '310p'
- build: 'Release'
- use_acl_graph: 'off'
- runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
- steps:
- - name: Checkout
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Free up disk space
- uses: ggml-org/free-disk-space@v1.3.1
- with:
- tool-cache: true
-
- - name: Set container image
- id: cann-image
- run: |
- image="ascendai/cann:${{ matrix.chip_type == '910b' && '8.5.0-910b-openeuler24.03-py3.11' || '8.5.0-310p-openeuler24.03-py3.11' }}"
- echo "image=${image}" >> "${GITHUB_OUTPUT}"
-
- - name: Pull container image
- run: docker pull "${{ steps.cann-image.outputs.image }}"
-
- - name: Build
- env:
- BUILD_TYPE: ${{ matrix.build }}
- SOC_TYPE: ascend${{ matrix.chip_type }}
- USE_ACL_GRAPH: ${{ matrix.use_acl_graph }}
- run: |
- HOST_UID=$(id -u)
- HOST_GID=$(id -g)
-
- docker run --rm \
- -v "${PWD}:/workspace" \
- -w /workspace \
- -e SOC_TYPE=${SOC_TYPE} \
- -e BUILD_TYPE=${BUILD_TYPE} \
- -e USE_ACL_GRAPH=${USE_ACL_GRAPH} \
- "${{ steps.cann-image.outputs.image }}" \
- bash -lc '
- set -e
- yum install -y --setopt=install_weak_deps=False --setopt=tsflags=nodocs git gcc gcc-c++ make cmake openssl-devel
- yum clean all && rm -rf /var/cache/yum
- git config --global --add safe.directory "/workspace"
- export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/$(uname -m)-linux/devlib/:${LD_LIBRARY_PATH}
- cmake -S . -B build \
- -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
- -DGGML_CANN=on \
- -DSOC_TYPE=${SOC_TYPE} \
- -DUSE_ACL_GRAPH=${USE_ACL_GRAPH}
- cmake --build build -j $(nproc)
-
- chown -R '"${HOST_UID}"':'"${HOST_GID}"' /workspace/build
- '
-
- - name: Determine tag name
- id: tag
- uses: ./.github/actions/get-tag-name
-
- - name: Pack artifacts
- run: |
- cp LICENSE ./build/bin/
- tar -czvf llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz --transform "s,^\.,llama-${{ steps.tag.outputs.name }}," -C ./build/bin .
-
- - name: Upload artifacts
- uses: actions/upload-artifact@v6
- with:
- path: llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz
- name: llama-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz
+# TODO: this build is disabled to save Github Actions resources (https://github.com/ggml-org/llama.cpp/pull/23705)
+# in order to enable it again, we have to provision dedicated runners to run it
+# openEuler-cann:
+# strategy:
+# matrix:
+# include:
+# # 910b with aclgraph (both architectures)
+# - arch: x86
+# chip_type: '910b'
+# build: 'Release'
+# use_acl_graph: 'on'
+# - arch: aarch64
+# chip_type: '910b'
+# build: 'Release'
+# use_acl_graph: 'on'
+# # 310p without aclgraph (both architectures)
+# - arch: x86
+# chip_type: '310p'
+# build: 'Release'
+# use_acl_graph: 'off'
+# - arch: aarch64
+# chip_type: '310p'
+# build: 'Release'
+# use_acl_graph: 'off'
+# runs-on: ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
+# steps:
+# - name: Checkout
+# uses: actions/checkout@v6
+# with:
+# fetch-depth: 0
+#
+# - name: Free up disk space
+# uses: ggml-org/free-disk-space@v1.3.1
+# with:
+# tool-cache: true
+#
+# - name: Set container image
+# id: cann-image
+# run: |
+# image="ascendai/cann:${{ matrix.chip_type == '910b' && '8.5.0-910b-openeuler24.03-py3.11' || '8.5.0-310p-openeuler24.03-py3.11' }}"
+# echo "image=${image}" >> "${GITHUB_OUTPUT}"
+#
+# - name: Pull container image
+# run: docker pull "${{ steps.cann-image.outputs.image }}"
+#
+# - name: Build
+# env:
+# BUILD_TYPE: ${{ matrix.build }}
+# SOC_TYPE: ascend${{ matrix.chip_type }}
+# USE_ACL_GRAPH: ${{ matrix.use_acl_graph }}
+# run: |
+# HOST_UID=$(id -u)
+# HOST_GID=$(id -g)
+#
+# docker run --rm \
+# -v "${PWD}:/workspace" \
+# -w /workspace \
+# -e SOC_TYPE=${SOC_TYPE} \
+# -e BUILD_TYPE=${BUILD_TYPE} \
+# -e USE_ACL_GRAPH=${USE_ACL_GRAPH} \
+# "${{ steps.cann-image.outputs.image }}" \
+# bash -lc '
+# set -e
+# yum install -y --setopt=install_weak_deps=False --setopt=tsflags=nodocs git gcc gcc-c++ make cmake openssl-devel
+# yum clean all && rm -rf /var/cache/yum
+# git config --global --add safe.directory "/workspace"
+# export LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/$(uname -m)-linux/devlib/:${LD_LIBRARY_PATH}
+# cmake -S . -B build \
+# -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
+# -DGGML_CANN=on \
+# -DSOC_TYPE=${SOC_TYPE} \
+# -DUSE_ACL_GRAPH=${USE_ACL_GRAPH}
+# cmake --build build -j $(nproc)
+#
+# chown -R '"${HOST_UID}"':'"${HOST_GID}"' /workspace/build
+# '
+#
+# - name: Determine tag name
+# id: tag
+# uses: ./.github/actions/get-tag-name
+#
+# - name: Pack artifacts
+# run: |
+# cp LICENSE ./build/bin/
+# tar -czvf llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz --transform "s,^\.,llama-${{ steps.tag.outputs.name }}," -C ./build/bin .
+#
+# - name: Upload artifacts
+# uses: actions/upload-artifact@v6
+# with:
+# path: llama-${{ steps.tag.outputs.name }}-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz
+# name: llama-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz
ui-build:
uses: ./.github/workflows/ui-build.yml
- windows
- windows-cpu
- windows-cuda
- - windows-sycl
+ #- windows-sycl
- windows-hip
- ubuntu-22-rocm
- ubuntu-cpu
- ubuntu-vulkan
- ubuntu-24-openvino
- - ubuntu-24-sycl
+ #- ubuntu-24-sycl
- android-arm64
- macOS-cpu
- ios-xcode-build
- - openEuler-cann
+ #- openEuler-cann
- ui-build
outputs:
- [Ubuntu arm64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-ubuntu-vulkan-arm64.tar.gz)
- [Ubuntu x64 (ROCm 7.2)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-ubuntu-rocm-7.2-x64.tar.gz)
- [Ubuntu x64 (OpenVINO)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-ubuntu-openvino-${{ needs.ubuntu-24-openvino.outputs.openvino_version }}-x64.tar.gz)
- - [Ubuntu x64 (SYCL FP32)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-ubuntu-sycl-fp32-x64.tar.gz)
+ - Ubuntu x64 (SYCL FP32) [DISABLED](https://github.com/ggml-org/llama.cpp/pull/23705)
**Android:**
- [Android arm64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-android-arm64.tar.gz)
- [Windows x64 (CUDA 12)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-cuda-12.4-x64.zip) - [CUDA 12.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/cudart-llama-bin-win-cuda-12.4-x64.zip)
- [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.1-x64.zip) - [CUDA 13.1 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/cudart-llama-bin-win-cuda-13.1-x64.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 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 (SYCL) [DISABLED](https://github.com/ggml-org/llama.cpp/pull/23705)
- [Windows x64 (HIP)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-hip-radeon-x64.zip)
**openEuler:**
- - [openEuler x86 (310p)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-310p-openEuler-x86.tar.gz)
- - [openEuler x86 (910b, ACL Graph)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-910b-openEuler-x86-aclgraph.tar.gz)
- - [openEuler aarch64 (310p)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-310p-openEuler-aarch64.tar.gz)
- - [openEuler aarch64 (910b, ACL Graph)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-910b-openEuler-aarch64-aclgraph.tar.gz)
+ - [DISABLED](https://github.com/ggml-org/llama.cpp/pull/23705)
+ - openEuler x86 (310p)
+ - openEuler x86 (910b, ACL Graph)
+ - openEuler aarch64 (310p)
+ - openEuler aarch64 (910b, ACL Graph)
**UI:**
- [UI](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-ui.tar.gz)