Skip to content

WIP: feat(tensilelite): Use StinkyTofu with Subtile.#9303

Draft
memmett wants to merge 8 commits into
developfrom
users/maemmett/subtile-stinkytofu
Draft

WIP: feat(tensilelite): Use StinkyTofu with Subtile.#9303
memmett wants to merge 8 commits into
developfrom
users/maemmett/subtile-stinkytofu

Conversation

@memmett

@memmett memmett commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

No description provided.

memmett and others added 8 commits July 10, 2026 23:09
…riter

Move rocIsaPass and StinkyTofu conversion logic from kernelBody() into
reusable helpers with no behavior change for classic or subtile kernels.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ubtile

Set _StinkySubtile on gfx1250 subtile solutions and run rocIsaPass plus a
minimal StinkyTofu pipeline in kernelBodySubtile. Add unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Emit PRELOOP/MAINLOOP/NGLL as loopBody and NLL as noLoadLoopBody so gfx1250
waitcnt region detection works without StinkyTofu converter changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
…itcnt

Attach LDS buffer tokens to GR/LR loads and barriers so gfx1250 subtile
kernels can pass MemTokenConsistencyCheck in the waitcnt-only pipeline.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose loopBody as a top-level kernel-body module so ST can detect
loopWithPrefetch, enable loop-carried token deps, and skip hand-rolled
vmcnt adjustment when the waitcnt-only pipeline owns synchronization.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose the tail loop as top-level noLoadLoopBody modules so Gfx1250
waitcnt insertion covers TAILLOOP and replaces hand-rolled tail waits.

Co-authored-by: Cursor <cursoragent@cursor.com>
…n passes

Centralize waitcnt-only StinkyTofu overrides and add asm checks that ST
does not double-insert cluster barriers or wait-alu while OptLevel 0
skips DAG rescheduling.

Co-authored-by: Cursor <cursoragent@cursor.com>
…is on

Let StinkyTofu own GR/LR waitcnt insertion for gfx1250 subtile kernels
by no-oping WaitGROp/WaitLROp emission while keeping scheduler deps.

Co-authored-by: Cursor <cursoragent@cursor.com>
@therock-pr-bot

therock-pr-bot Bot commented Jul 11, 2026

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
🌿 Branch Name ✅ Pass
📝 PR Title/Description ❌ Fail Error: Title does not follow Conventional Commits style.
Expected: start with a valid type (feat, fix, docs, …).
Desired format: type(optional-scope): short description
───
Error: PR description is too short (0 characters).
Expected: at least 30 characters.
Current: please provide a meaningful description of your changes
───
Error: PR description must reference a JIRA ID, ISSUE ID, or a GitHub closing keyword.
Expected: include a JIRA ID / ISSUE ID line (separator : or -, or omitted; value may be a JIRA key, a number with/without #, or a link), OR a closing keyword + issue reference. Accepted examples:
JIRA ID : TESTAUTO-6039
JIRA ID - #330
JIRA ID #330
ISSUE ID : TESTUTO-3334
ISSUE ID #3334
ISSUE ID - TESTAUTO-3433
ISSUE ID : https://github.com/<org_name>/<repo_name>/issues/1234
Closes #10
Fixes octo-org/octo-repo#100
Resolves: #123
#123
https://github.com/<org_name>/<repo_name>/issues/123
Current: no valid JIRA/ISSUE/closing-keyword reference found
Forbidden Files ✅ Pass
🧪 Unit Test ✅ Pass
🔎 pre-commit ✅ Pass
🚫 Draft PR 🔜 To Be Enabled
🚩 Feature Flag 🔜 To Be Enabled
📊 Code Coverage 🔜 To Be Enabled

⚠️ 1 policy check(s) failed. Please address the issues above before this PR can be Reviewed.

🚫 Please fix the failed policies

  • ❌ PR Title/Description

The Not ready to Review label was added to this PR. Once all policies pass, the label is removed automatically.

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

@therock-pr-bot

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Title/Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

@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 (76.92%) 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    #9303      +/-   ##
===========================================
+ Coverage    64.99%   65.00%   +0.01%     
===========================================
  Files         2685     2685              
  Lines       422183   422070     -113     
  Branches     62726    62719       -7     
===========================================
- Hits        274365   274339      -26     
+ Misses      127113   127026      -87     
  Partials     20705    20705              
Flag Coverage Δ *Carryforward flag
TensileLite 34.89% <ø> (+0.02%) ⬆️ Carriedforward from 1ee3fb5
hipBLAS 90.81% <ø> (ø) Carriedforward from 1ee3fb5
hipBLASLt 34.69% <ø> (ø)
hipCUB 82.68% <ø> (ø) Carriedforward from 1ee3fb5
hipDNN 86.12% <ø> (ø) Carriedforward from 1ee3fb5
hipFFT 50.88% <ø> (ø) Carriedforward from 1ee3fb5
hipRAND 76.12% <ø> (ø) Carriedforward from 1ee3fb5
hipSOLVER 69.18% <ø> (ø) Carriedforward from 1ee3fb5
hipSPARSE 86.10% <ø> (ø) Carriedforward from 1ee3fb5
rocBLAS 47.91% <ø> (ø) Carriedforward from 1ee3fb5
rocFFT 50.80% <ø> (ø) Carriedforward from 1ee3fb5
rocRAND 57.02% <ø> (ø) Carriedforward from 1ee3fb5
rocSOLVER 76.92% <ø> (ø) Carriedforward from 1ee3fb5
rocSPARSE 72.37% <ø> (ø) Carriedforward from 1ee3fb5
rocThrust 91.36% <ø> (ø) Carriedforward from 1ee3fb5

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

Files with missing lines Coverage Δ
...elite/Tensile/Components/Subtile/ClusterBarrier.py 95.52% <ø> (ø)
...e/Tensile/Components/Subtile/InstructionEmitter.py 96.25% <ø> (-0.03%) ⬇️
...Tensile/Components/Subtile/InstructionScheduler.py 88.02% <ø> (-0.03%) ⬇️
...t/tensilelite/Tensile/Components/Subtile/Kernel.py 61.84% <ø> (+1.43%) ⬆️
...ite/Tensile/Components/Subtile/LogicalScheduler.py 87.31% <ø> (+0.01%) ⬆️
...lelite/Tensile/Components/Subtile/SubtileGREmit.py 58.38% <ø> (-0.43%) ⬇️
...lelite/Tensile/Components/Subtile/SubtileLREmit.py 84.19% <ø> (-0.20%) ⬇️
...ite/Tensile/Components/Subtile/SubtileScaleEmit.py 28.26% <ø> (-0.23%) ⬇️
...ects/hipblaslt/tensilelite/Tensile/KernelWriter.py 11.77% <ø> (+0.11%) ⬆️
...lt/tensilelite/Tensile/SolutionStructs/Solution.py 27.83% <ø> (ø)
🚀 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.

2 participants