mirror of
https://github.com/deepseek-ai/DeepGEMM.git
synced 2026-11-05 00:47:26 +00:00
[PR #186] Add split-k optimization for sm90, reduce through DSMEM. #284
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#284
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/186
Author: @Insideyyy
Created: 9/5/2025
Status: 🔄 Open
Base:
main← Head:Insideyyy/split-k-sm90📝 Commits (2)
c6e6b82Add split-k optimization for sm90, reducing through DSMEM.aecf90dResolve conflicts; support split-k for sm90_fp8_gemm_1d1d.📊 Changes
14 files changed (+410 additions, -140 deletions)
View changed files
📝
csrc/jit/handle.hpp(+12 -16)📝
csrc/jit/kernel_runtime.hpp(+11 -8)📝
csrc/jit_kernels/heuristics/common.hpp(+101 -46)📝
csrc/jit_kernels/heuristics/sm100.hpp(+9 -0)📝
csrc/jit_kernels/heuristics/sm90.hpp(+26 -0)📝
csrc/jit_kernels/impls/sm90_bf16_gemm.hpp(+8 -6)📝
csrc/jit_kernels/impls/sm90_fp8_gemm_1d1d.hpp(+4 -2)📝
csrc/jit_kernels/impls/sm90_fp8_gemm_1d2d.hpp(+8 -6)📝
deep_gemm/include/deep_gemm/common/scheduler.cuh(+7 -5)📝
deep_gemm/include/deep_gemm/common/sm90_utils.cuh(+4 -4)➕
deep_gemm/include/deep_gemm/common/split_k_reduce.cuh(+65 -0)📝
deep_gemm/include/deep_gemm/impls/sm90_bf16_gemm.cuh(+47 -12)📝
deep_gemm/include/deep_gemm/impls/sm90_fp8_gemm_1d1d.cuh(+48 -15)📝
deep_gemm/include/deep_gemm/impls/sm90_fp8_gemm_1d2d.cuh(+60 -20)📄 Description
This PR adds split-k optimization for sm90, reduce partitioned d through DSMEM.
Currently support fp8 & bf16
Normal,MGroupedContiguous,MGroupedMaskedgemms on sm90.fp8_gemm_1d2d on H20:
bf16_gemm on H20:
Notes:
k_slicespartitions of same(m_block_idx, n_block_idx)are assigned tok_slicesSMs within a thread block cluster, so that the intermediate results could be reduced through DSMEM.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.