@@ -162,12 +162,16 @@ jobs:
162
162
include :
163
163
- build : ' noavx'
164
164
defines : ' -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF'
165
+ arch : ' x64'
165
166
- build : ' avx2'
166
167
defines : ' '
168
+ arch : ' x64'
167
169
- build : ' avx'
168
170
defines : ' -DGGML_AVX2=OFF'
171
+ arch : ' x64'
169
172
- build : ' avx512'
170
173
defines : ' -DGGML_AVX512=ON -DGGML_AVX512_VBMI=ON -DGGML_AVX512_VNNI=ON'
174
+ arch : ' x64'
171
175
runs-on : windows-latest
172
176
steps :
173
177
- uses : actions/checkout@v4
@@ -189,32 +193,90 @@ jobs:
189
193
uses : actions/upload-artifact@v4
190
194
with :
191
195
path : .\build\bin\Release\llama.dll
192
- name : llama-bin-win-${{ matrix.build }}-x64 .dll
196
+ name : llama-bin-win-${{ matrix.build }}-${{ matrix.arch }} .dll
193
197
if-no-files-found : error
194
198
- name : Upload artifacts (ggml)
195
199
uses : actions/upload-artifact@v4
196
200
with :
197
201
path : .\build\bin\Release\ggml.dll
198
- name : ggml-bin-win-${{ matrix.build }}-x64 .dll
202
+ name : ggml-bin-win-${{ matrix.build }}-${{ matrix.arch }} .dll
199
203
if-no-files-found : error
200
204
- name : Upload artifacts (ggml-base)
201
205
uses : actions/upload-artifact@v4
202
206
with :
203
207
path : .\build\bin\Release\ggml-base.dll
204
- name : ggml-base-bin-win-${{ matrix.build }}-x64 .dll
208
+ name : ggml-base-bin-win-${{ matrix.build }}-${{ matrix.arch }} .dll
205
209
if-no-files-found : error
206
210
- name : Upload artifacts (ggml-cpu)
207
211
uses : actions/upload-artifact@v4
208
212
with :
209
213
path : .\build\bin\Release\ggml-cpu.dll
210
- name : ggml-cpu-bin-win-${{ matrix.build }}-x64 .dll
214
+ name : ggml-cpu-bin-win-${{ matrix.build }}-${{ matrix.arch }} .dll
211
215
if-no-files-found : error
212
216
213
217
- name : Upload artifacts (llava)
214
218
uses : actions/upload-artifact@v4
215
219
with :
216
220
path : .\build\bin\Release\llava_shared.dll
217
- name : llava-bin-win-${{ matrix.build }}-x64.dll
221
+ name : llava-bin-win-${{ matrix.build }}-${{ matrix.arch }}.dll
222
+ if-no-files-found : error
223
+
224
+ compile-windows-arm64 :
225
+ name : Compile (Windows ARM64)
226
+ strategy :
227
+ fail-fast : true
228
+ matrix :
229
+ include :
230
+ - build : ' arm64'
231
+ defines : ' -DCMAKE_GENERATOR_PLATFORM=ARM64 -DGGML_NATIVE=OFF -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF'
232
+ arch : ' arm64'
233
+ runs-on : windows-latest
234
+ steps :
235
+ - uses : actions/checkout@v4
236
+ with :
237
+ repository : ggerganov/llama.cpp
238
+ fetch-depth : 0
239
+ ref : ' ${{ github.event.inputs.llama_cpp_commit }}'
240
+
241
+ - name : Build
242
+ id : cmake_build
243
+ run : |
244
+ mkdir build
245
+ cd build
246
+ cmake .. ${{ env.COMMON_DEFINE }} ${{ matrix.defines }}
247
+ cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
248
+ tree /f
249
+
250
+ - name : Upload artifacts (llama)
251
+ uses : actions/upload-artifact@v4
252
+ with :
253
+ path : .\build\bin\Release\llama.dll
254
+ name : llama-bin-win-${{ matrix.build }}-${{ matrix.arch }}.dll
255
+ if-no-files-found : error
256
+ - name : Upload artifacts (ggml)
257
+ uses : actions/upload-artifact@v4
258
+ with :
259
+ path : .\build\bin\Release\ggml.dll
260
+ name : ggml-bin-win-${{ matrix.build }}-${{ matrix.arch }}.dll
261
+ if-no-files-found : error
262
+ - name : Upload artifacts (ggml-base)
263
+ uses : actions/upload-artifact@v4
264
+ with :
265
+ path : .\build\bin\Release\ggml-base.dll
266
+ name : ggml-base-bin-win-${{ matrix.build }}-${{ matrix.arch }}.dll
267
+ if-no-files-found : error
268
+ - name : Upload artifacts (ggml-cpu)
269
+ uses : actions/upload-artifact@v4
270
+ with :
271
+ path : .\build\bin\Release\ggml-cpu.dll
272
+ name : ggml-cpu-bin-win-${{ matrix.build }}-${{ matrix.arch }}.dll
273
+ if-no-files-found : error
274
+
275
+ - name : Upload artifacts (llava)
276
+ uses : actions/upload-artifact@v4
277
+ with :
278
+ path : .\build\bin\Release\llava_shared.dll
279
+ name : llava-bin-win-${{ matrix.build }}-${{ matrix.arch }}.dll
218
280
if-no-files-found : error
219
281
220
282
compile-vulkan :
@@ -606,6 +668,7 @@ jobs:
606
668
" compile-linux" ,
607
669
" compile-musl" ,
608
670
" compile-windows" ,
671
+ " compile-windows-arm64" ,
609
672
" compile-vulkan" ,
610
673
" compile-cublas" ,
611
674
" compile-macos" ,
@@ -620,7 +683,7 @@ jobs:
620
683
- name : Rearrange Files
621
684
run : |
622
685
# Make all directories at once
623
- mkdir --parents deps/{noavx,avx,avx2,avx512,linux-arm64,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}
686
+ mkdir --parents deps/{noavx,avx,avx2,avx512,linux-arm64,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,win-arm64 }
624
687
625
688
# Linux
626
689
cp artifacts/ggml-bin-linux-noavx-x64.so/libggml.so deps/noavx/libggml.so
@@ -704,6 +767,13 @@ jobs:
704
767
cp artifacts/llama-bin-win-avx512-x64.dll/llama.dll deps/avx512/llama.dll
705
768
cp artifacts/llava-bin-win-avx512-x64.dll/llava_shared.dll deps/avx512/llava_shared.dll
706
769
770
+ # Windows ARM64
771
+ cp artifacts/ggml-bin-win-arm64-arm64.dll/ggml.dll deps/win-arm64/ggml.dll
772
+ cp artifacts/ggml-base-bin-win-arm64-arm64.dll/ggml-base.dll deps/win-arm64/ggml-base.dll
773
+ cp artifacts/ggml-cpu-bin-win-arm64-arm64.dll/ggml-cpu.dll deps/win-arm64/ggml-cpu.dll
774
+ cp artifacts/llama-bin-win-arm64-arm64.dll/llama.dll deps/win-arm64/llama.dll
775
+ cp artifacts/llava-bin-win-arm64-arm64.dll/llava_shared.dll deps/win-arm64/llava_shared.dll
776
+
707
777
# MacOS
708
778
cp artifacts/ggml-bin-osx-arm64.dylib/libggml.dylib deps/osx-arm64/libggml.dylib
709
779
cp artifacts/ggml-base-bin-osx-arm64.dylib/libggml-base.dylib deps/osx-arm64/libggml-base.dylib
0 commit comments