Skip to content

Commit 8e796f2

Browse files
authored
Merge branch 'vllm-project:main' into main
2 parents f060b8c + e9a1bee commit 8e796f2

182 files changed

Lines changed: 14340 additions & 1951 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.buildkite/pipeline.yml

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,40 @@ steps:
4242
volumes:
4343
- "/fsx/hf_cache:/fsx/hf_cache"
4444

45+
- label: "Diffusion Model CPU offloading Test"
46+
timeout_in_minutes: 20
47+
depends_on: image-build
48+
commands:
49+
- pytest -s -v tests/e2e/offline_inference/test_diffusion_cpu_offload.py
50+
agents:
51+
queue: "gpu_1_queue" # g6.4xlarge instance on AWS, has 1 L4 GPU
52+
plugins:
53+
- docker#v5.2.0:
54+
image: public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:$BUILDKITE_COMMIT
55+
always-pull: true
56+
propagate-environment: true
57+
environment:
58+
- "HF_HOME=/fsx/hf_cache"
59+
volumes:
60+
- "/fsx/hf_cache:/fsx/hf_cache"
61+
62+
- label: "Audio Generation Model Test"
63+
timeout_in_minutes: 20
64+
depends_on: image-build
65+
commands:
66+
- pytest -s -v tests/e2e/offline_inference/test_stable_audio_model.py
67+
agents:
68+
queue: "gpu_1_queue" # g6.4xlarge instance on AWS, has 1 L4 GPU
69+
plugins:
70+
- docker#v5.2.0:
71+
image: public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:$BUILDKITE_COMMIT
72+
always-pull: true
73+
propagate-environment: true
74+
environment:
75+
- "HF_HOME=/fsx/hf_cache"
76+
volumes:
77+
- "/fsx/hf_cache:/fsx/hf_cache"
78+
4579
- label: "Diffusion Cache Backend Test"
4680
timeout_in_minutes: 15
4781
depends_on: image-build
@@ -60,17 +94,37 @@ steps:
6094
- "/fsx/hf_cache:/fsx/hf_cache"
6195

6296
- label: "Diffusion Parallelism Test"
63-
timeout_in_minutes: 15
97+
timeout_in_minutes: 20
6498
depends_on: image-build
6599
commands:
66100
- pytest -s -v tests/e2e/offline_inference/test_sequence_parallel.py
101+
- pytest -s -v tests/e2e/offline_inference/test_zimage_tensor_parallel.py
102+
agents:
103+
queue: "gpu_4_queue" # g6.12xlarge instance on AWS, has 4 L4 GPU
104+
plugins:
105+
- docker#v5.2.0:
106+
image: public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:$BUILDKITE_COMMIT
107+
always-pull: true
108+
propagate-environment: true
109+
shm-size: "8gb"
110+
environment:
111+
- "HF_HOME=/fsx/hf_cache"
112+
volumes:
113+
- "/fsx/hf_cache:/fsx/hf_cache"
114+
115+
- label: "Diffusion GPU Worker Test"
116+
timeout_in_minutes: 20
117+
depends_on: image-build
118+
commands:
119+
- pytest -s -v tests/diffusion/test_gpu_worker.py
67120
agents:
68121
queue: "gpu_4_queue" # g6.12xlarge instance on AWS, has 4 L4 GPU
69122
plugins:
70123
- docker#v5.2.0:
71124
image: public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:$BUILDKITE_COMMIT
72125
always-pull: true
73126
propagate-environment: true
127+
shm-size: "8gb"
74128
environment:
75129
- "HF_HOME=/fsx/hf_cache"
76130
volumes:
@@ -96,11 +150,11 @@ steps:
96150
- "/fsx/hf_cache:/fsx/hf_cache"
97151

