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,