Skip to content

[EPLB] Add contention-aware expert migration batching - #52641

Merged
robertgshaw2-redhat merged 44 commits into
vllm-project:mainfrom
DOCCA0:agent/eplb-migration-batching
Oct 3, 2026
Merged

robertgshaw2-redhat merged 44 commits into
vllm-project:mainfrom
DOCCA0:agent/eplb-migration-batching

Conversation

@DOCCA0

@DOCCA0 DOCCA0 commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

Partially addresses #31671.

Summary

During async EPLB, several expert weights can be transferred through the same rank and NIC at once. These traffic bursts compete with inference and can increase serving latency.

This change adds an opt-in scheduler that groups migrations by source and destination rank, then splits them into batches. In each batch, a rank communicates with at most one peer, while independent rank pairs still transfer concurrently. Expert weights still move one layer at a time, but schedules for all MoE layers are prepared once per rebalance cycle to reduce Python overhead.

enable_migration_batching remains false by default. Setting it to true enables the new path only when use_async=true; synchronous EPLB always keeps the existing path because inference is paused and serial batches would extend the pause. NIXL transfer context is restored before every batch because execute() drains it.

I checked open EPLB migration/scheduling PRs and found no duplicate implementation. AI assistance was used; I (a human contributor) reviewed every changed line and am responsible for the contribution.

Tests

.venv/bin/python -m pytest tests/distributed/test_eplb_migration_scheduler.py -q

.venv/bin/pre-commit run --files \
  vllm/config/parallel.py \
  vllm/distributed/eplb/async_worker.py \
  vllm/distributed/eplb/eplb_state.py \
  vllm/distributed/eplb/migration_scheduler.py \
  vllm/distributed/eplb/rebalance_execute.py \
  tests/distributed/test_eplb_migration_scheduler.py

Result: 12 passed; selected pre-commit hooks passed.

End-to-end serving benchmark

One four-node run used Ubuntu 22.04.5, one Quadro RTX 6000 24 GB GPU per node, Ray 2.56.1, NIXL 1.3.2 over 10 GbE without RDMA, and prefix caching enabled. The model was Qwen/Qwen3-30B-A3B-Instruct-2507 with TP=4 and 32-way concurrency. Each case used a fresh server; 500/500 requests completed.

Server command:

MODEL=Qwen/Qwen3-30B-A3B-Instruct-2507
USE_BATCHING=true  # repeat with false
EPLB_CONFIG="{\"window_size\":50,\"step_interval\":50,\"num_redundant_experts\":32,\"log_balancedness\":false,\"use_async\":true,\"communicator\":\"nixl\",\"enable_migration_batching\":$USE_BATCHING}"

vllm serve "$MODEL" --dtype float16 --port 8000 \
  --gpu-memory-utilization 0.9 --max-model-len 4096 \
  --enable-prefix-caching --tensor-parallel-size 4 \
  --distributed-executor-backend ray --enable-expert-parallel \
  --enable-eplb --eplb-config "$EPLB_CONFIG" --enforce-eager

Bench command:

vllm bench serve --backend vllm --model "$MODEL" --port 8000 \
  --dataset-name random --random-prefix-len 300 \
  --random-input-len 200 --random-output-len 300 \
  --num-prompts 500 --max-concurrency 32 --seed 0 --temperature 0 \
  --percentile-metrics ttft,tpot,e2el --metric-percentiles 50,99 \
  --ignore-eos --disable-tqdm --save-result \
  --result-dir "$RESULTS" --result-filename bench.json
Batching Duration (s) Request/s Output tok/s TTFT P50/P99 (ms) TPOT P50/P99 (ms) E2EL P50/P99 (ms)
off 4,756.10 0.1051 31.54 49,180.71 / 75,740.25 828.53 / 1,007.82 303,462.69 / 322,184.88
on 4,650.17 0.1075 32.26 48,599.04 / 74,756.17 812.44 / 999.01 293,821.76 / 317,351.61

Async batching improved request throughput by 2.28%, TTFT P50/P99 by 1.18%/1.30%, TPOT P50/P99 by 1.94%/0.87%, and E2EL P50/P99 by 3.18%/1.50%.

The head node's total network traffic (bytes received + bytes transmitted) was sampled from Linux byte counters once per second; it is not a vllm bench serve metric. NIC P99 decreased from 599.81 to 538.40 MB/s (10.24%). The plots and unmodified JSON/log files are in results/serving_nixl_20260911_async_random500.

