@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 816cc73a9b
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 2, 07:15 UTC

[Bugfix][CI] Normalize NIXL connector CUDA wheel installs (#44266)

Signed-off-by: Alec Flowers <aflowers@nvidia.com>

Alec committed Jun 1, 2026 at 19:34 UTC 816cc73a9be9567161586279330173544196fa46
3 files changed +49 -10
.buildkite/scripts/install-kv-connectors.sh new
+39
@@ -0,0 +1,39 @@
1 +#!/bin/bash
2 +# SPDX-License-Identifier: Apache-2.0
3 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
4 +
5 +set -euo pipefail
6 +
7 +REQUIREMENTS_FILE="${KV_CONNECTORS_REQUIREMENTS:-/vllm-workspace/requirements/kv_connectors.txt}"
8 +
9 +uv pip install --system -r "${REQUIREMENTS_FILE}"
10 +
11 +NIXL_METADATA=$(python3 - <<'PY'
12 +import importlib.metadata as metadata
13 +
14 +import torch
15 +
16 +cuda_version = torch.version.cuda
17 +if cuda_version is None:
18 + raise SystemExit("torch.version.cuda is not set")
19 +
20 +print(cuda_version.split(".", 1)[0], metadata.version("nixl"))
21 +PY
22 +)
23 +read -r CUDA_MAJOR NIXL_VERSION <<<"${NIXL_METADATA}"
24 +
25 +# nixl>=1.1.0 can install multiple CUDA wheel variants. Keep only the variant
26 +# matching this CI image so nixl_ep_cpp links against the available libcudart.
27 +uv pip uninstall --system nixl-cu12 nixl-cu13 2>/dev/null || true
28 +uv pip install --system --no-deps "nixl-cu${CUDA_MAJOR}==${NIXL_VERSION}"
29 +
30 +python3 - <<'PY'
31 +import importlib.metadata as metadata
32 +
33 +for package_name in ("nixl", "nixl-cu12", "nixl-cu13"):
34 + try:
35 + version = metadata.version(package_name)
36 + except metadata.PackageNotFoundError:
37 + version = "not installed"
38 + print(f"{package_name}: {version}")
39 +PY
.buildkite/test_areas/disaggregated.yaml
+9 -9
@@ -11,7 +11,7 @@ steps:
11 - vllm/distributed/kv_transfer/kv_connector/v1/nixl/
12 - tests/v1/kv_connector/nixl_integration/
13 commands:
14 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
14 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
15 - bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
16 - label: Distributed FlashInfer NixlConnector PD accuracy (4 GPUs)
17 key: distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus
@@ -22,7 +22,7 @@ steps:
22 - vllm/distributed/kv_transfer/kv_connector/v1/nixl/
23 - tests/v1/kv_connector/nixl_integration/
24 commands:
25 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
25 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
26 - FLASHINFER=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
27
28 - label: DP EP Distributed NixlConnector PD accuracy tests (4 GPUs)
@@ -34,7 +34,7 @@ steps:
34 - vllm/distributed/kv_transfer/kv_connector/v1/nixl/
35 - tests/v1/kv_connector/nixl_integration/
36 commands:
37 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
37 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
38 - DP_EP=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
39
40 - label: CrossLayer KV layout Distributed NixlConnector PD accuracy tests (4 GPUs)
@@ -46,7 +46,7 @@ steps:
46 - vllm/distributed/kv_transfer/kv_connector/v1/nixl/
47 - tests/v1/kv_connector/nixl_integration/
48 commands:
49 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
49 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
50 - CROSS_LAYERS_BLOCKS=True bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
51
52 - label: Hybrid SSM NixlConnector PD accuracy tests (4 GPUs)
@@ -58,7 +58,7 @@ steps:
58 - vllm/distributed/kv_transfer/kv_connector/v1/nixl/
59 - tests/v1/kv_connector/nixl_integration/
60 commands:
61 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
61 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
62 - HYBRID_SSM=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
63
64 - label: MultiConnector (Nixl+Offloading) PD accuracy (2 GPUs)
@@ -73,7 +73,7 @@ steps:
73 - vllm/distributed/kv_transfer/kv_connector/v1/offloading/
74 - tests/v1/kv_connector/nixl_integration/
75 commands:
76 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
76 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
77 - bash v1/kv_connector/nixl_integration/run_multi_connector_accuracy_test.sh
78
79 - label: NixlConnector PD + Spec Decode acceptance (2 GPUs)
@@ -87,7 +87,7 @@ steps:
87 - vllm/v1/worker/kv_connector_model_runner_mixin.py
88 - tests/v1/kv_connector/nixl_integration/
89 commands:
90 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
90 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
91 - bash v1/kv_connector/nixl_integration/config_sweep_spec_decode_test.sh
92
93 - label: MultiConnector (Nixl+Offloading) PD edge cases (2 GPUs)
@@ -102,5 +102,5 @@ steps:
102 - vllm/distributed/kv_transfer/kv_connector/v1/offloading/
103 - tests/v1/kv_connector/nixl_integration/
104 commands:
105 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
106 - - bash v1/kv_connector/nixl_integration/run_multi_connector_edge_case_test.sh
\ No newline at end of file
105 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
106 + - bash v1/kv_connector/nixl_integration/run_multi_connector_edge_case_test.sh
.buildkite/test_areas/misc.yaml
+1 -1
@@ -86,7 +86,7 @@ steps:
86 - tests/v1/metrics
87 - tests/entrypoints/openai/correctness/test_lmeval.py
88 commands:
89 - - uv pip install --system -r /vllm-workspace/requirements/kv_connectors.txt
89 + - bash /vllm-workspace/.buildkite/scripts/install-kv-connectors.sh
90 - export VLLM_WORKER_MULTIPROC_METHOD=spawn
91 # split the test to avoid interference
92 - pytest -v -s -m 'not cpu_test' v1/core