Hack to ensure cp.async is waited before smem reuse#2001
Merged
jacobhinkle merged 1 commit intomainfrom Mar 26, 2024
Merged
Conversation
This is a work-around for #2000.
Collaborator
Author
|
!build --diff-bench |
zasdfgbnm
approved these changes
Mar 26, 2024
Collaborator
zasdfgbnm
left a comment
There was a problem hiding this comment.
As a temporary hack to make CI green, this PR is good. But we still need to look into a better solution for this problem.
jacobhinkle
added a commit
that referenced
this pull request
Mar 28, 2024
This just places a `cp.async.wait_group 0` instruction immediately after any circular buffer main loop which is the approach taken by CUTLASS for pipelining GEMMs: (see [mma_multistage.h#L664-L665](https://github.com/NVIDIA/cutlass/blob/c4e3e122e266644c61b4af33d0cc09f4c391a64b/include/cutlass/gemm/threadblock/mma_multistage.h#L664-L665)). The previous fix for #2000, #2001, is reverted. This is an alternative to #2005. Fixes #2000
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.
This is a work-around for #2000.
It seems to address the issue in the only current use case for smem reuse: matmul with
params.use_smem_epilogue == true. It is not ideal: for example it will insert acp.async.wait_allinstruction even if circular buffering is not used in the kernel.Fixes #1996 but since this is a hack, I will not mark #2000 as fixed yet.