mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[PR #453] Higher Performance with Lower SM Occupancy through Zero-Copy and TMA Offloading #576
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/DeepEP#576
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/DeepEP/pull/453
Author: @monethuang1
Created: 10/14/2025
Status: 🔄 Open
Base:
main← Head:trmt-zero-copy📝 Commits (10+)
be77c85Init zero-copy internode dispatch/combine8ffa6f6Use 1 SM per channel for cached_notify1b38673add combine tma alighment and fix rdma receivers num6dd446bReduce SMEM usage79d6ef5Support multiple buffers for zero-copy6c37dfaAdd assertion against too large recv token count5e5bd79Use separate sizes for Dispatch/Combine input buffers875a5a6Ensure NVLink fused buffers are properly aligned by reordering NVL buffer segments9e52f9bCleanup TMA-related code (1)c4eef60Cleanup TMA-related code (2)📊 Changes
14 files changed (+2187 additions, -155 deletions)
View changed files
📝
csrc/config.hpp(+132 -8)📝
csrc/deep_ep.cpp(+258 -49)📝
csrc/deep_ep.hpp(+21 -4)📝
csrc/kernels/CMakeLists.txt(+2 -1)📝
csrc/kernels/api.cuh(+54 -5)📝
csrc/kernels/buffer.cuh(+27 -27)📝
csrc/kernels/configs.cuh(+16 -0)📝
csrc/kernels/ibgda_device.cuh(+133 -0)📝
csrc/kernels/internode.cu(+108 -17)➕
csrc/kernels/internode_zcopy.cu(+1209 -0)📝
csrc/kernels/utils.cuh(+53 -14)📝
deep_ep/buffer.py(+79 -13)📝
setup.py(+1 -1)📝
tests/test_internode.py(+94 -16)📄 Description
The original Internode Normal Kernel suffers from high GPU SM utilization and underutilized interconnect bandwidth, which constrains prefill performance.
In our optimized version, we apply buffer fusion and TMA offloading to enable true zero-copy communication and maximize NVLink bandwidth usage.
Evaluation on H20 clusters shows significant gains:
Additionally, SM occupancy was reduced by up to 66.7%. The optimized kernel uses only 12 SMs for EP=16 and 8 SMs for EP=32, compared to 24 SMs in the original version.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.