Repository navigation
[Perf][Qwen4Exp] Add SM100 low-latency decode GEMM plans - #59214
Conversation
The Qwen4Exp BF16 decode GEMM selector only has plans for SM103 and SM90, so on B200 every unquantized projection falls back to cuBLAS, which picks split-K kernels plus a separate reduce at small M. Add a B200 table measured on SM100 and route capability (10, 0) to it. Each point was kept only if the CuTe skinny GEMM beats cuBLAS by at least 5% in both hot-cache and L2-flush CUDA graph replay; the winners differ from the B300 table, so it is not reused. SM103 and SM90 selection is unchanged. Signed-off-by: namgyu-youn <namgyu.dev@gmail.com>
|
cc @ZJY0516 @gau-nernst working on this module. Could you look into this when you have a change? |
gau-nernst
left a comment
There was a problem hiding this comment.
Some nits. Dont think some tests are needed. Also measurements should be done with flashinfer cupti cudagraph (check kernel-microbenchmark skill in vllm). U can trim the comment too (agents like verbose comment)
Signed-off-by: namgyu-youn <namgyu.dev@gmail.com>
@gau-nernst updated (1) trimmed comment, (2) drop unneeded test, (3) measurment based on your suggestion. Could you take another look? |
|
I already approved. Will need @ZJY0516 for the stamp. |
|
/ci run |
|
✅ @namgyu-youn, CI is now available for this PR.
|
|
✅ Triggered Buildkite CI #92314 for commit |
…t#59214) Signed-off-by: namgyu-youn <namgyu.dev@gmail.com> Co-authored-by: Thien Tran <gau.nernst@yahoo.com.sg>
Purpose
Qwen4Exp's low-latency decode GEMM table has entries for SM103 and SM90 only, so on B200 (SM100) every BF16 projection falls back to cuBLAS. This adds a B200-measured table for the TP=4 shapes and routes capability
(10, 0)to it, following #53534.Test Plan
pytest tests/kernels/test_bf16_skinny_gemm.py -k qwen4_exp # 36 passed on B200Test Result
-= keeps cuBLAS.