mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[GH-ISSUE #95] Why does low latency dispatch only use IBGDA? #87
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#87
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 @ltrcc on GitHub (Mar 27, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/95
The code is:
if (dst_rank != rank) {nvshmemi_ibgda_put_nbi_warp(dst_ptr, src_ptr, num_bytes_per_msg, dst_rank, dst_expert_local_idx, lane_id, slot_idx);} else {const auto* src_int4_ptr = reinterpret_cast<const int4*>(src_ptr);const auto* dst_int4_ptr = reinterpret_cast<int4*>(dst_ptr);UNROLLED_WARP_COPY(8, lane_id, num_int4_per_msg, dst_int4_ptr, src_int4_ptr, ld_nc_global, st_na_global);}My issue is:
The code only judges whether dst_rank and rank are the same, and if they are not, it uses IBGDA for transmission. However, the situation where dst_rank and rank are not the same includes the case where they are within the same node. Would using NvLink instead of RDMA for transmission be faster when dst_rank and rank are at the same node?
Thanks for all the answers.
@LyricZhao commented on GitHub (Mar 28, 2025):
Yes, but in-node traffic is just a little part of the whole, if the EP is large (for our online services); secondly, NVLink is of memory semantics, if you do that with NVLink, then it is conflict with hook-based overlapping.
@ltrcc commented on GitHub (Mar 28, 2025):
Okay, I get it. Thank you very much for your answer