devops: kleidiai: provide KleidiAI-Enabled ARM Release Artifact (#21259)
* Unified macOS release setup with strategy-matrix block * Added KleidiAI arm64 macOS release definition Change-Id: I05520889ffc646488a178d06817a17f29274465a Signed-off-by: Martin Klacer <martin.klacer@arm.com>
This commit is contained in:
parent
c5ce4bc227
commit
5c4aae66e1
|
|
@ -36,8 +36,26 @@ env:
|
||||||
CMAKE_ARGS: "-DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=ON -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON"
|
CMAKE_ARGS: "-DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=ON -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
macOS-arm64:
|
macOS-cpu:
|
||||||
runs-on: macos-14
|
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"
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Clone
|
- name: Clone
|
||||||
|
|
@ -49,7 +67,7 @@ jobs:
|
||||||
- name: ccache
|
- name: ccache
|
||||||
uses: ggml-org/ccache-action@v1.2.21
|
uses: ggml-org/ccache-action@v1.2.21
|
||||||
with:
|
with:
|
||||||
key: macOS-latest-arm64
|
key: macOS-latest-${{ matrix.arch }}
|
||||||
evict-old-files: 1d
|
evict-old-files: 1d
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
|
|
@ -57,13 +75,11 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
sysctl -a
|
sysctl -a
|
||||||
cmake -B build \
|
cmake -B build \
|
||||||
|
${{ matrix.defines }} \
|
||||||
-DCMAKE_INSTALL_RPATH='@loader_path' \
|
-DCMAKE_INSTALL_RPATH='@loader_path' \
|
||||||
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
|
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
|
||||||
-DLLAMA_FATAL_WARNINGS=ON \
|
-DLLAMA_FATAL_WARNINGS=ON \
|
||||||
-DLLAMA_BUILD_BORINGSSL=ON \
|
-DLLAMA_BUILD_BORINGSSL=ON \
|
||||||
-DGGML_METAL_USE_BF16=ON \
|
|
||||||
-DGGML_METAL_EMBED_LIBRARY=ON \
|
|
||||||
-DGGML_RPC=ON \
|
|
||||||
${{ env.CMAKE_ARGS }}
|
${{ env.CMAKE_ARGS }}
|
||||||
cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
|
cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
|
||||||
|
|
||||||
|
|
@ -75,61 +91,13 @@ jobs:
|
||||||
id: pack_artifacts
|
id: pack_artifacts
|
||||||
run: |
|
run: |
|
||||||
cp LICENSE ./build/bin/
|
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 .
|
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
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v6
|
||||||
with:
|
with:
|
||||||
path: llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.tar.gz
|
path: llama-${{ steps.tag.outputs.name }}-bin-macos-${{ matrix.build }}.tar.gz
|
||||||
name: llama-bin-macos-arm64.tar.gz
|
name: llama-bin-macos-${{ matrix.build }}.tar.gz
|
||||||
|
|
||||||
macOS-x64:
|
|
||||||
runs-on: macos-15-intel
|
|
||||||
|
|
||||||
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-x64
|
|
||||||
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 \
|
|
||||||
-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
|
|
||||||
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-x64.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
|
|
||||||
|
|
||||||
ubuntu-cpu:
|
ubuntu-cpu:
|
||||||
strategy:
|
strategy:
|
||||||
|
|
@ -1003,8 +971,7 @@ jobs:
|
||||||
- ubuntu-cpu
|
- ubuntu-cpu
|
||||||
- ubuntu-vulkan
|
- ubuntu-vulkan
|
||||||
- ubuntu-24-openvino
|
- ubuntu-24-openvino
|
||||||
- macOS-arm64
|
- macOS-cpu
|
||||||
- macOS-x64
|
|
||||||
- ios-xcode-build
|
- ios-xcode-build
|
||||||
- openEuler-cann
|
- openEuler-cann
|
||||||
|
|
||||||
|
|
@ -1079,6 +1046,7 @@ jobs:
|
||||||
|
|
||||||
**macOS/iOS:**
|
**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)](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)
|
- [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)
|
- [iOS XCFramework](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-xcframework.zip)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue