diff --git a/vllm/platforms/xpu.py b/vllm/platforms/xpu.py index d52ba23243f..bd9006f3f8f 100644 --- a/vllm/platforms/xpu.py +++ b/vllm/platforms/xpu.py @@ -213,6 +213,26 @@ class XPUPlatform(Platform): "falling back to PIECEWISE graph mode on XPU platform." ) + # Disable fusion passes not yet supported on XPU. + pass_config = compilation_config.pass_config + fusion_passes_to_disable = { + "enable_sp": "Sequence parallelism", + "fuse_gemm_comms": "Async TP", + "fuse_allreduce_rms": "AllReduce + RMSNorm fusion", + "fuse_norm_quant": "RMSNorm + quant fusion", + "fuse_act_quant": "Activation + quant fusion", + "fuse_attn_quant": "Attention + quant fusion", + "fuse_act_padding": "Activation + padding fusion", + "fuse_rope_kvcache": "RoPE + KV cache fusion", + } + for flag, feature_name in fusion_passes_to_disable.items(): + if getattr(pass_config, flag): + logger.warning( + "Feature %r is not yet supported on XPU and will be disabled.", + feature_name, + ) + setattr(pass_config, flag, False) + # check and update parallel config parallel_config = vllm_config.parallel_config # Only override worker_cls if it's still the default "auto"