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 1, 18:45 UTC
[XPU] add xpu branch in compressed_tensors_moe_w4a4_mxfp4 (#44540)
Signed-off-by: Zhu, Zufang <zufang.zhu@intel.com> Signed-off-by: Kunshang Ji <jikunshang95@gmail.com> Co-authored-by: Kunshang Ji <jikunshang95@gmail.com>
zofia committed
Jun 7, 2026 at 12:27 UTC
6181e80fe0c619c0f4fa256e0a37920c2e36f523
2 files changed
+12
-1
.buildkite/intel_jobs/test-intel.yaml
+2
-1
@@ -41,7 +41,8 @@ steps:
41
python3 examples/basic/offline_inference/generate.py --model ibm-research/PowerMoE-3b --block-size 64 --enforce-eager -tp 2 &&
42
python3 examples/basic/offline_inference/generate.py --model ibm-research/PowerMoE-3b --block-size 64 --enforce-eager -tp 2 --enable-expert-parallel &&
43
python3 examples/basic/offline_inference/generate.py --model superjob/Qwen3-4B-Instruct-2507-GPTQ-Int4 --max-model-len 8192 &&
44
- VLLM_XPU_FUSED_MOE_USE_REF=1 python3 examples/basic/offline_inference/generate.py --model Qwen/Qwen3-30B-A3B-Instruct-2507-FP8 --enforce-eager -tp 2
44
+ VLLM_XPU_FUSED_MOE_USE_REF=1 python3 examples/basic/offline_inference/generate.py --model Qwen/Qwen3-30B-A3B-Instruct-2507-FP8 --enforce-eager -tp 2 --max-model-len 8192 &&
45
+ python3 examples/basic/offline_inference/generate.py --model INCModel/Qwen3-30B-A3B-Instruct-2507-MXFP4-LLMC --enforce-eager -tp 2 --max-model-len 8192
46
'
47
- label: "XPU V1 test"
48
depends_on:
vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe/compressed_tensors_moe_w4a4_mxfp4.py
+10
@@ -21,6 +21,9 @@ from vllm.model_executor.layers.fused_moe.experts.cutlass_moe import (
21
from vllm.model_executor.layers.fused_moe.experts.marlin_moe import (
22
MarlinExperts,
23
)
24
+from vllm.model_executor.layers.fused_moe.experts.xpu_moe import (
25
+ XPUExpertsMXFp4,
26
+)
27
from vllm.model_executor.layers.fused_moe.oracle.mxfp4 import (
28
Mxfp4MoeBackend,
29
make_mxfp4_moe_kernel,
@@ -33,6 +36,7 @@ from vllm.model_executor.layers.quantization.utils.marlin_utils_fp4 import (
36
prepare_moe_fp4_layer_for_marlin,
37
)
38
from vllm.model_executor.utils import set_weight_attrs
39
+from vllm.platforms import current_platform
40
41
logger = init_logger(__name__)
42
@@ -48,6 +52,10 @@ class CompressedTensorsW4A4Mxfp4MoEMethod(CompressedTensorsMoEMethod):
52
if self.use_cutlass_mxfp4:
53
logger.info_once("Using CutlassExpertsMxfp4 for MXFP4 MoE")
54
self.experts_cls = CutlassExpertsMxfp4
55
+ elif current_platform.is_xpu():
56
+ self.mxfp4_backend = Mxfp4MoeBackend.XPU
57
+ self.experts_cls = XPUExpertsMXFp4
58
+ logger.info_once("Using XPUExpertsMXFp4 for MXFP4 MoE on XPU platform")
59
else:
60
logger.info_once("Using MarlinExperts for MXFP4 MoE")
61
self.experts_cls = MarlinExperts
@@ -179,6 +187,8 @@ class CompressedTensorsW4A4Mxfp4MoEMethod(CompressedTensorsMoEMethod):
187
layer.w2_weight_scale = torch.nn.Parameter(
188
torch.stack(swizzled_w2), requires_grad=False
189
)
190
+ elif current_platform.is_xpu():
191
+ pass
192
else:
193
logger.warning_once(
194
"Your GPU does not have native support for FP4 computation "