diff --git a/python/sglang/kernels/ops/attention/dsv4/elementwise.py b/python/sglang/kernels/ops/attention/dsv4/elementwise.py index dac07d218..053eb01c6 100644 --- a/python/sglang/kernels/ops/attention/dsv4/elementwise.py +++ b/python/sglang/kernels/ops/attention/dsv4/elementwise.py @@ -17,6 +17,7 @@ _is_xpu = is_xpu() if _is_xpu: from sgl_kernel import fused_k_norm_rope_flashmla as fused_k_norm_rope_flashmla_xpu + from sgl_kernel import fused_q_norm_rope as fused_q_norm_rope_xpu @cache_once @@ -150,8 +151,11 @@ def fused_q_norm_rope( freqs_real = torch.view_as_real(freqs_cis).flatten(-2) head_dim = q_input.shape[-1] rope_dim = freqs_real.shape[-1] - module = _jit_main_q_norm_rope_module(q_input.dtype, head_dim, rope_dim) - module.forward(q_input, q_output, freqs_real, positions, eps) + if _is_xpu: + fused_q_norm_rope_xpu(q_input, q_output, freqs_real, positions, eps) + else: + module = _jit_main_q_norm_rope_module(q_input.dtype, head_dim, rope_dim) + module.forward(q_input, q_output, freqs_real, positions, eps) def fused_q_indexer_rope_hadamard_quant(