[XPU] upgrade to PyTorch 2.14 (#56013)

Signed-off-by: Yan Ma <yan.ma@intel.com> Signed-off-by: Kunshang Ji <kunshang.ji@intel.com> Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

Yan Ma committed Sep 23, 2026 at 17:18 UTC e34489a54348717c84891e313b5066854b967225
6 files changed +66 -28
.buildkite/intel_jobs/test-intel.yaml
+1 -1
@@ -106,7 +106,7 @@ steps:
106 pytest -v -s v1/test_serial_utils.py &&
107 pytest -v -s v1/e2e/general/test_correctness_sliding_window.py &&
108 pytest -v -s v1/spec_decode --ignore=v1/spec_decode/test_max_len.py --ignore=v1/spec_decode/test_speculators_eagle3.py --ignore=v1/spec_decode/test_acceptance_length.py --ignore=v1/spec_decode/test_speculators_correctness.py --deselect=tests/v1/spec_decode/test_mtp.py::test_glm_mtp_defers_lm_head &&
109 - pytest -v -s v1/kv_connector/unit --ignore=v1/kv_connector/unit/test_lmcache_integration.py --ignore=v1/kv_connector/unit/test_hf3fs_client.py --ignore=v1/kv_connector/unit/test_hf3fs_connector.py --ignore=v1/kv_connector/unit/test_hf3fs_metadata_server.py --ignore=v1/kv_connector/unit/test_offloading_connector.py --deselect "v1/kv_connector/unit/test_nixl_connector.py::test_abort_timeout_on_prefiller[ray]"'
109 + pytest -v -s v1/kv_connector/unit --ignore=v1/kv_connector/unit/test_lmcache_integration.py --ignore=v1/kv_connector/unit/test_hf3fs_client.py --ignore=v1/kv_connector/unit/test_hf3fs_connector.py --ignore=v1/kv_connector/unit/test_hf3fs_metadata_server.py --ignore=v1/kv_connector/unit/test_offloading_connector.py --deselect "v1/kv_connector/unit/test_nixl_connector.py::test_abort_timeout_on_prefiller[ray]" --ignore=v1/kv_connector/unit/test_nixl_connector_hma.py'
110 parallelism: 2
111 - label: "XPU server test"
112 key: xpu-server-test
docker/Dockerfile.xpu
+18
@@ -87,11 +87,14 @@ RUN mkdir neo && \
87
88 # Install XPU-Manager payloads without registering conflicting libze package
89 # dependencies in dpkg.
90 +# Note that ocl-icd-opencl-dev is required by DLE upgrade but xpu-smi, should
91 +# can be removed in future.
92 RUN apt-get update -y && \
93 apt-get install -y --no-install-recommends software-properties-common && \
94 add-apt-repository -y ppa:kobuk-team/intel-graphics && \
95 apt-get update -y && \
96 apt-get install -y --no-install-recommends libhwloc15 libpciaccess0 libigsc1 intel-metrics-library && \
97 + apt-get install -y ocl-icd-opencl-dev && \
98 mkdir xpu-m && \
99 cd xpu-m && \
100 wget https://github.com/intel/xpumanager/releases/download/v2.1.0/xpu-smi_2.1.0+26.33.6468cec-1.24.04_amd64.deb && \
@@ -264,4 +267,19 @@ RUN --mount=type=cache,target=/root/.cache/uv \
267 RUN --mount=type=cache,target=/root/.cache/uv \
268 uv pip install -e tests/vllm_test_utils
269
270 +# Replace 2026.1.2 DLE packages to 2026.1.3
271 +RUN --mount=type=cache,target=/root/.cache/uv \
272 + --mount=type=bind,source=.git,target=.git \
273 + uv pip install \
274 + "intel-cmplr-lib-rt==2026.1.1" \
275 + "intel-cmplr-lib-ur==2026.1.1" \
276 + "intel-cmplr-lic-rt==2026.1.1" \
277 + "intel-sycl-rt==2026.1.1" \
278 + "oneccl-devel==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \
279 + "oneccl==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \
280 + "dpcpp-cpp-rt==2026.1.1" \
281 + "intel-opencl-rt==2026.1.1" \
282 + "intel-openmp==2026.1.1" \
283 + "intel-pti==1.1.0"
284 +
285 ENTRYPOINT ["vllm", "serve"]
docs/getting_started/installation/gpu.xpu.inc.md
+16
@@ -32,6 +32,22 @@ To install the wheel built from the latest main branch:
32 uv pip install vllm --extra-index-url https://wheels.vllm.ai/nightly/xpu --extra-index-url https://download.pytorch.org/whl/xpu --index-strategy unsafe-best-match
33 ```
34
35 +Note that after upgrading to PyTorch 2.14, xpu graph support requires specific oneAPI packages.
36 +
37 +```bash
38 +uv pip install \
39 + "intel-cmplr-lib-rt==2026.1.1" \
40 + "intel-cmplr-lib-ur==2026.1.1" \
41 + "intel-cmplr-lic-rt==2026.1.1" \
42 + "intel-sycl-rt==2026.1.1" \
43 + "oneccl-devel==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \
44 + "oneccl==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \
45 + "dpcpp-cpp-rt==2026.1.1" \
46 + "intel-opencl-rt==2026.1.1" \
47 + "intel-openmp==2026.1.1" \
48 + "intel-pti==1.1.0"
49 +```
50 +
51 #### Install specific revisions
52
53 If you want to access the wheels for previous commits (e.g. to bisect the behavior change, performance regression), you can specify the commit hash in the URL:
requirements/test/xpu.txt
+24 -24
@@ -175,7 +175,7 @@ docopt==0.6.2
175 # via num2words
176 docstring-parser==0.18.0
177 # via anthropic
178 -dpcpp-cpp-rt==2026.0.0
178 +dpcpp-cpp-rt==2026.1.0
179 # via
180 # onemkl-sycl-blas
181 # onemkl-sycl-dft
@@ -328,27 +328,27 @@ idna==3.18
328 # yarl
329 ijson==3.5.1
330 # via -r requirements/test/../common.txt
331 -impi-rt==2021.18.0
331 +impi-rt==2021.18.1
332 # via
333 # oneccl
334 # torch
335 iniconfig==2.3.0
336 # via pytest
337 -intel-cmplr-lib-rt==2026.0.0
337 +intel-cmplr-lib-rt==2026.1.0
338 # via
339 # intel-sycl-rt
340 # torch
341 -intel-cmplr-lib-ur==2026.0.0
341 +intel-cmplr-lib-ur==2026.1.0
342 # via
343 # intel-openmp
344 # intel-sycl-rt
345 # torch
346 -intel-cmplr-lic-rt==2026.0.0
346 +intel-cmplr-lic-rt==2026.1.0
347 # via
348 # intel-opencl-rt
349 # intel-sycl-rt
350 # torch
351 -intel-opencl-rt==2026.0.0
351 +intel-opencl-rt==2026.1.0
352 # via
353 # dpcpp-cpp-rt
354 # onemkl-sycl-blas
@@ -357,14 +357,14 @@ intel-opencl-rt==2026.0.0
357 # onemkl-sycl-rng
358 # onemkl-sycl-sparse
359 # torch
360 -intel-openmp==2026.0.0
360 +intel-openmp==2026.1.0
361 # via
362 # dpcpp-cpp-rt
363 # mkl
364 # torch
365 -intel-pti==0.17.0
365 +intel-pti==1.0.1
366 # via torch
367 -intel-sycl-rt==2026.0.0
367 +intel-sycl-rt==2026.1.0
368 # via
369 # dpcpp-cpp-rt
370 # oneccl
@@ -463,7 +463,7 @@ mistral-common==1.11.7
463 # -c requirements/common.txt
464 # -r requirements/test/../common.txt
465 # -r requirements/test/xpu.in
466 -mkl==2026.0.0
466 +mkl==2026.1.0
467 # via
468 # onemkl-sycl-blas
469 # onemkl-sycl-dft
@@ -547,28 +547,28 @@ numpy==2.2.6
547 # torchvision
548 # transformers
549 # xgrammar
550 -oneccl==2022.0.0
550 +oneccl==2022.1.1
551 # via
552 # oneccl-devel
553 # torch
554 -oneccl-devel==2022.0.0
554 +oneccl-devel==2022.1.1
555 # via torch
556 -onemkl-license==2026.0.0
556 +onemkl-license==2026.1.0
557 # via
558 # mkl
559 # torch
560 -onemkl-sycl-blas==2026.0.0
560 +onemkl-sycl-blas==2026.1.0
561 # via
562 # onemkl-sycl-lapack
563 # onemkl-sycl-sparse
564 # torch
565 -onemkl-sycl-dft==2026.0.0
565 +onemkl-sycl-dft==2026.1.0
566 # via torch
567 -onemkl-sycl-lapack==2026.0.0
567 +onemkl-sycl-lapack==2026.1.0
568 # via torch
569 -onemkl-sycl-rng==2026.0.0
569 +onemkl-sycl-rng==2026.1.0
570 # via torch
571 -onemkl-sycl-sparse==2026.0.0
571 +onemkl-sycl-sparse==2026.1.0
572 # via torch
573 open-clip-torch==2.32.0
574 # via -r requirements/test/xpu.in
@@ -836,7 +836,7 @@ pyyaml==6.0.3
836 # timm
837 # transformers
838 # uvicorn
839 -pyzes==0.1.1
839 +pyzes==0.1.2
840 # via torch
841 pyzmq==27.1.0
842 # via
@@ -1007,7 +1007,7 @@ tabledata==1.3.5
1007 # via pytablewriter
1008 tabulate==0.10.0
1009 # via sacrebleu
1010 -tbb==2023.0.0
1010 +tbb==2023.1.0
1011 # via
1012 # intel-opencl-rt
1013 # mkl
@@ -1049,7 +1049,7 @@ tokenizers==0.23.1
1049 # cohere
1050 # sentence-transformers
1051 # transformers
1052 -torch==2.13.0+xpu
1052 +torch==2.14.0+xpu
1053 # via
1054 # -c requirements/xpu.txt
1055 # accelerate
@@ -1062,7 +1062,7 @@ torch==2.13.0+xpu
1062 # timm
1063 # torchvision
1064 # xgrammar
1065 -torchvision==0.28.0+xpu
1065 +torchvision==0.29.0+xpu
1066 # via
1067 # open-clip-torch
1068 # timm
@@ -1090,11 +1090,11 @@ transformers==5.17.0
1090 # mteb
1091 # sentence-transformers
1092 # xgrammar
1093 -triton==3.7.2+xpu
1093 +triton==3.8.0+xpu
1094 # via
1095 # -c requirements/xpu.txt
1096 # xgrammar
1097 -triton-xpu==3.7.2
1097 +triton-xpu==3.8.0
1098 # via
1099 # torch
1100 # triton
requirements/xpu.txt
+3 -3
@@ -1,7 +1,7 @@
1 # Common dependencies
2 -r common.txt
3 --extra-index-url=https://wheels.vllm.ai/xpu/
4 -triton==3.7.2+xpu
4 +triton==3.8.0+xpu
5
6 ray>=2.9
7 cmake>=3.26.1
@@ -14,10 +14,10 @@ jinja2>=3.1.6
14 datasets # for benchmark scripts
15 numba == 0.65.0 # Required for N-gram speculative decoding
16 --extra-index-url=https://download.pytorch.org/whl/xpu
17 -torch==2.13.0
17 +torch==2.14.0
18 torchaudio
19 torchvision
20 torchcodec >= 0.14 # Required for the torchcodec video decoding backend
21
22 auto_round_lib==0.15.0
23 -vllm_xpu_kernels==0.1.14.1
23 +vllm_xpu_kernels==0.1.15.4
vllm/lora/ops/triton_ops/fused_moe_lora_op.py
+4
@@ -420,6 +420,10 @@ def _run_fused_moe_lora_one_shot(
420 npid = min(npid_occ, max_npid_by_budget)
421 npid = max(1, min(npid, max(1, N_per_slice // 128)))
422
423 + # see issue: https://github.com/intel/intel-xpu-backend-for-triton/issues/8121
424 + if current_platform.is_xpu():
425 + npid = 1
426 +
427 # Robust defaults across the prefill regime (H100/H200/B200, bf16/fp16).
428 # NPID > 1 is the small-M / under-saturated path -- more warps help
429 # amortise the inner-N expand loop. ns=3 instead of 4: GB200 ncu showed