Skip to content

[WIP][Feature] Temporal Pipeline Parallelism & Stream Batch for Real-Time Video#3099

Draft
mnasser02 wants to merge 56 commits into
vllm-project:mainfrom
zzhang-fr:stream-diffusion
Draft

[WIP][Feature] Temporal Pipeline Parallelism & Stream Batch for Real-Time Video#3099
mnasser02 wants to merge 56 commits into
vllm-project:mainfrom
zzhang-fr:stream-diffusion

Conversation

@mnasser02
Copy link
Copy Markdown

@mnasser02 mnasser02 commented Apr 24, 2026

Purpose

Implements #2280.

Targets 40+ FPS on 4×H100, sub-500 ms TTFF (Wan2.1-1.3B).

Stacks on #2322.

Item Status
SupportsStepExecution on Wan22Pipeline
micro-step execution pipeline with async comms, double-buffering, compute/comm overlap
StreamBatchScheduler driving micro-step execution pipeline
SLO-adaptive batch size, motion-aware noise controller + config 🔲
StreamVAE 🔲
Rolling KV cache (after #2305), adaptive sink tokens, RoPE offset reset 🔲
Make sure temporal PP works with other types of parallelism 🔲
(optional) VAE-as-stage (after #2089) 🔲
(optional) Run-time adaptive scheduling of transformer blocks across PP stages 🔲
Benchmarks vs SP baseline, PP×SP hybrid, docs 🔲

Test Plan

(NOT FINALIZED)

pytest -v \
tests/diffusion/test_diffusion_micro_step_pipeline.py \
tests/diffusion/test_diffusion_scheduler.py::TestStreamBatchScheduler

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan. Please provide the test scripts & test commands. Please state the reasons if your codes don't require additional test scripts. For test file guidelines, please check the test style doc
  • The test results. Please paste the results comparison before and after, or the e2e results.
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model. Please run mkdocs serve to sync the documentation editions to ./docs.
  • (Optional) Release notes update. If your change is user-facing, please update the release notes draft.

BEFORE SUBMITTING, PLEASE READ https://github.com/vllm-project/vllm-omni/blob/main/CONTRIBUTING.md (anything written below this line will be removed by GitHub Actions)

hadipash and others added 30 commits April 10, 2026 15:40
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>

# Conflicts:
#	docs/user_guide/diffusion_features.md
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>

# Conflicts:
#	vllm_omni/diffusion/models/wan2_2/pipeline_wan2_2_ti2v.py
#	vllm_omni/diffusion/models/wan2_2/wan2_2_transformer.py
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>

# Conflicts:
#	docs/user_guide/diffusion_features.md
# Conflicts:
#	docs/user_guide/diffusion_features.md
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>

# Conflicts:
#	docs/user_guide/diffusion_features.md
#	vllm_omni/diffusion/models/wan2_2/pipeline_wan2_2.py
#	vllm_omni/diffusion/models/wan2_2/pipeline_wan2_2_i2v.py
#	vllm_omni/diffusion/models/wan2_2/pipeline_wan2_2_ti2v.py
#	vllm_omni/diffusion/models/wan2_2/wan2_2_transformer.py
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Signed-off-by: Rustam Khadipash <16683750+hadipash@users.noreply.github.com>
Implement SupportsStepExecution protocol on Wan22Pipeline, decomposing the monolithic forward() into prepare_encode, denoise_step,step_scheduler, and post_decode. Add denoise_micro_step for temporal PP.

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
>> Different ranks work on different chunks. A context manager that views the req state of a rank as a chunk state allows benefitting from existing functionalities.

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
…ed task

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
… pipeline (B and T hardcoded for now)

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
…instead of sync send/recv

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Plain P2P on size-2 PG triggers lazy sub-comm creation that requires the peer present.

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
- Separate comms stream
- Double buffering
- Set rcv buffers for a new req
- Revert changes regarding Async structs

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
@hsliuustc0106
Copy link
Copy Markdown
Collaborator

Ready for full review when WIP status is removed. Preliminary scan available on request.

Note: Test plan and test results sections are currently empty. Please provide:

  1. Test scripts & commands for the new pipeline parallelism and stream batch scheduler
  2. E2e test results demonstrating the 40+ FPS target on 4×H100 with sub-500ms TTFF
  3. Benchmark comparisons against SP baseline and PP×SP hybrid

Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
mnasser02 added 3 commits May 6, 2026 10:45
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
mnasser02 added 2 commits May 11, 2026 18:49
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Signed-off-by: Mahdi Nasser <94046147+mnasser02@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants