Delete CUTLASS FP8 blockwise for SM90 and SM100, move SM120 to JIT and add SwapAB - #30438
Conversation
…mm files Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Dedup getSMVersion/alloc_workspace_tensor into shared utils.cuh, delete dead fp8_blockwise benchmark-only entry points and force_noswap branch, reuse the canonical is_sm120_supported() instead of local reimpls, fix CI runner_config to 1-gpu-small and drop the stale disabled= reason, and trim/remove explanatory comments in the new fp8 blockwise files. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
/rerun-test test/registered/jit/test_fp8_blockwise_gemm.py |
|
Results for 🚀 |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
The following failure is fixed on main : https://github.com/sgl-project/sglang/actions/runs/29057323200/job/86430764736?pr=30438 |
|
/rerun-failed-ci |
|
The multimodal tests are fixed in #30716 |
|
/rerun-failed-ci |
|
Tested PR head In the post-page-mask 120-step C1 trace:
Dense FP8 is the largest measured post-fix decode kernel family. These numbers |
# Conflicts: # test/registered/quant/test_fp8_blockwise_row_padding.py
sgl-kernel/tests/test_per_token_group_quant_8bit.py and the matching benchmark script still imported from sglang.srt.layers.quantization.fp8_kernel, which was moved to sglang.kernels.ops.quantization.fp8_kernel on main, breaking CI collection after the merge.
…8-blockwise # Conflicts: # python/sglang/jit_kernel/csrc/gemm/nvfp4/nvfp4_expert_quant.cuh # python/sglang/jit_kernel/csrc/gemm/nvfp4/nvfp4_quant_kernels.cuh # python/sglang/jit_kernel/csrc/gemm/nvfp4/nvfp4_scaled_mm_common.cuh # python/sglang/jit_kernel/csrc/moe/nvfp4_blockwise_moe.cuh # sgl-kernel/benchmark/bench_fp8_blockwise_gemm.py
|
Nice! |
…o JIT and add SwapAB (sgl-project#30438)" This reverts commit 7431f35.
… SM120 to JIT and add SwapAB (sgl-project#30438)"" This reverts commit ac2470d.
…d add SwapAB (sgl-project#30438) Co-authored-by: Brayden Zhong <brayden.zhong@radixark.ai> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: root <root@sgl-b300-inference.datacrunch.io> Co-authored-by: Brayden Zhong <brayden@radixark.ai>
…d add SwapAB (sgl-project#30438) Co-authored-by: Brayden Zhong <brayden.zhong@radixark.ai> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: root <root@sgl-b300-inference.datacrunch.io> Co-authored-by: Brayden Zhong <brayden@radixark.ai>
Recommended migration plan
Only SM120 needs this for now. Also, there has been no development on this kernel for 1 year+.
For future development (Rubin, etc), we'd use Cute-DSL. Ideally, some kernel experts can also help us migrate this one to Cute-DSL (as long as the perf is the same)
For M = 1 on
Qwen/Qwen3.6-27B-FP8, speed increase from 42 to 46.76 TPS.And here is the difference of using StreamK scheduler on M >= 64 (when below this threshold, we currently use SwapAB to transpose the A and B operand for better MMA utilization)

CI States
Latest PR Test (Base): 🚫 Run #29298468640
Latest PR Test (Extra): ❌ Run #29298468570