From f94666b60d4c58ec0807d22c837cfae322a1dde9 Mon Sep 17 00:00:00 2001 From: DaeHyun Sung Date: Mon, 24 Aug 2026 13:31:33 +0900 Subject: [PATCH] [Bugfix][XPU] Skip oneCCL warm-up all_reduce when world_size == 1 (#52389) Signed-off-by: DaeHyun Sung --- vllm/v1/worker/xpu_worker.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/vllm/v1/worker/xpu_worker.py b/vllm/v1/worker/xpu_worker.py index 091406a22b..95921ffc61 100644 --- a/vllm/v1/worker/xpu_worker.py +++ b/vllm/v1/worker/xpu_worker.py @@ -100,8 +100,13 @@ class XPUWorker(Worker): current_platform.dist_backend, ) - # global all_reduce needed for overall oneccl warm up - if torch.distributed.is_xccl_available(): + # oneCCL warm-up; only meaningful for multi-device runs. Requiring it + # with a single worker breaks platforms where oneCCL cannot enumerate + # device topology (e.g. paravirtualized GPUs). + if ( + self.parallel_config.world_size > 1 + and torch.distributed.is_xccl_available() + ): torch.distributed.all_reduce(torch.zeros(1).xpu()) if self.use_v2_model_runner: