mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[GH-ISSUE #61] Questions about Compute-Communication Overlap #58
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#58
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?
Originally created by @Leaf996 on GitHub (Mar 9, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/61
hello, experts. see from codebase, I have several questions:
async_finishandreturn_recv_hookcan achievecompute-communication overlap, so what's the difference between them ?saync_finishmode, communication usecomm_stream, it's make sense. but whyreturn_recv_hookmode usecompute_streamfor communication ?thanks.
@LyricZhao commented on GitHub (Mar 10, 2025):
They are two different ways to overlap:
async_finish: using two CUDA streams to overlap, computation and communication kernels share all the SMs (e.g. internode kernels using 20 SMs, and GEMM on the computation uses 132 - 20 = 112 SMs)return_recv_hook: communication kernels does not use any SM, it just issue RDMA requests (as soon as possible, using more SMs, so just reuse the computation stream) and just return. The RDMA transmission is hid in the background.For low-latency kernels, the
async_finishis a legacy-style API which may not be used (to align with the inter/intra kernels), you can just ignore it. We have it, because when we didn't have thereturn_recv_hookAPI, we used it for shared experts overlapping (which is much easier, communication uses 96 SMs, shared GEMM uses 132 - 96 = 36 SMs), now we don't use it anymore.@chenhongyu2048 commented on GitHub (Apr 21, 2025):
Hello, I would like to ask how to set the amount of SM used for gemm? Or do you think it's possible for me to find the answer in the DeepGEMM library? @LyricZhao Thanks for your reply!
@LyricZhao commented on GitHub (Apr 22, 2025):
deep_gemm.set_num_sms(math_sms)CUBLAS_CHECK(cublasLtMatmulDescSetAttribute(desc, CUBLASLT_MATMUL_DESC_SM_COUNT_TARGET, &math_sms, sizeof(math_sms)));@chenhongyu2048 commented on GitHub (Apr 22, 2025):
Thanks for your help!