98152
- label: "Omni Model Test with H100"
99-
timeout_in_minutes: 20
153+
timeout_in_minutes: 30
100154
depends_on: image-build
101155
commands:
102156
- export VLLM_WORKER_MULTIPROC_METHOD=spawn
103-
- pytest -s -v tests/e2e/offline_inference/test_qwen3_omni.py tests/e2e/online_serving/test_qwen3_omni.py
157+
- pytest -s -v tests/e2e/offline_inference/test_qwen3_omni.py tests/e2e/online_serving/test_qwen3_omni.py tests/e2e/online_serving/test_async_omni.py
104158
agents:
105159
queue: "mithril-h100-pool"
106160
plugins:
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/bin/bash
2+
# Helper function to safely login to ECR Public with per-job config isolation
3+
# Uses DOCKER_CONFIG environment variable to prevent race conditions
4+
#
5+
# This script prevents the "device or resource busy" error by giving each
6+
# Buildkite job its own isolated Docker config directory.
7+
#
8+
# Usage:
9+
# source docker_login_ecr_public.sh && safe_docker_login_ecr_public
10+
11+
set -euo pipefail
12+
13+
# Configuration
14+
ECR_REGISTRY="public.ecr.aws"
15+
16+
setup_isolated_docker_config() {
17+
# Use BUILDKITE_JOB_ID for job-specific isolation
18+
# Fallback to PID if running outside Buildkite
19+
local job_id="${BUILDKITE_JOB_ID:-$$}"
20+
21+
# Set Docker config to job-specific directory
22+
export DOCKER_CONFIG="/tmp/docker-config-${job_id}"
23+
24+
# Create directory if it doesn't exist
25+
mkdir -p "$DOCKER_CONFIG"
26+
27+
echo "[docker-config] Using isolated Docker config: $DOCKER_CONFIG"
28+
}
29+
30+
check_docker_auth() {
31+
# Check if already authenticated to the given registry
32+
# Returns 0 if authenticated, 1 if not
33+
local registry="$1"
34+
35+
# Check if credentials exist in the isolated config
36+
if [[ -f "$DOCKER_CONFIG/config.json" ]]; then
37+
# Check if registry is present in config
38+
if grep -q "$registry" "$DOCKER_CONFIG/config.json" 2>/dev/null; then
39+
return 0
40+
fi
41+
fi
42+
43+
return 1
44+
}
45+
46+
safe_docker_login_ecr_public() {
47+
# Setup isolated config first
48+
setup_isolated_docker_config
49+
50+
local registry="$ECR_REGISTRY"
51+
52+
# Check if already authenticated (within this job)
53+
if check_docker_auth "$registry"; then
54+
echo "[docker-login] Already authenticated to $registry in this job"
55+
return 0
56+
fi
57+
58+
# Perform login to isolated config directory
59+
echo "[docker-login] Logging in to $ECR_REGISTRY (isolated config)..."
60+
if aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin "$ECR_REGISTRY"; then
61+
echo "[docker-login] Login successful (config: $DOCKER_CONFIG)"
62+
return 0
63+
else
64+
local exit_code=$?
65+
echo "[docker-login] ERROR: Login failed with exit code $exit_code" >&2
66+
return $exit_code
67+
fi
68+
}
69+
70+
# Execute if run as script (not sourced)
71+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
72+
safe_docker_login_ecr_public
73+
fi

.buildkite/scripts/hardware_ci/run-amd-test.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ done
6666
echo "--- Pulling container"
6767
image_name="public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:${BUILDKITE_COMMIT}-rocm-omni"
6868
container_name="rocm_${BUILDKITE_COMMIT}_$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 10; echo)"
69+
70+
# Install AWS CLI to authenticate to ECR Public Gallery to get higher rate limit for pulling images
71+
sudo apt-get update && sudo apt-get install -y awscli
72+
# Use safe docker login helper to prevent race conditions
73+
source "$(dirname "${BASH_SOURCE[0]}")/../docker_login_ecr_public.sh"
74+
safe_docker_login_ecr_public
75+
# Pull the container from ECR Public Gallery
76+
6977
docker pull "${image_name}"
7078

