Skip to content

Commit bfee57d

Browse files
committed
fix(workflow): increase build timeout to 120 minutes and CACHE consolidate GPU build configurations for Windows
1 parent 82c3d32 commit bfee57d

1 file changed

Lines changed: 34 additions & 37 deletions

File tree

.github/workflows/main.yml

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
build:
1111
runs-on: ${{ matrix.os }}
1212
name: ${{ matrix.name }}${{ matrix.arch && format('-{0}', matrix.arch) || '' }} build${{ matrix.arch != 'arm64-v8a' && matrix.name != 'isim' && matrix.name != 'ios' && ' + test' || ''}}
13-
timeout-minutes: 60
13+
timeout-minutes: 120
1414
strategy:
1515
fail-fast: false
1616
matrix:
@@ -93,10 +93,6 @@ jobs:
9393
arch: x86_64
9494
name: windows-llamafile
9595
make: LLAMA="-DGGML_NATIVE=ON -DGGML_LLAMAFILE=ON"
96-
- os: windows-latest
97-
arch: x86_64
98-
name: windows-cuda
99-
make: LLAMA="-G \"Ninja Multi-Config\" -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_CUDA=ON"
10096
- os: windows-latest
10197
arch: x86_64
10298
name: windows-vulkan
@@ -107,12 +103,11 @@ jobs:
107103
make: LLAMA="-DGGML_NATIVE=ON -DGGML_OPENCL=ON"
108104
- os: windows-latest
109105
arch: x86_64
110-
name: windows-hip
111-
make: LLAMA="-G \"Ninja\" -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_HIP=ON -DGGML_HIP_ROCWMMA_FATTN=ON -DAMDGPU_TARGETS=\"gfx1100;gfx1101;gfx1102;gfx1030;gfx1031;gfx1032\" -DCMAKE_C_COMPILER=\"%HIP_PATH%/bin/clang.exe\" -DCMAKE_CXX_COMPILER=\"%HIP_PATH%/bin/clang++.exe\" -DCMAKE_CXX_FLAGS=\"-I../../rocwmma/library/include/ -Wno-ignored-attributes -Wno-nested-anon-types\""
112-
- os: windows-latest
113-
arch: x86_64
114-
name: windows-sycl
115-
make: LLAMA="-G \"Ninja\" -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_SYCL=ON"
106+
name: windows-gpu
107+
make: LLAMA="-DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_CUDA=ON"
108+
make-cuda: LLAMA="-G \"Ninja Multi-Config\" -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_CUDA=ON -DGGML_HIP=ON -DGGML_SYCL=ON"
109+
make-hip: LLAMA="-G \"Ninja\" -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_HIP=ON -DGGML_HIP_ROCWMMA_FATTN=ON -DAMDGPU_TARGETS=\"gfx1100;gfx1101;gfx1102;gfx1030;gfx1031;gfx1032\" -DCMAKE_C_COMPILER=\"%HIP_PATH%/bin/clang.exe\" -DCMAKE_CXX_COMPILER=\"%HIP_PATH%/bin/clang++.exe\" -DCMAKE_CXX_FLAGS=\"-I../../rocwmma/library/include/ -Wno-ignored-attributes -Wno-nested-anon-types\""
110+
make-sycl: LLAMA="-G \"Ninja\" -DGGML_BACKEND_DL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DGGML_NATIVE=OFF -DGGML_CPU=OFF -DGGML_SYCL=ON"
116111

117112
# Android builds
118113
- os: ubuntu-latest
@@ -142,6 +137,8 @@ jobs:
142137
WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel
143138
ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI"
144139
CUDA_VERSION: '12.4'
140+
ROCWMMA_VERSION: '6.2.4'
141+
HIP_TOOLKIT_VERSION: '24.Q3'
145142

146143
steps:
147144

@@ -247,7 +244,7 @@ jobs:
247244
echo "VULKAN_SDK=C:/msys64/mingw64" >> $GITHUB_ENV
248245
249246
- name: cache cuda toolkit
250-
if: matrix.name == 'windows-cuda'
247+
if: matrix.name == 'windows-gpu'
251248
id: cache-cuda
252249
uses: actions/cache@v4
253250
with:
@@ -256,35 +253,35 @@ jobs:
256253
key: cuda-${{ matrix.name }}-${{ matrix.os }}-${{ matrix.arch }}-${{ env.CUDA_VERSION }}
257254

