SKIP_TO_MAIN_CONTENT
01.0 // GPU interface Six tiers CUDA 12.1.0

GPU runners
for GitHub Actions.
CUDA pre-installed.

T4G, T4, L4, A10G, L40S, and RTX 6000 — spot and on-demand. Change runs-on and your next push runs on a real GPU. T4G spot from $0.00372/min.

GPU_TIERS
5
T4G_SPOT
$0.00372 /min
CUDA
12.1.0
COLD_START
<60 s
01 Who this is for
[REF_010]

Five
ML/CI
use cases.

If you're doing any of these in CI, you need a GPU runner.

[01] >_

Running model inference to test outputs before a release.

[02] >_

Fine-tuning or training as part of an automated pipeline.

[03] >_

Evaluating models against a benchmark on every PR.

[04] >_

Building or testing ML pipelines end-to-end.

[05] >_

Running GPU-accelerated tests that fail silently on CPU.

> FOOTNOTE_001

The typical alternative is either skipping GPU tests in CI entirely (and finding breakage later in production) or provisioning your own runners and absorbing the maintenance overhead. Neither is great.

02 Cuda stack
[REF_020]

You don't
install CUDA.
It's there.

torch.cuda.is_available() returns True on the first run. No setup step, no custom Docker image, no driver installation script.

CUDA installation is one of the slower parts of a CI job. A typical cuda-toolkit install from scratch adds 3–5 minutes. That time is gone.

SYSTEM_INFO.LOG PRE_INSTALLED
[01] OS Ubuntu 22.04 LTS
[02] NVIDIA_DRIVERS 555.58
[03] CUDA 12.1.0
[04] CUDNN 9.2.1
[05] CONTAINER_TOOLKIT INCLUDED
03 Live pricing
[REF_PRICING] // LIVE_DATA

GPU & Accelerator Pricing

Live per-minute rates for GPU and AI accelerator runners. Auto-refreshes every 30 seconds.

04 Yaml examples
[REF_040]

Three
patterns.
One line.

Basic on-demand, spot for cost-sensitive jobs, and RTX 6000 for the heavy stuff. The only thing that changes is the runs-on array.

EXAMPLE_01.YAML // BASIC_T4 ON_DEMAND
jobs:
inference-test:
runs-on: [machine, gpu=T4]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: pip install -r requirements.txt
- run: pytest tests/inference/
EXAMPLE_02.YAML // SPOT_T4 SPOT
jobs:
model-eval:
runs-on: [machine, gpu=T4, tenancy=spot]
steps:
- uses: actions/checkout@v4
- run: pip install torch transformers
- run: python eval/run_benchmarks.py
EXAMPLE_03.YAML // RTX6000 HIGH_END
jobs:
fine-tune:
runs-on: [machine, gpu=RTX6000]
steps:
- uses: actions/checkout@v4
- run: pip install -r requirements.txt
- run: |
python train.py \
--model-name mistralai/Mistral-7B-v0.1 \
--dataset data/train.jsonl \
--output-dir artifacts/checkpoints
- uses: actions/upload-artifact@v4
with:
name: checkpoint
path: artifacts/checkpoints/
05 Faq
[REF_050]

Common
questions.

[FAQ_001] // QUERY

Do I need to install CUDA?

No. CUDA 12.1.0, cuDNN 9.2.1, NVIDIA drivers 555.58, and the NVIDIA Container Toolkit are pre-installed on every GPU runner. Your first step can go straight to pip install.

[FAQ_002] // QUERY

What if the spot runner gets interrupted?

The job fails and can be re-run manually or with automatic retries in your workflow config. For long or expensive jobs, use an on-demand runner instead.

[FAQ_003] // QUERY

Can I run Docker containers?

Yes. The NVIDIA Container Toolkit is pre-installed, so GPU-accelerated Docker containers work out of the box. docker run --gpus all works.

[FAQ_004] // QUERY

What CUDA version is installed?

CUDA 12.1.0, cuDNN 9.2.1, NVIDIA drivers 555.58. If your framework needs a different CUDA version, use a Docker container with the version you need — the container toolkit handles the rest.

06 Initialize
READY
> GPU_READY // AWAITING_INPUT

Run your first
GPU job today.

$10 free compute. Connect your GitHub org in two minutes. torch.cuda.is_available() == True on the first run.