Skip to content

Add an on-demand CUDA execution job and make it a release prerequisite #38

Description

@vyncint

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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions