Skip to content

Revert "fix(tensilelite): use the 1024-byte LDS granularity on gfx11 … - #11672

Merged
tony-davis merged 1 commit into
developfrom
users/bpoursar/revert_10078
Sep 3, 2026
Merged

tony-davis merged 1 commit into
developfrom
users/bpoursar/revert_10078

Conversation

@babakpst

@babakpst babakpst commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

This reverts commit fd61638 - PR #10078

Motivation

hipblaslt build failed on gfx1250 with this PR.

Technical Details

ldsGranularity exception error observed with this PR.

Test Plan

Build hipblalslt.
Running hipblaslt CI tests.

Test Result

Build was successful after revert.

@therock-pr-bot

therock-pr-bot Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

therock-pr-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

@tony-davis
tony-davis merged commit bcbca07 into develop Sep 3, 2026
70 of 87 checks passed
@tony-davis
tony-davis deleted the users/bpoursar/revert_10078 branch September 3, 2026 18:36
@codecov

codecov Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

❌ Your project status has failed because the head coverage (35.22%) 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   #11672      +/-   ##
===========================================
- Coverage    64.11%   64.11%   -0.00%     
===========================================
  Files         2826     2826              
  Lines       469837   469834       -3     
  Branches     69389    69389              
===========================================
- Hits        301192   301189       -3     
  Misses      147536   147536              
  Partials     21109    21109              
Flag Coverage Δ *Carryforward flag
TensileLite-CPP 38.59% <ø> (ø)
TensileLite-Unit 75.55% <100.00%> (ø)
hipBLAS 90.62% <ø> (ø) Carriedforward from dd749e5
hipBLASLt 35.22% <ø> (ø)
hipCUB 82.68% <ø> (ø) Carriedforward from dd749e5
hipDNN 86.94% <ø> (-<0.01%) ⬇️ Carriedforward from dd749e5
hipFFT 42.66% <ø> (ø) Carriedforward from dd749e5
hipRAND 76.12% <ø> (ø) Carriedforward from dd749e5
hipSOLVER 68.92% <ø> (ø) Carriedforward from dd749e5
hipSPARSE 86.99% <ø> (ø) Carriedforward from dd749e5
rocBLAS 0.28% <ø> (ø) Carriedforward from dd749e5
rocFFT 51.25% <ø> (ø) Carriedforward from dd749e5
rocRAND 56.92% <ø> (ø) Carriedforward from dd749e5
rocSOLVER 76.83% <ø> (ø) Carriedforward from dd749e5
rocSPARSE 74.61% <ø> (ø) Carriedforward from dd749e5
rocThrust 91.60% <ø> (ø) Carriedforward from dd749e5

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

Files with missing lines Coverage Δ
...blaslt/tensilelite/Tensile/KernelWriterAssembly.py 70.08% <100.00%> (ø)
🚀 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.

@assistant-librarian

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

mgehre-amd added a commit that referenced this pull request Sep 9, 2026
archCaps has two independent producers: rocisa's hardware_caps.hpp and
stinkytofu's python_module/src/HardwareCaps.cpp, reached through
rocisa_stinkytofu_adaptor when ROCISA_BACKEND=stinkytofu. #10078 added
LdsGranularity to the first only, so any build served by the stinkytofu
provider got a fully populated archCaps missing exactly that key, and
getOccupancy died with KeyError: 'LdsGranularity' in globalWriteElementBatch.
That is what got #10078 reverted in #11672.

The reverted build's own capability dump is the evidence: it lists DeviceLDS
but neither CacheLineBytes nor NumXCD, and those two exist only in rocisa's
initArchCaps (added 2026-07-24, well before that build). The table is a union
over every probed ISA, so their absence identifies stinkytofu as the provider.
No stale rocisa binary is involved -- a clean build fails the same way.

Because the stinkytofu provider probes comgr against the target ISA name and
ignores the host GPU, this reproduces on any machine with -DGPU_TARGETS=gfx1250;
the hardware is not needed.

Changes:
- The expression matches rocisa's exactly, so both providers stay in lock-step;
  verified by linking initArchCaps and dumping it (gfx11 -> 1024, gfx942/gfx950/
  gfx1030/gfx1201/gfx1250 -> 256).
- Tests pin it on both sides of the adaptor: presence in the adaptor's dynamic
  caps test, and the gfx1250 value in the comgr cap table test, so a future cap
  added to one provider and not the other fails here rather than in codegen.
mgehre-amd added a commit that referenced this pull request Sep 9, 2026
…fu table

regCaps has two independent producers: rocisa's hardware_caps.hpp and
stinkytofu's python_module/src/HardwareCaps.cpp, reached through
rocisa_stinkytofu_adaptor when ROCISA_BACKEND=stinkytofu. The preceding commit
raised PhysicalMaxSgpr to 2048 on gfx11 in the first only; this brings the
second in line so the two cannot disagree about the same key.

Changes:
- The expression matches rocisa's exactly, so both providers stay in lock-step.
  This is the same drift class that got #10078 reverted in #11672 (a cap added
  to one provider and not the other).
- No behavioural effect today: STINKYTOFU_ALL_ARCHS is Gfx1250/Gfx1250v0 only
  (cmake/StinkytofuArchList.cmake), so HardwareCaps::query returns an empty
  result for every gfx11 triple and the new branch is unreachable until a gfx11
  backend exists. The change is for consistency, not to fix an observed failure.
