Repository navigation
[Core] Align vLLM-Omni with vLLM v0.32.0 - #9066
Merged
hsliuustc0106 merged 63 commits intoOct 19, 2026
Merged
hsliuustc0106 merged 63 commits into
hsliuustc0106 merged 63 commits into
Conversation
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Use upstream release images at db9527a46873, preserve custom processor conditioning, and include weekly jobs in full Buildkite release validation. Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Accept the upstream randomize_inputs profiling flag while preserving structured codec inputs during generation-stage dummy runs. Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
…groups Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Exercise the existing PCM assertions with seeds 0 and 42 for both async modes. Preserve the original prompt, voice reference, sampling defaults, and 1 dB HNR floor. An upstream v0.31.0 negative control also crossed that floor for the unseeded request. Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
…raph pool Decode graph warm-up runs on a fresh pooled stream. PyTorch recycles 32 pooled streams, so every 32nd warm-up runs on the graph capture stream and allocates that stream's cuBLAS workspace outside the graph pool. Captures then record the out-of-pool workspace; evicting another entry releases it, and the next empty_cache() unmaps memory a surviving graph still replays against, surfacing as a CUDA illegal memory access. Clear cuBLAS workspaces before and after capture, as torch cudagraph trees do, so captured workspaces are allocated in the graph pool. Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
Collaborator
There was a problem hiding this comment.
【Conclusion: Static review found no blocking code issues in commit 14b6ea4.】
【Action recommended: Reuse applicable existing GPU results and complete the planned H100 comparison for the updated branch, checking seeded TTS quality and concurrent image generation without illegal memory access.】
Preserve multimodal cache-miss hashes, invalidate the owning sender cache, and return native retryable 503 errors. Bound benchmark retries and prevent replay after visible output. Omit unsupported tokenization routes when a pure diffusion server has no handler. Retry transient documentation-asset DNS failures and share downloaded image bytes across examples. Allow graceful server shutdown to finish before killing its shared-memory tracker. Enable VAE tiling for the single-device Hunyuan I2V profile and seed the Drama3 streaming quality cases. Validation: 567 CPU regressions and both seeded Drama3 GPU cases passed. A real VAE ablation reduced allocated peak memory from 49.55 to 12.27 GiB. Full H100 I2V and MiniCPM dataset replay remain unverified. The default mypy hook reproduces the same 14 errors on the frozen parent revision; the other applicable hooks and test-file type checks passed. Assisted-by: OpenAI Codex Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
2 tasks
This was referenced Oct 21, 2026
1 task done
ZhengWG
pushed a commit
to ZhengWG/vllm-omni
that referenced
this pull request
Oct 21, 2026
Signed-off-by: tzhouam <tzhouam@connect.ust.hk> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
jyizheng
added a commit
to jyizheng/vllm-omni
that referenced
this pull request
Oct 21, 2026
Resolve conflicts with v0.32.0 alignment (vllm-project#9066) and the stats/nemotron additions: keep both CHUNK_METADATA_KEYS entries (finished + full_payload_snapshot) and both accumulation steps (replace_nemotron_snapshot_keys + producer-declared latent snapshot supersede).
jyizheng
added a commit
to jyizheng/vllm-omni
that referenced
this pull request
Oct 22, 2026
Resolve conflicts with v0.32.0 alignment (vllm-project#9066) and the stats/nemotron additions: keep both CHUNK_METADATA_KEYS entries (finished + full_payload_snapshot) and both accumulation steps (replace_nemotron_snapshot_keys + producer-declared latent snapshot supersede). Signed-off-by: Yizheng Jiao <jyizheng@gmail.com>
jyizheng
added a commit
to jyizheng/vllm-omni
that referenced
this pull request
Oct 22, 2026
Resolve conflicts with v0.32.0 alignment (vllm-project#9066) and the stats/nemotron additions: keep both CHUNK_METADATA_KEYS entries (finished + full_payload_snapshot) and both accumulation steps (replace_nemotron_snapshot_keys + producer-declared latent snapshot supersede). Signed-off-by: Yizheng Jiao <jyizheng@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contributor intent
1. What outcome do you want to achieve?
Align vLLM-Omni with the final vLLM v0.32.0 release and retain multimodal inference compatibility.
2. What is the highest-leverage variable for that outcome?
Regressions unique to the alignment branch, measured against an upstream-main Buildkite baseline.
3. How will this work move that variable?
Update the runtime integration, release wheels, container defaults and documentation, then compare full paired Buildkite runs and debug failures locally.
4. Whose customer or user needs does this address, and what are those needs?
All vLLM-Omni users who need alignment with upstream vLLM.
Purpose
Align with vLLM v0.32.0, commit
5df63a7203cdb9328d824a27b682e77c7b9928be.Adapt the affected model-runner, parallel-state, layer and preprocessing interfaces. Preserve soundfile-first automatic audio decoding and explicit decoder selection.
Update dependencies, Python support (
>=3.11,<3.14), container references and installation guidance. Pin the CUDA CI image by digest and verify the installed wheel's build commit; retain cross-container release-equality checks.Preserve native pooling results and structured cache-miss errors while keeping tokenizer-free generation outputs intact. Reject malformed Qwen video scopes through the validation error path, including mixed flat/scoped options.
Forward profiling delay and iteration limits through inline/subprocess diffusion and NPU workers while preserving default calls.
Merge Omni main
71f0fa47a, resolving the CuMem free-callback conflict with [Bugfix][Diffusion] Fix inline CuMem shutdown and FA3 FP8 CPU numerics #9063 by keeping its_releasable_handle()path.Fix a latent Qwen-Image-2.1 decode-graph use-after-free that surfaced as a CUDA illegal memory access, and seed the Qwen3-TTS Base PCM quality cases (details below).
The comparison now contains 86 files. Header-only edits and independent presentation, configuration, test-fixture and diagnostics work were removed. The independent work is preserved as five commits on the split branch; that branch also repairs the Helm snippet indentation. The weakened ROCm assertions were discarded.
Validation
Local tested head:
14b6ea49aad225118543b848a0b94088a476808a, using Python 3.12 and the pinned vLLM 0.32.0 runtime with devices hidden.librosaPython-3.12 syntax blocker on both snapshots. An isolated check of the nine modified library files introduces no errors (27 baseline, 26 current).Earlier GPU evidence
The full comparison below tested
737c90cb3fb7fee0666b09b2a7474361c1c7f2ab, not the current head:a965251bf1a3db3ab6871307ec39c938c0634479: 120 passed, 2 failed, 1 broken.Resolved alignment-only failures
Both were reproduced and fixed locally on L20X; current head
89195e718e1f6c4abbc63da5cdee1b69504c26e1.Qwen3-TTS Base PCM HNR (0.60 dB < 1.0 dB): test flakiness, not a v0.32 regression. The case sends unseeded requests, so its audio follows the server's request-order random stream. Fifty unseeded requests on upstream main with vLLM 0.31 and fifty on this branch with vLLM 0.32 produced byte-identical PCM for all 50 responses (SHA-256), including the same 0.958 dB sample below the floor. The test now runs seeds
0and42for both async modes with the unchanged 1.0 dB floor; all four cases pass (2.01–2.40 dB).Qwen-Image-2.1 CUDA illegal memory access at concurrency 8: fixed. Decode-graph warm-up runs on a new pooled stream. PyTorch recycles 32 pooled streams, so every 32nd warm-up runs on the capture stream and allocates that stream's cuBLAS workspace outside the graph pool (observed at capture 33 in the real workload). The captured graph then references memory that eviction plus
empty_cache()releases under surviving graphs. Workspaces are now cleared around capture, as torch cudagraph trees do. The new regression test fails 3/3 withcudaErrorIllegalAddresswithout the fix and passes 3/3 with it;test_decode_graph.pypasses 15/15, and the original benchmark passes, including 160/160 requests at concurrency 8. The decode-graph code is unchanged from main, so main carries the same latent bug.Remaining limits
A fresh H100 Buildkite comparison on the current head is still required; the fixes above were validated on L20X. These local checks do not establish a regression-free branch.
AI assistance: Codex, Claude and InferMatrixCopilot assisted with compatibility changes, documentation, diagnostics, validation and this description. Human review remains required.