From 67b21871f52b36f5fca1bc2077843163cea03aca Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Thu, 29 Oct 2026 16:56:29 +0800 Subject: [PATCH] =?UTF-8?q?CollectiveX:=20give=20b200-nscale=20DeepEP=20V2?= =?UTF-8?q?=20its=20RDMA=20rate=20from=20the=20registry=20/=20CollectiveX?= =?UTF-8?q?=EF=BC=9A=E4=BB=8E=E6=B3=A8=E5=86=8C=E8=A1=A8=E4=B8=BA=20b200-n?= =?UTF-8?q?scale=20=E7=9A=84=20DeepEP=20V2=20=E6=8F=90=E4=BE=9B=20RDMA=20?= =?UTF-8?q?=E9=80=9F=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The vLLM v0.32.0 image does not ship ibstat, so DeepEP V2's SM model read a scale-out rate of 0 on b200-nscale and normal-mode EP16 died with ZeroDivisionError in get_theoretical_num_sms, as it did on h200-dgxc before #4615. The registry now sets rdma_gbs to 50 GB/s, the per-GPU rate of the pool's 400 Gb/s InfiniBand rails. Two comments that still said the override applies only on EFA now say it applies wherever the registry sets rdma_gbs. vLLM v0.32.0 镜像不包含 ibstat,导致 b200-nscale 上 DeepEP V2 的 SM 模型读到的 scale-out 速率为 0, normal 模式 EP16 在 get_theoretical_num_sms 中因 ZeroDivisionError 失败,与 #4615 之前 h200-dgxc 的情况相同。注册表现在将 rdma_gbs 设为 50 GB/s,即该资源池 400 Gb/s InfiniBand 链路的每 GPU 速率。 两处仍称该覆盖仅适用于 EFA 的注释,改为说明它适用于注册表设置了 rdma_gbs 的所有资源池。 --- collectivex/bench/ep_deepep_v2.py | 4 ++-- collectivex/configs/platform_config.json | 3 ++- collectivex/docs/methodology.md | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/collectivex/bench/ep_deepep_v2.py b/collectivex/bench/ep_deepep_v2.py index e6a7472752..b31b79fbac 100644 --- a/collectivex/bench/ep_deepep_v2.py +++ b/collectivex/bench/ep_deepep_v2.py @@ -136,7 +136,7 @@ class DeepEPV2Backend(LegacyBufferLL, EPBackend): # vLLM's low-latency send/receive split (see LegacyBufferLL). ll_recv_hook = True # The num_sms the timed dispatch passes: 0 hands the count to DeepEP's model, as vLLM does; - # create_buffer overrides it only on EFA. + # create_buffer overrides it where the registry sets rdma_gbs. _dispatch_num_sms = 0 @staticmethod @@ -380,7 +380,7 @@ def dispatch(self, p): num_experts=self.args.experts, num_max_tokens_per_rank=self._dispatch_capacity(p.T), expert_alignment=1, - num_sms=self._dispatch_num_sms, # 0 (DeepEP's model) except on EFA; see create_buffer + num_sms=self._dispatch_num_sms, # 0 (DeepEP's model) unless rdma_gbs is set async_with_compute_stream=False, do_handle_copy=True, do_cpu_sync=False, diff --git a/collectivex/configs/platform_config.json b/collectivex/configs/platform_config.json index ecc13310a1..1dd176dcc0 100644 --- a/collectivex/configs/platform_config.json +++ b/collectivex/configs/platform_config.json @@ -65,7 +65,8 @@ }, "network": { "socket_ifname": "bond0", - "rdma_devices": "mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_10,mlx5_11" + "rdma_devices": "mlx5_0,mlx5_1,mlx5_2,mlx5_3,mlx5_4,mlx5_5,mlx5_10,mlx5_11", + "rdma_gbs": 50 } }, "b300": { diff --git a/collectivex/docs/methodology.md b/collectivex/docs/methodology.md index 9e01236503..6b3a0af9f6 100644 --- a/collectivex/docs/methodology.md +++ b/collectivex/docs/methodology.md @@ -182,8 +182,8 @@ when the LSA team is smaller than the world. x86 EP16 is that hybrid path, GIN a domains of eight scale-up ranks each. GB EP16 stays inside MNNVL and uses LSA. Hybrid EP16 allocates 33 GIN QPs per peer (a fixed 512-QP budget) instead of the automatic 65/129, which exhausts the per-NIC QP budget on CX-7. DeepEP's SM model reads the scale-out rate from an `ibstat` probe that cannot -see EFA and that the vLLM image does not ship, so on the EFA pools and on h200-dgxc the registry's -`network.rdma_gbs` supplies the per-GPU rate and the resulting count is passed explicitly +see EFA and that the vLLM image does not ship, so on the EFA pools, h200-dgxc and b200-nscale the +registry's `network.rdma_gbs` supplies the per-GPU rate and the resulting count is passed explicitly (`library_config.sm_model_rdma_gbs`). **A virtualized pool can make a scale-out row measure the hypervisor.** ElasticBuffer registers its GIN