mirror of
https://github.com/deepseek-ai/DeepEP.git
synced 2026-11-05 00:47:32 +00:00
[GH-ISSUE #759] [Bug] low-latency (internode_ll) unusable on non-Mellanox NICs: NVSHMEM IBGDA transport is mlx5-only (reproduced on Alibaba eRDMA) #416
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#416
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 @luoyuctl on GitHub (Sep 21, 2026).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/759
Summary
DeepEP's low-latency / internode path cannot run on RDMA NICs that are not Mellanox mlx5. On Alibaba Cloud eRDMA (ERI) the failure surfaces as a single
dlopenwarning that reads like a benign capability downgrade, but it is fatal forinternode_ll. Reporting so it can at least be documented up front.Environment
aliyun/erdmadevice plugin) →erdma_0,erdma_1What works
ibv_devinfoonerdma_0:PORT_ACTIVE,link_layer: Ethernetibv_open_device(erdma_0)→ OKNET/IB/GDRDMA, without issueWhat fails — every IBGDA-dependent path
We also checked whether any alternate transport could supply IBGDA symbols instead — all three export 0:
Reading NVSHMEM 3.4.5's IBGDA transport source (
transport_mlx5_common.cpp), it is mlx5-specific throughout:mlx5dv_init_obj,mlx5dv_create_qp,mlx5dv_devx_alloc_uar,mlx5dv_devx_obj_modify. There is no generic verbs fallback that we could find.Impact
deepep_low_latency(andtest_low_latency.py/test_internode.py) cannot be enabled on this fleet. We are forced onto an NCCL all-gather/reduce-scatter all2all backend, which is the throughput bottleneck on our deployment.Why this seems worth a documentation change
Disabling directNIC featuresreads as a degraded-but-working state. It is not — it is a hard capability wall for the low-latency path. We spent substantial time assuming it was noise.docs/legacy.mddescribes IB as fully validated and RoCE as theoretically supported, without noting the mlx5 dependency — which is precisely the distinction that bites here: RoCEv2 on mlx5 works, Ethernet RDMA on a non-mlx5 driver does not.Asks
dlopenwarning.Happy to provide full NVSHMEM init logs,
ibv_devinfooutput, and the symbol-count checks.