Skip to content

fix(compute): nine GPU tests panicked without an adapter — the nightly coverage run was RED six days on an environment fact (PMAT-1106) - #3116

Open
noahgift wants to merge 3 commits into
mainfrom
PMAT-1106-gpu-tests-skip
Open

fix(compute): nine GPU tests panicked without an adapter — the nightly coverage run was RED six days on an environment fact (PMAT-1106)#3116
noahgift wants to merge 3 commits into
mainfrom
PMAT-1106-gpu-tests-skip

Conversation

@noahgift

@noahgift noahgift commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

What

backends::gpu::device::backward::tests called GpuDevice::new().expect("GPU device") nine times. Under cargo llvm-cov on yoga-build2 (docker runner, no GPU passthrough) two of them panicked and the whole nightly coverage run exited 2 — run 34575134766, and the run is RED six days running (the other half of that redness is the same class in aprender-cgp, #2848, pulled into 0.67.0).

A missing adapter is an environment fact, not a kernel defect. device_or_skip() prints SKIP: no GPU adapter on this host (<err>) and the test returns; the box that has an adapter stays the gate.

Proven both ways (lambda-vector, cargo test -p aprender-compute --lib --features gpu -- backends::gpu::device::backward --nocapture)

polarity result
VK_ICD_FILENAMES=/nonexistent (no adapter) 9 SKIP: lines, 9 passed in 0.00 s
real adapter 0 SKIP: lines, 9 passed in 1.42 s
cargo fmt --check; cargo clippy -p aprender-compute --all-targets -- -D warnings -A unused-variables (CI's chain, default features) clean, 0 errors
cargo clippy -p aprender-compute --lib --tests --features gpu -- -D warnings 1 error, pre-existing and not in this diff: len() == 0 at backends/gpu/pool.rs:169, a gpu-feature-only test target no gate lints today (same class as the aprender-gpu dark targets noted in memory)

Falsifier of record: the next coverage-nightly.yml run (03:00 UTC) — with this and #2848 on main it must reach the report step and print a line-coverage figure instead of exiting 2 in cargo test.

Refs PMAT-1106, #2848, operator rule 2026-09-11 ("nightly we should have a low priority code coverage run with goal of eventually getting to 95% coverage").

🤖 Generated with Claude Code

noahgift and others added 2 commits September 11, 2026 11:00
…er (coverage nightly)

Pmat-Ticket: PMAT-1106

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…he nightly coverage run was RED for six days on an environment fact

backends::gpu::device::backward::tests called GpuDevice::new().expect("GPU device") nine times. Under cargo llvm-cov on yoga-build2 (a docker runner with no GPU passthrough) the two silu_backward tests panicked and the whole coverage run exited 2 (run 34575134766); the same class in aprender-cgp is #2848. A missing adapter is an environment fact, not a kernel defect: device_or_skip() prints 'SKIP: no GPU adapter on this host (<err>)' and the test returns. Proven both ways on lambda-vector: with VK_ICD_FILENAMES pointed at nothing, 9 SKIP lines and 9 passed in 0.00 s; with the real adapter, 0 SKIP lines and 9 passed in 1.42 s. The box that has an adapter stays the gate.

Pmat-Ticket: PMAT-1106

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift noahgift added this to the 0.67.0 milestone Sep 11, 2026
@noahgift
noahgift enabled auto-merge September 11, 2026 09:04
@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3116 head=df67d3e00432f047731cbba655cfd900778c32b2 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

noahgift added a commit that referenced this pull request Sep 11, 2026
…r runs aprender-compute's gpu tests on intel, where there is no adapter; roadmap: PMAT-1106 entry appended

Pmat-Ticket: PMAT-1102

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

Falsifier ran (2026-09-11 10:19Z, coverage-nightly.yml dispatched on this branch, run 34588621366, yoga-eph): the run reached the report step — TOTAL: 815132/927205 lines covered (87%) — where every run of the last six days died in cargo test on the GPU-conditional panics. So the compute half is fixed. The job still exits 2 because the measured 87.91 % is 0.09 pt under the enforced COV_FLOOR := 88 (the denominator grew from 885,829 to 927,205 lines since the July measurement); that is the next Kaizen row, not this PR's. The cgp half (#2848) is still needed for a green run on intel, where a nvidia-smi binary exists without a device.

…ries + PMAT-1106 kept

Pmat-Ticket: PMAT-1106

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

Superseded: this branch's commits (device_or_skip for the wgpu device tests) are already merged into #3112 (PMAT-1102), which also carries the aarch64 lint fixes and two dark-test fixes surfaced by the quick tier. Cancelled this PR's rerun to free X64 runner slots for #3112 (the queue was 17 deep at 15:04Z); will close this PR once #3112 lands. — Claude, autonomous fleet loop

@noahgift noahgift added the pp-066/superseded triage 0.66 — closed, superseded by a merged SHA label Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pp-066/superseded triage 0.66 — closed, superseded by a merged SHA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant