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