End-to-end improvement

NIC traffic over time

Scheduler profiling

The profiling run used the same server and workload parameters, with only NVTX-only Nsight capture enabled. The exact commands are documented in COMMANDS.md. Open the four rank*.nsys-rep files with Nsight Systems 2024.5.1 or newer and search for eplb: schedule migration batches.

Each range is one scheduler call covering all 48 MoE layers in a rebalance cycle, rather than one call per layer. The transfers themselves remain layer-by-layer. The measured per-rank results were:

Rank Calls P50/call (ms) Total time across all calls (ms)
0 34 7.819 302.081
1 34 7.090 253.152
2 34 7.035 255.239
3 34 7.005 241.190

The four ranks schedule concurrently, so their times are not added. Across the 34 cycle-wide scheduler calls, rank 0 had the largest measured total scheduling time: 302.081 ms. The independent clean A/B benchmark completed 105.932 s faster with batching. Comparing these two measured values gives a scheduler-cost-to-serving-time-saved ratio of 0.285%.

Scheduler cost versus serving time saved

Thanks to my advisor Massimo Tornatore (massimo.tornatore@polimi.it) and Assistant Professor Qiaolun Zhang (qiaolun.zhang@polimi.it) for their professional support.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@DOCCA0
DOCCA0 force-pushed the agent/eplb-migration-batching branch from 23bd32d to 394576d Compare August 17, 2026 23:59
@DOCCA0
DOCCA0 force-pushed the agent/eplb-migration-batching branch from 394576d to 0890d07 Compare August 28, 2026 11:40

@ilmarkov ilmarkov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR looks good. Some cosmetic changes required.

Regarding the benchmarking, why didn't you use the default nixl eplb communicator? Also, from the command line it's unclear what were the eplb parameters (most importantly step interval).

Comment thread vllm/distributed/eplb/migration_scheduler.py Outdated
Comment thread vllm/distributed/eplb/rebalance_execute.py Outdated
Comment thread vllm/distributed/eplb/rebalance_execute.py Outdated
Comment thread tests/distributed/test_eplb_migration_scheduler.py Outdated
@DOCCA0

DOCCA0 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

The PR looks good. Some cosmetic changes required.

Regarding the benchmarking, why didn't you use the default nixl eplb communicator? Also, from the command line it's unclear what were the eplb parameters (most importantly step interval).

I did both gloo and nixl. But the bench.json file of nixl is coverd by bench.json of torch_gloo .
I will redo all the bench using nixl and show you the results.

@SageMoore SageMoore left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work! I have some initial comments/questions.

Comment thread vllm/distributed/eplb/rebalance_execute.py
Comment thread vllm/config/parallel.py Outdated
@DOCCA0
DOCCA0 force-pushed the agent/eplb-migration-batching branch from 0890d07 to 79c6ea4 Compare September 1, 2026 04:41

@ilmarkov ilmarkov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the benchmarks updates.

  1. Short comment on set_transfer_context in _execute_migration_batch
  2. I would suggest to make the limit of peer number in a batch configurable (at the moment each rank has only one peer per batch which could be left as default value). It could reduce the number of steps, and allow saturate high-bandwidth NICs.

Comment thread vllm/distributed/eplb/rebalance_execute.py
@ilmarkov

ilmarkov commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

/ci run

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

❌ @ilmarkov, Only reviewers with write access can use CI commands before CI is delegated to the PR author.

@tlrmchlsmth

Copy link
Copy Markdown
Member

/ci run

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #87080 for commit c57337e51c1e.

@DOCCA0
DOCCA0 force-pushed the agent/eplb-migration-batching branch 2 times, most recently from 780ae15 to 335baed Compare September 3, 2026 15:55
@coderabbitai

coderabbitai Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Team

Run ID: 9a3a0e17-6a75-41dd-b97d-33c263406d6c

📥 Commits

Reviewing files that changed from the base of the PR and between 4f63218 and a3db9bd.

📒 Files selected for processing (1)
  • vllm/config/parallel.py

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


Walkthrough

EPLB expert migrations now support deterministic, rank-disjoint batching. Configuration enables batching by default, and transfer call sites forward the setting. Tests cover scheduling, buffered transfers, configuration, and validation behavior.

