[GH-ISSUE #261] normal kernels show significant performance gap between running test_internode.py and inference use #193

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

Originally created by @MistyAir on GitHub (Jun 26, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/261

I am trying to run DeepEP on 4xH100 node with RoCE network. The tests works fine, and I checked kernel duration. For example, each internode::combine takes about 3-4ms.
But when I use DeepEP in inference engine, the latency raised a lot (about 10-12 ms, could raise up to 50ms or more).

This is test result of test_internode.py

[config] num_tokens=4096, hidden=7168, num_topk_groups=4, num_topk=8
[layout] Kernel performance: 0.054 ms

[testing] Running with BF16, without top-k (async=False, previous=False) ... passed
[testing] Running with BF16, with top-k (async=False, previous=False) ... passed
[testing] Running with BF16, without top-k (async=False, previous=False) ... passed
[testing] Running with BF16, with top-k (async=False, previous=False) ... passed
[testing] Running with FP8, without top-k (async=False, previous=False) ... passed
[testing] Running with FP8, with top-k (async=False, previous=False) ... passed
[testing] Running with BF16, without top-k (async=True, previous=False) ... passed
[testing] Running with BF16, with top-k (async=True, previous=False) ... passed
[testing] Running with BF16, without top-k (async=True, previous=False) ... passed
[testing] Running with BF16, with top-k (async=True, previous=False) ... passed
[testing] Running with FP8, without top-k (async=True, previous=False) ... passed
[testing] Running with FP8, with top-k (async=True, previous=False) ... passed
[testing] Running with BF16, without top-k (async=False, previous=True) ... passed
[testing] Running with BF16, with top-k (async=False, previous=True) ... passed
[testing] Running with BF16, without top-k (async=False, previous=True) ... passed
[testing] Running with BF16, with top-k (async=False, previous=True) ... passed
[testing] Running with FP8, without top-k (async=False, previous=True) ... passed
[testing] Running with FP8, with top-k (async=False, previous=True) ... passed
[testing] Running with BF16, without top-k (async=True, previous=True) ... passed
[testing] Running with BF16, with top-k (async=True, previous=True) ... passed
[testing] Running with BF16, without top-k (async=True, previous=True) ... passed
[testing] Running with BF16, with top-k (async=True, previous=True) ... passed
[testing] Running with FP8, without top-k (async=True, previous=True) ... passed
[testing] Running with FP8, with top-k (async=True, previous=True) ... passed

[tuning] SMs 24, NVL chunk 4, RDMA chunk 4: 45.31 GB/s (RDMA), 90.97 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 8: 56.27 GB/s (RDMA), 112.98 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 12: 55.82 GB/s (RDMA), 112.07 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 16: 55.39 GB/s (RDMA), 111.22 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 20: 54.78 GB/s (RDMA), 109.99 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 24: 53.74 GB/s (RDMA), 107.90 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 28: 53.84 GB/s (RDMA), 108.10 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 32: 54.20 GB/s (RDMA), 108.82 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 4: 45.37 GB/s (RDMA), 91.09 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 8: 57.57 GB/s (RDMA), 115.60 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 12: 57.12 GB/s (RDMA), 114.68 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 16: 56.78 GB/s (RDMA), 114.01 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 20: 55.91 GB/s (RDMA), 112.25 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 24: 55.04 GB/s (RDMA), 110.51 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 28: 55.14 GB/s (RDMA), 110.71 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 32: 55.51 GB/s (RDMA), 111.45 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 4: 45.38 GB/s (RDMA), 91.12 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 8: 57.63 GB/s (RDMA), 115.72 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 12: 57.14 GB/s (RDMA), 114.73 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 16: 57.02 GB/s (RDMA), 114.48 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 20: 56.00 GB/s (RDMA), 112.44 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 24: 55.21 GB/s (RDMA), 110.84 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 28: 55.26 GB/s (RDMA), 110.95 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 32: 55.59 GB/s (RDMA), 111.60 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 4: 45.16 GB/s (RDMA), 90.67 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 8: 57.60 GB/s (RDMA), 115.64 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 12: 57.36 GB/s (RDMA), 115.16 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 16: 56.83 GB/s (RDMA), 114.10 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 20: 49.52 GB/s (RDMA), 99.43 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 24: 55.11 GB/s (RDMA), 110.66 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 28: 55.25 GB/s (RDMA), 110.92 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 32: 55.80 GB/s (RDMA), 112.03 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 4: 45.30 GB/s (RDMA), 90.94 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 8: 57.65 GB/s (RDMA), 115.75 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 12: 57.17 GB/s (RDMA), 114.79 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 16: 56.81 GB/s (RDMA), 114.06 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 20: 55.97 GB/s (RDMA), 112.37 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 24: 55.04 GB/s (RDMA), 110.50 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 28: 55.18 GB/s (RDMA), 110.78 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 32: 55.68 GB/s (RDMA), 111.80 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 4: 45.31 GB/s (RDMA), 90.97 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 8: 57.49 GB/s (RDMA), 115.43 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 12: 57.38 GB/s (RDMA), 115.21 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 16: 56.61 GB/s (RDMA), 113.66 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 20: 55.83 GB/s (RDMA), 112.09 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 24: 55.28 GB/s (RDMA), 111.00 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 28: 54.97 GB/s (RDMA), 110.37 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 32: 55.77 GB/s (RDMA), 111.98 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 4: 45.28 GB/s (RDMA), 90.92 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 8: 57.60 GB/s (RDMA), 115.65 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 12: 57.19 GB/s (RDMA), 114.82 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 16: 56.44 GB/s (RDMA), 113.32 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 20: 56.04 GB/s (RDMA), 112.52 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 24: 55.01 GB/s (RDMA), 110.44 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 28: 55.29 GB/s (RDMA), 111.02 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 32: 55.60 GB/s (RDMA), 111.64 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 4: 45.41 GB/s (RDMA), 91.17 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 8: 57.56 GB/s (RDMA), 115.57 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 12: 57.19 GB/s (RDMA), 114.83 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 16: 56.49 GB/s (RDMA), 113.42 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 20: 55.90 GB/s (RDMA), 112.24 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 24: 54.86 GB/s (RDMA), 110.14 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 28: 55.12 GB/s (RDMA), 110.67 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 32: 55.58 GB/s (RDMA), 111.58 GB/s (NVL) 
[tuning] Best dispatch (FP8): SMs 24, NVL chunk 20, RDMA chunk 8: 57.65 GB/s (RDMA), 115.75 GB/s (NVL)

[tuning] SMs 24, NVL chunk 4, RDMA chunk 4: 61.07 GB/s (RDMA), 122.62 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 8: 60.04 GB/s (RDMA), 120.55 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 12: 59.60 GB/s (RDMA), 119.65 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 16: 57.49 GB/s (RDMA), 115.44 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 20: 58.46 GB/s (RDMA), 117.37 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 24: 58.08 GB/s (RDMA), 116.61 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 28: 58.32 GB/s (RDMA), 117.09 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 32: 58.57 GB/s (RDMA), 117.61 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 4: 61.14 GB/s (RDMA), 122.76 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 8: 60.22 GB/s (RDMA), 120.91 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 12: 59.95 GB/s (RDMA), 120.37 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 16: 59.29 GB/s (RDMA), 119.05 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 20: 58.56 GB/s (RDMA), 117.57 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 24: 48.99 GB/s (RDMA), 98.35 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 28: 58.65 GB/s (RDMA), 117.75 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 8, RDMA chunk 32: 58.70 GB/s (RDMA), 117.87 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 4: 61.12 GB/s (RDMA), 122.72 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 8: 60.30 GB/s (RDMA), 121.06 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 12: 59.95 GB/s (RDMA), 120.38 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 16: 59.35 GB/s (RDMA), 119.17 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 20: 58.57 GB/s (RDMA), 117.60 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 24: 58.27 GB/s (RDMA), 117.00 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 28: 58.51 GB/s (RDMA), 117.48 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 12, RDMA chunk 32: 58.87 GB/s (RDMA), 118.20 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 4: 61.02 GB/s (RDMA), 122.51 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 8: 60.16 GB/s (RDMA), 120.78 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 12: 59.86 GB/s (RDMA), 120.19 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 16: 59.30 GB/s (RDMA), 119.07 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 20: 58.67 GB/s (RDMA), 117.79 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 24: 56.83 GB/s (RDMA), 114.10 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 28: 55.95 GB/s (RDMA), 112.34 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 16, RDMA chunk 32: 52.86 GB/s (RDMA), 106.14 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 4: 59.57 GB/s (RDMA), 119.61 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 8: 60.14 GB/s (RDMA), 120.74 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 12: 59.90 GB/s (RDMA), 120.26 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 16: 59.36 GB/s (RDMA), 119.18 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 20: 58.41 GB/s (RDMA), 117.27 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 24: 58.33 GB/s (RDMA), 117.11 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 28: 58.53 GB/s (RDMA), 117.53 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 20, RDMA chunk 32: 58.74 GB/s (RDMA), 117.93 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 4: 60.83 GB/s (RDMA), 122.13 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 8: 60.24 GB/s (RDMA), 120.95 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 12: 59.96 GB/s (RDMA), 120.39 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 16: 59.43 GB/s (RDMA), 119.32 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 20: 58.40 GB/s (RDMA), 117.26 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 24: 58.31 GB/s (RDMA), 117.07 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 28: 58.32 GB/s (RDMA), 117.09 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 24, RDMA chunk 32: 58.78 GB/s (RDMA), 118.02 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 4: 60.97 GB/s (RDMA), 122.42 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 8: 60.26 GB/s (RDMA), 120.98 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 12: 59.71 GB/s (RDMA), 119.88 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 16: 59.24 GB/s (RDMA), 118.93 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 20: 58.39 GB/s (RDMA), 117.23 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 24: 58.24 GB/s (RDMA), 116.94 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 28: 58.51 GB/s (RDMA), 117.47 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 28, RDMA chunk 32: 58.64 GB/s (RDMA), 117.74 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 4: 61.04 GB/s (RDMA), 122.56 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 8: 59.84 GB/s (RDMA), 120.15 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 12: 59.88 GB/s (RDMA), 120.23 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 16: 59.39 GB/s (RDMA), 119.24 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 20: 58.53 GB/s (RDMA), 117.51 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 24: 58.14 GB/s (RDMA), 116.74 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 28: 58.50 GB/s (RDMA), 117.45 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 32, RDMA chunk 32: 58.84 GB/s (RDMA), 118.14 GB/s (NVL) 
[tuning] Best dispatch (BF16): SMs 24, NVL chunk 8, RDMA chunk 4: 61.14 GB/s (RDMA), 122.76 GB/s (NVL)

[tuning] SMs 24, NVL chunk 1, RDMA chunk 8: 58.83 GB/s (RDMA), 118.11 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 1, RDMA chunk 12: 58.51 GB/s (RDMA), 117.48 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 1, RDMA chunk 16: 57.53 GB/s (RDMA), 115.51 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 1, RDMA chunk 20: 57.47 GB/s (RDMA), 115.39 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 1, RDMA chunk 24: 56.76 GB/s (RDMA), 113.97 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 1, RDMA chunk 28: 56.23 GB/s (RDMA), 112.90 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 1, RDMA chunk 32: 55.46 GB/s (RDMA), 111.35 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 8: 58.49 GB/s (RDMA), 117.43 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 12: 58.02 GB/s (RDMA), 116.49 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 16: 57.50 GB/s (RDMA), 115.44 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 20: 57.26 GB/s (RDMA), 114.96 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 24: 56.69 GB/s (RDMA), 113.83 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 28: 56.15 GB/s (RDMA), 112.74 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 2, RDMA chunk 32: 55.48 GB/s (RDMA), 111.40 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 8: 58.38 GB/s (RDMA), 117.21 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 12: 57.98 GB/s (RDMA), 116.42 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 16: 57.58 GB/s (RDMA), 115.60 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 20: 56.52 GB/s (RDMA), 113.49 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 24: 56.38 GB/s (RDMA), 113.19 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 28: 55.67 GB/s (RDMA), 111.78 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 3, RDMA chunk 32: 55.21 GB/s (RDMA), 110.86 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 8: 57.55 GB/s (RDMA), 115.54 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 12: 57.56 GB/s (RDMA), 115.57 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 16: 57.17 GB/s (RDMA), 114.78 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 20: 56.50 GB/s (RDMA), 113.45 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 24: 56.10 GB/s (RDMA), 112.64 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 28: 55.71 GB/s (RDMA), 111.85 GB/s (NVL) 
[tuning] SMs 24, NVL chunk 4, RDMA chunk 32: 55.01 GB/s (RDMA), 110.44 GB/s (NVL) 
[tuning] Best combine: SMs 24, NVL chunk 1, RDMA chunk 8: 58.83 GB/s (RDMA), 118.11 GB/s (NVL)

But in inference engine, I got this:
Image
Each kernel took extremely long time

If I modify topk_idx before all dispatching (It seems does not matter balanced or not. different among tokens but the same among layers) I got even worse result:

Image

I using DeepEP on commit b8d90fb753

I found that if run a kernel several times with the same handle (like we do in the tests), the kernel performance will turns much better.

Originally created by @MistyAir on GitHub (Jun 26, 2025). Original GitHub issue: https://github.com/deepseek-ai/DeepEP/issues/261 I am trying to run DeepEP on 4xH100 node with RoCE network. The tests works fine, and I checked kernel duration. For example, each internode::combine takes about 3-4ms. But when I use DeepEP in inference engine, the latency raised a lot (about 10-12 ms, could raise up to 50ms or more). This is test result of test_internode.py ```bash [config] num_tokens=4096, hidden=7168, num_topk_groups=4, num_topk=8 [layout] Kernel performance: 0.054 ms [testing] Running with BF16, without top-k (async=False, previous=False) ... passed [testing] Running with BF16, with top-k (async=False, previous=False) ... passed [testing] Running with BF16, without top-k (async=False, previous=False) ... passed [testing] Running with BF16, with top-k (async=False, previous=False) ... passed [testing] Running with FP8, without top-k (async=False, previous=False) ... passed [testing] Running with FP8, with top-k (async=False, previous=False) ... passed [testing] Running with BF16, without top-k (async=True, previous=False) ... passed [testing] Running with BF16, with top-k (async=True, previous=False) ... passed [testing] Running with BF16, without top-k (async=True, previous=False) ... passed [testing] Running with BF16, with top-k (async=True, previous=False) ... passed [testing] Running with FP8, without top-k (async=True, previous=False) ... passed [testing] Running with FP8, with top-k (async=True, previous=False) ... passed [testing] Running with BF16, without top-k (async=False, previous=True) ... passed [testing] Running with BF16, with top-k (async=False, previous=True) ... passed [testing] Running with BF16, without top-k (async=False, previous=True) ... passed [testing] Running with BF16, with top-k (async=False, previous=True) ... passed [testing] Running with FP8, without top-k (async=False, previous=True) ... passed [testing] Running with FP8, with top-k (async=False, previous=True) ... passed [testing] Running with BF16, without top-k (async=True, previous=True) ... passed [testing] Running with BF16, with top-k (async=True, previous=True) ... passed [testing] Running with BF16, without top-k (async=True, previous=True) ... passed [testing] Running with BF16, with top-k (async=True, previous=True) ... passed [testing] Running with FP8, without top-k (async=True, previous=True) ... passed [testing] Running with FP8, with top-k (async=True, previous=True) ... passed [tuning] SMs 24, NVL chunk 4, RDMA chunk 4: 45.31 GB/s (RDMA), 90.97 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 8: 56.27 GB/s (RDMA), 112.98 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 12: 55.82 GB/s (RDMA), 112.07 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 16: 55.39 GB/s (RDMA), 111.22 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 20: 54.78 GB/s (RDMA), 109.99 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 24: 53.74 GB/s (RDMA), 107.90 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 28: 53.84 GB/s (RDMA), 108.10 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 32: 54.20 GB/s (RDMA), 108.82 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 4: 45.37 GB/s (RDMA), 91.09 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 8: 57.57 GB/s (RDMA), 115.60 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 12: 57.12 GB/s (RDMA), 114.68 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 16: 56.78 GB/s (RDMA), 114.01 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 20: 55.91 GB/s (RDMA), 112.25 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 24: 55.04 GB/s (RDMA), 110.51 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 28: 55.14 GB/s (RDMA), 110.71 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 32: 55.51 GB/s (RDMA), 111.45 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 4: 45.38 GB/s (RDMA), 91.12 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 8: 57.63 GB/s (RDMA), 115.72 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 12: 57.14 GB/s (RDMA), 114.73 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 16: 57.02 GB/s (RDMA), 114.48 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 20: 56.00 GB/s (RDMA), 112.44 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 24: 55.21 GB/s (RDMA), 110.84 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 28: 55.26 GB/s (RDMA), 110.95 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 32: 55.59 GB/s (RDMA), 111.60 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 4: 45.16 GB/s (RDMA), 90.67 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 8: 57.60 GB/s (RDMA), 115.64 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 12: 57.36 GB/s (RDMA), 115.16 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 16: 56.83 GB/s (RDMA), 114.10 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 20: 49.52 GB/s (RDMA), 99.43 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 24: 55.11 GB/s (RDMA), 110.66 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 28: 55.25 GB/s (RDMA), 110.92 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 32: 55.80 GB/s (RDMA), 112.03 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 4: 45.30 GB/s (RDMA), 90.94 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 8: 57.65 GB/s (RDMA), 115.75 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 12: 57.17 GB/s (RDMA), 114.79 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 16: 56.81 GB/s (RDMA), 114.06 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 20: 55.97 GB/s (RDMA), 112.37 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 24: 55.04 GB/s (RDMA), 110.50 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 28: 55.18 GB/s (RDMA), 110.78 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 32: 55.68 GB/s (RDMA), 111.80 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 4: 45.31 GB/s (RDMA), 90.97 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 8: 57.49 GB/s (RDMA), 115.43 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 12: 57.38 GB/s (RDMA), 115.21 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 16: 56.61 GB/s (RDMA), 113.66 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 20: 55.83 GB/s (RDMA), 112.09 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 24: 55.28 GB/s (RDMA), 111.00 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 28: 54.97 GB/s (RDMA), 110.37 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 32: 55.77 GB/s (RDMA), 111.98 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 4: 45.28 GB/s (RDMA), 90.92 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 8: 57.60 GB/s (RDMA), 115.65 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 12: 57.19 GB/s (RDMA), 114.82 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 16: 56.44 GB/s (RDMA), 113.32 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 20: 56.04 GB/s (RDMA), 112.52 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 24: 55.01 GB/s (RDMA), 110.44 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 28: 55.29 GB/s (RDMA), 111.02 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 32: 55.60 GB/s (RDMA), 111.64 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 4: 45.41 GB/s (RDMA), 91.17 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 8: 57.56 GB/s (RDMA), 115.57 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 12: 57.19 GB/s (RDMA), 114.83 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 16: 56.49 GB/s (RDMA), 113.42 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 20: 55.90 GB/s (RDMA), 112.24 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 24: 54.86 GB/s (RDMA), 110.14 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 28: 55.12 GB/s (RDMA), 110.67 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 32: 55.58 GB/s (RDMA), 111.58 GB/s (NVL) [tuning] Best dispatch (FP8): SMs 24, NVL chunk 20, RDMA chunk 8: 57.65 GB/s (RDMA), 115.75 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 4: 61.07 GB/s (RDMA), 122.62 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 8: 60.04 GB/s (RDMA), 120.55 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 12: 59.60 GB/s (RDMA), 119.65 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 16: 57.49 GB/s (RDMA), 115.44 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 20: 58.46 GB/s (RDMA), 117.37 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 24: 58.08 GB/s (RDMA), 116.61 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 28: 58.32 GB/s (RDMA), 117.09 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 32: 58.57 GB/s (RDMA), 117.61 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 4: 61.14 GB/s (RDMA), 122.76 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 8: 60.22 GB/s (RDMA), 120.91 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 12: 59.95 GB/s (RDMA), 120.37 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 16: 59.29 GB/s (RDMA), 119.05 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 20: 58.56 GB/s (RDMA), 117.57 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 24: 48.99 GB/s (RDMA), 98.35 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 28: 58.65 GB/s (RDMA), 117.75 GB/s (NVL) [tuning] SMs 24, NVL chunk 8, RDMA chunk 32: 58.70 GB/s (RDMA), 117.87 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 4: 61.12 GB/s (RDMA), 122.72 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 8: 60.30 GB/s (RDMA), 121.06 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 12: 59.95 GB/s (RDMA), 120.38 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 16: 59.35 GB/s (RDMA), 119.17 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 20: 58.57 GB/s (RDMA), 117.60 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 24: 58.27 GB/s (RDMA), 117.00 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 28: 58.51 GB/s (RDMA), 117.48 GB/s (NVL) [tuning] SMs 24, NVL chunk 12, RDMA chunk 32: 58.87 GB/s (RDMA), 118.20 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 4: 61.02 GB/s (RDMA), 122.51 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 8: 60.16 GB/s (RDMA), 120.78 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 12: 59.86 GB/s (RDMA), 120.19 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 16: 59.30 GB/s (RDMA), 119.07 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 20: 58.67 GB/s (RDMA), 117.79 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 24: 56.83 GB/s (RDMA), 114.10 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 28: 55.95 GB/s (RDMA), 112.34 GB/s (NVL) [tuning] SMs 24, NVL chunk 16, RDMA chunk 32: 52.86 GB/s (RDMA), 106.14 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 4: 59.57 GB/s (RDMA), 119.61 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 8: 60.14 GB/s (RDMA), 120.74 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 12: 59.90 GB/s (RDMA), 120.26 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 16: 59.36 GB/s (RDMA), 119.18 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 20: 58.41 GB/s (RDMA), 117.27 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 24: 58.33 GB/s (RDMA), 117.11 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 28: 58.53 GB/s (RDMA), 117.53 GB/s (NVL) [tuning] SMs 24, NVL chunk 20, RDMA chunk 32: 58.74 GB/s (RDMA), 117.93 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 4: 60.83 GB/s (RDMA), 122.13 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 8: 60.24 GB/s (RDMA), 120.95 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 12: 59.96 GB/s (RDMA), 120.39 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 16: 59.43 GB/s (RDMA), 119.32 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 20: 58.40 GB/s (RDMA), 117.26 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 24: 58.31 GB/s (RDMA), 117.07 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 28: 58.32 GB/s (RDMA), 117.09 GB/s (NVL) [tuning] SMs 24, NVL chunk 24, RDMA chunk 32: 58.78 GB/s (RDMA), 118.02 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 4: 60.97 GB/s (RDMA), 122.42 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 8: 60.26 GB/s (RDMA), 120.98 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 12: 59.71 GB/s (RDMA), 119.88 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 16: 59.24 GB/s (RDMA), 118.93 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 20: 58.39 GB/s (RDMA), 117.23 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 24: 58.24 GB/s (RDMA), 116.94 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 28: 58.51 GB/s (RDMA), 117.47 GB/s (NVL) [tuning] SMs 24, NVL chunk 28, RDMA chunk 32: 58.64 GB/s (RDMA), 117.74 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 4: 61.04 GB/s (RDMA), 122.56 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 8: 59.84 GB/s (RDMA), 120.15 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 12: 59.88 GB/s (RDMA), 120.23 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 16: 59.39 GB/s (RDMA), 119.24 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 20: 58.53 GB/s (RDMA), 117.51 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 24: 58.14 GB/s (RDMA), 116.74 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 28: 58.50 GB/s (RDMA), 117.45 GB/s (NVL) [tuning] SMs 24, NVL chunk 32, RDMA chunk 32: 58.84 GB/s (RDMA), 118.14 GB/s (NVL) [tuning] Best dispatch (BF16): SMs 24, NVL chunk 8, RDMA chunk 4: 61.14 GB/s (RDMA), 122.76 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 8: 58.83 GB/s (RDMA), 118.11 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 12: 58.51 GB/s (RDMA), 117.48 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 16: 57.53 GB/s (RDMA), 115.51 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 20: 57.47 GB/s (RDMA), 115.39 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 24: 56.76 GB/s (RDMA), 113.97 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 28: 56.23 GB/s (RDMA), 112.90 GB/s (NVL) [tuning] SMs 24, NVL chunk 1, RDMA chunk 32: 55.46 GB/s (RDMA), 111.35 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 8: 58.49 GB/s (RDMA), 117.43 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 12: 58.02 GB/s (RDMA), 116.49 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 16: 57.50 GB/s (RDMA), 115.44 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 20: 57.26 GB/s (RDMA), 114.96 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 24: 56.69 GB/s (RDMA), 113.83 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 28: 56.15 GB/s (RDMA), 112.74 GB/s (NVL) [tuning] SMs 24, NVL chunk 2, RDMA chunk 32: 55.48 GB/s (RDMA), 111.40 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 8: 58.38 GB/s (RDMA), 117.21 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 12: 57.98 GB/s (RDMA), 116.42 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 16: 57.58 GB/s (RDMA), 115.60 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 20: 56.52 GB/s (RDMA), 113.49 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 24: 56.38 GB/s (RDMA), 113.19 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 28: 55.67 GB/s (RDMA), 111.78 GB/s (NVL) [tuning] SMs 24, NVL chunk 3, RDMA chunk 32: 55.21 GB/s (RDMA), 110.86 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 8: 57.55 GB/s (RDMA), 115.54 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 12: 57.56 GB/s (RDMA), 115.57 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 16: 57.17 GB/s (RDMA), 114.78 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 20: 56.50 GB/s (RDMA), 113.45 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 24: 56.10 GB/s (RDMA), 112.64 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 28: 55.71 GB/s (RDMA), 111.85 GB/s (NVL) [tuning] SMs 24, NVL chunk 4, RDMA chunk 32: 55.01 GB/s (RDMA), 110.44 GB/s (NVL) [tuning] Best combine: SMs 24, NVL chunk 1, RDMA chunk 8: 58.83 GB/s (RDMA), 118.11 GB/s (NVL) ``` But in inference engine, I got this: ![Image](https://github.com/user-attachments/assets/d4ed0ab5-e683-4ed6-8a1c-e33394d9f9a9) Each kernel took extremely long time If I modify topk_idx before all dispatching (It seems does not matter balanced or not. different among tokens but the same among layers) I got even worse result: ![Image](https://github.com/user-attachments/assets/f59f5d61-c4fa-4bee-acca-e42bacde8e86) I using DeepEP on commit b8d90fb7531d6ef1d53e36d6c5819030dc633633 I found that if run a kernel several times with the same handle (like we do in the tests), the kernel performance will turns much better.
Author
Owner

@LyricZhao commented on GitHub (Jun 27, 2025):

Without handle, there will be a CPU synchronization, I am not sure whether you have some CPU issues (e.g. CPU core so busy, etc.).

If I modify topk_idx before all dispatching (It seems does not matter balanced or not. different among tokens but the same among layers) I got even worse result:

You should make sure topk_idx well balanced, the traffic of RDMA and NVLink is somehow balanced.

Or maybe try to add a dist.barrier before dispatch/combine.

<!-- gh-comment-id:3011849450 --> @LyricZhao commented on GitHub (Jun 27, 2025): Without handle, there will be a CPU synchronization, I am not sure whether you have some CPU issues (e.g. CPU core so busy, etc.). > If I modify topk_idx before all dispatching (It seems does not matter balanced or not. different among tokens but the same among layers) I got even worse result: You should make sure `topk_idx` well balanced, the traffic of RDMA and NVLink is somehow balanced. Or maybe try to add a `dist.barrier` before dispatch/combine.
Author
Owner

@MistyAir commented on GitHub (Jun 27, 2025):

You should make sure topk_idx well balanced, the traffic of RDMA and NVLink is somehow balanced.

Or maybe try to add a dist.barrier before dispatch/combine.

Thank you for replying. Maybe I will try barrier first.

BTW, I didn't observe the same issue while running EP16. Both EP16/EP32 have EPLB enabled.

<!-- gh-comment-id:3012034076 --> @MistyAir commented on GitHub (Jun 27, 2025): > You should make sure `topk_idx` well balanced, the traffic of RDMA and NVLink is somehow balanced. > > Or maybe try to add a `dist.barrier` before dispatch/combine. Thank you for replying. Maybe I will try barrier first. BTW, I didn't observe the same issue while running EP16. Both EP16/EP32 have EPLB enabled.
Author
Owner

@MistyAir commented on GitHub (Jun 30, 2025):

I added barrier in compute stream and it shows communication process itself didn't take that much time. Communication kernels last so long because some of ranks haven't finish their computation and other ranks were waiting them inside the combine kernel.

Image

<!-- gh-comment-id:3017711358 --> @MistyAir commented on GitHub (Jun 30, 2025): I added barrier in compute stream and it shows communication process itself didn't take that much time. Communication kernels last so long because some of ranks haven't finish their computation and other ranks were waiting them inside the combine kernel. ![Image](https://github.com/user-attachments/assets/88dbafaf-8dd1-491c-a452-923ceeb65834)
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#193
No description provided.