Add self-hosted GPU runner job to CI (PASCAL-compatible)
- Vorherrschende Sprache
- Rust
- Sterne
- 0
- Forks
- 1
- Ø Merge
- 11 Min.
- Gemergte PRs (30 T.)
- 77
Beschreibung
Currently voxora's CI runs on GitHub-hosted `ubuntu-latest`
runners which have CPU only. The CUDA / Metal / Vulkan code paths
in `voxora-backend` and `voxora-qwen3asr` are not exercised by CI.
## What
Add a self-hosted GPU runner to the voxora CI. The runner:
- Runs on a host with an NVIDIA PASCAL or newer GPU (sm_60+).
- Self-hosted registration token stored as a GitHub Actions
secret (`SELF_HOSTED_GPU_TOKEN`).
- Only consumes minutes for jobs explicitly targeted at it
(`runs-on: [self-hosted, gpu, linux, gpu-pascal]`).
## Jobs to add
- `cuda-build`: `cargo build --workspace --features
voxora-qwen3asr/cuda` and `voxora-whisper/cuda`. Verifies the
CUDA code paths compile.
- `cuda-smoke`: `cargo test --workspace
--features voxora-qwen3asr/cuda
-- --ignored` to run the parity suite on the GPU. The runner
pre-downloads the ggml-tiny.bin + Qwen3-ASR-0.6B checkpoints
into a runner-local cache.
## Compatibility notes
- PASCAL GPUs (sm_60) are supported by whisper-rs but NOT by
candle-core 0.9+ which requires sm_70+ (Volta). The `cuda-smoke`
job should therefore run on a Volta-or-newer host, not PASCAL.
- Label the PASCAL-compatible job `gpu-pascal` and the
candle-compatible one `gpu-volta` if they need to be split
across two hosts.
## Acceptance
- A new CI workflow `gpu.yml` (or jobs added to the existing
`ci.yml`).
- `cuda-build` and `cuda-smoke` jobs run on self-hosted runner,
gated by `workflow_dispatch` and `schedule:` (so they run
nightly, not on every PR — saves minutes).
- Documentation in `AGENTS.md` and `CONTRIBUTING.md` on how to
register a new self-hosted runner.
## Out of scope
- Multi-GPU testing. Single GPU is sufficient.
- ROCm / AMD testing. NVIDIA-only for now.
Beitragsleitfaden
Rechercherichtung
Inspect the existing CI workflow, then determine whether to add the jobs in ci.yml or create gpu.yml. Update AGENTS.md and CONTRIBUTING.md with the self-hosted runner registration guidance, and verify the workflow is manually dispatchable and scheduled nightly with the specified cuda-build and cuda-smoke jobs. Done means the GPU jobs target the documented labels and the required CUDA commands are present.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- github-actions, linux, rust
- Bereich
- ci-cd, devops, infrastructure
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 42/100