7179
remove_docker_container() {

.buildkite/scripts/simple_test.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,4 @@ VENV_PYTHON="${VENV_DIR}/bin/python"
5151
"${UV_BIN}" pip install --python "${VENV_PYTHON}" -e ".[dev]"
5252
"${VENV_PYTHON}" -m pytest -v -s tests/entrypoints/
5353
"${VENV_PYTHON}" -m pytest -v -s tests/diffusion/cache/
54+
"${VENV_PYTHON}" -m pytest -v -s tests/model_executor/models/qwen2_5_omni/test_audio_length.py

.buildkite/test-amd.yaml

Lines changed: 57 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
steps:
22

33
- label: "Diffusion Model Test"
4-
timeout_in_minutes: 15
4+
timeout_in_minutes: 20
55
agent_pool: mi325_2
66
depends_on: amd-build
7-
mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
7+
mirror_hardwares: [amdproduction]
88
grade: Blocking
99
commands:
1010
- export GPU_ARCHS=gfx942
@@ -20,7 +20,7 @@ steps:
2020
timeout_in_minutes: 15
2121
agent_pool: mi325_1
2222
depends_on: amd-build
23-
mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
23+
mirror_hardwares: [amdproduction]
2424
grade: Blocking
2525
commands:
2626
- export GPU_ARCHS=gfx942
@@ -34,11 +34,33 @@ steps:
3434
- export VLLM_ROCM_USE_AITER_RMSNORM=0
3535
- pytest -s -v tests/e2e/offline_inference/test_cache_dit.py tests/e2e/offline_inference/test_teacache.py
3636

37+
- label: "Diffusion Parallelism Test"
38+
timeout_in_minutes: 15
39+
agent_pool: mi325_2
40+
depends_on: amd-build
41+
mirror_hardwares: [amdproduction]
42+
grade: Blocking
43+
commands:
44+
- export MIOPEN_DEBUG_CONV_DIRECT=0
45+
- export MIOPEN_DEBUG_CONV_GEMM=0
46+
- pytest -s -v tests/e2e/offline_inference/test_sequence_parallel.py
47+
48+
- label: "Diffusion GPU Worker Test"
49+
timeout_in_minutes: 20
50+
agent_pool: mi325_2
51+
depends_on: amd-build
52+
mirror_hardwares: [amdproduction]
53+
grade: Blocking
54+
commands:
55+
- export MIOPEN_DEBUG_CONV_DIRECT=0
56+
- export MIOPEN_DEBUG_CONV_GEMM=0
57+
- pytest -s -v tests/diffusion/test_gpu_worker.py
58+
3759
- label: "Omni Model Test Qwen2-5-Omni"
3860
timeout_in_minutes: 15
3961
agent_pool: mi325_2
4062
depends_on: amd-build
41-
mirror_hardwares: [amdexperimental, amdproduction, amdtentative]
63+
mirror_hardwares: [amdproduction]
4264
grade: Blocking
4365
commands:
4466
- export GPU_ARCHS=gfx942
@@ -51,3 +73,34 @@ steps:
5173
- export VLLM_ROCM_USE_AITER_LINEAR=0
5274
- export VLLM_ROCM_USE_AITER_RMSNORM=0
5375
- pytest -s -v tests/e2e/offline_inference/test_qwen2_5_omni.py
76+
77+
- label: "Omni Model Test Qwen3-Omni"
78+
timeout_in_minutes: 15
79+
agent_pool: mi325_2
80+
depends_on: amd-build
81+
mirror_hardwares: [amdproduction]
82+
grade: Blocking
83+
commands:
84+
- export VLLM_LOGGING_LEVEL=DEBUG
85+
- export VLLM_WORKER_MULTIPROC_METHOD=spawn
86+
- export MIOPEN_DEBUG_CONV_DIRECT=0
87+
- export MIOPEN_DEBUG_CONV_GEMM=0
88+
- pytest -s -v tests/e2e/offline_inference/test_qwen3_omni.py tests/e2e/online_serving/test_qwen3_omni.py
89+
90+
- label: "Diffusion Image Edit Test"
91+
timeout_in_minutes: 15
92+
agent_pool: mi325_1
93+
depends_on: amd-build
94+
mirror_hardwares: [amdproduction]
95+
grade: Blocking
96+
commands:
97+
- export GPU_ARCHS=gfx942
98+
- export VLLM_LOGGING_LEVEL=DEBUG
99+
- export VLLM_WORKER_MULTIPROC_METHOD=spawn
100+
- export MIOPEN_DEBUG_CONV_DIRECT=0
101+
- export MIOPEN_DEBUG_CONV_GEMM=0
102+
- export VLLM_ROCM_USE_AITER=1
103+
- export VLLM_ROCM_USE_AITER_MHA=1
104+
- export VLLM_ROCM_USE_AITER_LINEAR=0
105+
- export VLLM_ROCM_USE_AITER_RMSNORM=0
106+
- pytest -s -v tests/e2e/online_serving/test_i2i_multi_image_input.py

.buildkite/test-template-amd-omni.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
depends_on: ~
1414
soft_fail: false
1515
commands:
16-
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
16+
- "source .buildkite/scripts/docker_login_ecr_public.sh && safe_docker_login_ecr_public"
1717
- "docker build -f docker/Dockerfile.rocm -t {{ docker_image_amd }} --progress plain ."
1818
- "docker push {{ docker_image_amd }}"
1919
key: "amd-build"

.github/ISSUE_TEMPLATE/750-RFC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ body:
2020
label: Proposed Change.
2121
description: >
2222
The proposed change of the RFC.
23+
value: |
24+
Please provide the detailed design document of the RFC using the [template](https://docs.google.com/document/d/12YxSsVeD1jvL-InClkeAEnZyWFDndz_65JmXvsamuV4/edit?tab=t.0#heading=h.4ef4szrsgspp).
2325
validations:
2426
required: true
2527
- type: textarea

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Easy, fast, and cheap omni-modality model serving for everyone
1616

1717
*Latest News* 🔥
1818

19+
- [2026/01] We released [0.12.0rc1](https://github.com/vllm-project/vllm-omni/releases/tag/v0.12.0rc1) - a major RC milestone focused on maturing the diffusion stack, strengthening OpenAI-compatible serving, expanding omni-model coverage, and improving stability across platforms (GPU/NPU/ROCm), please check our latest [design](https://docs.google.com/presentation/d/1qv4qMW1rKAqDREMXiUDLIgqqHQe7TDPj/edit?usp=sharing&ouid=110473603432222024453&rtpof=true&sd=true).
1920
- [2025/11] vLLM community officially released [vllm-project/vllm-omni](https://github.com/vllm-project/vllm-omni) in order to support omni-modality models serving.
2021

2122
---

0 commit comments

Comments
 (0)