@@ -693,26 +693,28 @@ jobs:
693
693
strategy :
694
694
matrix :
695
695
include :
696
- - build : ' rpc'
696
+ - build : ' rpc-x64 '
697
697
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_RPC=ON -DBUILD_SHARED_LIBS=ON'
698
- - build : ' noavx'
698
+ - build : ' noavx-x64 '
699
699
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_AVX=OFF -DLLAMA_AVX2=OFF -DLLAMA_FMA=OFF -DBUILD_SHARED_LIBS=ON'
700
- - build : ' avx2'
700
+ - build : ' avx2-x64 '
701
701
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=ON'
702
- - build : ' avx'
702
+ - build : ' avx-x64 '
703
703
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_AVX2=OFF -DBUILD_SHARED_LIBS=ON'
704
- - build : ' avx512'
704
+ - build : ' avx512-x64 '
705
705
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_AVX512=ON -DBUILD_SHARED_LIBS=ON'
706
- - build : ' clblast'
706
+ - build : ' clblast-x64 '
707
707
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_CLBLAST=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/clblast"'
708
- - build : ' openblas'
708
+ - build : ' openblas-x64 '
709
709
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"'
710
- - build : ' kompute'
710
+ - build : ' kompute-x64 '
711
711
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_KOMPUTE=ON -DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON -DBUILD_SHARED_LIBS=ON'
712
- - build : ' vulkan'
712
+ - build : ' vulkan-x64 '
713
713
defines : ' -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_VULKAN=ON -DBUILD_SHARED_LIBS=ON'
714
- - build : ' arm64'
715
- defines : ' -A ARM64 -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=ON'
714
+ - build : ' llvm-arm64'
715
+ defines : ' -G Ninja -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=ON'
716
+ - build : ' msvc-arm64'
717
+ defines : ' -G Ninja -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-msvc.cmake -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=ON'
716
718
717
719
steps :
718
720
- name : Clone
@@ -723,21 +725,21 @@ jobs:
723
725
724
726
- name : Clone Kompute submodule
725
727
id : clone_kompute
726
- if : ${{ matrix.build == 'kompute' }}
728
+ if : ${{ matrix.build == 'kompute-x64 ' }}
727
729
run : |
728
730
git submodule update --init kompute
729
731
730
732
- name : Download OpenCL SDK
731
733
id : get_opencl
732
- if : ${{ matrix.build == 'clblast' }}
734
+ if : ${{ matrix.build == 'clblast-x64 ' }}
733
735
run : |
734
736
curl.exe -o $env:RUNNER_TEMP/opencl.zip -L "https://github.com/KhronosGroup/OpenCL-SDK/releases/download/v${env:OPENCL_VERSION}/OpenCL-SDK-v${env:OPENCL_VERSION}-Win-x64.zip"
735
737
mkdir $env:RUNNER_TEMP/opencl
736
738
tar.exe -xvf $env:RUNNER_TEMP/opencl.zip --strip-components=1 -C $env:RUNNER_TEMP/opencl
737
739
738
740
- name : Download CLBlast
739
741
id : get_clblast
740
- if : ${{ matrix.build == 'clblast' }}
742
+ if : ${{ matrix.build == 'clblast-x64 ' }}
741
743
run : |
742
744
curl.exe -o $env:RUNNER_TEMP/clblast.7z -L "https://github.com/CNugteren/CLBlast/releases/download/${env:CLBLAST_VERSION}/CLBlast-${env:CLBLAST_VERSION}-windows-x64.7z"
743
745
curl.exe -o $env:RUNNER_TEMP/CLBlast.LICENSE.txt -L "https://github.com/CNugteren/CLBlast/raw/${env:CLBLAST_VERSION}/LICENSE"
@@ -750,7 +752,7 @@ jobs:
750
752
751
753
- name : Download OpenBLAS
752
754
id : get_openblas
753
- if : ${{ matrix.build == 'openblas' }}
755
+ if : ${{ matrix.build == 'openblas-x64 ' }}
754
756
run : |
755
757
curl.exe -o $env:RUNNER_TEMP/openblas.zip -L "https://github.com/xianyi/OpenBLAS/releases/download/v${env:OPENBLAS_VERSION}/OpenBLAS-${env:OPENBLAS_VERSION}-x64.zip"
756
758
curl.exe -o $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt -L "https://github.com/xianyi/OpenBLAS/raw/v${env:OPENBLAS_VERSION}/LICENSE"
@@ -763,38 +765,41 @@ jobs:
763
765
764
766
- name : Install Vulkan SDK
765
767
id : get_vulkan
766
- if : ${{ matrix.build == 'kompute' || matrix.build == 'vulkan' }}
768
+ if : ${{ matrix.build == 'kompute-x64 ' || matrix.build == 'vulkan-x64 ' }}
767
769
run : |
768
770
curl.exe -o $env:RUNNER_TEMP/VulkanSDK-Installer.exe -L "https://sdk.lunarg.com/sdk/download/${env:VULKAN_VERSION}/windows/VulkanSDK-${env:VULKAN_VERSION}-Installer.exe"
769
771
& "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install
770
772
Add-Content $env:GITHUB_ENV "VULKAN_SDK=C:\VulkanSDK\${env:VULKAN_VERSION}"
771
773
Add-Content $env:GITHUB_PATH "C:\VulkanSDK\${env:VULKAN_VERSION}\bin"
772
774
775
+ - name : Install Ninja
776
+ id : install_ninja
777
+ run : |
778
+ choco install ninja
779
+
773
780
- name : Build
774
781
id : cmake_build
775
782
run : |
776
- mkdir build
777
- cd build
778
- cmake .. ${{ matrix.defines }}
779
- cmake --build . --config Release -j ${env:NUMBER_OF_PROCESSORS}
783
+ cmake -S . -B build ${{ matrix.defines }}
784
+ cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS}
780
785
781
786
- name : Add clblast.dll
782
787
id : add_clblast_dll
783
- if : ${{ matrix.build == 'clblast' }}
788
+ if : ${{ matrix.build == 'clblast-x64 ' }}
784
789
run : |
785
790
cp $env:RUNNER_TEMP/clblast/lib/clblast.dll ./build/bin/Release
786
791
cp $env:RUNNER_TEMP/CLBlast.LICENSE.txt ./build/bin/Release/CLBlast-${env:CLBLAST_VERSION}.txt
787
792
788
793
- name : Add libopenblas.dll
789
794
id : add_libopenblas_dll
790
- if : ${{ matrix.build == 'openblas' }}
795
+ if : ${{ matrix.build == 'openblas-x64 ' }}
791
796
run : |
792
797
cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./build/bin/Release/openblas.dll
793
798
cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./build/bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt
794
799
795
800
- name : Check AVX512F support
796
801
id : check_avx512f
797
- if : ${{ matrix.build == 'avx512' }}
802
+ if : ${{ matrix.build == 'avx512-x64 ' }}
798
803
continue-on-error : true
799
804
run : |
800
805
cd build
@@ -808,14 +813,14 @@ jobs:
808
813
- name : Test
809
814
id : cmake_test
810
815
# not all machines have native AVX-512
811
- if : ${{ matrix.build != 'arm64' && matrix.build != 'clblast' && matrix.build != 'kompute' && matrix.build != 'vulkan' && (matrix.build != 'avx512' || env.HAS_AVX512F == '1') }}
816
+ if : ${{ matrix.build != 'msvc- arm64' && matrix.build != 'llvm-arm64' && matrix.build != ' clblast-x64 ' && matrix.build != 'kompute-x64 ' && matrix.build != 'vulkan-x64 ' && (matrix.build != 'avx512-x64 ' || env.HAS_AVX512F == '1') }}
812
817
run : |
813
818
cd build
814
819
ctest -L main -C Release --verbose --timeout 900
815
820
816
821
- name : Test (Intel SDE)
817
822
id : cmake_test_sde
818
- if : ${{ matrix.build == 'avx512' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation
823
+ if : ${{ matrix.build == 'avx512-x64 ' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation
819
824
run : |
820
825
curl.exe -o $env:RUNNER_TEMP/sde.tar.xz -L "https://downloadmirror.intel.com/813591/sde-external-${env:SDE_VERSION}-win.tar.xz"
821
826
# for some weird reason windows tar doesn't like sde tar.xz
@@ -843,14 +848,14 @@ jobs:
843
848
if : ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
844
849
run : |
845
850
Copy-Item LICENSE .\build\bin\Release\llama.cpp.txt
846
- 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-x64 .zip .\build\bin\Release\*
851
+ 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip .\build\bin\Release\*
847
852
848
853
- name : Upload artifacts
849
854
if : ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
850
855
uses : actions/upload-artifact@v4
851
856
with :
852
- path : llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-x64 .zip
853
- name : llama-bin-win-${{ matrix.build }}-x64 .zip
857
+ path : llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip
858
+ name : llama-bin-win-${{ matrix.build }}.zip
854
859
855
860
windows-latest-cmake-cuda :
856
861
runs-on : windows-latest
0 commit comments