strategy:
matrix:
include:
- - build: 'cpu-x64 (static)'
+ - build: 'x64-cpu-static'
arch: 'x64'
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DBUILD_SHARED_LIBS=OFF'
- - build: 'openblas-x64'
+ - build: 'x64-openblas'
arch: 'x64'
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"'
- - build: 'vulkan-x64'
+ - build: 'x64-vulkan'
arch: 'x64'
- defines: '-DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_VULKAN=ON'
- - build: 'llvm-arm64'
+ defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-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_VULKAN=ON'
+ - build: 'arm64'
arch: 'arm64'
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON'
- name: Download OpenBLAS
id: get_openblas
- if: ${{ matrix.build == 'openblas-x64' }}
+ if: ${{ matrix.build == 'x64-openblas' }}
run: |
curl.exe -o $env:RUNNER_TEMP/openblas.zip -L "https://github.com/xianyi/OpenBLAS/releases/download/v${env:OPENBLAS_VERSION}/OpenBLAS-${env:OPENBLAS_VERSION}-x64.zip"
curl.exe -o $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt -L "https://github.com/xianyi/OpenBLAS/raw/v${env:OPENBLAS_VERSION}/LICENSE"
- name: Install Vulkan SDK
id: get_vulkan
- if: ${{ matrix.build == 'vulkan-x64' }}
+ if: ${{ matrix.build == 'x64-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
- name: Add libopenblas.dll
id: add_libopenblas_dll
- if: ${{ matrix.build == 'openblas-x64' }}
+ if: ${{ matrix.build == 'x64-openblas' }}
run: |
cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./build/bin/Release/openblas.dll
cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./build/bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt
cancel-in-progress: true
jobs:
- server:
+ ubuntu:
runs-on: ubuntu-latest
- name: server (${{ matrix.wf_name }})
+ name: ubuntu (${{ matrix.wf_name }})
strategy:
matrix:
build_type: [Release]
export ${{ matrix.extra_args }}
SLOW_TESTS=1 pytest -v -x
- server-windows:
- runs-on: windows-2022
+ windows:
+ runs-on: windows-2025
steps:
- name: Clone
- name: Build
id: cmake_build
+ shell: cmd
run: |
- cmake -B build -DLLAMA_BUILD_BORINGSSL=ON -DGGML_SCHED_NO_REALLOC=ON
- cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} --target llama-server
+ cmake -B build -G "Ninja Multi-Config" ^
+ -DCMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake ^
+ -DCMAKE_BUILD_TYPE=Release ^
+ -DLLAMA_BUILD_BORINGSSL=ON ^
+ -DGGML_SCHED_NO_REALLOC=ON
+ set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1
+ cmake --build build --config Release -j %NINJA_JOBS% --target llama-server
- name: Python setup
id: setup_python