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: