@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / b569620f72
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 5, 04:45 UTC

[CI] Add PyTorch nightly build and test pipeline (#37226)

Signed-off-by: atalman <atalman@fb.com>

Andrey Talman committed Apr 14, 2026 at 20:13 UTC b569620f720d0c07bcb90bcc29dacaf0ce318d85
3 files changed +83 -9
.buildkite/image_build/image_build_torch_nightly.sh new
+68
@@ -0,0 +1,68 @@
1 +#!/bin/bash
2 +set -euo pipefail
3 +
4 +# Build a vLLM test image with PyTorch nightly installed.
5 +# Called by the pipeline generator's "vLLM Against PyTorch Nightly" group.
6 +
7 +if [[ $# -lt 5 ]]; then
8 + echo "Usage: $0 <registry> <repo> <commit> <branch> <image_tag>"
9 + exit 1
10 +fi
11 +
12 +REGISTRY=$1
13 +REPO=$2
14 +BUILDKITE_COMMIT=$3
15 +BRANCH=$4
16 +IMAGE_TAG=$5
17 +
18 +# --- Arguments ---
19 +echo "--- :mag: Arguments"
20 +echo "REGISTRY: ${REGISTRY}"
21 +echo "REPO: ${REPO}"
22 +echo "BUILDKITE_COMMIT: ${BUILDKITE_COMMIT}"
23 +echo "BRANCH: ${BRANCH}"
24 +echo "IMAGE_TAG: ${IMAGE_TAG}"
25 +
26 +# --- ECR login ---
27 +echo "--- :key: ECR login"
28 +aws ecr-public get-login-password --region us-east-1 \
29 + | docker login --username AWS --password-stdin "$REGISTRY"
30 +aws ecr get-login-password --region us-east-1 \
31 + | docker login --username AWS --password-stdin 936637512419.dkr.ecr.us-east-1.amazonaws.com
32 +
33 +# --- Set up buildx ---
34 +echo "--- :docker: Setting up buildx"
35 +docker buildx create --name vllm-builder --driver docker-container --use || true
36 +docker buildx inspect --bootstrap
37 +docker buildx ls
38 +
39 +# --- Skip if image already exists ---
40 +echo "--- :mag: Checking if image already exists"
41 +if docker manifest inspect "$IMAGE_TAG" >/dev/null 2>&1; then
42 + echo "Image found: $IMAGE_TAG — skipping build"
43 + exit 0
44 +fi
45 +echo "Image not found, proceeding with build..."
46 +
47 +# --- CUDA 13.0 for nightly builds ---
48 +# Nightly CI uses CUDA 13.0 while regular CI stays on CUDA 12.9
49 +NIGHTLY_CUDA_VERSION="13.0.0"
50 +NIGHTLY_BUILD_BASE_IMAGE="nvidia/cuda:${NIGHTLY_CUDA_VERSION}-devel-ubuntu22.04"
51 +NIGHTLY_FINAL_BASE_IMAGE="nvidia/cuda:${NIGHTLY_CUDA_VERSION}-base-ubuntu22.04"
52 +
53 +echo "--- :docker: Building torch nightly image (CUDA ${NIGHTLY_CUDA_VERSION})"
54 +docker buildx build --file docker/Dockerfile \
55 + --build-arg max_jobs=16 \
56 + --build-arg buildkite_commit="$BUILDKITE_COMMIT" \
57 + --build-arg USE_SCCACHE=1 \
58 + --build-arg PYTORCH_NIGHTLY=1 \
59 + --build-arg CUDA_VERSION="${NIGHTLY_CUDA_VERSION}" \
60 + --build-arg BUILD_BASE_IMAGE="${NIGHTLY_BUILD_BASE_IMAGE}" \
61 + --build-arg FINAL_BASE_IMAGE="${NIGHTLY_FINAL_BASE_IMAGE}" \
62 + --build-arg torch_cuda_arch_list="8.0 8.9 9.0 10.0 12.0" \
63 + --tag "$IMAGE_TAG" \
64 + --push \
65 + --target test \
66 + --progress plain .
67 +
68 +echo "--- :white_check_mark: Torch nightly image build complete: $IMAGE_TAG"
.buildkite/test_areas/models_basic.yaml
+7 -4
@@ -1,5 +1,5 @@
1 group: Models - Basic
2 -depends_on:
2 +depends_on:
3 - image-build
4 steps:
5 - label: Basic Models Tests (Initialization)
@@ -13,10 +13,11 @@ steps:
13 commands:
14 # Run a subset of model initialization tests
15 - pytest -v -s models/test_initialization.py::test_can_initialize_small_subset
16 + mirror:
17 + torch_nightly: {}
18
19 - label: Basic Models Tests (Extra Initialization) %N
20 timeout_in_minutes: 45
19 - torch_nightly: true
21 source_file_dependencies:
22 - vllm/model_executor/models/
23 - tests/models/test_initialization.py
@@ -27,6 +28,8 @@ steps:
28 # test.) Also run if model initialization test file is modified
29 - pytest -v -s models/test_initialization.py -k 'not test_can_initialize_small_subset' --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT --shard-id=$$BUILDKITE_PARALLEL_JOB
30 parallelism: 2
31 + mirror:
32 + torch_nightly: {}
33
34 - label: Basic Models Tests (Other)
35 timeout_in_minutes: 45
@@ -42,10 +45,10 @@ steps:
45 device: mi325_1
46 depends_on:
47 - image-build-amd
45 -
48 +
49
50 - label: Basic Models Test (Other CPU) # 5min
48 - depends_on:
51 + depends_on:
52 - image-build-cpu
53 timeout_in_minutes: 10
54 source_file_dependencies:
.buildkite/test_areas/models_language.yaml
+8 -5
@@ -1,10 +1,9 @@
1 group: Models - Language
2 -depends_on:
2 +depends_on:
3 - image-build
4 steps:
5 - label: Language Models Tests (Standard)
6 timeout_in_minutes: 25
7 - torch_nightly: true
7 source_file_dependencies:
8 - vllm/
9 - tests/models/language
@@ -12,10 +11,11 @@ steps:
11 # Test standard language models, excluding a subset of slow tests
12 - pip freeze | grep -E 'torch'
13 - pytest -v -s models/language -m 'core_model and (not slow_test)'
14 + mirror:
15 + torch_nightly: {}
16
17 - label: Language Models Tests (Extra Standard) %N
18 timeout_in_minutes: 45
18 - torch_nightly: true
19 source_file_dependencies:
20 - vllm/model_executor/models/
21 - tests/models/language/pooling/test_embedding.py
@@ -27,10 +27,11 @@ steps:
27 - pip freeze | grep -E 'torch'
28 - pytest -v -s models/language -m 'core_model and slow_test' --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT --shard-id=$$BUILDKITE_PARALLEL_JOB
29 parallelism: 2
30 + mirror:
31 + torch_nightly: {}
32
33 - label: Language Models Tests (Hybrid) %N
34 timeout_in_minutes: 75
33 - torch_nightly: true
35 source_file_dependencies:
36 - vllm/
37 - tests/models/language/generation
@@ -42,6 +43,8 @@ steps:
43 # Shard hybrid language model tests
44 - pytest -v -s models/language/generation -m hybrid_model --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT --shard-id=$$BUILDKITE_PARALLEL_JOB
45 parallelism: 2
46 + mirror:
47 + torch_nightly: {}
48
49 - label: Language Models Test (Extended Generation) # 80min
50 timeout_in_minutes: 110
@@ -62,7 +65,7 @@ steps:
65 - image-build-amd
66 commands:
67 - uv pip install --system --no-build-isolation 'git+https://github.com/AndreasKaratzas/mamba@fix-rocm-7.0-warp-size-constexpr'
65 - - uv pip install --system --no-build-isolation 'git+https://github.com/Dao-AILab/causal-conv1d@v1.5.2'
68 + - uv pip install --system --no-build-isolation 'git+https://github.com/Dao-AILab/causal-conv1d@v1.6.0'
69 - pytest -v -s models/language/generation -m '(not core_model) and (not hybrid_model)'
70
71 - label: Language Models Test (PPL)