… red without
`kernels::tests::every_cuda_covered_op_is_named_in_current_coverage_matrix`
asserts CUDA_COVERED_OPS equals the op set parsed out of the current
CUDA_COVERAGE.md matrix. #2076 registered `pkg.nxrt::DsaIndexSelect` and added
it to CUDA_COVERED_OPS without a matrix row, so the two sets diverged and the
assertion has been failing on main ever since:
cargo test --locked -p onnx-runtime-ep-cuda --lib
test result: FAILED. 665 passed; 1 failed; 36 ignored
reproduced on a pristine checkout of origin/main (4def223) with zero tracked
modifications. With the row added the whole package is green on a box with no
GPU and no CUDA toolkit:
cargo test --locked -p onnx-runtime-ep-cuda
82 targets: 732 passed, 0 failed, 656 ignored, exit 0
The row states what the kernel actually does, taken from its module docs rather
than paraphrased: device-resident scoring, the `bias > -1e30` allow mask, top
`min(#allowed, top_k)` by `(score desc, index asc)`, ascending emission with
`-1` padding, and NaN canonicalization giving bit-parity with the frozen CPU
oracle.
Why it reached main green is a separate defect, reported alongside this: no CI
lane runs this crate's tests. `workspace_test_packages.py` denies
`onnx-runtime-ep-cuda` with the reason "runtime tests require a CUDA GPU",
which is true of the 656 ignored tests and discards the 732 that need nothing.
The CUDA lanes only `cargo check`/`clippy --all-targets`, so this assertion
compiles in CI and has never once executed there. That fix needs its own
review and is not bundled here.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
origin/mainis currently red. Not a flake, not a merge artifact — reproduced on a pristine detached checkout of4def2238bwith zero tracked modifications:The set difference is exactly one name.
#2076registeredpkg.nxrt::DsaIndexSelectand added it toCUDA_COVERED_OPS, but added no row to the matrix indocs/execution/CUDA_COVERAGE.md, which isinclude_str!'d atkernels/mod.rs:1686and parsed between theCUDA_COVERAGE_MATRIX_START/ENDmarkers.grep -c DsaIndexSelect docs/execution/CUDA_COVERAGE.md→0.The fix
One matrix row, in the
pkg.nxrtsparse/KV block next toIndexShare, which is the indexer it serves. The Notes cell is taken from the kernel's own module documentation rather than paraphrased: device-resident head-weighted ReLU'd scaled dot-product scoring, additive f32 causal bias, thebias > -1e30allow mask, topmin(#allowed, top_k)by(score desc, index asc), emitted ascending with-1right padding, and NaN canonicalization to positive quiet NaN on both backends giving bit-parity with the frozen CPU oracle.After:
Why it merged green, which is the part worth reviewing
No CI lane runs this crate's tests. Asked the real resolver rather than reading lists:
workspace_test_packages.py:219denies it:"onnx-runtime-ep-cuda": "runtime tests require a CUDA GPU". The two CUDA lanes onlycargo checkandcargo clippy --all-targets. So this assertion compiles in CI on every PR and has never executed there.The reason is true of the 656 ignored tests. The mechanism it triggers discards the 732 that need no GPU, no toolkit and no runner change — the crate already gates the GPU ones itself via
#[ignore]and thegpu-testsfeature. A per-package switch is carrying a per-test property, so a doc/code consistency guard that works perfectly is wired to nothing.Worth noting
CUDA_COVERAGE.mdis one of the two files #2081 taught the change-scope classifier to treat as code, so this PR correctly runs full CI rather than classifying as docs-only. That half is working; what it gates does not run the test.Not bundled here. Removing the denylist entry changes required-lane composition and trips the resolver's own
unenforcedenforcement, so it needs its own review and its own validation. Filing separately. This PR is one markdown row that turns main green.