Where to run GPU workloads
GitHub doesn't include GPU in the standard hosted runners. Three viable options:
1) GitHub Larger Runners (GPU)
- Available at the org level. NVIDIA T4 / A10 options.
- Easy to enable — same
runs-on:label syntax. - Per-minute pricing; reasonable for occasional GPU CI.
2) Self-hosted GPU runner
- Set up on your own machine (homelab Linux box, Apple Silicon Mac for MLX work).
- Tag with labels:
[self-hosted, gpu, linux-x64]or[self-hosted, macos, apple-silicon]. - Free per-minute; you pay electricity and maintenance.
- Best for: heavy continuous use, persistent caches, exotic hardware.
3) Cloud GPU as a service from CI
- From a regular Linux runner, call out to Modal, RunPod, vast.ai, Lambda Cloud.
- Run the GPU job there, fetch results.
- Pay-per-second; scales to zero when idle.
- Best for: spiky workloads, no fleet to maintain.
Apple Silicon special case
For MLX work on Apple Silicon, only self-hosted Mac runners work. Hosted macOS runners on GitHub use Intel Mac VMs (no MLX support). Set up a self-hosted runner on your office Mac if MLX is in your eval suite.