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 :
@@ -519,6 +585,7 @@ jobs:
519585 if : ${{ always() }}
520586 needs : [
521587 " compile-linux" ,
588+ " compile-musl" ,
522589 " compile-windows" ,
523590 " compile-vulkan" ,
524591 " compile-cublas" ,
@@ -534,7 +601,7 @@ jobs:
534601 - name : Rearrange Files
535602 run : |
536603 # Make all directories at once
537- 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}
604+ 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}
538605
539606 # Linux
540607 cp artifacts/ggml-bin-linux-noavx-x64.so/libggml.so deps/noavx/libggml.so
@@ -561,6 +628,31 @@ jobs:
561628 cp artifacts/llama-bin-linux-avx512-x64.so/libllama.so deps/avx512/libllama.so
562629 cp artifacts/llava-bin-linux-avx512-x64.so/libllava_shared.so deps/avx512/libllava_shared.so
563630
631+ # Musl
632+ cp artifacts/ggml-bin-musl-noavx-x64.so/libggml.so deps/musl-noavx/libggml.so
633+ cp artifacts/ggml-base-bin-musl-noavx-x64.so/libggml-base.so deps/musl-noavx/libggml-base.so
634+ cp artifacts/ggml-cpu-bin-musl-noavx-x64.so/libggml-cpu.so deps/musl-noavx/libggml-cpu.so
635+ cp artifacts/llama-bin-musl-noavx-x64.so/libllama.so deps/musl-noavx/libllama.so
636+ cp artifacts/llava-bin-musl-noavx-x64.so/libllava_shared.so deps/musl-noavx/libllava_shared.so
637+
638+ cp artifacts/ggml-bin-musl-avx-x64.so/libggml.so deps/musl-avx/libggml.so
639+ cp artifacts/ggml-base-bin-musl-avx-x64.so/libggml-base.so deps/musl-avx/libggml-base.so
640+ cp artifacts/ggml-cpu-bin-musl-avx-x64.so/libggml-cpu.so deps/musl-avx/libggml-cpu.so
641+ cp artifacts/llama-bin-musl-avx-x64.so/libllama.so deps/musl-avx/libllama.so
642+ cp artifacts/llava-bin-musl-avx-x64.so/libllava_shared.so deps/musl-avx/libllava_shared.so
643+
644+ cp artifacts/ggml-bin-musl-avx2-x64.so/libggml.so deps/musl-avx2/libggml.so
645+ cp artifacts/ggml-base-bin-musl-avx2-x64.so/libggml-base.so deps/musl-avx2/libggml-base.so
646+ cp artifacts/ggml-cpu-bin-musl-avx2-x64.so/libggml-cpu.so deps/musl-avx2/libggml-cpu.so
647+ cp artifacts/llama-bin-musl-avx2-x64.so/libllama.so deps/musl-avx2/libllama.so
648+ cp artifacts/llava-bin-musl-avx2-x64.so/libllava_shared.so deps/musl-avx2/libllava_shared.so
649+
650+ cp artifacts/ggml-bin-musl-avx512-x64.so/libggml.so deps/musl-avx512/libggml.so
651+ cp artifacts/ggml-base-bin-musl-avx512-x64.so/libggml-base.so deps/musl-avx512/libggml-base.so
652+ cp artifacts/ggml-cpu-bin-musl-avx512-x64.so/libggml-cpu.so deps/musl-avx512/libggml-cpu.so
653+ cp artifacts/llama-bin-musl-avx512-x64.so/libllama.so deps/musl-avx512/libllama.so
654+ cp artifacts/llava-bin-musl-avx512-x64.so/libllava_shared.so deps/musl-avx512/libllava_shared.so
655+
564656 # Windows
565657 cp artifacts/ggml-bin-win-noavx-x64.dll/ggml.dll deps/noavx/ggml.dll
566658 cp artifacts/ggml-base-bin-win-noavx-x64.dll/ggml-base.dll deps/noavx/ggml-base.dll
0 commit comments