Repository navigation
test(rocke): give register-bound GDN tiles a spill budget - #13351
Merged
AviralGoelAMD merged 1 commit intoOct 10, 2026
Merged
Conversation
test_registered_gdn_tiles_compile requires 0 B scratch for every registered gfx950 GDN tile except nw1_wtk1_bpv1. With ROCm 7.13 comgr two more warp_threads_k=1 tiles reach 512 VGPRs and spill (nw1_wtk1_bpv2 372-388 B, nw2_wtk1_bpv1 376-404 B; both 0 B with ROCm 7.1), failing the CPU library lane. Same rocKE IR; only the compiler changed. These tiles give each lane the whole K reduction, so they sit at the VGPR limit. GDN auto never selects them (it always picks DEFAULT_TILE). Name the three register-bound tiles and allow them up to 512 B, which absorbs compiler drift but still fails on a register-pressure blowup. Every other registered tile must still compile with 0 B scratch, and every allowlisted ID must still be registered.
⏳ Waiting on Required Checks⏳ Required checks have not all concluded yet. This bot run is exiting without failing so those checks can report independently.
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
⏳ Waiting for required checks to start or finish:
|
AnaghaRaoAMD
approved these changes
Oct 8, 2026
Contributor
TheRock Submodule Bump ActivityNewest first
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JIRA ID : TESTAUTO-6039
What was wrong
library/tests/test_gdn_decode_spec.py::TestEmission::test_registered_gdn_tiles_compilefails in the rocKE CPU library lane on currentdevelop:The test compiles every registered gfx950 GDN decode tile and requires 0 B scratch (no register spill), with one exemption (
nw1_wtk1_bpv1). With the ROCm 7.13 comgr, two morewarp_threads_k=1tiles reach the 512-VGPR limit and spill. The rocKE IR is identical; only the compiler changed.What changed
library/tests/test_gdn_decode_spec.pyWhy it works
warp_threads_k=1tile gives each lane the whole K=128 reduction, so it sits at the VGPR limit, and whether it spills depends on the register allocator. GDNautonever selects these tiles (it always picksDEFAULT_TILE(2,16,8): 60-65 VGPRs, 0 B on both compilers). They stay registered because they can be pinned and(1,1,1)is the fallback whenDEFAULT_TILEis illegal.wtk1class (an unbounded hole for future tiles) and expectations keyed by compiler version (comgr's version API reports 3.0 for both 7.1 and 7.13, and byte counts differ between 7.13 nightlies).Measured scratch (gfx950):
nw1_wtk1_bpv1nw1_wtk1_bpv2nw2_wtk1_bpv1How we validated
developfaea76a5cde, the ROCm 7.13 comgr (ROCKE_LLVM_FLAVOR=llvm23) reproduces both failures (372 / 376 B with a July 7.13 build; CI's nightly reports 388 / 404 B). ROCm 7.1 comgr: passes.test_gdn_decode_spec.py: 33 passed, 57 subtests passed with both the ROCm 7.1 and 7.13 comgr.nw2_wtk1_bpv1removed from the allowlist → fails376 != 0.CPU-only (comgr compile +
llvm-objdump/llvm-readelfintrospection; Python lowerer).ruffwas not run locally.