[CI][NIXL] Isolate concurrent engine internal ports (#49129)

Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com> Co-authored-by: OpenAI Codex <noreply@openai.com>

Andreas Karatzas committed Jul 20, 2026 at 22:28 UTC 6bcda970fde272b06cff0d8f397224dbac96d7ad
1 file changed +13
tests/v1/kv_connector/nixl_integration/run_accuracy_test.sh
+13
@@ -83,6 +83,11 @@ DECODE_BLOCK_SIZE=${DECODE_BLOCK_SIZE:-128}
83 ENFORCE_EAGER=${ENFORCE_EAGER:-1}
84 # Comma-separated extra args for vllm serve (e.g. --max-model-len,2048)
85 VLLM_SERVE_EXTRA_ARGS=${VLLM_SERVE_EXTRA_ARGS:-}
86 +# Pin concurrent prefiller and non-DP decoder engines to separate internal
87 +# port windows. DP decoder ranks retain their existing internal port selection.
88 +PREFILLER_INTERNAL_PORT_BASE=${PREFILLER_INTERNAL_PORT_BASE:-20000}
89 +DECODER_INTERNAL_PORT_BASE=${DECODER_INTERNAL_PORT_BASE:-30000}
90 +INTERNAL_PORT_STRIDE=${INTERNAL_PORT_STRIDE:-100}
91
92 # Resolve the repository root from the script location instead of `.git`.
93 # The ROCm CI image copies `/vllm-workspace` without the Git metadata, so
@@ -154,12 +159,14 @@ run_tests_for_model() {
159 PORT=$((8100 + i))
160 # Calculate side channel port. Avoid clash with with TP workers.
161 SIDE_CHANNEL_PORT=$((5559 + i))
162 + INTERNAL_PORT=$((PREFILLER_INTERNAL_PORT_BASE + i * INTERNAL_PORT_STRIDE))
163
164 echo "Starting prefill instance $i on GPU $GPU_ID, port $PORT"
165
166 # Build the command with or without model-specific args
167 BASE_CMD="CUDA_VISIBLE_DEVICES=$GPU_ID \
168 VLLM_KV_CACHE_LAYOUT='HND' \
169 + VLLM_PORT=$INTERNAL_PORT \
170 UCX_NET_DEVICES=all \
171 VLLM_NIXL_SIDE_CHANNEL_PORT=$SIDE_CHANNEL_PORT \
172 vllm serve $model_name \
@@ -208,12 +215,18 @@ run_tests_for_model() {
215 PORT=$((8200 + i))
216 # Calculate side channel port
217 SIDE_CHANNEL_PORT=$((5659 + i * $DECODER_TP_SIZE))
218 + INTERNAL_PORT=$((DECODER_INTERNAL_PORT_BASE + i * INTERNAL_PORT_STRIDE))
219 + DECODER_INTERNAL_PORT_ENV=
220 + if [[ -z "${DP_EP:-}" ]]; then
221 + DECODER_INTERNAL_PORT_ENV="VLLM_PORT=$INTERNAL_PORT"
222 + fi
223
224 echo "Starting decode instance $i on GPU $GPU_ID, port $PORT"
225
226 # Build the command with or without model-specific args
227 BASE_CMD="CUDA_VISIBLE_DEVICES=$GPU_ID \
228 VLLM_KV_CACHE_LAYOUT=$DECODER_KV_LAYOUT \
229 + $DECODER_INTERNAL_PORT_ENV \
230 UCX_NET_DEVICES=all \
231 VLLM_NIXL_SIDE_CHANNEL_PORT=$SIDE_CHANNEL_PORT \
232 vllm serve $model_name \