Repository navigation
[rocjitsu] Add CDNA3/CDNA4 global_load_lds_* execution support - #14867
RattataKing wants to merge 6 commits into
Conversation
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
kuhar
left a comment
There was a problem hiding this comment.
We should update the test documentation to match the new execution support:
emulation/rocjitsu/tests/flat_lds_transfer_test.cpp:372: replace the claim that GLOBAL LDS execution remains unimplemented and belongs to PR #13218. This case checks decoding; execution is now covered byGlobalLoadsToLdsPreserveInactiveLanesAndVgprsand the CDNA4 wide-load tests.- Optional:
emulation/rocjitsu/tests/flat_lds_transfer_test.cpp:271: make the skip reason explicit, for example “This decoder boundary is specific to CDNA3.” That explains why other architectures skip, whereas “Checks the CDNA3 decoder boundary” only describes the test.
787fa02 to
f8c8c7c
Compare
f8c8c7c to
d5cf8a4
Compare
kuhar
left a comment
There was a problem hiding this comment.
Could we trim the duplicate X3/X4 code now that #14842 is in the base? This PR adds execution for the five single-dword destination forms. The generated CDNA4 X3/X4 bodies already match the base.
- In
emulation/rocjitsu/lib/python/amdisa/semantics.py:2177–2178, we can drop the two wide suffixes. Line 2152 handles them first, so editing the later entries would leave both opcodes unchanged. - In
emulation/rocjitsu/tests/flat_lds_transfer_test.cpp:77, the CDNA3 rejection test can reuseglobal_wide_lds_encodingfrom line 71. The wide tests at lines 475 and 516 already cover stride, X3 padding, inactive lanes and whole-payload bounds. Folding the exact-fit and one-byte-short cases from line 254 into the existing bounds test would preserve that coverage with one suite to maintain.
This cleanup can follow separately.
LGTM
d5cf8a4 to
4733bb1
Compare
PR Pundit review(Testing PR Pundit Code Review agent. Not all comments may be relevant. This is a one-time automated pass: please address what is useful, no need to request a re-review. Please reply to each point, whether it applies or not: we harvest these replies, and both kinds are enormously helpful for tuning the agent. Reach out to @peymanr for suggestions.)
1. 🟠 Should fix: Narrow GLOBAL LDS regression on subword/sign-extend/M0 would go uncaught: this PR's test uses only aligned addresses and M0=64
The new Who is affected: Only test coverage of the emulator's CDNA3/CDNA4 narrow GLOBAL_LOAD_LDS_* path; no runtime behaviour is affected. Checked against the code by an independent pass. Related past reviews: #6886 on Shared from a pilot of PR Pundit, an agentic code reviewer that builds and tests the change and reads the project's past reviews. Reviewed at |
kuhar
left a comment
There was a problem hiding this comment.
Could we update the PR description to say this adds the five single-dword GLOBAL LDS loads on CDNA3 and CDNA4? The CDNA4 X3/X4 instructions landed in #14842. This revision extends their existing tests with cases such as exact-fit and one-byte-short LDS allocations, so the reference to Cdna4WideGlobalLoadsUseSixteenByteLdsLaneStride can go too.
LGTM
4733bb1 to
7262d14
Compare
Adds the five single-dword GLOBAL LDS loads on CDNA3 and CDNA4 in the generator:
global_load_lds_ubyteglobal_load_lds_sbyteglobal_load_lds_ushortglobal_load_lds_sshortglobal_load_lds_dwordAdd tests:
GlobalLoadsToLdsPreserveInactiveLanesAndVgprsIssue ID: #13025