Skip to content

Commit 0c2778d

Browse files
committed
Fix Windows GPU CI: bump Jimver CUDA + switch Vulkan SDK action
First CI run on PR #276 (run 28327740376): default Ninja flip, MSVC classifier, and the OpenCL job were green; CUDA and Vulkan failed on toolchain setup. - CUDA: `Jimver/cuda-toolkit@v0.2.24` errored "Version not available: 13.0.0" (that tag predates CUDA 13.x). Bump to @v0.2.35 and request 13.2.0 (matches the Linux pin; classifier stays cuda13-windows-x86-64). Also clears the Node 20 deprecation warning. - Vulkan: humbletim/install-vulkan-sdk set VULKAN_SDK but laid out the SDK in a way CMake's FindVulkan could not read (missing Vulkan_LIBRARY / Vulkan_INCLUDE_DIR). Switch to jakoch/install-vulkan-sdk-action@v1.6.0 (purpose-built, FindVulkan-compatible), vulkan_version 1.4.350.0. Docs (CLAUDE.md, TODO.md) updated with the resolved toolchain versions and the first-run results. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deqf9xS6jz9t1idytVTaPV
1 parent e3ba405 commit 0c2778d

3 files changed

Lines changed: 22 additions & 19 deletions

File tree

.github/workflows/publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -701,10 +701,10 @@ jobs:
701701
with:
702702
arch: x64
703703
- name: Install CUDA Toolkit
704-
uses: Jimver/cuda-toolkit@v0.2.24
704+
uses: Jimver/cuda-toolkit@v0.2.35
705705
id: cuda-toolkit
706706
with:
707-
cuda: '13.0.0'
707+
cuda: '13.2.0'
708708
method: 'network'
709709
sub-packages: '["nvcc", "cudart", "cublas", "cublas_dev", "thrust"]'
710710
- name: Install sccache (shared compiler cache)
@@ -751,9 +751,9 @@ jobs:
751751
with:
752752
arch: x64
753753
- name: Install Vulkan SDK
754-
uses: humbletim/install-vulkan-sdk@v1.2
754+
uses: jakoch/install-vulkan-sdk-action@v1.6.0
755755
with:
756-
version: latest
756+
vulkan_version: 1.4.350.0
757757
cache: true
758758
- name: Install sccache (shared compiler cache)
759759
if: env.USE_CACHE == 'true' && env.SCCACHE_WEBDAV_TOKEN != ''

CLAUDE.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,9 @@ Wiring (mirrors the CUDA-Linux / OpenCL-Android classifier pattern):
209209
- `build-windows-x86_64` / `build-windows-x86`**Ninja CPU**, artifacts `Windows-{arch}-libraries`
210210
→ picked up by the `package` job's `pattern: "*-libraries"` into the **default** tree.
211211
- `build-windows-x86_64-msvc` / `build-windows-x86-msvc`**MSVC CPU**, artifacts `Windows-{arch}-msvc`.
212-
- `build-windows-x86_64-cuda``Jimver/cuda-toolkit` + `-DGGML_CUDA=ON`, artifact `Windows-x86_64-cuda`.
213-
- `build-windows-x86_64-vulkan``humbletim/install-vulkan-sdk` + `-DGGML_VULKAN=ON`, artifact
212+
- `build-windows-x86_64-cuda``Jimver/cuda-toolkit@v0.2.35` (CUDA `13.2.0`) + `-DGGML_CUDA=ON`,
213+
artifact `Windows-x86_64-cuda`.
214+
- `build-windows-x86_64-vulkan``jakoch/install-vulkan-sdk-action` + `-DGGML_VULKAN=ON`, artifact
214215
`Windows-x86_64-vulkan`.
215216
- `build-windows-x86_64-opencl``build_opencl_windows.bat -DGGML_OPENCL=ON -DGGML_OPENCL_EMBED_KERNELS=ON`,
216217
artifact `Windows-x86_64-opencl`.
@@ -224,11 +225,13 @@ Wiring (mirrors the CUDA-Linux / OpenCL-Android classifier pattern):
224225

225226
`src/main/resources_windows_{msvc,cuda,vulkan,opencl}/` are git-ignored (staged by CI, never committed).
226227

