From e34489a54348717c84891e313b5066854b967225 Mon Sep 17 00:00:00 2001 From: Yan Ma Date: Wed, 23 Sep 2026 17:18:52 +0800 Subject: [PATCH] [XPU] upgrade to PyTorch 2.14 (#56013) Signed-off-by: Yan Ma Signed-off-by: Kunshang Ji Co-authored-by: Kunshang Ji --- .buildkite/intel_jobs/test-intel.yaml | 2 +- docker/Dockerfile.xpu | 18 +++++++ .../installation/gpu.xpu.inc.md | 16 +++++++ requirements/test/xpu.txt | 48 +++++++++---------- requirements/xpu.txt | 6 +-- vllm/lora/ops/triton_ops/fused_moe_lora_op.py | 4 ++ 6 files changed, 66 insertions(+), 28 deletions(-) diff --git a/.buildkite/intel_jobs/test-intel.yaml b/.buildkite/intel_jobs/test-intel.yaml index b7558dbb50..d077948bd8 100644 --- a/.buildkite/intel_jobs/test-intel.yaml +++ b/.buildkite/intel_jobs/test-intel.yaml @@ -106,7 +106,7 @@ steps: pytest -v -s v1/test_serial_utils.py && pytest -v -s v1/e2e/general/test_correctness_sliding_window.py && 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 && - 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]"' + 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' parallelism: 2 - label: "XPU server test" key: xpu-server-test diff --git a/docker/Dockerfile.xpu b/docker/Dockerfile.xpu index ee4c2a0d3b..3b0df00826 100644 --- a/docker/Dockerfile.xpu +++ b/docker/Dockerfile.xpu @@ -87,11 +87,14 @@ RUN mkdir neo && \ # Install XPU-Manager payloads without registering conflicting libze package # dependencies in dpkg. +# Note that ocl-icd-opencl-dev is required by DLE upgrade but xpu-smi, should +# can be removed in future. RUN apt-get update -y && \ apt-get install -y --no-install-recommends software-properties-common && \ add-apt-repository -y ppa:kobuk-team/intel-graphics && \ apt-get update -y && \ apt-get install -y --no-install-recommends libhwloc15 libpciaccess0 libigsc1 intel-metrics-library && \ + apt-get install -y ocl-icd-opencl-dev && \ mkdir xpu-m && \ cd xpu-m && \ 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 \ RUN --mount=type=cache,target=/root/.cache/uv \ uv pip install -e tests/vllm_test_utils +# Replace 2026.1.2 DLE packages to 2026.1.3 +RUN --mount=type=cache,target=/root/.cache/uv \ + --mount=type=bind,source=.git,target=.git \ + uv pip install \ + "intel-cmplr-lib-rt==2026.1.1" \ + "intel-cmplr-lib-ur==2026.1.1" \ + "intel-cmplr-lic-rt==2026.1.1" \ + "intel-sycl-rt==2026.1.1" \ + "oneccl-devel==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \ + "oneccl==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \ + "dpcpp-cpp-rt==2026.1.1" \ + "intel-opencl-rt==2026.1.1" \ + "intel-openmp==2026.1.1" \ + "intel-pti==1.1.0" + ENTRYPOINT ["vllm", "serve"] diff --git a/docs/getting_started/installation/gpu.xpu.inc.md b/docs/getting_started/installation/gpu.xpu.inc.md index 84dc69ca84..893150148a 100644 --- a/docs/getting_started/installation/gpu.xpu.inc.md +++ b/docs/getting_started/installation/gpu.xpu.inc.md @@ -32,6 +32,22 @@ To install the wheel built from the latest main branch: 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 ``` +Note that after upgrading to PyTorch 2.14, xpu graph support requires specific oneAPI packages. + +```bash +uv pip install \ + "intel-cmplr-lib-rt==2026.1.1" \ + "intel-cmplr-lib-ur==2026.1.1" \ + "intel-cmplr-lic-rt==2026.1.1" \ + "intel-sycl-rt==2026.1.1" \ + "oneccl-devel==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \ + "oneccl==2022.1.2; platform_system == 'Linux' and platform_machine == 'x86_64'" \ + "dpcpp-cpp-rt==2026.1.1" \ + "intel-opencl-rt==2026.1.1" \ + "intel-openmp==2026.1.1" \ + "intel-pti==1.1.0" +``` + #### Install specific revisions 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: diff --git a/requirements/test/xpu.txt b/requirements/test/xpu.txt index d9572389eb..8d91ac191c 100644 --- a/requirements/test/xpu.txt +++ b/requirements/test/xpu.txt @@ -175,7 +175,7 @@ docopt==0.6.2 # via num2words docstring-parser==0.18.0 # via anthropic -dpcpp-cpp-rt==2026.0.0 +dpcpp-cpp-rt==2026.1.0 # via # onemkl-sycl-blas # onemkl-sycl-dft @@ -328,27 +328,27 @@ idna==3.18 # yarl ijson==3.5.1 # via -r requirements/test/../common.txt -impi-rt==2021.18.0 +impi-rt==2021.18.1 # via # oneccl # torch iniconfig==2.3.0 # via pytest -intel-cmplr-lib-rt==2026.0.0 +intel-cmplr-lib-rt==2026.1.0 # via # intel-sycl-rt # torch -intel-cmplr-lib-ur==2026.0.0 +intel-cmplr-lib-ur==2026.1.0 # via # intel-openmp # intel-sycl-rt # torch -intel-cmplr-lic-rt==2026.0.0 +intel-cmplr-lic-rt==2026.1.0 # via # intel-opencl-rt # intel-sycl-rt # torch -intel-opencl-rt==2026.0.0 +intel-opencl-rt==2026.1.0 # via # dpcpp-cpp-rt # onemkl-sycl-blas @@ -357,14 +357,14 @@ intel-opencl-rt==2026.0.0 # onemkl-sycl-rng # onemkl-sycl-sparse # torch -intel-openmp==2026.0.0 +intel-openmp==2026.1.0 # via # dpcpp-cpp-rt # mkl # torch -intel-pti==0.17.0 +intel-pti==1.0.1 # via torch -intel-sycl-rt==2026.0.0 +intel-sycl-rt==2026.1.0 # via # dpcpp-cpp-rt # oneccl @@ -463,7 +463,7 @@ mistral-common==1.11.7 # -c requirements/common.txt # -r requirements/test/../common.txt # -r requirements/test/xpu.in -mkl==2026.0.0 +mkl==2026.1.0 # via # onemkl-sycl-blas # onemkl-sycl-dft @@ -547,28 +547,28 @@ numpy==2.2.6 # torchvision # transformers # xgrammar -oneccl==2022.0.0 +oneccl==2022.1.1 # via # oneccl-devel # torch -oneccl-devel==2022.0.0 +oneccl-devel==2022.1.1 # via torch -onemkl-license==2026.0.0 +onemkl-license==2026.1.0 # via # mkl # torch -onemkl-sycl-blas==2026.0.0 +onemkl-sycl-blas==2026.1.0 # via # onemkl-sycl-lapack # onemkl-sycl-sparse # torch -onemkl-sycl-dft==2026.0.0 +onemkl-sycl-dft==2026.1.0 # via torch -onemkl-sycl-lapack==2026.0.0 +onemkl-sycl-lapack==2026.1.0 # via torch -onemkl-sycl-rng==2026.0.0 +onemkl-sycl-rng==2026.1.0 # via torch -onemkl-sycl-sparse==2026.0.0 +onemkl-sycl-sparse==2026.1.0 # via torch open-clip-torch==2.32.0 # via -r requirements/test/xpu.in @@ -836,7 +836,7 @@ pyyaml==6.0.3 # timm # transformers # uvicorn -pyzes==0.1.1 +pyzes==0.1.2 # via torch pyzmq==27.1.0 # via @@ -1007,7 +1007,7 @@ tabledata==1.3.5 # via pytablewriter tabulate==0.10.0 # via sacrebleu -tbb==2023.0.0 +tbb==2023.1.0 # via # intel-opencl-rt # mkl @@ -1049,7 +1049,7 @@ tokenizers==0.23.1 # cohere # sentence-transformers # transformers -torch==2.13.0+xpu +torch==2.14.0+xpu # via # -c requirements/xpu.txt # accelerate @@ -1062,7 +1062,7 @@ torch==2.13.0+xpu # timm # torchvision # xgrammar -torchvision==0.28.0+xpu +torchvision==0.29.0+xpu # via # open-clip-torch # timm @@ -1090,11 +1090,11 @@ transformers==5.17.0 # mteb # sentence-transformers # xgrammar -triton==3.7.2+xpu +triton==3.8.0+xpu # via # -c requirements/xpu.txt # xgrammar -triton-xpu==3.7.2 +triton-xpu==3.8.0 # via # torch # triton diff --git a/requirements/xpu.txt b/requirements/xpu.txt index d0e94ca189..fd5b3214f0 100644 --- a/requirements/xpu.txt +++ b/requirements/xpu.txt @@ -1,7 +1,7 @@ # Common dependencies -r common.txt --extra-index-url=https://wheels.vllm.ai/xpu/ -triton==3.7.2+xpu +triton==3.8.0+xpu ray>=2.9 cmake>=3.26.1 @@ -14,10 +14,10 @@ jinja2>=3.1.6 datasets # for benchmark scripts numba == 0.65.0 # Required for N-gram speculative decoding --extra-index-url=https://download.pytorch.org/whl/xpu -torch==2.13.0 +torch==2.14.0 torchaudio torchvision torchcodec >= 0.14 # Required for the torchcodec video decoding backend auto_round_lib==0.15.0 -vllm_xpu_kernels==0.1.14.1 +vllm_xpu_kernels==0.1.15.4 diff --git a/vllm/lora/ops/triton_ops/fused_moe_lora_op.py b/vllm/lora/ops/triton_ops/fused_moe_lora_op.py index f6ef6974dc..703f766889 100644 --- a/vllm/lora/ops/triton_ops/fused_moe_lora_op.py +++ b/vllm/lora/ops/triton_ops/fused_moe_lora_op.py @@ -420,6 +420,10 @@ def _run_fused_moe_lora_one_shot( npid = min(npid_occ, max_npid_by_budget) npid = max(1, min(npid, max(1, N_per_slice // 128))) + # see issue: https://github.com/intel/intel-xpu-backend-for-triton/issues/8121 + if current_platform.is_xpu(): + npid = 1 + # Robust defaults across the prefill regime (H100/H200/B200, bf16/fp16). # NPID > 1 is the small-M / under-saturated path -- more warps help # amortise the inner-N expand loop. ns=3 instead of 4: GB200 ncu showed