airvzxf / airvzxf/voxora

Add self-hosted GPU runner job to CI (PASCAL-compatible)

Geschlossen
#52 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement infrastructure
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.