Repository navigation
fix(cpu): signed-integer Neg + Int32 bench inputs (audio-model op coverage) - #115
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #115 +/- ##
=======================================
Coverage 82.49% 82.49%
=======================================
Files 231 231
Lines 99760 99799 +39
Branches 99760 99799 +39
=======================================
+ Hits 82296 82333 +37
Misses 14074 14074
- Partials 3390 3392 +2
🚀 New features to boost your workflow:
|
justinchuby
added a commit
that referenced
this pull request
Jul 24, 2026
…ws ARM64 flaky (#117) ## Summary Fixes a Windows ARM64 CI flaky (hard subprocess crash, `STATUS_ACCESS_VIOLATION` / empty stderr) in the persistent-pool affinity tests. Same class as #111. ## Root cause `run_affinity_defer_child` (test harness in `matmul_nbits.rs`) hard-coded `ONNX_GENAI_CPU_DECODE_THREADS=8` and `RAYON_NUM_THREADS=8` for its subprocess children. The `forced_off` scenario forces the persistent SPMD pool, which spins up ~8 busy-waiting SPMD workers (plus a Rayon pool) **inside an already-spawned child test binary**. On the low-core native Windows ARM64 runner this oversubscribes CPUs and hard-aborts the child before it can print — surfacing as `forced_persistent_pool_ignores_explicit_affinity` failing with truncated stdout and empty stderr. It intermittently fails any ep-cpu PR (hit #115 twice in a row). ## Fix Replace the hard-coded `"8"` with the existing `parity_worker_count()` helper (largest odd ≤ `available_parallelism()`, capped at 15, always ≥ 1) — the exact remedy #111 applied to a sibling test. **Test-harness only; no product/kernel code changed.** ## Why the test stays meaningful - `forced_off` still forces the pool (`PERSISTENT_POOL=1`) and still asserts `pools().is_some()` (`parity_worker_count() ≥ 1` ⇒ a real pool is built). - `auto_*` children still set explicit affinity and assert `pools().is_none()`. - No `#[ignore]`, no weakened assertion, no OS/arch skip — only the thread count is bounded to a runner-safe value. ## Sibling tests Two other forced-pool subprocess tests use small hard-coded counts (MLAS-shard 3/3, MLAS-prefill 3/6) — below the oversubscription threshold and not reported flaky; left unchanged to preserve the prefill test's deliberate `RAYON > workers` row-block invariant. ## Gates (Linux x86_64) - `cargo test -p onnx-runtime-ep-cpu --features mlas` — 903 pass; no-mlas pass; clippy clean both; `cargo fmt --check` clean (only known `mlas-sys:1211` false positive); aarch64 cross-check clean. Reviewed independently 🟡 APPROVE-WITH-NITS (non-author). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
justinchuby
force-pushed
the
perf/audio-op-coverage
branch
from
July 24, 2026 20:35
2300f56 to
08021ff
Compare
justinchuby
added a commit
that referenced
this pull request
Jul 24, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native CPU EP op-coverage fixes surfaced by audio models
While bringing up Whisper and Nemotron ASR (Foundry Local) on the native CPU EP, two general, well-scoped correctness/harness gaps surfaced. This PR lands those; the audio models themselves remain blocked on unimplemented
com.microsoft::Attention/ MHA /LSTMkernels (tracked separately).Fixes
Neg(onnx-runtime-ep-cpuunary_math):Negon Int32/Int64 now routes throughwrapping_neg(matches ONNX two's-complement overflow semantics, incl.Neg(INT_MIN) == INT_MIN); float path unchanged. Non-vacuous regression test covers theMINwrap for both widths.onnx-genai-benchbench_generic): the generic native-vs-ORT harness can now synthesize Int32 model inputs, so integer-input graphs benchmark and parity-check instead of erroring.Scope note
A third commit from the audio bring-up (a
com.microsoft::MultiHeadAttentionshape-inference rule) was rejected in review for mishandling differing value head_size and is being reworked separately — deliberately excluded here.Review
Non-author review by Hicks: commits 1+2 🟢 APPROVED (the rejection applied only to the excluded MHA commit).
Gates: ep-cpu tests incl.
neg_supports_signed_integer_tensors, ep-cpu clippy (mlas), fmt (only pre-existingmlas-sys:1211artifact) — green. (Pre-existingonnx-genai-engineclippy nits under thebench-nativefeature are outside CI's path and untouched here.)Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com