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