258255
- name: windows install cuda
259-
if: matrix.name == 'windows-cuda' && steps.cache-cuda.outputs.cache-hit != 'true'
256+
if: matrix.name == 'windows-gpu' && steps.cache-cuda.outputs.cache-hit != 'true'
260257
uses: ./modules/llama.cpp/.github/actions/windows-setup-cuda
261258
with:
262259
cuda_version: ${{ env.CUDA_VERSION }}
263260

264261
- name: cache hip toolkit
265-
if: matrix.name == 'windows-hip'
262+
if: matrix.name == 'windows-gpu'
266263
id: cache-hip
267264
uses: actions/cache@v4
268265
with:
269266
path: |
270267
C:\Program Files\AMD\ROCm
271268
rocwmma
272-
key: hip-toolkit-24.Q3-rocwmma-6.2.4
269+
key: hip-toolkit-${{ env.HIP_TOOLKIT_VERSION }}-rocwmma-${{ env.ROCWMMA_VERSION }}
273270

274271
- name: windows install hip toolkit
275-
if: matrix.name == 'windows-hip' && steps.cache-hip.outputs.cache-hit != 'true'
272+
if: matrix.name == 'windows-gpu' && steps.cache-hip.outputs.cache-hit != 'true'
276273
run: |
277-
git clone https://github.com/rocm/rocwmma --branch rocm-6.2.4 --depth 1
274+
git clone https://github.com/rocm/rocwmma --branch rocm-${{ env.ROCWMMA_VERSION }} --depth 1
278275
$ErrorActionPreference = "Stop"
279276
write-host "Downloading AMD HIP SDK Installer"
280-
Invoke-WebRequest -Uri "https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-24.Q3-WinSvr2022-For-HIP.exe" -OutFile "${env:RUNNER_TEMP}\rocm-install.exe"
277+
Invoke-WebRequest -Uri "https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-${{ env.HIP_TOOLKIT_VERSION }}-WinSvr2022-For-HIP.exe" -OutFile "${env:RUNNER_TEMP}\rocm-install.exe"
281278
write-host "Installing AMD HIP SDK"
282279
Start-Process "${env:RUNNER_TEMP}\rocm-install.exe" -ArgumentList '-install' -NoNewWindow -Wait
283280
write-host "Completed AMD HIP SDK installation"
284281
shell: pwsh
285282

286283
- name: setup hip environment
287-
if: matrix.name == 'windows-hip'
284+
if: matrix.name == 'windows-gpu'
288285
run: |
289286
& 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version
290287
$HIP_PWSH = "$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path)"
@@ -296,12 +293,12 @@ jobs:
296293
shell: pwsh
297294

298295
- name: windows install ninja and sqlite for cuda, hip, and sycl
299-
if: matrix.name == 'windows-cuda' || matrix.name == 'windows-hip' || matrix.name == 'windows-sycl'
296+
if: matrix.name == 'windows-gpu'
300297
run: choco install ninja sqlite -y
301298
shell: pwsh
302299

303300
- name: cache intel oneapi toolkit
304-
if: matrix.name == 'windows-sycl'
301+
if: matrix.name == 'windows-gpu'
305302
id: cache-oneapi
306303
uses: actions/cache@v4
307304
with:
@@ -310,7 +307,7 @@ jobs:
310307
key: oneapi-${{ matrix.name }}-${{ matrix.os }}-${{ matrix.arch }}-${{ steps.submodule-hashes.outputs.dpcpp-mkl }}-${{ steps.submodule-hashes.outputs.basekit-url }}
311308

312309
- name: windows install intel oneapi toolkit for sycl
313-
if: matrix.name == 'windows-sycl' && steps.cache-oneapi.outputs.cache-hit != 'true'
310+
if: matrix.name == 'windows-gpu' && steps.cache-oneapi.outputs.cache-hit != 'true'
314311
run: modules/llama.cpp/scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL
315312