Changes

EPLB migration batching

Layer / File(s) Summary
Migration instruction building and batch scheduling
vllm/distributed/eplb/migration_scheduler.py, tests/distributed/test_eplb_migration_scheduler.py
Adds immutable migration flows, expert index mapping, balanced sender assignment, deterministic rank-disjoint batching, and scheduler validation tests.
Batched migration transfer execution
vllm/distributed/eplb/rebalance_execute.py, tests/distributed/test_eplb_migration_scheduler.py
Adds batched send/receive execution, local row resolution, metadata reuse, and buffered transfer tests.
Batching configuration and transfer-state integration
vllm/config/parallel.py, vllm/distributed/eplb/async_worker.py, vllm/distributed/eplb/eplb_state.py, tests/distributed/test_eplb_migration_scheduler.py
Adds migration batching and data-parallel synchronization settings, ubatching threshold validation, transfer-path wiring, and pinned-memory map copies.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant transfer_layer
  participant move_to_buffer
  participant migration_scheduler
  participant EplbCommunicator
  participant move_from_buffer
  transfer_layer->>move_to_buffer: pass migration indices and batching flag
  move_to_buffer->>migration_scheduler: build and schedule migration batches
  migration_scheduler-->>move_to_buffer: return rank-disjoint batches
  move_to_buffer->>EplbCommunicator: set context and post sends or receives
  EplbCommunicator-->>move_to_buffer: execute each batch
  move_to_buffer-->>move_from_buffer: return TransferMetadata
  move_from_buffer->>move_from_buffer: copy buffered weights into expert weights
Loading

Merge Risk: ⚪ Minimal · up to a3db9

This change enables contention-aware EPLB expert-migration batching by default while retaining an opt-out path. The supplied test and implementation summaries identify no unresolved correctness, availability, or deployment risk that blocks merging.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 30.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 30 functions across 6 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely identifies the main change: adding contention-aware expert migration batching for EPLB.
Description check ✅ Passed The description directly explains the migration batching design, configuration, tests, benchmarks, and performance results described in the changeset.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

❌ @DOCCA0, A reviewer with write access must run /ci run, approve the PR, or add the ready label first.

@tlrmchlsmth

Copy link
Copy Markdown
Member

/ci run

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #87146 for commit 71fad4e55870.

@DOCCA0 DOCCA0 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed line by line

@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

Signed-off-by: DOCCA0 <2947323341@qq.com>
@robertgshaw2-redhat robertgshaw2-redhat added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 1, 2026
@robertgshaw2-redhat

Copy link
Copy Markdown
Collaborator

/ci run

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

✅ @DOCCA0, CI is now available for this PR.

  • /ci run starts upstream CI; /amd-ci run starts AMD CI only.
  • Your branch must contain every commit currently on its upstream target branch. Merge or rebase onto the latest target branch, then rerun the command. Append --allow-stale to a run command to test an outdated branch at your own risk.
  • /ci retry retries failed jobs in the CI build for the current PR head. If the current head has no CI build, it starts a new CI build for the current head containing only jobs that failed in the latest earlier CI build for this PR.
  • /amd-ci retry retries failed jobs in AMD CI for the current PR head. Use /amd-ci run when the current head has no AMD CI build.
  • /ci cancel cancels scheduled or running CI builds for this PR branch; /amd-ci cancel does the same for AMD CI only.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92422 for commit 41946d08515e.

@robertgshaw2-redhat robertgshaw2-redhat left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approving given Sage/Ilia own this area

@robertgshaw2-redhat
robertgshaw2-redhat enabled auto-merge (squash) October 1, 2026 14:55
@robertgshaw2-redhat

Copy link
Copy Markdown
Collaborator

/ci run

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92679 for commit 63952b9ceed3.

@vllm-agent

vllm-agent commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

CI selector (shadow): 171 test steps (243 jobs) instead of 71 (91 jobs)

Shadow mode: this changes nothing about what CI runs. It shows what the evidence-based selector would pick for this PR, next to today's rules. How it works.

Feedback welcome: reply here if it would skip a step this change needs, or runs something unrelated.

