mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[GH-ISSUE #72] Question about interface of low_latency_dispatch #67
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#67
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 @JimmyWang1850 on GitHub (Mar 13, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/72
I'm a bit confused about the low_latency_dispatch interface. Why doesn't the interface support passing topk_weights? If the dispatch interface cannot return topk_weights, then it is necessary to
However, based on our actual tests, the transmission time for all_gather during the decode stage is very short, so adding recalculations or additional transmissions does not offer any advantage. Or is it related to your experts' interface?
@LyricZhao commented on GitHub (Mar 13, 2025):
Low-latency API is designed for inference, and if the MoE part does not have local reduction before combine, then it is not needed.
And as the low-latency combine is at one level (normal kernels are at 2 levels: RDMA and NVLink domain two reductions), so
topk_weightsis only used at combine after receiving the data.@wujingyue commented on GitHub (Feb 2, 2026):
Follow-up question:
I got that. But why does
intranode_dispatchalso produce topk_weights? Aren'tintranode_dispatchandintranode_combine"one level" (i.e. via nvlink only)?github.com/deepseek-ai/DeepEP@29d31c0957/deep_ep/buffer.py (L393)@wujingyue commented on GitHub (Feb 2, 2026):
Actually, I'm not even sure about this any more. IIUC, performing the multiplication of top-k weights on the sender side is likely more optimal. It enables in-fabric reduction and minimizes the receiver buffer footprint, both of which are critical for minimizing inference latency.
For your reference,
github.com/deepseek-ai/DeepEP@29d31c0957/csrc/kernels/internode_ll.cu (L1078)assumestopk_weightsis in the original sequence order.