[XPU] Fix inc int4 model - #50209
[XPU] Fix inc int4 model#50209mayuyuace wants to merge 5 commits into
Conversation
INCWna16Scheme.get_moe_method returned UnquantizedFusedMoEMethod for XPU, materializing every expert as full bf16. On a 24GB card an int4 AutoRound MoE (e.g. Qwen3-30B-A3B) OOMs at load. XPU already has a working quantized MoE path (the WNA16 oracle -> XPUExpertsWNA16, added in vllm-project#41426), reached via _resolve_gptq_moe -> MoeWNA16Method, so the dequant fallback is both wasteful and broken on memory-constrained cards. - Drop XPU from the dequant early-return (keep CPU, which lacks a quantized MoE path) so sym-int4 GPTQ/AutoRound flows to _resolve_gptq_moe. - Gate use_marlin off for XPU in _resolve_gptq_moe: check_moe_marlin_supports_layer is platform-agnostic, but Marlin is CUDA-only (torch.ops._C), so XPU must take the MoeWNA16Method path, not AutoGPTQMoEMethod. Verified on Arc Pro B60 with Intel/Qwen3-30B-A3B-Instruct-2507-int4-AutoRound: - Before: OOM at load ('not enough GPU memory', UnquantizedFusedMoEMethod). - After: loads and generates correctly via the XPU WNA16 backend. Fixes vllm-project#47937. Signed-off-by: gurwinderintel <gurwinder.singh@intel.com>
Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
|
This pull request has merge conflicts that must be resolved before it can be |
Signed-off-by: Qiming Zhang <qiming1.zhang@intel.com>
|
@mayuyuace could we reconsider closing this? I don't think #47124 fully closes the bug — I think it only makes it much harder to hit. #47124 routes INC to At that point nothing stops it: Concrete case — If it reproduces, two options:
I'd prefer 1 if you're up for it; happy to send 2 as a stopgap otherwise. Either way it beats silently transposing the weights. |
192 % 128 != 0 means that N=192 but group size =128. |
Refer to #48555 and patch from the comment.
Verified with Qwen/Qwen3-30B-A3B-GPTQ-Int4, Intel/Qwen3-30B-A3B-Instruct-2507-int4-AutoRound.