@@ -28,13 +28,25 @@ jobs:
28
28
include :
29
29
- build : ' noavx'
30
30
defines : ' -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF'
31
+ os : ubuntu-24.04
32
+ arch : x64
31
33
- build : ' avx2'
32
34
defines : ' '
35
+ os : ubuntu-24.04
36
+ arch : x64
33
37
- build : ' avx'
34
38
defines : ' -DGGML_AVX2=OFF'
39
+ os : ubuntu-24.04
40
+ arch : x64
35
41
- build : ' avx512'
36
42
defines : ' -DGGML_AVX512=ON'
37
- runs-on : ubuntu-24.04
43
+ os : ubuntu-24.04
44
+ arch : x64
45
+ - build : ' aarch64'
46
+ defines : ' -DGGML_NATIVE=OFF -DGGML_CPU_AARCH64=ON -DGGML_CPU_ARM_ARCH=armv8-a'
47
+ os : ubuntu-24.04-arm
48
+ arch : arm64
49
+ runs-on : ${{ matrix.os }}
38
50
steps :
39
51
- uses : actions/checkout@v4
40
52
with :
@@ -52,28 +64,28 @@ jobs:
52
64
- uses : actions/upload-artifact@v4
53
65
with :
54
66
path : ./build/bin/libllama.so
55
- name : llama-bin-linux-${{ matrix.build }}-x64 .so
67
+ name : llama-bin-linux-${{ matrix.build }}-${{ matrix.arch }} .so
56
68
if-no-files-found : error
57
69
- uses : actions/upload-artifact@v4
58
70
with :
59
71
path : ./build/bin/libggml.so
60
- name : ggml-bin-linux-${{ matrix.build }}-x64 .so
72
+ name : ggml-bin-linux-${{ matrix.build }}-${{ matrix.arch }} .so
61
73
if-no-files-found : error
62
74
- uses : actions/upload-artifact@v4
63
75
with :
64
76
path : ./build/bin/libggml-base.so
65
- name : ggml-base-bin-linux-${{ matrix.build }}-x64 .so
77
+ name : ggml-base-bin-linux-${{ matrix.build }}-${{ matrix.arch }} .so
66
78
if-no-files-found : error
67
79
- uses : actions/upload-artifact@v4
68
80
with :
69
81
path : ./build/bin/libggml-cpu.so
70
- name : ggml-cpu-bin-linux-${{ matrix.build }}-x64 .so
82
+ name : ggml-cpu-bin-linux-${{ matrix.build }}-${{ matrix.arch }} .so
71
83
if-no-files-found : error
72
84
- name : Upload Llava
73
85
uses : actions/upload-artifact@v4
74
86
with :
75
87
path : ./build/bin/libllava_shared.so
76
- name : llava-bin-linux-${{ matrix.build }}-x64 .so
88
+ name : llava-bin-linux-${{ matrix.build }}-${{ matrix.arch }} .so
77
89
if-no-files-found : error
78
90
79
91
compile-musl :
@@ -527,19 +539,17 @@ jobs:
527
539
if-no-files-found : error
528
540
529
541
compile-android :
530
- # Disable android build
531
- if : false
532
-
542
+ name : Compile (Android)
533
543
strategy :
534
544
fail-fast : true
535
545
matrix :
536
546
include :
537
547
- build : ' x86'
538
- defines : ' -DANDROID_ABI=x86'
548
+ defines : ' -DANDROID_ABI=x86 -DCMAKE_C_FLAGS=-march=i686 -DCMAKE_CXX_FLAGS=-march=i686 '
539
549
- build : ' x86_64'
540
- defines : ' -DANDROID_ABI=x86_64'
550
+ defines : ' -DANDROID_ABI=x86_64 -DCMAKE_C_FLAGS=-march=x86-64 -DCMAKE_CXX_FLAGS=-march=x86-64 '
541
551
- build : ' arm64-v8a'
542
- defines : ' -DANDROID_ABI=arm64-v8a'
552
+ defines : ' -DANDROID_ABI=arm64-v8a -DCMAKE_C_FLAGS=-march=armv8.7a -DCMAKE_C_FLAGS=-march=armv8.7a '
543
553
runs-on : ubuntu-24.04
544
554
steps :
545
555
- uses : actions/checkout@v4
@@ -555,28 +565,39 @@ jobs:
555
565
- name : Build
556
566
id : cmake_build
557
567
env :
558
- CMAKE_FLAGS : ' -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-23'
568
+ CMAKE_FLAGS : ' -DCMAKE_TOOLCHAIN_FILE=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-23 -DGGML_OPENMP=OFF -DGGML_LLAMAFILE=OFF '
559
569
run : |
560
- mkdir build
561
- cd build
562
- cmake .. ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} ${{ matrix.defines }}
563
- cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
564
- cd ..
565
- ls -R
570
+ # export-lora not supported on 32 bit machines hence breaks x86 build
571
+ sed -i '/add_subdirectory(export-lora)/d' examples/CMakeLists.txt # remove export-lora from examples
572
+ cmake ${{ env.COMMON_DEFINE }} ${{ env.CMAKE_FLAGS }} ${{ matrix.defines }} -B build
573
+ cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS}
566
574
- name : Upload Llama
567
575
uses : actions/upload-artifact@v4
568
576
with :
569
- path : ./build/src /libllama.so
577
+ path : ./build/bin /libllama.so
570
578
name : llama-bin-android-${{ matrix.build }}.so
571
- - uses : actions/upload-artifact@v4
579
+ - name : Upload GGML
580
+ uses : actions/upload-artifact@v4
572
581
with :
573
- path : ./build/ggml/src /libggml.so
582
+ path : ./build/bin /libggml.so
574
583
name : ggml-bin-android-${{ matrix.build }}.so
575
584
if-no-files-found : error
585
+ - name : Upload GGML Base
586
+ uses : actions/upload-artifact@v4
587
+ with :
588
+ path : ./build/bin/libggml-base.so
589
+ name : ggml-base-bin-android-${{ matrix.build }}.so
590
+ if-no-files-found : error
591
+ - name : Upload GGML CPU
592
+ uses : actions/upload-artifact@v4
593
+ with :
594
+ path : ./build/bin/libggml-cpu.so
595
+ name : ggml-cpu-bin-android-${{ matrix.build }}.so
596
+ if-no-files-found : error
576
597
- name : Upload Llava
577
598
uses : actions/upload-artifact@v4
578
599
with :
579
- path : ./build/examples/llava /libllava_shared.so
600
+ path : ./build/bin /libllava_shared.so
580
601
name : llava-bin-android-${{ matrix.build }}.so
581
602
582
603
build-deps :
@@ -601,7 +622,7 @@ jobs:
601
622
- name : Rearrange Files
602
623
run : |
603
624
# Make all directories at once
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}
625
+ 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}
605
626
606
627
# Linux
607
628
cp artifacts/ggml-bin-linux-noavx-x64.so/libggml.so deps/noavx/libggml.so
@@ -628,6 +649,13 @@ jobs:
628
649
cp artifacts/llama-bin-linux-avx512-x64.so/libllama.so deps/avx512/libllama.so
629
650
cp artifacts/llava-bin-linux-avx512-x64.so/libllava_shared.so deps/avx512/libllava_shared.so
630
651
652
+ # Arm64
653
+ cp artifacts/ggml-bin-linux-aarch64-arm64.so/libggml.so deps/linux-arm64/libggml.so
654
+ cp artifacts/ggml-base-bin-linux-aarch64-arm64.so/libggml-base.so deps/linux-arm64/libggml-base.so
655
+ cp artifacts/ggml-cpu-bin-linux-aarch64-arm64.so/libggml-cpu.so deps/linux-arm64/libggml-cpu.so
656
+ cp artifacts/llama-bin-linux-aarch64-arm64.so/libllama.so deps/linux-arm64/libllama.so
657
+ cp artifacts/llava-bin-linux-aarch64-arm64.so/libllava_shared.so deps/linux-arm64/libllava_shared.so
658
+
631
659
# Musl
632
660
cp artifacts/ggml-bin-musl-noavx-x64.so/libggml.so deps/musl-noavx/libggml.so
633
661
cp artifacts/ggml-base-bin-musl-noavx-x64.so/libggml-base.so deps/musl-noavx/libggml-base.so
@@ -703,17 +731,23 @@ jobs:
703
731
cp artifacts/llava-bin-osx-x64-rosetta2.dylib/libllava_shared.dylib deps/osx-x64-rosetta2/libllava_shared.dylib
704
732
705
733
# Android
706
- #cp artifacts/ggml-bin-android-arm64-v8a.so/libggml.so deps/android-arm64-v8a/libggml.so
707
- #cp artifacts/llama-bin-android-arm64-v8a.so/libllama.so deps/android-arm64-v8a/libllama.so
708
- #cp artifacts/llava-bin-android-arm64-v8a.so/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so
709
-
710
- #cp artifacts/ggml-bin-android-x86.so/libggml.so deps/android-x86/libggml.so
711
- #cp artifacts/llama-bin-android-x86.so/libllama.so deps/android-x86/libllama.so
712
- #cp artifacts/llava-bin-android-x86.so/libllava_shared.so deps/android-x86/libllava_shared.so
713
-
714
- #cp artifacts/ggml-bin-android-x86_64.so/libggml.so deps/android-x86_64/libggml.so
715
- #cp artifacts/llama-bin-android-x86_64.so/libllama.so deps/android-x86_64/libllama.so
716
- #cp artifacts/llava-bin-android-x86_64.so/libllava_shared.so deps/android-x86_64/libllava_shared.so
734
+ cp artifacts/ggml-bin-android-arm64-v8a.so/libggml.so deps/android-arm64-v8a/libggml.so
735
+ cp artifacts/ggml-base-bin-android-arm64-v8a.so/libggml-base.so deps/android-arm64-v8a/libggml-base.so
736
+ cp artifacts/ggml-cpu-bin-android-arm64-v8a.so/libggml-cpu.so deps/android-arm64-v8a/libggml-cpu.so
737
+ cp artifacts/llama-bin-android-arm64-v8a.so/libllama.so deps/android-arm64-v8a/libllama.so
738
+ cp artifacts/llava-bin-android-arm64-v8a.so/libllava_shared.so deps/android-arm64-v8a/libllava_shared.so
739
+
740
+ cp artifacts/ggml-bin-android-x86.so/libggml.so deps/android-x86/libggml.so
741
+ cp artifacts/ggml-base-bin-android-x86.so/libggml-base.so deps/android-x86/libggml-base.so
742
+ cp artifacts/ggml-cpu-bin-android-x86.so/libggml-cpu.so deps/android-x86/libggml-cpu.so
743
+ cp artifacts/llama-bin-android-x86.so/libllama.so deps/android-x86/libllama.so
744
+ cp artifacts/llava-bin-android-x86.so/libllava_shared.so deps/android-x86/libllava_shared.so
745
+
746
+ cp artifacts/ggml-bin-android-x86_64.so/libggml.so deps/android-x86_64/libggml.so
747
+ cp artifacts/ggml-base-bin-android-x86_64.so/libggml-base.so deps/android-x86_64/libggml-base.so
748
+ cp artifacts/ggml-cpu-bin-android-x86_64.so/libggml-cpu.so deps/android-x86_64/libggml-cpu.so
749
+ cp artifacts/llama-bin-android-x86_64.so/libllama.so deps/android-x86_64/libllama.so
750
+ cp artifacts/llava-bin-android-x86_64.so/libllava_shared.so deps/android-x86_64/libllava_shared.so
717
751
718
752
# Windows CUDA
719
753
cp artifacts/ggml-bin-win-cublas-cu11.7.1-x64.dll/ggml.dll deps/cu11.7.1/ggml.dll
0 commit comments