[MoE] enable all2all fi_one_sided by default (#53311)

Signed-off-by: Artem Perevedentsev <aperevedents@nvidia.com>

Artem Perevedentsev committed Aug 26, 2026 at 15:03 UTC 2cd6c664c1ec050328a33be5a8b8167605663536
2 files changed +7 -3
vllm/config/parallel.py
+3 -3
@@ -192,7 +192,7 @@ class ParallelConfig:
192 with 4 experts and 2 ranks, rank 0 will have experts [0, 2] and rank 1
193 will have experts [1, 3]. This strategy can help improve load balancing
194 for grouped expert models with no redundant experts."""
195 - all2all_backend: All2AllBackend = "allgather_reducescatter"
195 + all2all_backend: All2AllBackend = "flashinfer_nvlink_one_sided"
196 """All2All backend for MoE expert parallel communication. Available options:
197
198 - "allgather_reducescatter": All2all based on allgather and reducescatter
@@ -201,8 +201,8 @@ class ParallelConfig:
201 - "mori_high_throughput": MoRI EP with InterNodeV1 for multi-node
202 - "mori_low_latency": MoRI EP with InterNodeV1LL for multi-node
203 - "nixl_ep": Use nixl-ep kernels
204 - - "flashinfer_nvlink_two_sided": Use flashinfer two-sided kernels for mnnvl
205 - - "flashinfer_nvlink_one_sided": Use flashinfer high-throughput a2a kernels"""
204 + - "flashinfer_nvlink_one_sided": Use flashinfer high-throughput a2a kernels
205 + - "flashinfer_nvlink_two_sided": Use flashinfer two-sided kernels for mnnvl"""
206
207 max_parallel_loading_workers: int | None = Field(default=None, ge=1)
208 """Maximum number of parallel loading workers when loading model
vllm/distributed/device_communicators/all2all.py
+4
@@ -815,6 +815,10 @@ class FlashInferNVLinkOneSidedManager(All2AllManagerBase):
815 comm_backend=CustomCommunicator(self.cpu_group),
816 )
817
818 + # Release cached allocator blocks before FlashInfer reserves the
819 + # symmetric MNNVL fabric workspace.
820 + torch.accelerator.empty_cache()
821 +
822 self.moe_alltoall = MoeAlltoAll(
823 mapping=self.mapping,
824 max_num_tokens=self.max_num_tokens,