steps (jobs) Today's rules Selector Would skip Would add
NVIDIA, CPU and others 71 (91) 171 (243) 4 (4) 104 (156)
AMD mirrors 69 (91) 143 (203) 2 (2) 76 (114)
Selector would run (171)
  • amd-fp8-moe-kernels-mi355
  • amd-kernels-mi355
  • amd-native-quantization-kernels-mi355
  • arm-cpu-test ×3
  • async-engine-inputs-utils-worker
  • basic-correctness ×2
  • basic-correctness-cpu-offload
  • basic-correctness-cumem
  • basic-correctness-prefetch-offload
  • basic-correctness-sleep-mode
  • basic-models-test-other-cpu
  • basic-models-tests-extra-initialization ×14
  • basic-models-tests-initialization
  • basic-models-tests-other
  • batch-invariance-b200
  • batch-invariance-h100
  • benchmarks-cli-test
  • cpu-distributed-tests-dp-tp
  • cpu-distributed-tests-pp-tp
  • cpu-kernel-tests ×2
  • cpu-language-generation-and-pooling-model-tests ×3
  • cpu-multi-modal-model-tests-n ×4
  • cpu-multimodal-config
  • cpu-params-env-tokenizers-parser
  • cpu-quantization-model-tests
  • cpu-qwen2-5-vl-multimodal-tests
  • cpu-reasoning-renderers
  • cpu-spec-decode-tests
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus
  • cudagraph
  • deepseek-v4-kernel-test-b200
  • deepseek-v4-kernel-test-h100
  • distributed-comm-ops
  • distributed-compile-comm-4-gpus
  • distributed-compile-rpc-tests-2-gpus
  • distributed-compile-unit-tests-2xh100
  • distributed-dp-tests-2-gpus
  • distributed-dp-tests-4-gpus
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus
  • distributed-model-tests-2-gpus ×3
  • distributed-mooncakeconnector-pd-accuracy-4-gpus
  • distributed-nixlconnector-pd-accuracy-4-gpus
  • distributed-tests-8xh100
  • distributed-torchrun-examples-4-gpus
  • distributed-torchrun-shutdown-tests-2-gpus
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus
  • e2e-core-1-gpu
  • e2e-core-large-memory
  • e2e-scheduling-1-gpu
  • e2e-scheduling-accuracy-1-gpu
  • elastic-ep-scaling-test
  • engine
  • engine-1-gpu
  • entrypoints-integration-api-server ×4
  • entrypoints-integration-api-server-generate
  • entrypoints-integration-api-server-openai-chat_completion
  • entrypoints-integration-api-server-openai-completion
  • entrypoints-integration-llm
  • entrypoints-integration-multimodal
  • entrypoints-integration-pooling
  • entrypoints-integration-responses-api
  • entrypoints-integration-speech_to_text
  • entrypoints-unit-tests
  • eplb-algorithm
  • eplb-execution
  • examples
  • extract-hidden-states-integration
  • extract-hidden-states-integration-2-gpus
  • fault-tolerance-e2e-2xh100
  • fusion-and-compile-unit-tests-2xb200
  • fusion-e2e-config-sweep-h100
  • fusion-e2e-quick-h100
  • fusion-e2e-tp2-ar-rms-config-sweep-h100
  • fusion-e2e-tp2-asynctp-config-sweep-h100
  • fusion-e2e-tp2-b200
  • fusion-e2e-tp2-quick-h100
  • gemm-rs-ar-2xb200
  • glm5next-unit-tests
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus
  • inkling-unit-tests-b200
  • jit-monitor-no-runtime-jit
  • kernels-attention-test ×7
  • kernels-b200 ×3
  • kernels-core-operation-test ×3
  • kernels-deepgemm-test-h100
  • kernels-flashmla-test-h100
  • kernels-fusedmoe-layer-test-2-b200s
  • kernels-fusedmoe-layer-test-2-h100s
  • kernels-mamba-test
  • kernels-mhc-test-b200
  • kernels-minimax-reduce-rms-test-2-gpus
  • kernels-moe-test ×5
  • kernels-quantization-test ×6
  • kernels-root-misc-test-b200
  • kimi-k3-prefix-cache-4xb200 ×2
  • kimi-k3-unit-tests-b200
  • kv-offload-large
  • kv-offload-medium
  • kv-offload-small
  • language-models-tests-extra-standard ×2
  • language-models-tests-granite-l4-compatibility
  • language-models-tests-hybrid ×2
  • language-models-tests-standard
  • lm-eval-dspark-watermark-2xh100
  • lm-eval-small-models
  • lm-eval-turboquant-k3v4nc
  • lm-eval-turboquant-k8v4
  • lm-eval-turboquant-t3nc
  • lm-eval-turboquant-t4nc
  • lm-eval-watermarking
  • lora ×4
  • lora-tp-distributed ×4
  • metrics-tracing-2-gpus
  • model-executor
  • mrcr-eval-small-models
  • multi-modal-models-standard-1-qwen2
  • multi-modal-models-standard-2-qwen3-gemma
  • multi-modal-models-standard-3-llava-qwen2-vl
  • multi-modal-models-standard-4-other-whisper
  • multi-modal-processor ×4
  • multi-modal-processor-cpu ×4
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus
  • nixlconnector-pd-edge-cases-2-gpus
  • openai-api-correctness
  • pipeline-context-parallelism-4-gpus
  • plugin-tests-2-gpus
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus
  • pytorch-compilation-dynamic-shapes
  • pytorch-compilation-passes-unit-tests
  • pytorch-compilation-unit-tests
  • pytorch-compilation-unit-tests-h100
  • pytorch-fullgraph-cudagraph-l4-compatibility
  • pytorch-fullgraph-test
  • quantization ×4
  • quantized-fusions
  • quantized-models-test
  • quantized-moe-test-b200
  • qwen4-exp-unit-tests
  • qwen4-exp-unit-tests-cpu
  • rayexecutorv2-4-gpus
  • regression
  • replayssm-e2e
  • rust-frontend-core-correctness
  • rust-frontend-distributed
  • rust-frontend-openai-coverage
  • rust-frontend-serve-admin-coverage
  • rust-frontend-tool-use
  • samplers-multimodal-beam-search
  • samplers-test
  • scale-out-ec-e2e-2-gpus
  • sharded-rdt-weight-transfer
  • spec-decode-draft-model ×4
  • spec-decode-eagle-1-deepseek-qwen
  • spec-decode-eagle-2-llama3-qwen-vl-other
  • spec-decode-mtp-deepseek-mimo
  • spec-decode-mtp-gemma4
  • spec-decode-mtp-qwen3-5
  • spec-decode-ngram-suffix
  • spec-decode-speculators
  • v1-attention-b200 ×2
  • v1-attention-h100-mi300 ×2
  • v1-core
  • v1-executor-worker
  • v1-kv-connectors ×4
  • v1-logits-oracle
  • v1-metrics-lmeval
  • v1-others-cpu
  • v1-sample
  • v1-spec-decode
