Skip to content

[hipblaslt][hipsparselt] Removed AssertFree1DivByMT1LowbitGT1, KRingShift, AssertKRingShiftTailWrapOnly, BAddrInterleave#7513

Merged
eidenyoshida merged 3 commits into
developfrom
users/yenong-amd/remove_AssertFree1DivByMTLowbitGT1
May 15, 2026
Merged

[hipblaslt][hipsparselt] Removed AssertFree1DivByMT1LowbitGT1, KRingShift, AssertKRingShiftTailWrapOnly, BAddrInterleave#7513
eidenyoshida merged 3 commits into
developfrom
users/yenong-amd/remove_AssertFree1DivByMTLowbitGT1

Conversation

@yenong-amd
Copy link
Copy Markdown
Contributor

@yenong-amd yenong-amd commented May 15, 2026

Summary

Downstream hipSPARSELt / TensileCreateLibrary builds broke after #7443 (Manual revert KRingShift) because TensileLite stopped understanding several Assert* / KRingShift fields that were still present in checked-in Tensile logic YAML. This PR removes those stale keywords from the affected hipBLASLt and hipSPARSELt logic files so parsing matches the reverted Python behavior.

Root cause (what broke)

  • #7443 removed handlers in projects/hipblaslt/tensilelite/Tensile/Contractions.py for keys such as AssertFree1DivByMT1LowbitGT1, AssertKRingShiftTailWrapOnly, and related KRingShift / BAddrInterleave plumbing.
  • Shipped YAML under projects/hipsparselt/.../Tensile/Logic/... (e.g. gfx950 / gfx942) and projects/hipblaslt/.../Tensile/Logic/... (e.g. gfx1250 GridBased) still contained those fields.
  • TensileCreateLibrary then hit RuntimeError: Unknown assertion key: AssertFree1DivByMT1LowbitGT1 (and would be vulnerable to the next unknown key if only partially cleaned).

So the regression was YAML ↔ parser skew after the revert, not the drop Docker image or venv.

What this PR does

  • hipSPARSELt: strips AssertFree1DivByMT1LowbitGT1, KRingShift, AssertKRingShiftTailWrapOnly, BAddrInterleave from the Equality logic YAMLs under aquavanjaram/gfx942 and gfx950 (the paths exercised by gfx942;gfx950 builds).
  • hipBLASLt: same cleanup on the 8 gfx1250 GridBased logic YAMLs that still carried those keys.

No change to kernel math here—this aligns on-disk logic with the post-#7443 TensileLite parser.

