@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / b5bae42f91
Fork 0

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 14, 01:45 UTC

[XPU] Update latest IPEX 2.8 release (#27735)

Signed-off-by: Kunshang Ji <kunshang.ji@intel.com>

Kunshang Ji committed Oct 30, 2025 at 11:17 UTC b5bae42f913efebef6d5239291418df8fb73b555
4 files changed +14 -20
.buildkite/scripts/hardware_ci/run-xpu-test.sh
+5 -2
@@ -20,7 +20,10 @@ trap remove_docker_container EXIT
20
21 # Run the image and test offline inference/tensor parallel
22 docker run \
23 - --device /dev/dri \
23 + --device /dev/dri:/dev/dri \
24 + --net=host \
25 + --ipc=host \
26 + --privileged \
27 -v /dev/dri/by-path:/dev/dri/by-path \
28 --entrypoint="" \
29 -e "HF_TOKEN=${HF_TOKEN}" \
@@ -42,7 +45,7 @@ docker run \
45 pytest -v -s v1/sample --ignore=v1/sample/test_logprobs.py --ignore=v1/sample/test_logprobs_e2e.py
46 pytest -v -s v1/worker --ignore=v1/worker/test_gpu_model_runner.py
47 pytest -v -s v1/structured_output
45 - pytest -v -s v1/spec_decode --ignore=v1/spec_decode/test_max_len.py --ignore=v1/spec_decode/test_tree_attention.py
48 + pytest -v -s v1/spec_decode --ignore=v1/spec_decode/test_max_len.py --ignore=v1/spec_decode/test_tree_attention.py --ignore=v1/spec_decode/test_speculators_eagle3.py
49 pytest -v -s v1/kv_connector/unit --ignore=v1/kv_connector/unit/test_multi_connector.py --ignore=v1/kv_connector/unit/test_nixl_connector.py --ignore=v1/kv_connector/unit/test_shared_storage_connector.py
50 pytest -v -s v1/test_serial_utils.py
51 '
docs/getting_started/installation/gpu.xpu.inc.md
+3 -1
@@ -56,8 +56,10 @@ docker build -f docker/Dockerfile.xpu -t vllm-xpu-env --shm-size=4g .
56 docker run -it \
57 --rm \
58 --network=host \
59 - --device /dev/dri \
59 + --device /dev/dri:/dev/dri \
60 -v /dev/dri/by-path:/dev/dri/by-path \
61 + --ipc=host \
62 + --privileged \
63 vllm-xpu-env
64 ```
65
requirements/xpu.txt
+1 -1
@@ -15,4 +15,4 @@ torchaudio
15 torchvision
16 --extra-index-url=https://download.pytorch.org/whl/xpu
17
18 -intel-extension-for-pytorch @ https://intel-extension-for-pytorch.s3.us-east-1.amazonaws.com/ipex_dev/xpu/intel_extension_for_pytorch-2.8.10.post0%2Bxpu-cp312-cp312-linux_x86_64.whl
18 +intel-extension-for-pytorch @ https://intel-extension-for-pytorch.s3.us-east-1.amazonaws.com/ipex_dev/xpu/intel_extension_for_pytorch-2.8.10.post1%2Bxpu-cp312-cp312-linux_x86_64.whl
vllm/_ipex_ops.py
+5 -16
@@ -151,7 +151,9 @@ class ipex_ops:
151 def rms_norm(
152 input: torch.Tensor, weight: torch.Tensor, epsilon: float
153 ) -> torch.Tensor:
154 - return ipex.llm.functional.rms_norm(input, weight, epsilon)
154 + out = torch.empty_like(input)
155 + torch.ops.torch_ipex.rms_norm_vllm(out, input.contiguous(), weight, epsilon)
156 + return out
157
158 @staticmethod
159 def fused_add_rms_norm(
@@ -160,10 +162,7 @@ class ipex_ops:
162 weight: torch.Tensor,
163 epsilon: float,
164 ) -> None:
163 - tmp = ipex.llm.functional.add_rms_norm(
164 - residual, input, weight, None, epsilon, True
165 - )
166 - input.copy_(tmp)
165 + torch.ops.torch_ipex.fused_add_rms_norm_vllm(input, residual, weight, epsilon)
166
167 @staticmethod
168 def varlen_attention(
@@ -296,16 +295,6 @@ class ipex_ops:
295 num_splits=0,
296 s_aux: torch.Tensor | None = None,
297 ):
299 - if cu_seqlens_k is None:
300 - # cu_seqlens_k is not used in ipex kernel.
301 - cu_seqlens_k = torch.cumsum(seqused_k, dim=0)
302 - cu_seqlens_k = torch.cat(
303 - [
304 - torch.tensor([0], device=seqused_k.device, dtype=torch.int32),
305 - cu_seqlens_k,
306 - ]
307 - ).to(torch.int32)
308 -
298 real_window_size: tuple[int, int]
299 if window_size is None:
300 real_window_size = (-1, -1)
@@ -318,7 +307,7 @@ class ipex_ops:
307 k,
308 v,
309 cu_seqlens_q,
321 - cu_seqlens_k,
310 + seqused_k,
311 max_seqlen_q,
312 max_seqlen_k,
313 softmax_scale,