Skip to content

Commit 6ae7a92

Browse files
committed
llama : build windows releases with dl backends
1 parent 3e168be commit 6ae7a92

File tree

4 files changed

+30
-58
lines changed

4 files changed

+30
-58
lines changed

.github/workflows/build.yml

Lines changed: 26 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -768,7 +768,7 @@ jobs:
768768
uses: hendrikmuhs/[email protected]
769769
with:
770770
key: windows-msys2
771-
variant: sccache
771+
variant: ccache
772772
evict-old-files: 1d
773773

774774
- name: Setup ${{ matrix.sys }}
@@ -811,26 +811,18 @@ jobs:
811811
strategy:
812812
matrix:
813813
include:
814-
- build: 'noavx-x64'
815-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF'
816-
- build: 'avx2-x64'
817-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON'
818-
- build: 'avx-x64'
819-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX2=OFF'
820-
- build: 'avx512-x64'
821-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX512=ON'
814+
- build: 'cpu-x64'
815+
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF'
822816
- build: 'openblas-x64'
823-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"'
824-
- build: 'kompute-x64'
825-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_KOMPUTE=ON -DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON'
817+
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"'
826818
- build: 'vulkan-x64'
827-
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_VULKAN=ON'
819+
defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_VULKAN=ON'
828820
- build: 'llvm-arm64'
829821
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON'
830-
- build: 'msvc-arm64'
831-
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-msvc.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON'
832822
- build: 'llvm-arm64-opencl-adreno'
833823
defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/opencl-arm64-release" -DGGML_OPENCL=ON -DGGML_OPENCL_USE_ADRENO_KERNELS=ON'
824+
# - build: 'kompute-x64'
825+
# defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/x64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DGGML_OPENMP=OFF -DGGML_KOMPUTE=ON -DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON'
834826

835827
steps:
836828
- name: Clone
@@ -843,7 +835,7 @@ jobs:
843835
uses: hendrikmuhs/[email protected]
844836
with:
845837
key: windows-latest-cmake-${{ matrix.build }}
846-
variant: sccache
838+
variant: ccache
847839
evict-old-files: 1d
848840