How we know it’s fixed

  • Math CI: hipblaslt-drop-build #117 completed SUCCESS with a ROCM_LIBS_REF that includes this fix, exercising hipBLASLt + hipSPARSELt with gfx942;gfx950 (full drop-style lane).
  • This PR’s presubmit: touches projects/hipsparselt/** (and hipBLASLt logic), so TheRock runs the hipSPARSELt / sparselt workstream for this change—not only blas—which directly exercises TensileCreateLibrary on the updated YAML.
  • PR tag: includes [project:hipsparselt] so hipSPARSELt is built and tested on this PR alongside hipBLASLt, not only after merge.

CI coverage context (why #7443 slipped)

  • #7519 — documents that hipBLASLt-only PRs previously did not reliably pull hipSPARSELt into the TheRock matrix, so [hipblaslt] Manual revert KRingShift #7443 could merge green while still breaking downstream hipSPARSELt / drop builds.
  • #7514 — follow-up to wire projects/hipblaslt/** so sparselt runs when hipBLASLt changes, closing that gap long-term (orthogonal to this YAML fix, but related).

Checklist

  • Confirm no remaining AssertFree1DivByMT1LowbitGT1 / stray KRingShift keys in the touched trees (git grep on the branch).
  • After merge, spot-check TheRock + optional hipblaslt-drop-build on develop.

yenong-amd and others added 2 commits May 15, 2026 10:28
Remove all instances of the AssertFree1DivByMT1LowbitGT1 keyword from
8 GridBased Tensile logic yaml files for gfx1250.

Co-authored-by: Cursor <cursoragent@cursor.com>
…WrapOnly, BAddrInterleave from gfx942 and gfx950 yaml files

Co-authored-by: Cursor <cursoragent@cursor.com>
… gfx1250 GridBased yaml files

Remove all instances of these unsupported keywords from 8 GridBased
Tensile logic yaml files for gfx1250.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copy link
Copy Markdown
Contributor

@nakajee nakajee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change looks good.
Please make sure no CI fail in hipblaslt/hipsparselt.

@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

❌ Your project status has failed because the head coverage (69.24%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #7513      +/-   ##
===========================================
- Coverage    66.24%   66.24%   -0.00%     
===========================================
  Files         1605     1606       +1     
  Lines       267473   267985     +512     
  Branches     37300    37395      +95     
===========================================
+ Hits        177180   177516     +336     
- Misses       75456    75571     +115     
- Partials     14837    14898      +61     
Flag Coverage Δ *Carryforward flag
hipBLAS 90.65% <ø> (ø) Carriedforward from 13b9eec
hipBLASLt 41.19% <ø> (+0.95%) ⬆️
hipCUB 82.21% <ø> (ø) Carriedforward from 13b9eec
hipDNN 85.47% <ø> (ø) Carriedforward from 13b9eec
hipFFT 50.47% <ø> (ø) Carriedforward from 13b9eec
hipSOLVER 69.24% <ø> (ø) Carriedforward from 13b9eec
hipSPARSE 85.37% <ø> (ø) Carriedforward from 13b9eec
rocBLAS 48.11% <ø> (ø) Carriedforward from 13b9eec
rocFFT 48.80% <ø> (ø) Carriedforward from 13b9eec
rocRAND 57.02% <ø> (ø) Carriedforward from 13b9eec
rocSPARSE 72.47% <ø> (ø) Carriedforward from 13b9eec

*This pull request uses carry forward flags. Click here to find out more.
see 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@eidenyoshida
Copy link
Copy Markdown
Collaborator

Override merge with below justification:
"Based on our testing, both with TheRock within this PR and separately with MathCi, we believe this PR is the fix needed to unblock the current build issues. I believe bypassing the normal approval in this case is warranted. --Tony Davis"

@eidenyoshida eidenyoshida merged commit 3d30b46 into develop May 15, 2026
50 checks passed
@eidenyoshida eidenyoshida deleted the users/yenong-amd/remove_AssertFree1DivByMTLowbitGT1 branch May 15, 2026 22:49
assistant-librarian Bot pushed a commit to ROCm/hipBLASLt that referenced this pull request May 15, 2026
[hipblaslt][hipsparselt] Removed
 AssertFree1DivByMT1LowbitGT1, KRingShift, AssertKRingShiftTailWrapOnly,
 BAddrInterleave (#7513)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

## Summary

Downstream **hipSPARSELt** / **TensileCreateLibrary** builds broke after
**[#7443](ROCm/rocm-libraries#7443 (*Manual
revert KRingShift*) because **TensileLite** stopped understanding
several **Assert\*** / **KRingShift** fields that were **still present**
in checked-in **Tensile logic YAML**. This PR **removes those stale
keywords** from the affected **hipBLASLt** and **hipSPARSELt** logic
files so parsing matches the reverted **Python** behavior.

## Root cause (what broke)

- **[#7443](ROCm/rocm-libraries#7443 removed
handlers in `projects/hipblaslt/tensilelite/Tensile/Contractions.py` for
keys such as **`AssertFree1DivByMT1LowbitGT1`**,
**`AssertKRingShiftTailWrapOnly`**, and related **KRingShift** /
**BAddrInterleave** plumbing.
- Shipped **YAML** under
**`projects/hipsparselt/.../Tensile/Logic/...`** (e.g. **gfx950** /
**gfx942**) and **`projects/hipblaslt/.../Tensile/Logic/...`** (e.g.
**gfx1250** GridBased) still contained those fields.
- **TensileCreateLibrary** then hit **`RuntimeError: Unknown assertion
key: AssertFree1DivByMT1LowbitGT1`** (and would be vulnerable to the
next unknown key if only partially cleaned).

So the regression was **YAML ↔ parser skew** after the revert, not the
drop Docker image or venv.

## What this PR does

- **hipSPARSELt:** strips **`AssertFree1DivByMT1LowbitGT1`**,
**`KRingShift`**, **`AssertKRingShiftTailWrapOnly`**,
**`BAddrInterleave`** from the **Equality** logic YAMLs under
**`aquavanjaram/gfx942`** and **`gfx950`** (the paths exercised by
**gfx942;gfx950** builds).
- **hipBLASLt:** same cleanup on the **8** **`gfx1250` GridBased** logic
YAMLs that still carried those keys.

No change to kernel math here—this aligns **on-disk logic** with the
**post-#7443** **TensileLite** parser.

## How we know it’s fixed

- **Math CI:** **[hipblaslt-drop-build
#117](https://math-ci.amd.com/job/image-builder/job/hipblaslt-drop-build/117/)**
completed **SUCCESS** with a **`ROCM_LIBS_REF`** that includes this fix,
exercising **hipBLASLt** + **hipSPARSELt** with **gfx942;gfx950** (full
drop-style lane).
- **This PR’s presubmit:** touches `projects/hipsparselt/**` (and
**hipBLASLt** logic), so **TheRock** runs the **hipSPARSELt** /
**sparselt** workstream for this change—not only **blas**—which directly
exercises **TensileCreateLibrary** on the updated YAML.
- **PR tag:** includes **`[project:hipsparselt]`** so **hipSPARSELt** is
**built and tested** on this PR alongside **hipBLASLt**, not only after
merge.

## CI coverage context (why #7443 slipped)

- **[#7519](ROCm/rocm-libraries#7519 —
documents that **hipBLASLt-only** PRs previously did **not** reliably
pull **hipSPARSELt** into the **TheRock** matrix, so **#7443** could
merge green while still breaking downstream **hipSPARSELt** / drop
builds.
- **[#7514](ROCm/rocm-libraries#7514 —
follow-up to wire **`projects/hipblaslt/**`** so **`sparselt`** runs
when **hipBLASLt** changes, closing that gap long-term (orthogonal to
this YAML fix, but related).

## Checklist

- [ ] Confirm no remaining **`AssertFree1DivByMT1LowbitGT1`** / stray
**KRingShift** keys in the touched trees (`git grep` on the branch).
- [ ] After merge, spot-check **TheRock** + optional
**hipblaslt-drop-build** on **`develop`**.
vuksan314 added a commit that referenced this pull request May 19, 2026
… YAMLs

Align with #7513 which removed these reverted Tensile keys from
gfx950/gfx942/gfx1250 logic files.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
aledudek pushed a commit that referenced this pull request May 20, 2026
…hift, AssertKRingShiftTailWrapOnly, BAddrInterleave (#7513)

## Summary

Downstream **hipSPARSELt** / **TensileCreateLibrary** builds broke after
**[#7443](#7443 (*Manual
revert KRingShift*) because **TensileLite** stopped understanding
several **Assert\*** / **KRingShift** fields that were **still present**
in checked-in **Tensile logic YAML**. This PR **removes those stale
keywords** from the affected **hipBLASLt** and **hipSPARSELt** logic
files so parsing matches the reverted **Python** behavior.

## Root cause (what broke)

- **[#7443](#7443 removed
handlers in `projects/hipblaslt/tensilelite/Tensile/Contractions.py` for
keys such as **`AssertFree1DivByMT1LowbitGT1`**,
**`AssertKRingShiftTailWrapOnly`**, and related **KRingShift** /
**BAddrInterleave** plumbing.
- Shipped **YAML** under
**`projects/hipsparselt/.../Tensile/Logic/...`** (e.g. **gfx950** /
**gfx942**) and **`projects/hipblaslt/.../Tensile/Logic/...`** (e.g.
**gfx1250** GridBased) still contained those fields.
- **TensileCreateLibrary** then hit **`RuntimeError: Unknown assertion
key: AssertFree1DivByMT1LowbitGT1`** (and would be vulnerable to the
next unknown key if only partially cleaned).

So the regression was **YAML ↔ parser skew** after the revert, not the
drop Docker image or venv.

## What this PR does

- **hipSPARSELt:** strips **`AssertFree1DivByMT1LowbitGT1`**,
**`KRingShift`**, **`AssertKRingShiftTailWrapOnly`**,
**`BAddrInterleave`** from the **Equality** logic YAMLs under
**`aquavanjaram/gfx942`** and **`gfx950`** (the paths exercised by
**gfx942;gfx950** builds).
- **hipBLASLt:** same cleanup on the **8** **`gfx1250` GridBased** logic
YAMLs that still carried those keys.

No change to kernel math here—this aligns **on-disk logic** with the
**post-#7443** **TensileLite** parser.

## How we know it’s fixed

- **Math CI:** **[hipblaslt-drop-build
#117](https://math-ci.amd.com/job/image-builder/job/hipblaslt-drop-build/117/)**
completed **SUCCESS** with a **`ROCM_LIBS_REF`** that includes this fix,
exercising **hipBLASLt** + **hipSPARSELt** with **gfx942;gfx950** (full
drop-style lane).
- **This PR’s presubmit:** touches `projects/hipsparselt/**` (and
**hipBLASLt** logic), so **TheRock** runs the **hipSPARSELt** /
**sparselt** workstream for this change—not only **blas**—which directly
exercises **TensileCreateLibrary** on the updated YAML.
- **PR tag:** includes **`[project:hipsparselt]`** so **hipSPARSELt** is
**built and tested** on this PR alongside **hipBLASLt**, not only after
merge.

## CI coverage context (why #7443 slipped)

- **[#7519](#7519 —
documents that **hipBLASLt-only** PRs previously did **not** reliably
pull **hipSPARSELt** into the **TheRock** matrix, so **#7443** could
merge green while still breaking downstream **hipSPARSELt** / drop
builds.
- **[#7514](#7514 —
follow-up to wire **`projects/hipblaslt/**`** so **`sparselt`** runs
when **hipBLASLt** changes, closing that gap long-term (orthogonal to
this YAML fix, but related).

## Checklist

- [ ] Confirm no remaining **`AssertFree1DivByMT1LowbitGT1`** / stray
**KRingShift** keys in the touched trees (`git grep` on the branch).
- [ ] After merge, spot-check **TheRock** + optional
**hipblaslt-drop-build** on **`develop`**.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
bnemanich added a commit that referenced this pull request May 20, 2026
CI hipBLASLt build on PR #7636 fails with:

  RuntimeError: Unknown assertion key: AssertFree1DivByMT1LowbitGT1

at `Contractions.py:ProblemPredicate.FromOriginalKeyPair` while
`parseLibraryLogicData` walks a gfx950 logic YAML.

Root cause: PR #7443 ("manual revert KRingShift") removed the parser
handlers for `AssertFree1DivByMT1LowbitGT1` /
`AssertKRingShiftTailWrapOnly`, and PR #7513 cleaned the matching
keys out of the hipBLASLt / hipSPARSELt library logic YAML files.
Both reverts are in our branch's history, but origin/develop has new
gfx950 logic YAMLs (e.g. `gfx950/gfx950_128cu/Equality/
gfx950_Cijk_Alik_Bljk_HHS_BH_BiasSH_HAS_SAV_UserArgs.yaml`, added by
#7125 "update cucount") that were generated *before* the revert pair
and therefore still carry the deprecated keys. When CI merges our
branch with origin/develop the merged tree contains a YAML the
parser can no longer read.

Fix: silently ignore the two deprecated keys in
`ProblemPredicate.FromOriginalKeyPair`. Matches the spirit of the
revert + cleanup pair without requiring follow-up YAML cleanup in
develop, and is forward-compatible against any future stale YAML
that slips through the same gap. Genuinely unknown `Assert*` keys
still raise loudly.

New unit tests in `test_Contractions_deprecated_asserts.py` pin the
silent-ignore behavior for the two specific keys, verify that
unrecognized `Assert*` keys still raise, and check that the existing
known `AssertFree0/1ElementMultiple` + `AssertSummationElementMultiple`
predicate path is unaffected.

Validation: - new tests: 7 passed
  - full unit suite: 828 passed, 5 skipped, 2 xfailed (was 821 passed)
  - end-to-end smoke: drove `FromOriginalKeyPair` on a representative
    stale-key entry set; no `RuntimeError` raised; recognized keys
    still produce real predicates.
Co-authored-by: Cursor <cursoragent@cursor.com>
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.

5 participants