Update MacOS Binaries (#143)

* Restore macOS pipelines
* Generate Metal binaries.
This commit is contained in:
jlsantiago 2023-09-03 16:15:40 +02:00 committed by GitHub
parent b1f33fa20e
commit 5a119c4ee1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 24 deletions

View File

@ -126,37 +126,40 @@ jobs:
compile-macos: compile-macos:
if: ${{ github.event.inputs.macos }} if: ${{ github.event.inputs.macos }}
name: Compile (MacOS) name: Compile (MacOS)
runs-on: macos-latest
strategy: strategy:
fail-fast: true fail-fast: true
matrix: matrix:
arch: [ include:
"arm64" - build: 'cpu'
] defines: '-DLLAMA_BUILD_TESTS=OFF -DLLAMA_METAL=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_SERVER=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_OSX_ARCHITECTURES=arm64'
- build: 'metal'
defines: '-DLLAMA_BUILD_TESTS=OFF -DLLAMA_METAL=ON -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_SERVER=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_OSX_ARCHITECTURES=arm64'
runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
repository: ggerganov/llama.cpp repository: ggerganov/llama.cpp
- name: Dependencies - name: Dependencies
continue-on-error: true continue-on-error: true
run: | run: |
brew update brew update
- name: Build - name: Build
id: cmake_build id: cmake_build
run: | run: |
mkdir build mkdir build
cd build cd build
cmake -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_SERVER=OFF -DLLAMA_AVX2=OFF -DLLAMA_FMA=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} .. cmake .. ${{ matrix.defines }}
cmake --build . --config Release cmake --build . --config Release
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
path: ./build/libllama.dylib path: ./build/libllama.dylib
name: llama-bin-macos-${{ matrix.arch }}.dylib name: llama-bin-macos-${{ matrix.build }}.dylib
- name: Upload Metal
uses: actions/upload-artifact@v3
with:
path: ./build/bin/ggml-metal.metal
name: ggml-metal.metal
build-deps: build-deps:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -172,7 +175,6 @@ jobs:
- uses: actions/download-artifact@v3 - uses: actions/download-artifact@v3
with: with:
path: artifacts path: artifacts
- name: Rearrange Files - name: Rearrange Files
run: | run: |
ls -R ls -R
@ -188,17 +190,19 @@ jobs:
cp artifacts/llama-bin-linux-avx512-x64.so/libllama.so deps/avx512/libllama.so cp artifacts/llama-bin-linux-avx512-x64.so/libllama.so deps/avx512/libllama.so
cp artifacts/llama-bin-win-noavx-x64.dll/llama.dll deps/libllama.dll cp artifacts/llama-bin-win-noavx-x64.dll/llama.dll deps/libllama.dll
mkdir deps/win/avx
cp artifacts/llama-bin-win-avx-x64.dll/llama.dll deps/avx/libllama.dll cp artifacts/llama-bin-win-avx-x64.dll/llama.dll deps/avx/libllama.dll
mkdir deps/win/avx2
cp artifacts/llama-bin-win-avx2-x64.dll/llama.dll deps/avx2/libllama.dll cp artifacts/llama-bin-win-avx2-x64.dll/llama.dll deps/avx2/libllama.dll
mkdir deps/win/avx512
cp artifacts/llama-bin-win-avx512-x64.dll/llama.dll deps/avx512/libllama.dll cp artifacts/llama-bin-win-avx512-x64.dll/llama.dll deps/avx512/libllama.dll
- name: Rearrange MacOS files - name: Rearrange MacOS files
if: ${{ github.event.inputs.macos }} if: ${{ github.event.inputs.macos }}
run: | run: |
cp artifacts/llama-bin-macos-arm64.dylib/libllama.dylib deps/libllama.dylib mkdir deps/macos-cpu
cp artifacts/llama-bin-macos-cpu.dylib/libllama.dylib deps/macos-cpu/libllama.dylib
mkdir deps/macos-metal
cp artifacts/llama-bin-macos-metal.dylib/libllama.dylib deps/macos-metal/libllama.dylib
cp artifacts/ggml-metal.metal/ggml-metal.metal deps/macos-metal/ggml-metal.metal
- name: Rearrange CUDA files - name: Rearrange CUDA files
if: ${{ github.event.inputs.cublas }} if: ${{ github.event.inputs.cublas }}

View File

@ -20,12 +20,12 @@ jobs:
- build: linux-release - build: linux-release
os: ubuntu-latest os: ubuntu-latest
config: release config: release
# - build: macos-debug # - build: macos-debug
# os: macos-latest # os: macos-latest
# config: debug # config: debug
# - build: macos-release # - build: macos-release
# os: macos-latest # os: macos-latest
# config: release # config: release
- build: windows-debug - build: windows-debug
os: windows-2019 os: windows-2019
config: debug config: debug
@ -33,8 +33,8 @@ jobs:
os: windows-2019 os: windows-2019
config: release config: release
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- uses: actions/setup-dotnet@v1 - uses: actions/setup-dotnet@v3
with: with:
dotnet-version: | dotnet-version: |
6.0.x 6.0.x