7676 name : llava-bin-linux-${{ matrix.build }}-x64.so
7777 if-no-files-found : error
7878
79+ compile-musl :
80+ name : Compile (musl)
81+ strategy :
82+ fail-fast : true
83+ matrix :
84+ include :
85+ - build : ' noavx'
86+ defines : ' -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF'
87+ - build : ' avx2'
88+ defines : ' '
89+ - build : ' avx'
90+ defines : ' -DGGML_AVX2=OFF'
91+ - build : ' avx512'
92+ defines : ' -DGGML_AVX512=ON'
93+ runs-on : ubuntu-20.04
94+ container :
95+ image : alpine:latest
96+ steps :
97+ - name : Install dependencies
98+ run : |
99+ apk update && apk add --no-cache \
100+ build-base \
101+ cmake \
102+ git \
103+ linux-headers \
104+ g++
105+ - uses : actions/checkout@v4
106+ with :
107+ repository : ggerganov/llama.cpp
108+ fetch-depth : 0
109+ ref : ' ${{ github.event.inputs.llama_cpp_commit }}'
110+ - name : Build
111+ id : cmake_build_musl
112+ run : |
113+ mkdir build
114+ cd build
115+ cmake .. ${{ env.COMMON_DEFINE }} ${{ matrix.defines }}
116+ cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
117+ ls -R
118+ - uses : actions/upload-artifact@v4
119+ with :
120+ path : ./build/bin/libllama.so
121+ name : llama-bin-musl-${{ matrix.build }}-x64.so
122+ if-no-files-found : error
123+ - uses : actions/upload-artifact@v4
124+ with :
125+ path : ./build/bin/libggml.so
126+ name : ggml-bin-musl-${{ matrix.build }}-x64.so
127+ if-no-files-found : error
128+ - uses : actions/upload-artifact@v4
129+ with :
130+ path : ./build/bin/libggml-base.so
131+ name : ggml-base-bin-musl-${{ matrix.build }}-x64.so
132+ if-no-files-found : error
133+ - uses : actions/upload-artifact@v4
134+ with :
135+ path : ./build/bin/libggml-cpu.so
136+ name : ggml-cpu-bin-musl-${{ matrix.build }}-x64.so
137+ if-no-files-found : error
138+ - name : Upload Llava
139+ uses : actions/upload-artifact@v4
140+ with :
141+ path : ./build/bin/libllava_shared.so
142+ name : llava-bin-musl-${{ matrix.build }}-x64.so
143+ if-no-files-found : error
144+
79145 compile-windows :
80146 name : Compile (Windows)
81147 strategy :
@@ -528,6 +594,7 @@ jobs:
528594 if : ${{ always() }}
529595 needs : [
530596 " compile-linux" ,
597+ " compile-musl" ,
531598 " compile-windows" ,
532599 " compile-vulkan" ,
533600 " compile-cublas" ,
@@ -543,7 +610,7 @@ jobs:
543610 - name : Rearrange Files
544611 run : |
545612 # Make all directories at once
546- mkdir --parents deps/{noavx,avx,avx2,avx512,osx-arm64,osx-x64,osx-x64-rosetta2,cu11.7.1,cu12.2.0,vulkan,android-arm64-v8a,android-x86,android-x86_64}
613+ mkdir --parents deps/{noavx,avx,avx2,avx512,musl-noavx,musl-avx,musl-avx2,musl-avx512, osx-arm64,osx-x64,osx-x64-rosetta2,cu11.7.1,cu12.2.0,vulkan,android-arm64-v8a,android-x86,android-x86_64}
547614
548615 # Linux
549616 cp artifacts/ggml-bin-linux-noavx-x64.so/libggml.so deps/noavx/libggml.so
@@ -570,6 +637,31 @@ jobs:
570637 cp artifacts/llama-bin-linux-avx512-x64.so/libllama.so deps/avx512/libllama.so
571638 cp artifacts/llava-bin-linux-avx512-x64.so/libllava_shared.so deps/avx512/libllava_shared.so
572639
640+ # Musl
641+ cp artifacts/ggml-bin-musl-noavx-x64.so/libggml.so deps/musl-noavx/libggml.so
642+ cp artifacts/ggml-base-bin-musl-noavx-x64.so/libggml-base.so deps/musl-noavx/libggml-base.so
643+ cp artifacts/ggml-cpu-bin-musl-noavx-x64.so/libggml-cpu.so deps/musl-noavx/libggml-cpu.so
644+ cp artifacts/llama-bin-musl-noavx-x64.so/libllama.so deps/musl-noavx/libllama.so
645+ cp artifacts/llava-bin-musl-noavx-x64.so/libllava_shared.so deps/musl-noavx/libllava_shared.so
646+
647+ cp artifacts/ggml-bin-musl-avx-x64.so/libggml.so deps/musl-avx/libggml.so
648+ cp artifacts/ggml-base-bin-musl-avx-x64.so/libggml-base.so deps/musl-avx/libggml-base.so
649+ cp artifacts/ggml-cpu-bin-musl-avx-x64.so/libggml-cpu.so deps/musl-avx/libggml-cpu.so
650+ cp artifacts/llama-bin-musl-avx-x64.so/libllama.so deps/musl-avx/libllama.so
651+ cp artifacts/llava-bin-musl-avx-x64.so/libllava_shared.so deps/musl-avx/libllava_shared.so
652+
653+ cp artifacts/ggml-bin-musl-avx2-x64.so/libggml.so deps/musl-avx2/libggml.so
654+ cp artifacts/ggml-base-bin-musl-avx2-x64.so/libggml-base.so deps/musl-avx2/libggml-base.so
655+ cp artifacts/ggml-cpu-bin-musl-avx2-x64.so/libggml-cpu.so deps/musl-avx2/libggml-cpu.so
656+ cp artifacts/llama-bin-musl-avx2-x64.so/libllama.so deps/musl-avx2/libllama.so
657+ cp artifacts/llava-bin-musl-avx2-x64.so/libllava_shared.so deps/musl-avx2/libllava_shared.so
658+
659+ cp artifacts/ggml-bin-musl-avx512-x64.so/libggml.so deps/musl-avx512/libggml.so
660+ cp artifacts/ggml-base-bin-musl-avx512-x64.so/libggml-base.so deps/musl-avx512/libggml-base.so
661+ cp artifacts/ggml-cpu-bin-musl-avx512-x64.so/libggml-cpu.so deps/musl-avx512/libggml-cpu.so
662+ cp artifacts/llama-bin-musl-avx512-x64.so/libllama.so deps/musl-avx512/libllama.so
663+ cp artifacts/llava-bin-musl-avx512-x64.so/libllava_shared.so deps/musl-avx512/libllava_shared.so
664+
573665 # Windows
574666 cp artifacts/ggml-bin-win-noavx-x64.dll/ggml.dll deps/noavx/ggml.dll
575667 cp artifacts/ggml-base-bin-win-noavx-x64.dll/ggml-base.dll deps/noavx/ggml-base.dll
0 commit comments