316313
- name: cache llama.cpp build
@@ -341,14 +338,14 @@ jobs:
341338
key: miniaudio-${{ matrix.name }}-${{ matrix.os }}-${{ matrix.arch }}-${{ steps.submodule-hashes.outputs.miniaudio }}-${{ hashFiles('modules/miniaudio/**') }}-${{ steps.submodule-hashes.outputs.make }}
342339

343340
- name: build llama.cpp (sycl/msvc)
344-
if: matrix.name == 'windows-sycl' && steps.cache-llama.outputs.cache-hit != 'true'
341+
if: false #matrix.name == 'windows-sycl' && steps.cache-llama.outputs.cache-hit != 'true'
345342
shell: cmd
346343
run: |
347344
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
348345
make build/llama.cpp.stamp ${{ matrix.make && matrix.make || ''}}
349346
350347
- name: build llama.cpp (cuda/hip/msvc)
351-
if: (matrix.name == 'windows-cuda' || matrix.name == 'windows-hip') && steps.cache-llama.outputs.cache-hit != 'true'
348+
if: false #(matrix.name == 'windows-cuda' || matrix.name == 'windows-hip') && steps.cache-llama.outputs.cache-hit != 'true'
352349
shell: cmd
353350
run: |
354351
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
@@ -358,7 +355,7 @@ jobs:
358355
make build/llama.cpp.stamp ${{ matrix.make && matrix.make || ''}}
359356
360357
- name: build llama.cpp (mingw/windows)
361-
if: contains(matrix.os, 'windows-') && matrix.name != 'windows-cuda' && matrix.name != 'windows-hip' && matrix.name != 'windows-sycl' && steps.cache-llama.outputs.cache-hit != 'true'
358+
if: contains(matrix.os, 'windows-') && matrix.name != 'windows-gpu' && steps.cache-llama.outputs.cache-hit != 'true'
362359
shell: msys2 {0}
363360
run: make build/llama.cpp.stamp ${{ matrix.make && matrix.make || ''}}
364361

@@ -367,14 +364,14 @@ jobs:
367364
run: make build/llama.cpp.stamp ${{ matrix.make && matrix.make || ''}}
368365

369366
- name: build whisper.cpp (sycl/msvc)
370-
if: matrix.name == 'windows-sycl' && steps.cache-whisper.outputs.cache-hit != 'true'
367+
if: false #matrix.name == 'windows-sycl' && steps.cache-whisper.outputs.cache-hit != 'true'
371368
shell: cmd
372369
run: |
373370
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
374371
make build/whisper.cpp.stamp ${{ matrix.make && matrix.make || ''}}
375372
376373
- name: build whisper.cpp (cuda/hip/msvc)
377-
if: (matrix.name == 'windows-cuda' || matrix.name == 'windows-hip') && steps.cache-whisper.outputs.cache-hit != 'true'
374+
if: false #(matrix.name == 'windows-cuda' || matrix.name == 'windows-hip') && steps.cache-whisper.outputs.cache-hit != 'true'
378375
shell: cmd
379376
run: |
380377
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
@@ -384,7 +381,7 @@ jobs:
384381
make build/whisper.cpp.stamp ${{ matrix.make && matrix.make || ''}}
385382
386383
- name: build whisper.cpp (mingw/windows)
387-
if: contains(matrix.os, 'windows-') && matrix.name != 'windows-cuda' && matrix.name != 'windows-hip' && matrix.name != 'windows-sycl' && steps.cache-whisper.outputs.cache-hit != 'true'
384+
if: contains(matrix.os, 'windows-') && matrix.name != 'windows-gpu' && steps.cache-whisper.outputs.cache-hit != 'true'
388385
shell: msys2 {0}
389386
run: make build/whisper.cpp.stamp ${{ matrix.make && matrix.make || ''}}
390387

@@ -393,14 +390,14 @@ jobs:
393390
run: make build/whisper.cpp.stamp ${{ matrix.make && matrix.make || ''}}
394391

