mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[PR #635] [CLOSED] feat: Add RDMA-Only (Non-NVLink) Topology Support for ElasticBuffer Direct Mode #678
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#678
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/635
Author: @MengYu10151
Created: 5/19/2026
Status: ❌ Closed
Base:
main← Head:pcie📝 Commits (3)
7b6ba19Add PCIe-only topology support for ElasticBuffer4f77720Add RDMA-only (non-NVLink) topology support for ElasticBuffer35fd265Fix buffer size calculation for non-NVLink topology📊 Changes
5 files changed (+55 additions, -15 deletions)
View changed files
📝
csrc/elastic/buffer.hpp(+17 -5)📝
csrc/kernels/backend/api.cuh(+1 -0)📝
csrc/kernels/backend/nccl.cu(+14 -6)📝
deep_ep/buffers/elastic.py(+20 -4)📝
deep_ep/utils/envs.py(+3 -0)📄 Description
Motivation
DeepEP currently assumes NVLink connectivity between intra-node GPUs. On non-NVLink machines
(e.g., RTX professional series cards with IB RDMA only), NCCL's LSA domain grouping may report
lsaSize > 1even without real NVLink hardware, causing the hybrid dispatch kernel to crash (NVLink atomic
barriers fail without NVLink) and the NVLink connectivity check to block initialization.
communicate via RDMA without NVLink forwarding. Hybrid mode (hierarchical RDMA + NVLink) is
automatically disabled when no NVLink hardware is detected.
Changes
get_nvlink_gbs()at initialization, automatically selectingthe appropriate communication path based on hardware topology: NVLink machines use the
existing hybrid/direct mode logic, non-NVLink machines fall back to RDMA-only direct mode
has_nvlinkflag to C++ backend to override NCCL's LSA domain (num_nvl_ranks = 1),compatible with the existing direct mode dispatch/combine kernel design
nvlink_traffic == 0Testing
test_ep.pysuite (144 configs) passes on 1/2 node (RDMA-only, EP 1/2×8, direct mode)Notes
few SMs(e.g., 8/12), leaving most SMs free for overlapping computation.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.