- Tests can only pin the non-gfx11 branch on this side, for the same reason:
  test_comgr.py asserts the gfx1250 value stays 800 so the expression cannot be
  folded back to a flat constant, and the adaptor's dynamic caps test asserts
  the key is present. The gfx11 value stays covered on the rocisa side in
  Tensile/Tests/unit/test_occupancy.py.
- Not addressed here: stinkytofu also reports MaxWavesPerSimd = 10 for gfx11
  where rocisa reports 16. That is a separate pre-existing divergence and
  changing it would alter occupancy on the stinkytofu path.
mgehre-amd added a commit that referenced this pull request Sep 10, 2026
…fu table

regCaps has two independent producers: rocisa's hardware_caps.hpp and
stinkytofu's python_module/src/HardwareCaps.cpp, reached through
rocisa_stinkytofu_adaptor when ROCISA_BACKEND=stinkytofu. The preceding commit
raised PhysicalMaxSgpr to 2048 on gfx11 in the first only; this brings the
second in line so the two cannot disagree about the same key.

Changes:
- The expression matches rocisa's exactly, so both providers stay in lock-step.
  This is the same drift class that got #10078 reverted in #11672 (a cap added
  to one provider and not the other).
- No behavioural effect today: STINKYTOFU_ALL_ARCHS is Gfx1250/Gfx1250v0 only
  (cmake/StinkytofuArchList.cmake), so HardwareCaps::query returns an empty
  result for every gfx11 triple and the new branch is unreachable until a gfx11
  backend exists. The change is for consistency, not to fix an observed failure.
- Tests can only pin the non-gfx11 branch on this side, for the same reason:
  test_comgr.py asserts the gfx1250 value stays 800 so the expression cannot be
  folded back to a flat constant, and the adaptor's dynamic caps test asserts
  the key is present. The gfx11 value stays covered on the rocisa side in
  Tensile/Tests/unit/test_occupancy.py.
- Not addressed here: stinkytofu also reports MaxWavesPerSimd = 10 for gfx11
  where rocisa reports 16. That is a separate pre-existing divergence and
  changing it would alter occupancy on the stinkytofu path.
mgehre-amd added a commit that referenced this pull request Sep 11, 2026
…fu table

regCaps has two independent producers: rocisa's hardware_caps.hpp and
stinkytofu's python_module/src/HardwareCaps.cpp, reached through
rocisa_stinkytofu_adaptor when ROCISA_BACKEND=stinkytofu. The preceding commit
raised PhysicalMaxSgpr to 1696 on gfx11 in the first only; this brings the
second in line so the two cannot disagree about the same key.

Changes:
- The expression matches rocisa's exactly, so both providers stay in lock-step.
  This is the same drift class that got #10078 reverted in #11672 (a cap added
  to one provider and not the other).
- No behavioural effect today: STINKYTOFU_ALL_ARCHS is Gfx1250/Gfx1250v0 only
  (cmake/StinkytofuArchList.cmake), so HardwareCaps::query returns an empty
  result for every gfx11 triple and the new branch is unreachable until a gfx11
  backend exists. The change is for consistency, not to fix an observed failure.
- Tests can only pin the non-gfx11 branch on this side, for the same reason:
  test_comgr.py asserts the gfx1250 value stays 800 so the expression cannot be
  folded back to a flat constant, and the adaptor's dynamic caps test asserts
  the key is present. The gfx11 value stays covered on the rocisa side in
  Tensile/Tests/unit/test_occupancy.py.
- Not addressed here: stinkytofu also reports MaxWavesPerSimd = 10 for gfx11
  where rocisa reports 16. That is a separate pre-existing divergence and
  changing it would alter occupancy on the stinkytofu path.
mgehre-amd added a commit that referenced this pull request Sep 11, 2026
…fu table

regCaps has two independent producers: rocisa's hardware_caps.hpp and
stinkytofu's python_module/src/HardwareCaps.cpp, reached through
rocisa_stinkytofu_adaptor when ROCISA_BACKEND=stinkytofu. The preceding commit
raised PhysicalMaxSgpr to 1696 on gfx11 in the first only; this brings the
second in line so the two cannot disagree about the same key.

Changes:
- The expression matches rocisa's exactly, so both providers stay in lock-step.
  This is the same drift class that got #10078 reverted in #11672 (a cap added
  to one provider and not the other).
- No behavioural effect today: STINKYTOFU_ALL_ARCHS is Gfx1250/Gfx1250v0 only
  (cmake/StinkytofuArchList.cmake), so HardwareCaps::query returns an empty
  result for every gfx11 triple and the new branch is unreachable until a gfx11
  backend exists. The change is for consistency, not to fix an observed failure.
- Tests can only pin the non-gfx11 branch on this side, for the same reason:
  test_comgr.py asserts the gfx1250 value stays 800 so the expression cannot be
  folded back to a flat constant, and the adaptor's dynamic caps test asserts
  the key is present. The gfx11 value stays covered on the rocisa side in
  Tensile/Tests/unit/test_occupancy.py.
- Not addressed here: stinkytofu also reports MaxWavesPerSimd = 10 for gfx11
  where rocisa reports 16. That is a separate pre-existing divergence and
  changing it would alter occupancy on the stinkytofu path.
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.

4 participants