[GH-ISSUE #285] [Question]: Why RDMA bandwidth can exceed 50GB/s #207

Closed
opened 2026-10-26 09:56:37 +00:00 by bsakaguchi · 4 comments
Owner

Originally created by @TianDi101 on GitHub (Jul 9, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/285

Hi folks, I found that the RDMA bandwidth in README.md can exceed 50GB/s, just what to ask how is this number measured? Is this actually algorithm bandwidth instead of bus bandwidth?

To my knowledge, for algorithm bandwidth we can compute with BW = total_bytes / duration and for bus bandwidth, we compute with BWrdma = rdma_total_bybtes / duration.

Please correct me if I'm wrong, thanks!

Originally created by @TianDi101 on GitHub (Jul 9, 2025). Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/285 Hi folks, I found that the RDMA bandwidth in README.md can exceed 50GB/s, just what to ask how is this number measured? Is this actually algorithm bandwidth instead of bus bandwidth? To my knowledge, for algorithm bandwidth we can compute with BW = total_bytes / duration and for bus bandwidth, we compute with BWrdma = rdma_total_bybtes / duration. Please correct me if I'm wrong, thanks!
Author
Owner

@TianDi101 commented on GitHub (Jul 9, 2025):

I just noticed that this PR https://github.com/deepseek-ai/DeepEP/pull/130 explains the calculation. However, in this case the EP16 performance is a little wierd since its bus bandwidth is only 43 * 0.5 = 21.5GB/s, far less than 50GB/s. I think under the setting of 4096 token per GPU, it should be able to saturate RDMA bandwidth.

<!-- gh-comment-id:3050997996 --> @TianDi101 commented on GitHub (Jul 9, 2025): I just noticed that this PR https://github.com/deepseek-ai/DeepEP/pull/130 explains the calculation. However, in this case the EP16 performance is a little wierd since its bus bandwidth is only 43 * 0.5 = 21.5GB/s, far less than 50GB/s. I think under the setting of 4096 token per GPU, it should be able to saturate RDMA bandwidth.
Author
Owner

@sphish commented on GitHub (Jul 10, 2025):

On the H800, the RDMA network bandwidth utilization is indeed not high in EP16 case. A main reason for this is that in our EP16 test case, when the RDMA bandwidth reaches 43 GB/s, the NVLink bandwidth will exceeds 140 GB/s, making NVLink the bottleneck.

With GPUs that have higher NVLink bandwidth, you'd get better results.

<!-- gh-comment-id:3056827385 --> @sphish commented on GitHub (Jul 10, 2025): On the H800, the RDMA network bandwidth utilization is indeed not high in EP16 case. A main reason for this is that in our EP16 test case, when the RDMA bandwidth reaches 43 GB/s, the NVLink bandwidth will exceeds 140 GB/s, making NVLink the bottleneck. With GPUs that have higher NVLink bandwidth, you'd get better results.
Author
Owner

@TianDi101 commented on GitHub (Jul 14, 2025):

On the H800, the RDMA network bandwidth utilization is indeed not high in EP16 case. A main reason for this is that in our EP16 test case, when the RDMA bandwidth reaches 43 GB/s, the NVLink bandwidth will exceeds 140 GB/s, making NVLink the bottleneck.

With GPUs that have higher NVLink bandwidth, you'd get better results.

Thanks for the explanation, could you please elaborate on this more?

I'm thinking in this way, for each GPU in the EP16 case, the inbound RDMA bandwidth is 50GB/s while the outbound NVLink bandwidth is 160GB/s, seems that no matter how the algorithm is designed, RDMA bandwidth is always the bottleneck, right?

This is under the assumption that 8 GPUs in a node don't compete for NVLink bandwidth, that being said, each GPU will always get 160GB/s for each direction. But I'm not sure if this assumption is right.

<!-- gh-comment-id:3067795928 --> @TianDi101 commented on GitHub (Jul 14, 2025): > On the H800, the RDMA network bandwidth utilization is indeed not high in EP16 case. A main reason for this is that in our EP16 test case, when the RDMA bandwidth reaches 43 GB/s, the NVLink bandwidth will exceeds 140 GB/s, making NVLink the bottleneck. > > With GPUs that have higher NVLink bandwidth, you'd get better results. Thanks for the explanation, could you please elaborate on this more? I'm thinking in this way, for each GPU in the EP16 case, the inbound RDMA bandwidth is 50GB/s while the outbound NVLink bandwidth is 160GB/s, seems that no matter how the algorithm is designed, RDMA bandwidth is always the bottleneck, right? This is under the assumption that 8 GPUs in a node don't compete for NVLink bandwidth, that being said, each GPU will always get 160GB/s for each direction. But I'm not sure if this assumption is right.
Author
Owner

@sphish commented on GitHub (Jul 15, 2025):

I'm thinking in this way, for each GPU in the EP16 case, the inbound RDMA bandwidth is 50GB/s while the outbound NVLink bandwidth is 160GB/s, seems that no matter how the algorithm is designed, RDMA bandwidth is always the bottleneck, right?

Since the tokens received from RDMA may be forwarded multiple times via NVLink, RDMA is not always the bottleneck. he NVLink 160GB/s bandwidth is also just a ideal upper bound.

Based on previous feedback and test results from the Tencent team, testing with H20 servers that have higher NVLink bandwidth shows significantly better performance in the EP16 case, which leads me to believe that this case is NVLink-bottlenecked.

<!-- gh-comment-id:3071769801 --> @sphish commented on GitHub (Jul 15, 2025): > I'm thinking in this way, for each GPU in the EP16 case, the inbound RDMA bandwidth is 50GB/s while the outbound NVLink bandwidth is 160GB/s, seems that no matter how the algorithm is designed, RDMA bandwidth is always the bottleneck, right? Since the tokens received from RDMA may be forwarded multiple times via NVLink, RDMA is not always the bottleneck. he NVLink 160GB/s bandwidth is also just a ideal upper bound. Based on previous feedback and test results from the Tencent team, testing with H20 servers that have higher NVLink bandwidth shows significantly better performance in the EP16 case, which leads me to believe that this case is NVLink-bottlenecked.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepEP#207
No description provided.