mirror of
https://github.com/deepseek-ai/DeepGEMM.git
synced 2026-11-05 00:47:26 +00:00
[PR #380] SM120: MoE grouped GEMM decode optimizations: skip padding I/O, BLOCK_M=32 #401
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/DeepGEMM#401
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/deepseek-ai/DeepGEMM/pull/380
Author: @leavelet
Created: 7/15/2026
Status: 🔄 Open
Base:
nv_dev← Head:sm120-opt📝 Commits (4)
f22c312SM120: skip M-padding stores + BLOCK_M=32 for m-grouped decodec52a9cbSM120: BLOCK_N=64 for the BLOCK_M=32 decode layout5034208SM120: skip M-padding A reads via warp-cooperative cp.async91c8c78SM120: harden padding-skip paths for edge inputs📊 Changes
6 files changed (+168 additions, -36 deletions)
View changed files
📝
csrc/jit_kernels/heuristics/runtime.hpp(+5 -2)📝
csrc/jit_kernels/heuristics/sm120.hpp(+24 -5)📝
csrc/jit_kernels/impls/sm120_bf16_gemm.hpp(+3 -3)📝
csrc/jit_kernels/impls/sm120_fp8_fp4_gemm_1d1d.hpp(+18 -3)📝
deep_gemm/include/deep_gemm/common/sm120_utils.cuh(+26 -0)📝
deep_gemm/include/deep_gemm/impls/sm120_fp8_fp4_gemm_1d1d.cuh(+92 -23)📄 Description
Motivation
MoE grouped GEMM at decode batch sizes is weight-bandwidth-bound on SM120: almost all DRAM time goes to streaming expert weights, while the M-padding of the contiguous/masked layouts adds pure-waste traffic (padded A-row reads, padded D-row writes) and the BLOCK_M=64 floor inflates padded compute.
This PR removes the padding waste and lifts the BLOCK_M floor, after it, DeepGEMM leads CUTLASS
on all tested MoE shapes (see numbers below) and streams weights at 98%~99% of
the device's measured pure-read DRAM peak.
What's in here (3 commits)
e18f68b).e18f68b,5c018f3).cp.async(7fdc998).Performance
RTX PRO 6000 Blackwell (188 SMs), M=32 decode tokens, multinomial top-k
routing.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.