Today — no CI job executes CUDA code. ci.yml runs on ubuntu-latest (11 jobs) and macos-latest (the metal job); CUDA is make check-cuda / lint-cuda only (ci.yml:92-94,166-168). The GPU tests are #[ignore]d (crates/oxidelake-device/src/cuda/mod.rs:524,553,649; crates/oxidelake-compute/tests/conformance.rs:317). The only CUDA execution on record is the manual T4 session of 2026-09-06, which found a correctness bug that 3 seeds × 5 sizes of CPU conformance had not (STATUS.md). Since then nothing re-executes CUDA; every kernel or ops.rs change can regress silently. docs/RELEASING.md step 0 requires the stress workflow and nothing GPU-side; make test-termlens-cli is not in the checklist either.
Why it is worth fixing — STATUS's own lesson: "compiles with --features cuda is not a verification status". A production release without a CUDA run on the release candidate re-creates the gap the T4 session closed once.
Fix — a gpu.yml with workflow_dispatch (and workflow_call from release.yml as a required job) that runs on a self-hosted or ephemeral cloud GPU runner: OXIDE_BACKEND=cuda cargo test -p oxidelake-device --features cuda -- --include-ignored, the compute conformance suite, and crates/oxidelake-runtime/tests/embedded.rs under --target cuda; uploads the log as an artifact; appends a dated row (driver, GPU, SHA) to STATUS.md's matrix by PR. Add it and make test-termlens-cli to RELEASING.md step 0.
Done when — the workflow exists and has run green at least once on a CUDA machine for a main SHA; release.yml refuses to publish without a green gpu run for the tagged SHA (or the maintainer's documented override).
Today — no CI job executes CUDA code.
ci.ymlruns onubuntu-latest(11 jobs) andmacos-latest(themetaljob); CUDA ismake check-cuda/lint-cudaonly (ci.yml:92-94,166-168). The GPU tests are#[ignore]d (crates/oxidelake-device/src/cuda/mod.rs:524,553,649;crates/oxidelake-compute/tests/conformance.rs:317). The only CUDA execution on record is the manual T4 session of 2026-09-06, which found a correctness bug that 3 seeds × 5 sizes of CPU conformance had not (STATUS.md). Since then nothing re-executes CUDA; every kernel orops.rschange can regress silently.docs/RELEASING.mdstep 0 requires the stress workflow and nothing GPU-side;make test-termlens-cliis not in the checklist either.Why it is worth fixing — STATUS's own lesson: "compiles with
--features cudais not a verification status". A production release without a CUDA run on the release candidate re-creates the gap the T4 session closed once.Fix — a
gpu.ymlwithworkflow_dispatch(andworkflow_callfromrelease.ymlas a required job) that runs on a self-hosted or ephemeral cloud GPU runner:OXIDE_BACKEND=cuda cargo test -p oxidelake-device --features cuda -- --include-ignored, the compute conformance suite, andcrates/oxidelake-runtime/tests/embedded.rsunder--target cuda; uploads the log as an artifact; appends a dated row (driver, GPU, SHA) toSTATUS.md's matrix by PR. Add it andmake test-termlens-clito RELEASING.md step 0.Done when — the workflow exists and has run green at least once on a CUDA machine for a
mainSHA;release.ymlrefuses to publish without a greengpurun for the tagged SHA (or the maintainer's documented override).