Would skip (today's rules run them) (4)
  • ascend-npu-test
  • cpu-tool-parsers
  • kernels-fla-ops-test-b200
  • v1-kv-offload
Would add (today's rules do not run them) (104)
  • amd-fp8-moe-kernels-mi355 (code map)
  • amd-kernels-mi355 (code map)
  • amd-native-quantization-kernels-mi355 (code map)
  • arm-cpu-test ×3 (code map)
  • basic-models-tests-extra-initialization ×14 (code map)
  • batch-invariance-b200 (code map)
  • batch-invariance-h100 (code map)
  • cpu-distributed-tests-dp-tp (code map)
  • cpu-distributed-tests-pp-tp (code map)
  • cpu-kernel-tests ×2 (code map)
  • cpu-multi-modal-model-tests-n ×4 (code map)
  • cpu-quantization-model-tests (code map)
  • cpu-qwen2-5-vl-multimodal-tests (code map)
  • cpu-spec-decode-tests (code map)
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • cudagraph (code map)
  • deepseek-v4-kernel-test-b200 (code map)
  • deepseek-v4-kernel-test-h100 (code map)
  • distributed-compile-unit-tests-2xh100 (code map)
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus (code map)
  • distributed-model-tests-2-gpus ×3 (code map)
  • distributed-mooncakeconnector-pd-accuracy-4-gpus (code map)
  • distributed-nixlconnector-pd-accuracy-4-gpus (code map)
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • e2e-core-1-gpu (code map)
  • e2e-core-large-memory (code map)
  • e2e-scheduling-1-gpu (code map)
  • e2e-scheduling-accuracy-1-gpu (code map)
  • engine-1-gpu (code map)
  • entrypoints-unit-tests (code map)
  • examples (code map)
  • extract-hidden-states-integration (code map)
  • extract-hidden-states-integration-2-gpus (code map)
  • fault-tolerance-e2e-2xh100 (code map)
  • fusion-and-compile-unit-tests-2xb200 (code map)
  • fusion-e2e-config-sweep-h100 (code map)
  • fusion-e2e-quick-h100 (code map)
  • fusion-e2e-tp2-ar-rms-config-sweep-h100 (code map)
  • fusion-e2e-tp2-asynctp-config-sweep-h100 (code map)
  • fusion-e2e-tp2-b200 (code map)
  • fusion-e2e-tp2-quick-h100 (code map)
  • gemm-rs-ar-2xb200 (code map)
  • glm5next-unit-tests (code map)
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus (code map)
  • inkling-unit-tests-b200 (code map)
  • jit-monitor-no-runtime-jit (code map)
  • kernels-attention-test ×7 (code map)
  • kernels-b200 ×3 (code map)
  • kernels-core-operation-test ×3 (code map)
  • kernels-deepgemm-test-h100 (code map)
  • kernels-flashmla-test-h100 (code map)
  • kernels-mamba-test (code map)
  • kernels-minimax-reduce-rms-test-2-gpus (code map)
  • kernels-quantization-test ×6 (code map)
  • kimi-k3-prefix-cache-4xb200 ×2 (code map)
  • kimi-k3-unit-tests-b200 (code map)
  • kv-offload-large (code map)
  • kv-offload-medium (code map)
  • kv-offload-small (code map)
  • language-models-tests-extra-standard ×2 (code map)
  • lm-eval-dspark-watermark-2xh100 (code map)
  • lm-eval-small-models (code map)
  • lm-eval-turboquant-k3v4nc (code map)
  • lm-eval-turboquant-k8v4 (code map)
  • lm-eval-turboquant-t3nc (code map)
  • lm-eval-turboquant-t4nc (code map)
  • lm-eval-watermarking (code map)
  • lora ×4 (code map)
  • lora-tp-distributed ×4 (code map)
  • model-executor (code map)
  • mrcr-eval-small-models (code map)
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus (code map)
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus (code map)
  • nixlconnector-pd-edge-cases-2-gpus (code map)
  • openai-api-correctness (code map)
  • plugin-tests-2-gpus (code map)
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus (code map)
  • quantization ×4 (code map)
  • quantized-fusions (code map)
  • quantized-models-test (code map)
  • quantized-moe-test-b200 (code map)
  • qwen4-exp-unit-tests (code map)
  • qwen4-exp-unit-tests-cpu (code map)
  • rayexecutorv2-4-gpus (code map)
  • replayssm-e2e (code map)
  • rust-frontend-core-correctness (code map)
  • rust-frontend-openai-coverage (code map)
  • rust-frontend-serve-admin-coverage (code map)
  • rust-frontend-tool-use (code map)
  • samplers-multimodal-beam-search (code map)
  • samplers-test (code map)
  • scale-out-ec-e2e-2-gpus (code map)
  • sharded-rdt-weight-transfer (code map)
  • spec-decode-draft-model ×4 (code map)
  • spec-decode-eagle-1-deepseek-qwen (code map)
  • spec-decode-eagle-2-llama3-qwen-vl-other (code map)
  • spec-decode-mtp-deepseek-mimo (code map)
  • spec-decode-mtp-gemma4 (code map)
  • spec-decode-mtp-qwen3-5 (code map)
  • spec-decode-ngram-suffix (code map)
  • spec-decode-speculators (code map)
  • v1-attention-b200 ×2 (code map)
  • v1-attention-h100-mi300 ×2 (code map)
AMD mirrors: would skip (2)
  • kernels-fla-ops-test-b200
  • platform-tests
AMD mirrors: would add (76)
  • basic-models-tests-extra-initialization ×14 (code map)
  • batch-invariance-h100 (code map)
  • crosslayer-kv-layout-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • cudagraph (code map)
  • deepseek-v4-kernel-test-h100 (code map)
  • distributed-flashinfer-nixlconnector-pd-accuracy-4-gpus (code map)
  • distributed-mooncakeconnector-pd-accuracy-4-gpus (code map)
  • distributed-nixlconnector-pd-accuracy-4-gpus (code map)
  • dp-ep-distributed-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • e2e-core-1-gpu (code map)
  • e2e-core-large-memory (code map)
  • e2e-scheduling-1-gpu (code map)
  • e2e-scheduling-accuracy-1-gpu (code map)
  • engine-1-gpu (code map)
  • entrypoints-unit-tests (code map)
  • examples (code map)
  • extract-hidden-states-integration (code map)
  • extract-hidden-states-integration-2-gpus (code map)
  • fusion-e2e-config-sweep-h100 (code map)
  • fusion-e2e-quick-h100 (code map)
  • glm5next-unit-tests (code map)
  • hybrid-ssm-nixlconnector-pd-accuracy-tests-4-gpus (code map)
  • hybrid-ssm-nixlconnector-pd-prefix-cache-2-gpus (code map)
  • inkling-unit-tests-b200 (code map)
  • jit-monitor-no-runtime-jit (code map)
  • kernels-attention-test ×7 (code map)
  • kernels-b200 ×3 (code map)
  • kernels-core-operation-test ×3 (code map)
  • kernels-flashmla-test-h100 (code map)
  • kernels-mamba-test (code map)
  • kimi-k3-unit-tests-b200 (code map)
  • kv-offload-large (code map)
  • kv-offload-medium (code map)
  • kv-offload-small (code map)
  • language-models-tests-extra-standard ×2 (code map)
  • lm-eval-dspark-watermark-2xh100 (code map)
  • lm-eval-small-models (code map)
  • lm-eval-turboquant-k3v4nc (code map)
  • lm-eval-turboquant-k8v4 (code map)
  • lm-eval-turboquant-t3nc (code map)
  • lm-eval-turboquant-t4nc (code map)
  • lm-eval-watermarking (code map)
  • lora ×4 (code map)
  • lora-tp-distributed ×4 (code map)
  • model-executor (code map)
  • mrcr-eval-small-models (code map)
  • multiconnector-nixl-offloading-pd-accuracy-2-gpus (code map)
  • multiconnector-nixl-offloading-pd-edge-cases-2-gpus (code map)
  • nixlconnector-pd-edge-cases-2-gpus (code map)
  • nixlconnector-pd-spec-decode-acceptance-2-gpus (code map)
  • openai-api-correctness (code map)
  • plugin-tests-2-gpus (code map)
  • push-nixlconnector-pp-prefill-pd-accuracy-4-gpus (code map)
  • quantization ×4 (code map)
  • quantized-fusions (code map)
  • quantized-models-test (code map)
  • quantized-moe-test-b200 (code map)
  • qwen4-exp-unit-tests (code map)
  • rust-frontend-core-correctness (code map)
  • rust-frontend-openai-coverage (code map)
  • rust-frontend-serve-admin-coverage (code map)
  • rust-frontend-tool-use (code map)
  • samplers-multimodal-beam-search (code map)
  • samplers-test (code map)
  • scale-out-ec-e2e-2-gpus (code map)
  • sharded-rdt-weight-transfer (code map)
  • spec-decode-draft-model ×4 (code map)
  • spec-decode-eagle-1-deepseek-qwen (code map)
  • spec-decode-eagle-2-llama3-qwen-vl-other (code map)
  • spec-decode-mtp-deepseek-mimo (code map)
  • spec-decode-mtp-gemma4 (code map)
  • spec-decode-mtp-qwen3-5 (code map)
  • spec-decode-ngram-suffix (code map)
  • spec-decode-speculators (code map)
  • v1-attention-b200 ×2 (code map)
  • v1-attention-h100-mi300 ×2 (code map)

6 changed files · base 6e517b15c1 · head a5c4bca0a5 · Python record: build 92490 at ccda9098cc · kernel record: table 4056c8a (build 92561), map 4056c8a · not counted: 10 build steps, 5 A100 steps the generator no longer emits, 123 optional steps the selector would also run

@DOCCA0

DOCCA0 commented Oct 2, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry --allow-stale

@DOCCA0

DOCCA0 commented Oct 2, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown

✅ Triggered Buildkite CI #92715 for commit a5c4bca0a5d0, running 1 failed step(s) from Buildkite CI #92679.

@DOCCA0

DOCCA0 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor Author

/ci retry

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

✅ Queued 1 failed job(s) for retry in Buildkite CI #92715.

@robertgshaw2-redhat
robertgshaw2-redhat merged commit 7dfe333 into vllm-project:main Oct 3, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build ready ONLY add when PR is ready to merge/full CI is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants