@@ -48,132 +48,177 @@ jobs:
4848 name : " amd64-avx2"
4949 runs-on : " ubuntu-20-04"
5050 cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF"
51+ build-deps-cmake-flags : " "
5152 run-e2e : true
53+ ccache-dir : ' '
5254
5355 - os : " linux"
5456 name : " amd64-avx"
5557 runs-on : " ubuntu-20-04"
5658 cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF"
59+ build-deps-cmake-flags : " "
5760 run-e2e : false
61+ ccache-dir : ' '
5862
5963 - os : " linux"
6064 name : " amd64-avx512"
6165 runs-on : " ubuntu-20-04"
6266 cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF"
67+ build-deps-cmake-flags : " "
6368 run-e2e : false
69+ ccache-dir : ' '
6470
6571 - os : " linux"
6672 name : " amd64-vulkan"
6773 runs-on : " ubuntu-20-04-cuda-11-7"
6874 cmake-flags : " -DLLAMA_VULKAN=ON -DLLAMA_NATIVE=OFF"
75+ build-deps-cmake-flags : " "
6976 run-e2e : false
77+ ccache-dir : ' '
7078
7179 - os : " linux"
7280 name : " amd64-avx2-cuda-11-7"
7381 runs-on : " ubuntu-20-04-cuda-11-7"
7482 cmake-flags : " -DCUDA_11_7=ON -DLLAMA_NATIVE=OFF -DLLAMA_CUDA=ON -DLLAMA_AVX2=ON"
83+ build-deps-cmake-flags : " "
7584 run-e2e : false
85+ ccache-dir : ' '
7686
7787 - os : " linux"
7888 name : " amd64-avx-cuda-11-7"
7989 runs-on : " ubuntu-20-04-cuda-11-7"
8090 cmake-flags : " -DCUDA_11_7=ON -DLLAMA_NATIVE=OFF -DLLAMA_CUDA=ON -DLLAMA_AVX2=OFF"
91+ build-deps-cmake-flags : " "
8192 run-e2e : false
93+ ccache-dir : ' '
8294
8395 - os : " linux"
8496 name : " amd64-avx512-cuda-11-7"
8597 runs-on : " ubuntu-20-04-cuda-11-7"
8698 cmake-flags : " -DCUDA_11_7=ON -DLLAMA_NATIVE=OFF -DLLAMA_CUDA=ON -DLLAMA_AVX512=ON"
99+ build-deps-cmake-flags : " "
87100 run-e2e : false
101+ ccache-dir : ' '
88102
89103 - os : " linux"
90104 name : " amd64-avx2-cuda-12-0"
91105 runs-on : " ubuntu-20-04-cuda-12-0"
92106 cmake-flags : " -DCUDA_12_0=ON -DLLAMA_NATIVE=OFF -DLLAMA_CUDA=ON -DLLAMA_AVX2=ON"
107+ build-deps-cmake-flags : " "
93108 run-e2e : false
109+ ccache-dir : ' '
94110
95111 - os : " linux"
96112 name : " amd64-avx-cuda-12-0"
97113 runs-on : " ubuntu-20-04-cuda-12-0"
98114 cmake-flags : " -DCUDA_12_0=ON -DLLAMA_NATIVE=OFF -DLLAMA_CUDA=ON -DLLAMA_AVX2=OFF"
115+ build-deps-cmake-flags : " "
99116 run-e2e : false
117+ ccache-dir : ' '
100118
101119 - os : " linux"
102120 name : " amd64-avx512-cuda-12-0"
103121 runs-on : " ubuntu-20-04-cuda-12-0"
104122 cmake-flags : " -DCUDA_12_0=ON -DLLAMA_NATIVE=OFF -DLLAMA_CUDA=ON -DLLAMA_AVX512=ON"
123+ build-deps-cmake-flags : " "
105124 run-e2e : false
125+ ccache-dir : ' '
106126
107127 - os : " mac"
108128 name : " amd64"
109129 runs-on : " macos-13"
110130 cmake-flags : " "
131+ build-deps-cmake-flags : " "
111132 run-e2e : true
133+ ccache-dir : ' '
112134
113135 - os : " mac"
114136 name : " arm64"
115137 runs-on : " macos-latest"
116138 cmake-flags : " -DMAC_ARM64=ON"
117- run-e2e : false
139+ build-deps-cmake-flags : " "
140+ run-e2e : true
141+ ccache-dir : ' '
118142
119143 - os : " windows"
120144 name : " amd64-avx2"
121- runs-on : " windows-cuda-12-0"
122- cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
145+ runs-on : " windows-cuda-11-7"
146+ cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
147+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
123148 run-e2e : true
149+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
124150
125151 - os : " windows"
126152 name : " amd64-avx"
127- runs-on : " windows-cuda-12-0"
128- cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
153+ runs-on : " windows-cuda-11-7"
154+ cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
155+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
129156 run-e2e : false
157+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
130158
131159 - os : " windows"
132160 name : " amd64-avx512"
133161 runs-on : " windows-cuda-12-0"
134- cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
162+ cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DLLAMA_BLAS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
163+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
135164 run-e2e : false
165+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
136166
137167 - os : " windows"
138168 name : " amd64-vulkan"
139169 runs-on : " windows-cuda-12-0"
140- cmake-flags : " -DLLAMA_VULKAN=ON -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
170+ cmake-flags : " -DLLAMA_VULKAN=ON -DLLAMA_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
171+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
141172 run-e2e : false
173+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
142174
143175 - os : " windows"
144176 name : " amd64-avx2-cuda-12-0"
145177 runs-on : " windows-cuda-12-0"
146- cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF -DCUDA_12_0=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
178+ cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF -DCUDA_12_0=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
179+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
147180 run-e2e : false
181+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
148182
149183 - os : " windows"
150184 name : " amd64-avx-cuda-12-0"
151185 runs-on : " windows-cuda-12-0"
152- cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF -DCUDA_12_0=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
186+ cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF -DCUDA_12_0=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
187+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
153188 run-e2e : false
189+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
154190
155191 - os : " windows"
156192 name : " amd64-avx512-cuda-12-0"
157193 runs-on : " windows-cuda-12-0"
158- cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF -DCUDA_12_0=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
194+ cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF -DCUDA_12_0=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
195+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
159196 run-e2e : false
197+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
160198
161199 - os : " windows"
162200 name : " amd64-avx2-cuda-11-7"
163201 runs-on : " windows-cuda-11-7"
164- cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF -DCUDA_11_7=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
202+ cmake-flags : " -DLLAMA_AVX2=ON -DLLAMA_NATIVE=OFF -DCUDA_11_7=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
203+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
165204 run-e2e : false
205+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
166206
167207 - os : " windows"
168208 name : " amd64-avx-cuda-11-7"
169209 runs-on : " windows-cuda-11-7"
170- cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF -DCUDA_11_7=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
210+ cmake-flags : " -DLLAMA_AVX2=OFF -DLLAMA_NATIVE=OFF -DCUDA_11_7=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
211+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
171212 run-e2e : false
213+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
214+
172215 - os : " windows"
173216 name : " amd64-avx512-cuda-11-7"
174217 runs-on : " windows-cuda-11-7"
175- cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF -DCUDA_11_7=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE"
218+ cmake-flags : " -DLLAMA_AVX512=ON -DLLAMA_NATIVE=OFF -DCUDA_11_7=ON -DLLAMA_BUILD_SERVER=ON -DLLAMA_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
219+ build-deps-cmake-flags : " -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache -GNinja"
176220 run-e2e : false
221+ ccache-dir : ' C:\Users\ContainerAdministrator\AppData\Local\ccache'
177222
178223 steps :
179224 - name : Clone
@@ -190,7 +235,19 @@ jobs:
190235 - name : Install choco on Windows
191236 if : runner.os == 'Windows'
192237 run : |
193- choco install make -y
238+ choco install make pkgconfiglite ccache awscli 7zip ninja -y
239+
240+ - name : Download ccache from s3
241+ if : runner.os == 'Windows'
242+ continue-on-error : true
243+ run : |
244+ Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
245+ refreshenv
246+ aws s3 cp s3://${{ secrets.MINIO_BUCKET_NAME }}/cortex-cpp-${{ matrix.os }}-${{ matrix.name }} ${{ matrix.ccache-dir }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }}
247+ env :
248+ AWS_ACCESS_KEY_ID : " ${{ secrets.MINIO_ACCESS_KEY_ID }}"
249+ AWS_SECRET_ACCESS_KEY : " ${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
250+ AWS_DEFAULT_REGION : " ${{ secrets.MINIO_REGION }}"
194251
195252 - name : Get Cer for code signing
196253 if : runner.os == 'macOS'
@@ -208,7 +265,7 @@ jobs:
208265 - name : Build
209266 run : |
210267 cd cortex-cpp
211- make build CMAKE_EXTRA_FLAGS="${{ matrix.cmake-flags }}"
268+ make build CMAKE_EXTRA_FLAGS="${{ matrix.cmake-flags }}" BUILD_DEPS_CMAKE_EXTRA_FLAGS="${{ matrix.build-deps-cmake-flags }}"
212269
213270 - name : Pre-package
214271 run : |
@@ -261,6 +318,17 @@ jobs:
261318 asset_path : ./cortex-cpp/cortex-cpp.tar.gz
262319 asset_name : cortex-cpp-${{ needs.create-draft-release.outputs.version }}-${{ matrix.os }}-${{ matrix.name }}.tar.gz
263320 asset_content_type : application/gzip
321+ - name : Upload ccache to s3
322+ continue-on-error : true
323+ if : always() && runner.os == 'Windows'
324+ run : |
325+ Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
326+ refreshenv
327+ aws s3 cp ${{ matrix.ccache-dir }} s3://${{ secrets.MINIO_BUCKET_NAME }}/cortex-cpp-${{ matrix.os }}-${{ matrix.name }} --recursive --endpoint ${{ secrets.MINIO_ENDPOINT }}
328+ env :
329+ AWS_ACCESS_KEY_ID : " ${{ secrets.MINIO_ACCESS_KEY_ID }}"
330+ AWS_SECRET_ACCESS_KEY : " ${{ secrets.MINIO_SECRET_ACCESS_KEY }}"
331+ AWS_DEFAULT_REGION : " ${{ secrets.MINIO_REGION }}"
264332
265333 build-cortex-single-binary :
266334 runs-on : ${{ matrix.runs-on }}
0 commit comments