@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 27ed39a347
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, 05:30 UTC

[XPU] Upgrade NIXL to remove CUDA dependency (#26570)

Signed-off-by: zhenwei-intel <zhenwei.liu@intel.com>

liuzhenwei committed Oct 11, 2025 at 13:15 UTC 27ed39a347c56ac23f25169b7c86d7f459b1ac7f
5 files changed +14 -9
.buildkite/scripts/hardware_ci/run-xpu-test.sh
-1
@@ -44,6 +44,5 @@ docker run \
44 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
46 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
47 - pytest -v -s v1/test_metrics
47 pytest -v -s v1/test_serial_utils.py
48 '
docker/Dockerfile.xpu
+5
@@ -69,4 +69,9 @@ RUN --mount=type=cache,target=/root/.cache/pip \
69
70 # install development dependencies (for testing)
71 RUN python3 -m pip install -e tests/vllm_test_utils
72 +
73 +# install nixl from source code
74 +RUN python3 /workspace/vllm/tools/install_nixl_from_source_ubuntu.py
75 +ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib/python3.12/dist-packages/.nixl.mesonpy.libs/plugins/"
76 +
77 ENTRYPOINT ["vllm", "serve"]
requirements/xpu.txt
-1
@@ -10,7 +10,6 @@ wheel
10 jinja2>=3.1.6
11 datasets # for benchmark scripts
12 numba == 0.61.2 # Required for N-gram speculative decoding
13 -nixl==0.3.0 # for PD disaggregation
13 torch==2.8.0+xpu
14 torchaudio
15 torchvision
tools/install_nixl_from_source_ubuntu.py
+1
@@ -135,6 +135,7 @@ def build_and_install_prerequisites(args):
135 "--enable-devel-headers",
136 "--with-verbs",
137 "--enable-mt",
138 + "--with-ze=no",
139 ]
140 run_command(configure_command, cwd=ucx_source_path)
141 run_command(["make", "-j", str(os.cpu_count() or 1)], cwd=ucx_source_path)
vllm/platforms/xpu.py
+8 -7
@@ -54,6 +54,14 @@ class XPUPlatform(Platform):
54 has_sink: bool,
55 use_sparse,
56 ) -> str:
57 + from vllm.v1.attention.backends.utils import set_kv_cache_layout
58 +
59 + set_kv_cache_layout("NHD")
60 + logger.info(
61 + "Setting VLLM_KV_CACHE_LAYOUT to 'NHD' for XPU; "
62 + "only NHD layout is supported by XPU attention kernels."
63 + )
64 +
65 from vllm.attention.backends.registry import _Backend
66
67 if use_sparse:
@@ -190,13 +198,6 @@ class XPUPlatform(Platform):
198 vllm_config.scheduler_config.max_model_len,
199 DEFAULT_MAX_NUM_BATCHED_TOKENS,
200 )
193 - from vllm.v1.attention.backends.utils import set_kv_cache_layout
194 -
195 - set_kv_cache_layout("NHD")
196 - logger.info(
197 - "Setting VLLM_KV_CACHE_LAYOUT to 'NHD' for XPU; "
198 - "only NHD layout is supported by XPU attention kernels."
199 - )
201
202 @classmethod
203 def support_hybrid_kv_cache(cls) -> bool: