-
Notifications
You must be signed in to change notification settings - Fork 14.9k
[Doc][AMDGPU] Document the waitcnts required before SCOPE_SYS stores on GFX12 #156424
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…on GFX12 This case was undocumented until now.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
* ``s_wait_loadcnt 0x0`` | ||
* ``s_wait_storecnt 0x0`` | ||
* ``s_wait_kmcnt 0x0`` | ||
* ``s_wait_samplecnt 0x0`` | ||
* ``s_wait_bvhcnt 0x0`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So s_wait_dscnt 0x0
is not needed? I notice it is present for the store release.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No dscnt isn't needed, this only deals with system scope level stores as the reordering in this case occurs beyond L2.
LDS is always WG level so that causes no issues
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So what does dscnt track, LDS? Why is it not needed for system scope? Remember we have scope inclusion in the memory model.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DScnt is indeed LDS.
The reordering here can, AFAIK, only occur between two system scope operations. The reordering case happens somewhere after L2.
So we need to wait for any operations that could be at that level. LDS ops aren't one of them because they can't leave the workgroup under any scenario.
llvm/docs/AMDGPUUsage.rst
Outdated
| ``s_wait_storecnt 0x0`` | ||
| ``s_wait_loadcnt 0x0`` | ||
| ``s_wait_dscnt 0x0`` | ||
| ``s_wait_kmcnt 0x0`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency should these be listed in the same order as the changes above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure
This case was undocumented until now.