Skip to content

fix(tensilelite): address AIHPBLAS-3868 characterization gaps - #12004

Draft
newling wants to merge 5 commits into
ROCm:users/davidd-amd/mut-v2-combined-godfilefrom
newling:users/newling/aihpblas-3868-review-fixes
Draft

fix(tensilelite): address AIHPBLAS-3868 characterization gaps#12004
newling wants to merge 5 commits into
ROCm:users/davidd-amd/mut-v2-combined-godfilefrom
newling:users/newling/aihpblas-3868-review-fixes

Conversation

@newling

@newling newling commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

JIRA ID : AIHPBLAS-3868

Motivation

TensileLite's configuration-driven tests exercise many GPU assembly-generation paths without requiring a GPU. The stack ending in #11970 increased that coverage, but most saved results recorded only the solution-derived kernel name and emitter return code. An emitted instruction could therefore change incorrectly without failing the corresponding test, while unrelated solution-state changes could still churn the saved kernel names.

The stack also admitted one unsupported MX scale layout until kernel emission, selected only the first problem group from multi-group YAML files without recording that choice, and contained repeated test code that generated the same kernels twice.

Technical Details

This PR follows #11970 and addresses the five findings from the stack review.

  • Config-driven saved results now include a digest of the emitted opcode set. This detects added, removed, or replaced instruction kinds while ignoring unstable register allocation and instruction ordering.
  • Rejection tests compare their exact diagnostic multisets instead of saving only a zero solution count.
  • Unsupported WMMA_V3 in-memory-swizzled MX local reads are rejected during solution derivation. A defensive runtime check remains for callers that bypass derivation.
  • Set-cover cases record an explicit BenchmarkProblems index in their parameter lists and test names.
  • Shared helpers run each ordinary configuration once, removing 36 duplicate generation passes and repeated assertion code.
  • The coverage rebaseline documents every historical reduction and updates three reproduced floors after removing invalid pre-exception coverage.

Test Plan

Run the changed TensileLite unit and configuration-driven characterization tests, the complete characterization suite under coverage, the strict YAML corpus check, and the per-file coverage gate. Automated GitHub checks must provide the final gfx1250 compiler coverage.

Test Result

  • Changed test selection: 267 passed.
  • Current-develop merge-tree codegen suite: 416 passed, 1 expected failure, 1 unexpected pass.
  • Full characterization coverage: 3,256 passed, 2 expected failures, 1 unexpected pass; 891 saved results passed.
  • Strict YAML corpus: 419 passed.
  • Per-file coverage gate: passed.
  • Flake8 and diff whitespace checks: passed.
  • Full local unit coverage could not complete because the installed ROCm 7.1 device libraries do not support gfx1250. Automated GitHub checks are pending.

Submission Checklist

Risk level

Medium (3/5): the production change rejects one unsupported gfx1250 MX layout earlier in solution derivation. Valid layouts are unchanged, but the generator path and a broad set of saved characterization results require gfx1250 validation in automated GitHub checks.

@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@                            Coverage Diff                            @@
##           users/davidd-amd/mut-v2-combined-godfile   #12004   +/-   ##
=========================================================================
  Coverage                                     70.67%   70.68%           
=========================================================================
  Files                                          2810     2810           
  Lines                                        462487   462487           
  Branches                                      68090    68090           
=========================================================================
+ Hits                                         326859   326866    +7     
+ Misses                                       112070   112066    -4     
+ Partials                                      23558    23555    -3     
Flag Coverage Δ *Carryforward flag
TensileLite-CPP 46.45% <ø> (ø) Carriedforward from c9a14dc
TensileLite-Unit 76.94% <ø> (ø) Carriedforward from c9a14dc
hipBLAS 90.62% <ø> (ø) Carriedforward from c9a14dc
hipBLASLt 35.27% <ø> (+0.03%) ⬆️
hipCUB 82.68% <ø> (ø) Carriedforward from c9a14dc
hipDNN 87.02% <ø> (ø) Carriedforward from c9a14dc
hipFFT 42.66% <ø> (ø) Carriedforward from c9a14dc
hipRAND 76.12% <ø> (ø) Carriedforward from c9a14dc
hipSOLVER 68.92% <ø> (ø) Carriedforward from c9a14dc
hipSPARSE 86.99% <ø> (ø) Carriedforward from c9a14dc
rocBLAS 48.31% <ø> (ø) Carriedforward from c9a14dc
rocFFT 51.72% <ø> (ø) Carriedforward from c9a14dc
rocRAND 56.90% <ø> (ø) Carriedforward from c9a14dc
rocSOLVER 76.83% <ø> (ø) Carriedforward from c9a14dc
rocSPARSE 74.61% <ø> (ø) Carriedforward from c9a14dc
rocThrust 91.60% <ø> (ø) Carriedforward from c9a14dc

*This pull request uses carry forward flags. Click here to find out more.

Files with missing lines Coverage Δ
...blaslt/tensilelite/Tensile/Components/LocalRead.py 56.05% <ø> (ø)
...lt/tensilelite/Tensile/SolutionStructs/Solution.py 59.17% <ø> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant