Skip to content

style: rustfmt matmul_nbits, which is failing CI on main - #1144

Merged
justinchuby merged 1 commit into
mainfrom
squad/leon-fmt-repair-1144
Aug 17, 2026
Merged

justinchuby merged 1 commit into
mainfrom
squad/leon-fmt-repair-1144

Conversation

@justinchuby

Copy link
Copy Markdown
Owner

main fails Check formatting in both the Fast (Linux x86_64) and Rust quality jobs (run 32069727921), so every open PR inherits a red CI through the merge commit.

This is cargo fmt --all output and nothing else — an over-indented .expect(...) continuation and an eprintln! that fits on one line, both inside mod tests in crates/onnx-runtime-ep-cpu/src/kernels/matmul_nbits.rs.

$ git diff --stat
 crates/onnx-runtime-ep-cpu/src/kernels/matmul_nbits.rs | 24 ++++++++++--------
 1 file changed, 11 insertions(+), 13 deletions(-)

$ git diff -w --stat      # ignoring whitespace
 crates/onnx-runtime-ep-cpu/src/kernels/matmul_nbits.rs | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)   # one joined eprintln! line

No code path changes. Verified: cargo fmt --all -- --check clean, cargo check -p onnx-runtime-ep-cpu --tests builds.

The file belongs to Roy's #1138 / ARM MatMulNBits work; this touches only rustfmt output there and not that investigation.

`main` fails `Check formatting` in both the `Fast` and `Rust quality` jobs, so
every open PR inherits a red CI. This is `cargo fmt --all` output and nothing
else: an over-indented `.expect(...)` continuation and an `eprintln!` that fits
on one line, both inside `mod tests`.

`git diff -w` is a single joined `eprintln!` line, so no code path changes.

Formatting only, in a file Roy owns for the #1138 / ARM MatMulNBits work — this
does not touch that investigation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@codecov

codecov Bot commented Aug 17, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.95%. Comparing base (c62798b) to head (f5d07d4).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1144      +/-   ##
==========================================
- Coverage   80.47%   79.95%   -0.53%     
==========================================
  Files         368      368              
  Lines      160934   160931       -3     
  Branches   160934   160931       -3     
