What Is a GPU Runner? CI for ML, CUDA, and Graphics
A GPU runner is a CI runner equipped with a graphics processing unit, used for machine-learning training and inference, CUDA builds, and GPU-accelerated tests.
Most CI does not need a GPU - but ML pipelines, CUDA libraries, and graphics workloads do. GPU runners are specialized and expensive, so you target them only for the jobs that genuinely use the hardware.
When you need a GPU runner
- Training or fine-tuning models, even small ones, in CI.
- Running tests that exercise CUDA or GPU code paths.
- Building GPU libraries that need a real device to compile or verify.
- Rendering or graphics pipelines that require GPU acceleration.
Why GitHub-hosted is limited here
GitHub-hosted runners have historically offered limited GPU options, so GPU CI has usually meant self-hosting on cloud GPU instances or using a provider that offers GPU runners directly.
The cost reality
GPU instances are among the most expensive compute you can rent, so idle GPU runners are very costly. Ephemeral, autoscaled GPU runners that scale to zero between jobs are essential to avoid burning money on idle accelerators.
Routing GPU jobs
You target GPU runners with a dedicated label (e.g. gpu) so only the jobs that need acceleration land on the expensive hardware, keeping everything else on cheap Linux runners.
Driver and image considerations
GPU runners need matching drivers, CUDA toolkit versions, and container runtime support baked into the image. A mismatch between the driver and the framework version is a common cause of GPU CI failures, so the image has to be maintained as carefully as the hardware is provisioned.
Key takeaways
- A GPU runner has a GPU for ML, CUDA, and graphics CI workloads.
- Hosted GPU options are limited, so GPU CI often means self-hosting.
- GPU compute is costly, making scale-to-zero and ephemerality critical.
- A dedicated label routes only GPU-needing jobs to the hardware.