227-
**First-run unknowns (no GPU/Windows CI tested locally — validate on the first CI run):** the exact
228-
`Jimver/cuda-toolkit` CUDA version that resolves on Windows (the job requests `13.0.0`; if Jimver has
229-
no 13.x the classifier would need to drop to `cuda12-…`), the `humbletim/install-vulkan-sdk` action
230-
inputs, and the `build_opencl_windows.bat` ICD-loader staging are all unproven on the runner image and
231-
may need adjustment. Because all five Windows build jobs are in the `package`/publish `needs:` graph, a
228+
**First CI run (PR #276, run 28327740376):** the default Ninja CPU flip, the MSVC classifier, and the
229+
**OpenCL** job were green on the first try. Two GPU jobs needed a toolchain fix: **CUDA** failed with
230+
`Version not available: 13.0.0` because the pinned `Jimver/cuda-toolkit@v0.2.24` predated CUDA 13.x →
231+
bumped to `@v0.2.35` + `13.2.0` (matches the Linux pin, classifier stays `cuda13-…`); **Vulkan** failed
232+
`find_package(Vulkan)` because `humbletim/install-vulkan-sdk` set `VULKAN_SDK` but laid the SDK out in a
233+
way CMake's `FindVulkan` couldn't read → switched to `jakoch/install-vulkan-sdk-action` (purpose-built,
234+
FindVulkan-compatible). Because all five Windows build jobs are in the `package`/publish `needs:` graph, a
232235
GPU-toolchain failure blocks packaging — the same release-gating policy the Linux-CUDA / Android-OpenCL
233236
jobs already follow.
234237

TODO.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ Multi-Config + MSVC.
197197
**MSVC** (artifacts `Windows-{arch}-msvc`). `test-java-windows-x86_64` (default/Ninja) and
198198
`test-java-windows-x86_64-msvc` both load the DLL via JNI and run the full model-backed suite.
199199
- **GPU build jobs (x86_64, Ninja, build + `ctest` only — runners have no GPU):**
200-
`build-windows-x86_64-cuda` (`Jimver/cuda-toolkit` + `-DGGML_CUDA=ON`),
201-
`build-windows-x86_64-vulkan` (`humbletim/install-vulkan-sdk` + `-DGGML_VULKAN=ON`),
200+
`build-windows-x86_64-cuda` (`Jimver/cuda-toolkit@v0.2.35` CUDA `13.2.0` + `-DGGML_CUDA=ON`),
201+
`build-windows-x86_64-vulkan` (`jakoch/install-vulkan-sdk-action` + `-DGGML_VULKAN=ON`),
202202
`build-windows-x86_64-opencl` (`build_opencl_windows.bat` stages the ICD loader + `-DGGML_OPENCL=ON`).
203203
- **`CMakeLists.txt`** — OS-aware backend routing (CUDA/OpenCL → Windows trees, new Vulkan branch).
204204
- **`.github/build.bat`** — also wraps nvcc with sccache for CUDA builds.
@@ -210,12 +210,12 @@ Multi-Config + MSVC.
210210
four profiles; all five Windows build jobs are in the `package` `needs:` graph.
211211
- Docs: `README.md` classifier table + `CLAUDE.md` "Windows native classifiers" section.
212212

213-
**Verification — PENDING.** GPU/Windows builds could not be exercised locally (no Windows host, no
214-
GPU). The first CI run must confirm: the `Jimver/cuda-toolkit` CUDA version resolves on Windows (the
215-
job requests `13.0.0`; drop the classifier to `cuda12-…` if Jimver has no 13.x), the
216-
`humbletim/install-vulkan-sdk` inputs are correct, and `build_opencl_windows.bat`'s ICD-loader staging
217-
works on the runner image. The default Ninja CPU flip should be green immediately (it reuses the
218-
already-proven Ninja jobs, just renamed).
213+
**Verification — first CI run done (PR #276, run 28327740376).** Green on the first try: default Ninja
214+
CPU flip (x64+x86), MSVC classifier (x64+x86), and the **OpenCL** GPU job (`build_opencl_windows.bat`
215+
ICD staging works). Two GPU jobs were fixed after the first run: **CUDA** (`Version not available:
216+
13.0.0` → bumped `Jimver/cuda-toolkit` `v0.2.24``v0.2.35` + `13.2.0`) and **Vulkan**
217+
(`find_package(Vulkan)` couldn't read the `humbletim` SDK layout → switched to
218+
`jakoch/install-vulkan-sdk-action`). Re-run pending to confirm both fixes.
219219

220220
**Optional follow-up:** smoke-test that each *published* classifier JAR loads its DLL on a clean
221221
Windows host with the matching GPU driver/toolkit installed.

0 commit comments

Comments
 (0)