Skip to content

ci: run the CUDA compile check in a devel container - #4

Merged
Pascal-SAPUI5 merged 2 commits into
masterfrom
ci/cuda-container
Aug 10, 2026
Merged

ci: run the CUDA compile check in a devel container#4
Pascal-SAPUI5 merged 2 commits into
masterfrom
ci/cuda-container

Conversation

@Pascal-SAPUI5

Copy link
Copy Markdown
Owner

The TurboQuant CI CUDA job has been failing on master. The cause is the toolkit installation, not the code.

cuda-12-6 depends on the NVIDIA kernel driver. dkms cannot build a kernel module on a GitHub runner, dpkg fails, and the failure cascades through cuda-runtime-12-6 to the packages the build actually needs. Installing the full toolkit — my previous attempt at avoiding package-name guesswork — made this certain rather than avoiding it, because the meta-package is exactly what pulls the driver in.

A devel container already contains nvcc and cuBLAS and installs no driver at all, which is what a compile-only check needs. This is the same approach as the upstream ubuntu-latest-cuda job.

Also enables LLAMA_FATAL_WARNINGS: -Werror is what exposed two of the build errors this workflow was added to catch, so the check should run with it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Q5jMcvdevae8j4T36C9h2z

Pascal-SAPUI5 and others added 2 commits August 10, 2026 21:32
Installing the CUDA toolkit onto a bare runner cannot work: the cuda-12-6
meta-package depends on the NVIDIA kernel driver, dkms cannot build it on a
GitHub runner, and dpkg then fails the entire install including nvcc and
cuBLAS. Switching to the full toolkit made this worse, not better.

nvidia/cuda:12.6.2-devel-ubuntu24.04 ships nvcc and cuBLAS and needs no
driver, which is the right shape for a compile-only check. This mirrors the
upstream ubuntu-latest-cuda job.

Also enables LLAMA_FATAL_WARNINGS, since -Werror is what surfaced two of the
build errors this workflow exists to catch.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5jMcvdevae8j4T36C9h2z
ggml-cuda is 131 translation units, ~70 of them generated template instances,
and nvcc compiles each one several times over (device to PTX, PTX to SASS,
then the host pass). On a four-core runner starting from an empty build
directory that dominates the entire job.

ggml's CMake enables ccache automatically once the binary is present, so the
action only has to carry the cache between runs. Saving is restricted to
pushes on master so pull requests read from a stable cache instead of each
writing its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5jMcvdevae8j4T36C9h2z
@Pascal-SAPUI5
Pascal-SAPUI5 merged commit cf3eeda into master Aug 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant