CMAKE_ARGS: "-DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=ON -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON"
jobs:
- macOS-arm64:
- runs-on: macos-14
-
- steps:
- - name: Clone
- id: checkout
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: ccache
- uses: ggml-org/ccache-action@v1.2.21
- with:
- key: macOS-latest-arm64
- evict-old-files: 1d
-
- - name: Build
- id: cmake_build
- run: |
- sysctl -a
- cmake -B build \
- -DCMAKE_INSTALL_RPATH='@loader_path' \
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
- -DLLAMA_FATAL_WARNINGS=ON \
- -DLLAMA_BUILD_BORINGSSL=ON \
- -DGGML_METAL_USE_BF16=ON \
- -DGGML_METAL_EMBED_LIBRARY=ON \
- -DGGML_RPC=ON \
- ${{ env.CMAKE_ARGS }}
- cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
-
- - 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-macos-arm64.tar.gz -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-macos-arm64.tar.gz
- name: llama-bin-macos-arm64.tar.gz
+ macOS-cpu:
+ strategy:
+ matrix:
+ include:
+ - build: 'arm64'
+ arch: 'arm64'
+ os: macos-14
+ defines: "-DGGML_METAL_USE_BF16=ON -DGGML_METAL_EMBED_LIBRARY=ON"
+ - build: 'arm64-kleidiai'
+ arch: 'arm64'
+ os: macos-14
+ defines: "-DGGML_METAL_USE_BF16=ON -DGGML_METAL_EMBED_LIBRARY=ON -DGGML_CPU_KLEIDIAI=ON"
+ - build: 'x64'
+ arch: 'x64'
+ os: macos-15-intel
+ # Metal is disabled on x64 due to intermittent failures with Github runners not having a GPU:
+ # https://github.com/ggml-org/llama.cpp/actions/runs/8635935781/job/23674807267#step:5:2313
+ defines: "-DGGML_METAL=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=13.3"
- macOS-x64:
- runs-on: macos-15-intel
+ runs-on: ${{ matrix.os }}
steps:
- name: Clone
- name: ccache
uses: ggml-org/ccache-action@v1.2.21
with:
- key: macOS-latest-x64
+ key: macOS-latest-${{ matrix.arch }}
evict-old-files: 1d
- name: Build
id: cmake_build
run: |
sysctl -a
- # Metal is disabled due to intermittent failures with Github runners not having a GPU:
- # https://github.com/ggml-org/llama.cpp/actions/runs/8635935781/job/23674807267#step:5:2313
cmake -B build \
+ ${{ matrix.defines }} \
-DCMAKE_INSTALL_RPATH='@loader_path' \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-DLLAMA_FATAL_WARNINGS=ON \
-DLLAMA_BUILD_BORINGSSL=ON \
- -DGGML_METAL=OFF \
- -DGGML_RPC=ON \
- -DCMAKE_OSX_DEPLOYMENT_TARGET=13.3
+ ${{ env.CMAKE_ARGS }}
cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
- name: Determine tag name
id: pack_artifacts
run: |
cp LICENSE ./build/bin/
- tar -czvf llama-${{ steps.tag.outputs.name }}-bin-macos-x64.tar.gz -s ",./,llama-${{ steps.tag.outputs.name }}/," -C ./build/bin .
+ tar -czvf llama-${{ steps.tag.outputs.name }}-bin-macos-${{ matrix.build }}.tar.gz -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-macos-x64.tar.gz
- name: llama-bin-macos-x64.tar.gz
+ path: llama-${{ steps.tag.outputs.name }}-bin-macos-${{ matrix.build }}.tar.gz
+ name: llama-bin-macos-${{ matrix.build }}.tar.gz
ubuntu-cpu:
strategy:
- ubuntu-cpu
- ubuntu-vulkan
- ubuntu-24-openvino
- - macOS-arm64
- - macOS-x64
+ - macOS-cpu
- ios-xcode-build
- openEuler-cann
**macOS/iOS:**
- [macOS Apple Silicon (arm64)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.tar.gz)
+ - [macOS Apple Silicon (arm64, KleidiAI enabled)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-macos-arm64-kleidiai.tar.gz)
- [macOS Intel (x64)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-macos-x64.tar.gz)
- [iOS XCFramework](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-xcframework.zip)