849841
- name: Clone Kompute submodule
@@ -919,39 +911,26 @@ jobs:
919911
cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./build/bin/Release/openblas.dll
920912
cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./build/bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt
921913
922-
- name: Check AVX512F support
923-
id: check_avx512f
924-
if: ${{ matrix.build == 'avx512-x64' }}
925-
continue-on-error: true
926-
run: |
927-
cd build
928-
$vcdir = $(vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath)
929-
$msvc = $(join-path $vcdir $('VC\Tools\MSVC\'+$(gc -raw $(join-path $vcdir 'VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt')).Trim()))
930-
$cl = $(join-path $msvc 'bin\Hostx64\x64\cl.exe')
931-
echo 'int main(void){unsigned int a[4];__cpuid(a,7);return !(a[1]&65536);}' >> avx512f.c
932-
& $cl /O2 /GS- /kernel avx512f.c /link /nodefaultlib /entry:main
933-
.\avx512f.exe && echo "AVX512F: YES" && ( echo HAS_AVX512F=1 >> $env:GITHUB_ENV ) || echo "AVX512F: NO"
934-
935914
- name: Test
936915
id: cmake_test
937-
# not all machines have native AVX-512
938-
if: ${{ matrix.build != 'msvc-arm64' && matrix.build != 'llvm-arm64' && matrix.build != 'llvm-arm64-opencl-adreno' && matrix.build != 'kompute-x64' && matrix.build != 'vulkan-x64' && (matrix.build != 'avx512-x64' || env.HAS_AVX512F == '1') }}
916+
if: ${{ matrix.build != 'llvm-arm64' && matrix.build != 'llvm-arm64-opencl-adreno' }}
939917
run: |
940918
cd build
941919
ctest -L main -C Release --verbose --timeout 900
942920
943-
- name: Test (Intel SDE)
944-
id: cmake_test_sde
945-
if: ${{ matrix.build == 'avx512-x64' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation
946-
run: |
947-
curl.exe -o $env:RUNNER_TEMP/sde.tar.xz -L "https://downloadmirror.intel.com/813591/sde-external-${env:SDE_VERSION}-win.tar.xz"
948-
# for some weird reason windows tar doesn't like sde tar.xz
949-
7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar.xz
950-
7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar
951-
$sde = $(join-path $env:RUNNER_TEMP sde-external-${env:SDE_VERSION}-win/sde.exe)
952-
cd build
953-
$env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1
954-
& $sde -future -- ctest -L main -C Release --verbose --timeout 900
921+
# TODO: disabled for now, consider adding tests for all CPU variants instead
922+
# - name: Test (Intel SDE)
923+
# id: cmake_test_sde
924+
# if: ${{ matrix.build == 'avx512-x64' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation
925+
# run: |
926+
# curl.exe -o $env:RUNNER_TEMP/sde.tar.xz -L "https://downloadmirror.intel.com/813591/sde-external-${env:SDE_VERSION}-win.tar.xz"
927+
# # for some weird reason windows tar doesn't like sde tar.xz
928+
# 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar.xz
929+
# 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar
930+
# $sde = $(join-path $env:RUNNER_TEMP sde-external-${env:SDE_VERSION}-win/sde.exe)
931+
# cd build
932+
# $env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1
933+
# & $sde -future -- ctest -L main -C Release --verbose --timeout 900
955934

956935
- name: Determine tag name
957936
id: tag
@@ -1036,7 +1015,7 @@ jobs:
10361015
uses: hendrikmuhs/[email protected]
10371016
with:
10381017
key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }}
1039-
variant: sccache
1018+
variant: ccache
10401019
evict-old-files: 1d
10411020

10421021
- name: Install Cuda Toolkit 11.7
@@ -1114,6 +1093,8 @@ jobs:
11141093
cmake -S . -B build -G "Ninja Multi-Config" ^
11151094
-DLLAMA_BUILD_SERVER=ON ^
11161095
-DGGML_NATIVE=OFF ^
1096+
-DGGML_BACKEND_DL=ON ^
1097+
-DGGML_CPU_ALL_VARIANTS=ON ^
11171098
-DGGML_CUDA=ON ^
11181099
-DGGML_RPC=ON ^
11191100
-DCURL_LIBRARY="%CURL_PATH%/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="%CURL_PATH%/include"
@@ -1188,7 +1169,7 @@ jobs:
11881169
uses: hendrikmuhs/[email protected]
11891170
with:
11901171
key: windows-latest-cmake-sycl
1191-
variant: sccache
1172+
variant: ccache
11921173
evict-old-files: 1d
11931174

11941175
- name: Install

cmake/arm64-windows-msvc.cmake

Lines changed: 0 additions & 6 deletions
This file was deleted.

cmake/x64-windows-llvm.cmake

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,3 @@ set( CMAKE_SYSTEM_PROCESSOR x86_64 )
33

44
set( CMAKE_C_COMPILER clang )
55
set( CMAKE_CXX_COMPILER clang++ )
6-
7-
set( arch_c_flags "-march=native" )
8-
9-
set( CMAKE_C_FLAGS_INIT "${arch_c_flags}" )
10-
set( CMAKE_CXX_FLAGS_INIT "${arch_c_flags}" )
11-

tests/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@ if (NOT WIN32)
114114
target_include_directories(test-json-schema-to-grammar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../examples/server)
115115
endif()
116116

117-
llama_build(test-quantize-stats.cpp)
117+
if (NOT GGML_BACKEND_DL)
118+
llama_build(test-quantize-stats.cpp)
119+
endif()
120+
118121
llama_build(test-gbnf-validator.cpp)
119122

120123
# build test-tokenizer-1-bpe target once and add many tests

0 commit comments

Comments
 (0)