From b90093e42d58d07994cdd7924ea49472efefd9ee Mon Sep 17 00:00:00 2001 From: Isotr0py <2037008807@qq.com> Date: Sun, 27 Apr 2025 16:40:17 +0800 Subject: [PATCH 1/2] fix avx2 CPU TP Signed-off-by: Isotr0py <2037008807@qq.com> --- .../device_communicators/cpu_communicator.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vllm/distributed/device_communicators/cpu_communicator.py b/vllm/distributed/device_communicators/cpu_communicator.py index 1f4b4faf119..525da71c913 100644 --- a/vllm/distributed/device_communicators/cpu_communicator.py +++ b/vllm/distributed/device_communicators/cpu_communicator.py @@ -6,11 +6,14 @@ import torch from torch.distributed import ProcessGroup +from vllm.logger import init_logger from vllm.platforms import current_platform from vllm.platforms.interface import CpuArchEnum from .base_device_communicator import DeviceCommunicatorBase +logger = init_logger(__name__) + class CpuCommunicator(DeviceCommunicatorBase): @@ -23,7 +26,12 @@ def __init__(self, self.dist_module = torch.distributed if current_platform.get_cpu_architecture() == CpuArchEnum.X86: - self.dist_module = _CPUSHMDistributed(self) + try: + self.dist_module = _CPUSHMDistributed(self) + except AttributeError: + logger.warning_once( + "CPUSHM is unavailable for non-avx512 CPUs yet. " + "Falling back to torch native CPU communicator.") def all_reduce(self, input_): self.dist_module.all_reduce(input_, group=self.device_group) From 4fc20b9f889aa52706e3b4e1f821de55fd62a336 Mon Sep 17 00:00:00 2001 From: Isotr0py <2037008807@qq.com> Date: Tue, 6 May 2025 22:40:32 +0800 Subject: [PATCH 2/2] remove try except case Signed-off-by: Isotr0py <2037008807@qq.com> --- .../device_communicators/cpu_communicator.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/vllm/distributed/device_communicators/cpu_communicator.py b/vllm/distributed/device_communicators/cpu_communicator.py index 525da71c913..296f5f2b424 100644 --- a/vllm/distributed/device_communicators/cpu_communicator.py +++ b/vllm/distributed/device_communicators/cpu_communicator.py @@ -6,14 +6,11 @@ import torch from torch.distributed import ProcessGroup -from vllm.logger import init_logger from vllm.platforms import current_platform from vllm.platforms.interface import CpuArchEnum from .base_device_communicator import DeviceCommunicatorBase -logger = init_logger(__name__) - class CpuCommunicator(DeviceCommunicatorBase): @@ -25,13 +22,9 @@ def __init__(self, super().__init__(cpu_group, device, device_group, unique_name) self.dist_module = torch.distributed - if current_platform.get_cpu_architecture() == CpuArchEnum.X86: - try: - self.dist_module = _CPUSHMDistributed(self) - except AttributeError: - logger.warning_once( - "CPUSHM is unavailable for non-avx512 CPUs yet. " - "Falling back to torch native CPU communicator.") + if (current_platform.get_cpu_architecture() == CpuArchEnum.X86) \ + and hasattr(torch.ops._C, "init_shm_manager"): + self.dist_module = _CPUSHMDistributed(self) def all_reduce(self, input_): self.dist_module.all_reduce(input_, group=self.device_group)