395392
- name: build miniaudio (sycl/msvc)
396-
if: matrix.name == 'windows-sycl' && steps.cache-miniaudio.outputs.cache-hit != 'true'
393+
if: false #matrix.name == 'windows-sycl' && steps.cache-miniaudio.outputs.cache-hit != 'true'
397394
shell: cmd
398395
run: |
399396
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
400397
make build/miniaudio.stamp ${{ matrix.make && matrix.make || ''}}
401398
402399
- name: build miniaudio (cuda/hip/msvc)
403-
if: (matrix.name == 'windows-cuda' || matrix.name == 'windows-hip') && steps.cache-miniaudio.outputs.cache-hit != 'true'
400+
if: false #(matrix.name == 'windows-cuda' || matrix.name == 'windows-hip') && steps.cache-miniaudio.outputs.cache-hit != 'true'
404401
shell: cmd
405402
run: |
406403
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
@@ -410,7 +407,7 @@ jobs:
410407
make build/miniaudio.stamp ${{ matrix.make && matrix.make || ''}}
411408
412409
- name: build miniaudio (mingw/windows)
413-
if: contains(matrix.os, 'windows-') && matrix.name != 'windows-cuda' && matrix.name != 'windows-hip' && matrix.name != 'windows-sycl' && steps.cache-miniaudio.outputs.cache-hit != 'true'
410+
if: contains(matrix.os, 'windows-') && matrix.name != 'windows-gpu' && steps.cache-miniaudio.outputs.cache-hit != 'true'
414411
shell: msys2 {0}
415412
run: make build/miniaudio.stamp ${{ matrix.make && matrix.make || ''}}
416413

@@ -419,7 +416,7 @@ jobs:
419416
run: make build/miniaudio.stamp ${{ matrix.make && matrix.make || ''}}
420417

421418
- name: windows build sqlite-ai with cuda (msvc)
422-
if: matrix.name == 'windows-cuda'
419+
if: false #matrix.name == 'windows-cuda'
423420
shell: cmd
424421
run: |
425422
setlocal enabledelayedexpansion
@@ -436,7 +433,7 @@ jobs:
436433
make extension ${{ matrix.make && matrix.make || ''}}
437434
438435
- name: windows build sqlite-ai with hip (clang)
439-
if: matrix.name == 'windows-hip'
436+
if: false #matrix.name == 'windows-hip'
440437
shell: cmd
441438
run: |
442439
set PATH=%HIP_PATH%\bin;%PATH%
@@ -447,14 +444,14 @@ jobs:
447444
HIP_PLATFORM: amd
448445

449446
- name: windows build sqlite-ai with sycl (msvc)
450-
if: matrix.name == 'windows-sycl'
447+
if: false #matrix.name == 'windows-sycl'
451448
shell: cmd
452449
run: |
453450
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
454451
make extension ${{ matrix.make && matrix.make || ''}}
455452
456453
- name: windows build sqlite-ai (mingw)
457-
if: matrix.os == 'windows-latest' && matrix.name != 'windows-cuda' && matrix.name != 'windows-hip' && matrix.name != 'windows-sycl'
454+
if: matrix.os == 'windows-latest' && matrix.name != 'windows-gpu'
458455
run: make extension ${{ matrix.make && matrix.make || ''}}
459456
shell: msys2 {0}
460457

@@ -509,7 +506,7 @@ jobs:
509506
adb shell "sh /data/local/tmp/commands.sh"
510507
511508
- name: windows test sqlite-ai (msvc)
512-
if: matrix.name == 'windows-cuda' || matrix.name == 'windows-hip' || matrix.name == 'windows-sycl'
509+
if: false #matrix.name == 'windows-cuda' || matrix.name == 'windows-hip' || matrix.name == 'windows-sycl'
513510
shell: cmd
514511
run: |
515512
setlocal enabledelayedexpansion
@@ -531,7 +528,7 @@ jobs:
531528
make test ${{ matrix.make && matrix.make || ''}}
532529
533530
- name: windows test sqlite-ai (mingw)
534-
if: startsWith(matrix.name, 'windows-') && matrix.name != 'windows-cuda' && matrix.name != 'windows-hip' && matrix.name != 'windows-sycl'
531+
if: startsWith(matrix.name, 'windows-') && matrix.name != 'windows-gpu'
535532
run: make test ${{ matrix.make && matrix.make || ''}}
536533
shell: msys2 {0}
537534

0 commit comments

Comments
 (0)