==========================================
- Hits       129517   128666     -851     
- Misses      26691    27543     +852     
+ Partials     4726     4722       -4     
Flag Coverage Δ
cli-ort-linux 83.79% <ø> (ø)
cli-ort-windows ?
mlas 85.67% <ø> (-0.14%) ⬇️
offline 79.70% <ø> (-0.56%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...es/onnx-runtime-ep-cpu/src/kernels/matmul_nbits.rs 75.91% <ø> (-5.73%) ⬇️

... and 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@justinchuby
justinchuby merged commit 857dc8b into main Aug 17, 2026
13 of 18 checks passed
@justinchuby
justinchuby deleted the squad/leon-fmt-repair-1144 branch August 17, 2026 22:20
@github-actions

Copy link
Copy Markdown

🔴 Benchmark Regression Detected

Comparison of criterion micro-benchmarks: PR head vs merge-base, measured on the same runner in the same job (base first → PR second).

ℹ️ Absolute times are informational only — they vary with runner load. The % change column is the reliable signal because both sides ran under identical conditions.

Status Scenario Base PR Change
🔴 matmul/medium_generic_f32_threads=8/32x512x512 953.23 µs 1.97 ms +106.9%
🔴 block_quantized_matmul_cached_dense/mxfp4_uncached_dequant_each_call/1x1024x1024 499.62 µs 752.76 µs +50.7%
🔴 matmul/small_generic_bf16_threads=8/1x256x256 30.26 µs 41.95 µs +38.6%
🔴 matmul/medium_generic_f16_threads=8/32x512x512 27.62 µs 37.02 µs +34.1%
🔴 kv_cache/alloc_dealloc_pages 36.23 µs 48.09 µs +32.7%
🔴 matmul/medium_generic_f32_threads=1/32x512x512 2.15 ms 2.82 ms +31.5%
🔴 block_quantized_matmul_cached_dense/mxfp4_cached_dense_repeated_call/1x1024x1024 40.54 µs 53.30 µs +31.5%
🔴 matmul/large_generic_bf16_threads=8/32x1024x1024 1.28 ms 1.67 ms +30.3%
⚠️ matmul/medium_generic_bf16_threads=8/32x512x512 371.58 µs 480.05 µs +29.2%
⚠️ add/large_bf16_threads=1-internal/4194304 1.63 ms 2.05 ms +25.8%
⚠️ logit_processing/seven_processor_chain_per_step 296.66 µs 370.50 µs +24.9%
⚠️ matmul/medium_generic_f16_threads=1/32x512x512 28.65 µs 34.56 µs +20.6%
⚠️ gather/large_f16_threads=1-internal/131072 10.65 µs 12.84 µs +20.6%
⚠️ matmul/large_generic_f16_threads=8/32x1024x1024 78.09 µs 93.32 µs +19.5%
⚠️ qwen3_sampling_processors/top_k_top_p_fast 607.08 µs 723.06 µs +19.1%
⚠️ matmul/small_generic_f16_threads=8/1x256x256 28.29 µs 33.36 µs +17.9%
⚠️ reduce_mean/small_f32_threads=1-internal/4096 14.75 µs 17.08 µs +15.7%
✅ grammar_masking/llguidance_compute_mask/32 68.49 µs 78.69 µs +14.9%
✅ gather/medium_bf16_threads=1-internal/32768 2.31 µs 2.55 µs +10.5%
✅ qwen3_sampling_processors/top_k_top_p_full_sort_baseline 5.20 ms 5.60 ms +7.6%
✅ qwen3_sampling_processors/top_k_partial_selection 129.17 µs 138.25 µs +7.0%
✅ matmul/large_generic_f16_threads=1/32x1024x1024 81.05 µs 86.21 µs +6.4%
✅ matmul/large_generic_f32_threads=1/32x1024x1024 8.65 ms 9.19 ms +6.2%
✅ matmul/large_generic_bf16_threads=1/32x1024x1024 1.83 ms 1.95 ms +6.1%
✅ gather/large_f32_threads=1-internal/131072 28.30 µs 29.93 µs +5.8%
✅ add/large_f16_threads=1-internal/4194304 1.66 ms 1.74 ms +5.2%
✅ reduce_mean/medium_f32_threads=1-internal/65536 249.69 µs 260.12 µs +4.2%
✅ matmul/small_generic_bf16_threads=1/1x256x256 28.69 µs 29.85 µs +4.0%
✅ add/large_f32_threads=1-internal/4194304 772.28 µs 797.78 µs +3.3%
✅ block_quantized_moe_cached_dense/mxfp4_uncached_expert_dequant_each_call/rows=1,H=256,I=256,E=4,top_k=1 426.86 µs 437.62 µs +2.5%
✅ matmul/medium_generic_bf16_threads=1/32x512x512 560.85 µs 572.54 µs +2.1%
✅ qwen3_sampling_processors/top_k_full_sort_baseline 1.99 ms 2.02 ms +1.5%
✅ qwen3_sampling_processors/top_p_full_sort_after_top_k_baseline 3.22 ms 3.27 ms +1.5%
✅ sampling_latency/top_k_per_token 48.55 µs 49.21 µs +1.4%
✅ tokenization/encode_tokens_per_second 348.77 µs 352.48 µs +1.1%
✅ tokenization/decode_tokens_per_second 5.80 ms 5.84 ms +0.7%
✅ gather/medium_f16_threads=1-internal/32768 2.55 µs 2.56 µs +0.6%
✅ sampling_latency/min_p_per_token 193.30 µs 193.50 µs +0.1%
✅ block_quantized_moe_cached_dense/mxfp4_cached_dense_expert_repeated_call/rows=1,H=256,I=256,E=4,top_k=1 154.61 µs 154.68 µs +0.0%
✅ sampling_latency/top_p_per_token 357.56 µs 356.87 µs -0.2%
✅ add/medium_bf16_threads=1-internal/262144 104.47 µs 104.22 µs -0.2%
✅ matmul/small_generic_f16_threads=1/1x256x256 29.13 µs 28.80 µs -1.1%
✅ matmul/large_generic_f32_threads=8/32x1024x1024 4.31 ms 4.25 ms -1.4%
✅ gather/small_bf16_threads=1-internal/4096 517.3 ns 506.1 ns -2.2%
✅ sampling_latency/greedy_per_token 3.05 µs 2.99 µs -2.2%
✅ matmul/small_generic_f32_threads=8/1x256x256 32.29 µs 31.30 µs -3.1%
✅ add/medium_f16_threads=1-internal/262144 106.53 µs 102.36 µs -3.9%
✅ gather/small_f32_threads=1-internal/4096 703.1 ns 669.9 ns -4.7%
✅ qwen3_sampling_processors/top_p_fast_after_top_k 526.18 µs 500.33 µs -4.9%
✅ gather/medium_f32_threads=1-internal/32768 4.27 µs 4.02 µs -5.9%
✅ add/medium_f32_threads=1-internal/262144 24.41 µs 22.62 µs -7.3%
✅ add/small_f16_threads=1-internal/1024 457.1 ns 411.5 ns -10.0%
✅ add/small_f32_threads=1-internal/1024 205.9 ns 181.3 ns -11.9%
✅ add/small_bf16_threads=1-internal/1024 461.7 ns 403.8 ns -12.5%
✅ reduce_mean/large_f32_threads=1-internal/262144 1.15 ms 1.00 ms -13.0%
✅ gather/large_bf16_threads=1-internal/131072 13.01 µs 11.21 µs -13.8%
✅ block_quantized_matmul_cached_dense/mxfp4_preexpanded_dense_oncelock_like_proxy/1x1024x1024 48.68 µs 41.39 µs -15.0%
🟢 matmul/small_generic_f32_threads=1/1x256x256 41.58 µs 33.88 µs -18.5%
🟢 gather/small_f16_threads=1-internal/4096 585.6 ns 476.0 ns -18.7%

Visual flags: ⚠️ ≥ 15% slower, 🔴 ≥ 30% slower — calibrated against measured runner noise (~27% worst-case on multi-threaded matmul)

Host info
CPU: Apple M1 (Virtual)
Cores: 3
OS: Darwin 25.5.0 arm64
Rust: rustc 1.97.1 (8bab26f4f 2026-07-14)
Load avg: { 2.55 3.37 6.47 }
What this cannot catch
  • Regressions in code paths not covered by these benchmarks (e.g., end-to-end decode with a real model)
  • Sub-threshold regressions that compound over multiple PRs
  • Performance changes that only manifest under GPU execution
  • Latency changes in the ORT integration path (these benchmarks exercise the native Rust kernels)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant