[XPU] Enable QK Norm + RoPE fusion pass on XPU (#49394)
Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com> Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>
Chaojun Zhang committed
Jul 27, 2026 at 11:22 UTC
bf4f633b4cb80e04ba28d2179efe1662d97a6fe0
3 files changed
+24
-3
.buildkite/intel_jobs/misc_intel.yaml
+22
@@ -262,3 +262,25 @@ steps:
262
pytest -v -s detokenizer &&
263
pytest -v -s -m "not cpu_test" ./multimodal &&
264
pytest -v -s utils_ --ignore=utils_/test_mem_utils.py'
265
+
266
+- label: Fusion Unit Tests
267
+ timeout_in_minutes: 30
268
+ device: intel_gpu
269
+ agent_tags:
270
+ label: production
271
+ gpu: 1+
272
+ mem: 16+
273
+ no_plugin: true
274
+ working_dir: "."
275
+ env:
276
+ REGISTRY: "public.ecr.aws/q9t5s3a7"
277
+ REPO: "vllm-ci-test-repo"
278
+ VLLM_TEST_DEVICE: "xpu"
279
+ source_file_dependencies:
280
+ - vllm/compilation/
281
+ - tests/compile/passes/test_qk_norm_rope_fusion.py
282
+ commands:
283
+ - >-
284
+ bash .buildkite/scripts/hardware_ci/run-intel-test.sh
285
+ 'cd tests &&
286
+ pytest -v -s compile/passes/test_qk_norm_rope_fusion.py'
\ No newline at end of file
vllm/compilation/passes/pass_manager.py
+2
-2
@@ -30,19 +30,19 @@ if rocm_aiter_ops.is_enabled():
30
)
31
32
if current_platform.is_cuda_alike() or current_platform.is_xpu():
33
+ from .fusion.qk_norm_rope_fusion import QKNormRoPEFusionPass
34
from .fusion.sequence_parallelism import SequenceParallelismPass
35
+ from .utility.split_coalescing import SplitCoalescingPass
36
37
if current_platform.is_cuda_alike():
38
from .fusion.act_quant_fusion import ActivationQuantFusionPass
39
from .fusion.attn_quant_fusion import AttnQuantFusionPass
40
from .fusion.mla_attn_quant_fusion import MLAAttnQuantFusionPass
41
from .fusion.mla_rope_kvcache_cat_fusion import MLARoPEKVCacheCatFusionPass
40
- from .fusion.qk_norm_rope_fusion import QKNormRoPEFusionPass
42
from .fusion.qk_norm_rope_kvcache_fusion import QkNormRopeKvCacheFusionPass
43
from .fusion.rms_quant_fusion import RMSNormQuantFusionPass
44
from .fusion.rope_kvcache_fusion import RopeKVCacheFusionPass
45
from .utility.scatter_split_replace import ScatterSplitReplacementPass
45
- from .utility.split_coalescing import SplitCoalescingPass
46
47
if current_platform.is_cuda():
48
from .fusion.allreduce_rms_fusion import AllReduceFusionPass
vllm/platforms/xpu.py
-1
@@ -304,7 +304,6 @@ class XPUPlatform(Platform):
304
"fuse_act_padding": "Activation + padding fusion",
305
"fuse_rope_kvcache": "RoPE + KV cache fusion",
306
"fuse_rope_kvcache_cat_mla": "RoPE + KV cache + MLA fusion",
307
- "enable_qk_norm_rope_fusion": "QK Norm + RoPE fusion",
307
}
308
if compilation_config.mode != CompilationMode.NONE:
309
for flag, feature_name in fusion_passes_to_disable.items():