@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 235c9db8a7
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 14, 05:30 UTC

[XPU] support data parallel for MoE models on XPU (#22887)

Signed-off-by: chzhang <chaojun.zhang@intel.com>

Chaojun Zhang committed Aug 29, 2025 at 09:23 UTC 235c9db8a755e0404628a568bf29a492257fe52e
2 files changed +13
vllm/distributed/device_communicators/xpu_communicator.py
+11
@@ -7,8 +7,13 @@ import torch
7 import torch.distributed as dist
8 from torch.distributed import ProcessGroup
9
10 +import vllm.envs as envs
11 +from vllm.logger import init_logger
12 +
13 from .base_device_communicator import DeviceCommunicatorBase
14
15 +logger = init_logger(__name__)
16 +
17
18 class XpuCommunicator(DeviceCommunicatorBase):
19
@@ -18,6 +23,12 @@ class XpuCommunicator(DeviceCommunicatorBase):
23 device_group: Optional[ProcessGroup] = None,
24 unique_name: str = ""):
25 super().__init__(cpu_group, device, device_group, unique_name)
26 + if self.use_all2all:
27 + all2all_backend = envs.VLLM_ALL2ALL_BACKEND
28 + if all2all_backend == "naive":
29 + from .all2all import NaiveAll2AllManager
30 + self.all2all_manager = NaiveAll2AllManager(self.cpu_group)
31 + logger.info("Using naive all2all manager.")
32
33 def all_reduce(self, input_) -> torch.Tensor:
34 dist.all_reduce(input_, group=self.device_group)
vllm/model_executor/layers/fused_moe/layer.py
+2
@@ -655,6 +655,8 @@ class UnquantizedFusedMoEMethod(FusedMoEMethodBase, CustomOp):
655 forward_native = forward_tpu
656 elif current_platform.is_cpu():
657 forward_native = forward_cpu
658 + elif current_platform.is_xpu():
659 + forward_native = forward_xpu
660 else:
661 forward_native = forward_cuda
662