Add memory-bound GEMM kernel and update bandwidth model#21
Open
zhanglx13 wants to merge 4 commits into
Open
Conversation
82f2117 to
e557c34
Compare
Add a skinny-M GEMM kernel (BLOCK_M=32, BLOCK_N=256, BLOCK_K=64) optimized for HBM bandwidth on GFX950, achieving 6442 GB/s (79% of peak). Key optimizations: 2-stage async pipeline, .cg cache modifier on B loads, and large BLOCK_N for TCP utilization efficiency (89%). Update the bandwidth model document with a refined buffer limit formula and a new section (Section 4) on TCP utilization efficiency, covering redundant vs unique data in GEMM, the three-way tradeoff between TCP efficiency, CU utilization, and minimum load width, and strategies (A-reuse, Split-K) for improvement. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add BLOCK_M=M assumption for skinny GEMMs in Section 4.1 - Express TCP efficiency as BLOCK_N/(M+BLOCK_N) with M column in table - Replace minimum load width tradeoff with TCP capacity constraint Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
e557c34 to
f095349
Compare
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.
Add a skinny-M GEMM kernel (BLOCK_M=32, BLOCK_N=256, BLOCK_K=64) optimized for HBM bandwidth on GFX950, achieving 6442 GB/s (79% of peak). Key optimizations: 2-stage async pipeline, .cg cache modifier on B loads, and large BLOCK_N for TCP utilization efficiency (89%).
Update the bandwidth model document with a refined buffer limit formula and a new section (Section 4) on TCP utilization efficiency, covering redundant vs unique data in GEMM, the three-way tradeoff between TCP efficiency, CU utilization, and minimum load width, and strategies (A-reuse, Split-K) for improvement.