Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
633 commits
Select commit Hold shift + click to select a range
61a6f81
[Bugfix][Bench] Aggregate DP running requests for profiling (#61777)
qianlihuang Oct 29, 2026
d83a7df
[Model] Update RADIO vision encoder to match the current Transformers…
shengliangxu Oct 29, 2026
5cf5c8f
[Bugfix][Quantization] Fix Humming FP8 linear for per-tensor/per-chan…
Manfredss Oct 29, 2026
cf3f640
[Bugfix] Default Nemotron Omni mamba_ssm_cache_dtype to float32 (#63218)
jbottleson-nvidia Oct 29, 2026
21db9ec
[Model] Support Ming3-ASR (inclusionAI/Ming-3.0-asr-tiny) (#63585)
yuanheng-zhao Oct 29, 2026
e5571b9
[Mistral] Use get_grammar_for_chat_request in MistralParser and requi…
juliendenize Oct 29, 2026
1ca0dfb
[Perf][GLM-5.3] Enable GLM low-latency BF16 GEMM on SM100 (#64481)
namgyu-yun Oct 29, 2026
f126668
[Bugfix][ROCm][DBO] Create hipBLASLt handles in microbatch threads be…
AndreasKaratzas Oct 29, 2026
31f173d
[Bugfix][NIXL] Dedup transfer regions by (base_addr, block_len) (#57662)
G-haoyu Oct 29, 2026
8b286ac
[Bugfix][KV Offload][P2P] Prefill locally while a peer handshake is p…
liranschour Oct 29, 2026
429eb22
[Bugfix][KV Offload] Do not offload the partially computed block of a…
sohom-cs Oct 29, 2026
510d15c
[Bugfix][Model] Nemotron 3.5 Super VL: support the native transformer…
roikoren755 Oct 29, 2026
d1ad431
[Bugfix][Compile] Fix KV-cache corruption under whole-graph compile (…
ericschreiber Oct 29, 2026
914d61f
[Perf] Qwen3.5 GDN: overlap in_proj_ba with in_proj_qkvz on the aux s…
gau-nernst Oct 29, 2026
d0ab3ba
[Perf][KV Offload] Avoid repeated hash-prefix scans (#59322)
milesial Oct 29, 2026
491067f
[Bugfix][KV Offload][P2P] Fault a peer whose source WRITE stalls (#64…
liranschour Oct 29, 2026
cebe109
[Spec Decode][GLM-5.3-Flash] Support adaptive verification (#60229)
jonahsamost Oct 29, 2026
974927f
[Bugfix][Parser] Stream DeepSeek V4/V3.2 string tool arguments increm…
jayzuccarelli Oct 29, 2026
8d4c968
[CI] Bump Transformers version to 5.21.1 (#64049)
hmellor Oct 29, 2026
a57d256
[Bugfix][KV Offload][OBJ] Don't lose a completed transfer when teleme…
sungsooha Oct 29, 2026
482e473
[Bugfix][KV Offload] Pin a shared-prefix junction when a sparse group…
KaloyanNaumov Oct 29, 2026
5cdbd05
[Docs] Add Mistral-Large-4-1T-A52B recipe (#64527)
NickLucche Oct 29, 2026
24e80c2
[CI/Build] Add nixl auto-label rule and assign topic owners (#64113)
NickLucche Oct 29, 2026
4a8c0da
[KV Offload] Reject secondary tiers on engines that span nodes (#62930)
javieratomic Oct 29, 2026
9a0f9b4
[Bugfix][Pooling] Skip weight tying for omitted LM heads (#64019)
jzakrzew Oct 29, 2026
262eefc
[Model] Support hybrid MegaMoE/TRT-LLM execution for Muse Spark NVFP4…
jeejeelee Oct 29, 2026
5a4f307
[MM] Move Nemotron VL image normalization to device (#57924)
jzakrzew Oct 29, 2026
4158395
[Bugfix][KV Offload] Let idle P2P-only engines park (#63618)
albertoperdomo2 Oct 29, 2026
4440f0e
[Bugfix][KV Offload] Make reset_cache re-entrant (#59099)
sohom-cs Oct 29, 2026
a8a0520
[Bugfix] [Frontend] Preserve prompt_logprobs in /v1/completions/deren…
akshay-babbar Oct 29, 2026
28dd46d
[Perf][HiSparse] Fuse per-layer slot invalidation and shorten the all…
MatthewBonanni Oct 29, 2026
604b961
[Bugfix] Avoid eager torch.compile in Kimi K2.5 vision helper (#53011)
saichowdary007 Oct 29, 2026
51be9ea
[Security] Enforce request template trust for structured decisions (#…
jperezdealgaba Oct 29, 2026
971378f
[Bugfix][Frontend] Probe non-jinja renderers for inline system messag…
robertgshaw2-redhat Oct 29, 2026
de83f55
[ROCm][DSv4.1] Lift the skinny-GEMM cap in the gfx942 draft lm_head t…
frida-andersson Oct 29, 2026
0309891
[Bugfix] Fail loudly instead of no-op NCCL weight transfer (#57022)
tzielinski-habana Oct 29, 2026
d8fdf4f
[MRV2][PP] Fix spec-decode draft/sampled-token broadcast issues (#64458)
njhill Oct 29, 2026
d04560f
[Doc] DeepSeek-V4-Pro: add MI355X AgentX source profiles (#64322)
chunfangamd Oct 29, 2026
9957f74
[Bugfix] Add chat template fallback for OpenVLA (#64362)
zohaibm-amd Oct 29, 2026
55b677b
[Bugfix][KV Offload] Deduplicate in-flight partial-tail loads (#64400)
waizuichougou Oct 29, 2026
e3f03f4
[ROCm][Tests] Un-skip AITER MXFP4 padding-matrix and token-padding te…
divakar-amd Oct 29, 2026
6c71831
[CI][ROCm][MoE] Add AITER_MOE_SORT_BACKEND MXFP4 DSV4 test coverage (…
divakar-amd Oct 29, 2026
4541fcd
[Doc] Add Scheduler section to V1 architecture overview (#38741)
CodersAcademy006 Oct 29, 2026
98fc6da
[Perf][DSv4.1] Gather the compressed KV once per KV-source group in p…
gcanlin Oct 29, 2026
b91df5a
[Docs] Diff against the merge base in the docs build gate (#64554)
hmellor Oct 29, 2026
bba4d9a
[ROCm] Revamp CI/release deployment: collapse image tiers, unify buil…
AndreasKaratzas Oct 29, 2026
bc57dc9
[Transformers backend] Migrate OLMoE and fix MoE LoRA (#63384)
hmellor Oct 29, 2026
dc45a5f
[Doc] Add k8s-aibom to deployment integrations (#60899)
glenmessenger Oct 29, 2026
b2f46e7
[Perf][EPLB][DSv4] Add a symm_mem weight-migration backend and fuse M…
abmfy Oct 29, 2026
0124e16
[ROCm] Monitor FlyDSL JIT compilation after warmup (#62481)
simondanielsson Oct 29, 2026
4e0ad57
[Perf][DSv4.1] Share Engram host tables as host-NUMA cuMem across DP …
Juntian777 Oct 29, 2026
e18e2c7
[Bugfix][ROCm][DSv4.1] Guard NaN scores in gfx942 mono routing (#63816)
frida-andersson Oct 29, 2026
aa738c3
[KV Connector][Mooncake] Renew prefill KV leases from the decoder (#6…
CJJ1008 Oct 29, 2026
2abde62
[ROCm][Quantization] NVFP4 MoE re-quantization and fused shared exper…
zyongye Oct 29, 2026
f97a8d6
[ROCm][Perf][DSv4.1] Mono decode at TP8 on MI355X (#64101)
okorzh-amd Oct 29, 2026
434eadc
[CI] Enroll two steps and two AMD mirrors in automatic sharding (#64115)
Thangnguyenvn98 Oct 29, 2026
4b47db9
[CI][KV Offload][P2P] Wait for the handshake in the idle peer-hit tes…
orozery Oct 29, 2026
255431b
[Bugfix][Parser] Parse closed GLM-4.7 tool arguments once while strea…
vMaroon Oct 29, 2026
10579b7
[Docs][ROCm] Mistral Large 4 recipe: ROCm image tag, MI355X, TP4 repl…
hongxiayang Oct 29, 2026
8084f06
[Bugfix][KV Connector][NIXL] Fix Mamba region stride on block-outermo…
Dao007forever Oct 29, 2026
83bae49
[CI] Fix mypy multimodels tests folder (#64342)
yewentao256 Oct 30, 2026
f2ba523
[CI][MoE] Start every MoE kernel test file from a clean GPU state (#6…
khluu Oct 30, 2026
daccf69
[CI][Kimi-K3] Add enable_adaptive_verification to the KDA checkpoint …
njhill Oct 30, 2026
36ed432
[Kernel] Add CUDA routing kernel for Muse Spark Open (#64553)
jeejeelee Oct 30, 2026
dc42019
[Bugfix][Frontend] Leave GLM-4.7 array and object tool arguments unpi…
vMaroon Oct 30, 2026
f81a414
[Bugfix][ROCm] Use 64-bit row offsets in the Triton W4A16 GEMM (#63054)
subin9 Oct 30, 2026
32a7303
[Bugfix][Rust Frontend] Count tool call deltas as generated tokens in…
dilberx Oct 30, 2026
a17e79a
[EPD] Metadata-only image and video inputs for GLM-5.3-Flash (#64071)
grYe99 Oct 30, 2026
322f90a
[Bugfix][Spec Decode] Per-request draft retention for structured outp…
yzong-rh Oct 30, 2026
e49ea84
[ROCm][Perf][DSv4.1] Build the SWA decode metadata in one launch (#6…
okorzh-amd Oct 30, 2026
2eae56c
[ROCm][CI] Update ROCm AITER nightly staging index (#64610)
josh-schell-amd Oct 30, 2026
335dd77
[CI] Fix mypy errors in test_glm5next.py (#64644)
aoshen02 Oct 30, 2026
6d01893
[ROCm][Bugfix] Skip AITER tuned GEMM when M*N >= 2^31 on gfx950 (#64567)
micah-wil Oct 30, 2026
8730884
[CI][ROCm] Check skinny-GEMM guard dispatch without torch.profiler (#…
AndreasKaratzas Oct 30, 2026
1fbde73
[CI] Bump Transformers version to 5.22.0 (#64529)
hmellor Oct 30, 2026
1353e19
[KV Connector][ROCm] MoRIIO: hybrid READ for several attention groups…
MIR-AMD Oct 30, 2026
d0d3005
[Doc] Kimi-K3: move the GB300 AgentX presets to the Oct 26 points wit…
Ankur-singh Oct 30, 2026
d14f72c
[Rust Frontend] Add native GLM-5.3 / GLM-5.3-Flash chat rendering (#6…
zRzRzRzRzRzRzR Oct 30, 2026
d492ee7
[Qwen4Exp] Remove FlashAttention dependency and standardize QSA namin…
peakcrosser7 Oct 30, 2026
e7aad41
[Bugfix] Preserve batch audio handler error status codes (#61973)
bzsuni Oct 30, 2026
89a9a03
[Bugfix][MRV2] Fix DiffusionGemma runtime OOM via tiled logits projec…
guan404ming Oct 30, 2026
c05e9ed
[Bugfix][Benchmark] Count tool call deltas as generated tokens in ope…
dilberx Oct 30, 2026
a70e48d
[Rust Frontend] Reject chat templates for native renderers (#64274)
BugenZhao Oct 30, 2026
19e24f0
[Fast Start] Stop preload groups when a daemon rank exits (#63692)
liusy58 Oct 30, 2026
fa9356a
[Bugfix][XPU] Add record_logical_topk_ready to XPUMLASparseImpl (#64065)
afierka-intel Oct 30, 2026
c827025
[XPU][CI] Enable streaming input e2e test on XPU (#64285)
faaany Oct 30, 2026
2bfb8f1
[Perf][MoE] Use 32-row tiles in prepare_megamoe_inputs from 1024 toke…
Juntian777 Oct 30, 2026
53624fc
[Perf][DSv4.1] Bump FlashMLA to pass int64 positions to MegaAttn (#61…
Juntian777 Oct 30, 2026
8b9a434
[Bugfix] Retry incomplete HTTP response bodies (#62674)
bzsuni Oct 30, 2026
aa85ff7
[Bugfix][Rust Frontend] Send the DP rendezvous in coordinated-DP INIT…
BugenZhao Oct 30, 2026
c20fc8a
[Rust Frontend] Let the handshake owner serve a range of DP ranks (#6…
BugenZhao Oct 30, 2026
8559100
[Rust Frontend] Support hybrid and external DP LB in `vllm-rs serve` …
BugenZhao Oct 30, 2026
a20280f
[Compile] Make the compile cache device-neutral with compile_on_one_r…
kouroshHakha Oct 30, 2026
8b10bda
[Kernel] Add size-gated PDL to silu_and_mul_nvfp4_quant (#64494)
gau-nernst Oct 30, 2026
336d883
[CI] Enroll 6 steps and 10 AMD mirrors in automatic sharding (#64569)
Thangnguyenvn98 Oct 30, 2026
a9a8222
[CI] Enroll the remaining Kernels jobs in automatic sharding (30 jobs…
Thangnguyenvn98 Oct 30, 2026
fc84d05
[CI] Enroll the remaining Spec Decode jobs in automatic sharding (21 …
Thangnguyenvn98 Oct 30, 2026
c5e37f1
[CI] Enroll the remaining Distributed, EP and fault-tolerance jobs in…
Thangnguyenvn98 Oct 30, 2026
4a8dc13
[CI] Enroll the remaining Compile, PyTorch, CUDA and ABI jobs in auto…
Thangnguyenvn98 Oct 30, 2026
15a9677
[CI] Enroll the remaining Misc and Samplers jobs in automatic shardin…
Thangnguyenvn98 Oct 30, 2026
0e34db7
[CI] Enroll the remaining LM Eval jobs in automatic sharding (30 jobs…
Thangnguyenvn98 Oct 30, 2026
8bad43e
[Rust Frontend] Fix bad_words handling in /v1/completions (#48951)
reidliu41 Oct 30, 2026
2b313cd
[Rust Frontend] Export UMBP connector transfer metrics like Python (#…
BugenZhao Oct 30, 2026
52737e0
[Rust Frontend] Support return_weight_versions (#64218)
BugenZhao Oct 30, 2026
d8a7945
[Rust Frontend] Report prompt logprobs on streamed completions echo l…
BugenZhao Oct 30, 2026
00ba900
[XPU] Use GitHub release page index URL for vllm-xpu-kernels (#64633)
jikunshang Oct 30, 2026
515b875
[Rust Frontend] Support --max-log-len (#64223)
BugenZhao Oct 30, 2026
e152c70
[Rust Frontend] Report the generate response envelope like Python (#6…
BugenZhao Oct 30, 2026
617135e
[Test][UMBP][6/10] Add embedded runtime and MORI integration coverage…
charxwu Oct 30, 2026
b8141bd
[CI] Continue automatic PyTorch Fullgraph sharding (#64635)
Thangnguyenvn98 Oct 30, 2026
a23fd99
[Rust Frontend] Support --root-path (#64222)
BugenZhao Oct 30, 2026
96c80f8
[Perf][Frontend] Build run-batch TypeAdapters once instead of per req…
inc-jeong Oct 30, 2026
8472c01
[Bugfix] Preserve multimodal processor-cache hits during request evic…
SherifWaly Oct 30, 2026
fac2ce2
[KV Offload] Emit self-describing events for recurrent state groups (…
luckyq Oct 30, 2026
deacc36
[Bugfix][SleepMode] Exact-size, reusable pinned CPU backup for level-…
aoshen02 Oct 30, 2026
5cae6fd
[Rust Frontend] Log one structured access log event per HTTP response…
BugenZhao Oct 30, 2026
1114488
[Rust Frontend] Support VLLM_SKIP_MODEL_NAME_VALIDATION (#64514)
BugenZhao Oct 30, 2026
c817cc0
[Rust Frontend] Report completion_tokens_details only when reasoning …
BugenZhao Oct 30, 2026
4d1376a
[KV Connector] Support heterogeneous TP sharing for hybrid KV cache i…
chengy-sysu Oct 30, 2026
6de8c7b
[Rust Frontend] Support return_prompt_text (#64526)
BugenZhao Oct 30, 2026
8a2a5e4
[ROCm][Kimi-K3][Perf] Cut gfx942 MXFP4-to-int4 requant time under pur…
xaguilar-amd Oct 30, 2026
24420b7
[hw-agnostic] Opt-in infrastructure for OOT plugins (#60218)
bohnstingl Oct 30, 2026
dfe4d99
[Bugfix][KV Offload] Preserve stored event prefix order (#63249)
Alex-ai-future Oct 30, 2026
8493b34
[Bugfix][HiSparse] Reserve in-flight imports' host pages at admission…
MatthewBonanni Oct 30, 2026
32b30df
[Recipe] Kimi-K3: add B300 AgentX aggregated Mooncake preset (#64617)
hshrivastava-droid Oct 30, 2026
b44a48c
[Qwen4Exp] PLE disk offload (#59958)
stecasta Oct 30, 2026
6a95c89
[Multimodal] Cache PyNvVideoCodec decoder caps (#64618)
brandonpelfrey Oct 30, 2026
d15be08
[GLM5.3 Perf] Switching dlfash fp8 kv cache draft model, 2.85 GB memo…
yewentao256 Oct 30, 2026
ca5c2d7
[ROCm][CI] Drop LD_PRELOAD from the subprocess env in test_amd_ci_fas…
djramic Oct 30, 2026
becbaea
[Perf] Fuse all-gather and norm for Muse Spark hybrid MoE (#64638)
jeejeelee Oct 30, 2026
dc4dd5a
[ROCm][DI][CI] Add DeepSeek-V3 NIXL accuracy steps (#62007)
avininjamay8 Oct 30, 2026
e811e50
[ROCm][CI] Fix AITER MXFP4 padding tests failing instead of skipping …
djramic Oct 30, 2026
5423fb8
[Spec Decode][DSpark] Batch-sharded sequential block (#63886)
TheEpicDolphin Oct 30, 2026
42379a4
[Model Runner V2][Spec Decode] Speculator config classes and custom s…
njhill Oct 30, 2026
75d14e8
[Docs] Fix dead links to moved llm-d, Dynamo, TPU, Ray and Tensorizer…
sarankumar1325 Oct 30, 2026
a93c7fb
[Doc] Fix Case 4 math rendering in hybrid KV cache manager (#64188)
hechengkai Oct 30, 2026
d731ff9
[Doc] Fix %% rendering in CLI reference for --safetensors-load-strate…
lizzzcai Oct 30, 2026
913fccd
[Feature] Initial support for fault tolerant ep using scale-down (#46…
fangyuchu Oct 30, 2026
c9af9ac
[Bugfix] Resolve HF paths when loading sharded state (#61380)
bzsuni Oct 30, 2026
2fab358
[Bugfix] Fix depyf incompatibility with Inductor's set_sys_modules (#…
stefankoncarevic Oct 30, 2026
ed14230
[Bugfix] Skip more weight formats in the tokenizer/processor snapshot…
Prakash-sa Oct 30, 2026
c8dbb1c
[Perf][Spec Decode] Split-vocabulary Triton argmax for the DSpark gre…
Juntian777 Oct 30, 2026
2f6f786
[Bugfix] Fix int32 token offset overflows in Qwen3.5 attention and GD…
simon-veitner-redhat Oct 30, 2026
644a9f5
[Deps] Upgrade to huggingface_hub 2 (#64779)
hmellor Oct 30, 2026
212f366
[Bugfix] [Tokenizer] Preserve Hub model identity when loading tokeniz…
yma11 Oct 30, 2026
7495e9e
[ROCm] Bump AITER to v0.1.27 (#63774)
josh-schell-amd Oct 30, 2026
67d677b
[ROCm][CI] Prebuild mamba-ssm and causal-conv1d into the CI test imag…
aarushjain29 Oct 30, 2026
be712f5
[RL] NCCL weight transfer: release cached memory after a weight updat…
hao-aaron Oct 30, 2026
e31cf3d
[Perf][DSA] Read BF16 logits directly in persistent top-k (#64138)
Pb314314 Oct 30, 2026
040abb2
[CPU][MRv2] Enable MRv2 for non-triton CPU backends (#61995)
fadara01 Oct 30, 2026
14a5bb4
[Model Loader] Run the model-level post-load hook once at the end of …
hao-aaron Oct 30, 2026
d2d550c
[CI] Remove the retired A100 queue's steps; keep their live AMD mirro…
Thangnguyenvn98 Oct 30, 2026
6c19299
[Perf][Qwen3.5] (NVIDIA-only) Fused norm+quant and gate+quant (#64509)
gau-nernst Oct 30, 2026
4c38b65
[Bugfix][Core] Keep offline DP ranks' collectives aligned with async …
Juntian777 Oct 30, 2026
dd5f5ee
[Bugfix] Fix multi-layer MTP module selection for Qwen3.5 and Qwen3-N…
spandantiwari Oct 30, 2026
59d58fd
[ROCm][CI] Run MI355 MoE Kernels on a full MI355 instead of DPX (#64740)
djramic Oct 30, 2026
d90e35c
[Doc] MiniMax-M3.1-Flash: add GB300 InferenceX AgentX presets (#64821)
hshrivastava-droid Oct 30, 2026
1755058
[ROCm][Model] Step-5-Preview support on ROCm (#61837)
akii96 Oct 31, 2026
1944a23
[Config] Move V2-only checks into V1 model runner unsupported feature…
njhill Oct 31, 2026
8ecf86b
[Feature] Default EPLB num_redundant_experts to minimum valid value (…
majiayu000 Oct 31, 2026
8777b4c
[Perf][Frontend] Decode streamed custom-tool input incrementally (#64…
vMaroon Oct 31, 2026
5829ca8
[Frontend] Reject Anthropic-defined tools by type in /v1/messages (#6…
robertgshaw2-redhat Oct 31, 2026
0aa72a4
[Perf][Parser] Skip tool-argument conversions after a replaced value …
vMaroon Oct 31, 2026
c7a683b
[Bugfix][Parser] Parse closed Qwen3 tool parameters once while stream…
vMaroon Oct 31, 2026
042f30f
[Perf][LoRA][MoE] Use the shrink/expand kernels for MoE-LoRA batches …
aoshen02 Oct 31, 2026
1633271
[Pooling] Speed up ColBERT reranking with batched token heads (#64269)
taneem-ibrahim Oct 31, 2026
58f245c
[Kernel] Qwen4Exp: compute HyperConnection and PLE gate row offsets i…
seanbell Oct 31, 2026
138dfa5
[ROCm][DSv4.1][Perf] Enable prefix-cache SWA replay on gfx950 (#64094)
karverma-amd Oct 31, 2026
e3eec51
[ROCm][Kimi-K3] Keep KDA prefill checkpoints with the gluon backend (…
seungrokj Oct 31, 2026
c4f54cf
[Bugfix][ROCm] Size AITER MLA persistent metadata for every decode qu…
BaoYunkai Oct 31, 2026
06f36c1
[NIXL] Bump NIXL version to 1.5.2 (#64579)
erezzarum Oct 31, 2026
6028115
[Perf][GLM-5.3-Flash] Update FlashKDA pin, consume row-strided QKV di…
qianlihuang Oct 31, 2026
2b009fc
[Feature][DSv4.1] Enable PCP with PP or DP (#63098)
wangyicong52 Oct 31, 2026
5a23328
[Bugfix][gRPC] Drain in-flight RPCs and engine work within --shutdown…
mrn3088 Oct 31, 2026
8b55f91
[KV Connector][NIXL] Pair KV regions by layer for every transfer (#63…
Dao007forever Oct 31, 2026
886b845
[Model] Add NVIDIA Canary (nvidia/canary-1b-v2) speech-to-text suppor…
Alex-Wengg Oct 31, 2026
b5755c3
[RL][Model Loader] Direct weight reload: write checkpoint tensors int…
hao-aaron Oct 31, 2026
900b8b0
[Perf][Qwen3.8] Add SM103 skinny GEMM plans for TP=1 (#64650)
namgyu-yun Oct 31, 2026
d5301a4
[MORI] Add MORI EP V2 support (#61361)
ChengYM5685 Oct 31, 2026
10da92f
[Bugfix][Model] Make compile_mm_encoder work for RADIO/NaViT encoders…
HangruiCao2000 Oct 31, 2026
87cb835
[Misc] Allow weights mapper to transform weights (#64869)
Isotr0py Oct 31, 2026
7b77ed5
[Spec Decode][ROCm] draft_lm_head_quantization for DSpark drafters (#…
AMD-yanfeiwang Oct 31, 2026
e5196e2
[Perf][glm5next] Add SM121 TP=2 skinny-GEMM plans for GLM-5.3-Flash (…
TimRen01 Oct 31, 2026
4aba9bf
[Bugfix] Flashinfer attention warmup deadlock under PP>1 (#64338)
yzong-rh Oct 31, 2026
54beee8
[Kernel] Batch invariance: pin FlashInfer FP8 bmm and W4A16 NVFP4 ker…
0z5a Oct 31, 2026
78161c2
[Bugfix][Model] Fix CohereASR FP16 attention bias dtype (#54399)
ActiveSky Oct 31, 2026
50f622b
Skip redundant weight tensor clones for loaders that yield owned tens…
noa-neria Oct 31, 2026
0c63ce9
[Bugfix][Frontend] Report prompt_tokens_details in batched chat compl…
Jackmeson1 Oct 31, 2026
42258ca
[ModelRunner V2] Reduce peak memory of chunked prompt logprobs (#64841)
njhill Oct 31, 2026
25fc607
[Perf][Kernel] Single-launch fused scoring+top-k kernel for sparse-in…
LopezCastroRoberto Oct 31, 2026
e318ac0
[Perf][Frontend] Compute prompt block hashes in the Rust frontend (#6…
njhill Oct 31, 2026
d8fad92
[Bugfix][Spec Decode] Honor draft moe/attention backend overrides for…
aoshen02 Oct 31, 2026
cfa9f96
[Bugfix][Tool Parser] Preserve whitespace in HYV4 argument names (#61…
Vegetog Oct 31, 2026
3f9d184
[Docs][ROCm] Add DeepSeek-V4.1-Flash MI355X TP8 concurrency-1 AgentX …
Fangzhou-Ai Oct 31, 2026
b03e788
[Docs][ROCm] Add MiniMax-M3.1-Flash MI355X TP4 AgentX preset (#64805)
Fangzhou-Ai Oct 31, 2026
564ac0d
[Docs][ROCm] Mistral Large 4 recipe: adds TP4 and lowest-latency pres…
indivats Oct 31, 2026
a906122
[Doc] MiniMax-M3.1-Flash: update the GB200 AgentX presets (#64909)
xinli-sw Nov 1, 2026
3a90cc6
[Doc] MiniMax-M3.1-Flash: update the GB300 AgentX presets (#64910)
xinli-sw Nov 1, 2026
e0d00e4
[Recipe] Qwen3.5-397B-A17B: add the B200 NVFP4 TP2 agentic preset (#6…
aniskumar-nv Nov 1, 2026
63d3d39
[Bugfix][DSv3.2] Carry the shared indexer top-k across pipeline stage…
LucasWilkinson Nov 1, 2026
2a4792d
[Perf][MoE] Fuse padding skipping in grouped and Muse prepared routin…
WoosukKwon Nov 1, 2026
17e6759
[KV Offload] Carry request context on raw stored events (#63695)
Change72 Nov 1, 2026
5d55ef1
[KV Offload] Remove unused touch from CachePolicy and OffloadingManag…
mindungil Nov 1, 2026
8530a77
[Core][Attention] Resolve per-layer KV dtype in attention runtime (#5…
meenchen Nov 1, 2026
b2d07f5
[Bugfix][GDN] Restore in_proj_ba overlap on CUDA (#64999)
gau-nernst Nov 1, 2026
b8c04dd
[Perf][KV Offload] Keep offload event metadata out of the cyclic GC (…
jthomson04 Nov 1, 2026
72a3404
[Bugfix][DSv4.1] Autotune the sparse indexer's wq_b GEMM (#60543)
Juntian777 Nov 2, 2026
49fee5b
[Kernel] Batch invariance: combine the NVFP4 linear kernel overrides …
aoshen02 Nov 2, 2026
ea83629
[Perf][DSv4.1] Vectorize first-layer HC expansion copy (#64816)
Juntian777 Nov 2, 2026
08e3f26
[CI] Lower gpu_memory_utilization in test_gemma4_lora (#65008)
njhill Nov 2, 2026
16d6673
[MRV2] Cap torch.topk rows in chunked prompt logprobs (#64914)
njhill Nov 2, 2026
dfe4a30
[Model] Nemotron-3.5-Transcribe: pack the audio tower's valid frames …
DongjiGao Nov 2, 2026
23b8984
[Perf][FlashAttention] FA4: pass no FP8 descale for a unit per-tensor…
zyongye Nov 2, 2026
945d0a2
[Responses] Normalize OpenResponses input items to match openai-pytho…
anencore94 Nov 2, 2026
62c9b62
[Bugfix][Mooncake] Let decodes reuse divergent local hybrid prefix hi…
whx-sjtu Nov 2, 2026
de53c2d
[Bugfix][ROCm] Fix Kimi K3 online quantization with padded projection…
whx-sjtu Nov 2, 2026
e8ec12c
[Bugfix][Spec Decode] V2 rejection sampler: return logprob_token_ids …
SCcagg5 Nov 2, 2026
c215f14
[Bugfix][Frontend] Fix tool_reference results on DeepSeek V4.1 and /v…
vMaroon Nov 2, 2026
bc09e63
[Bugfix][LoRA] respect `attention_k_eq_v=True` QKK LoRA layers (#61267)
cjackal Nov 2, 2026
eecf8db
[Bugfix][LoRA] Fix KeyError crash when a LoRA name is reloaded with r…
heyemlee Nov 2, 2026
7fc4678
[Doc] Move the Ascend content of the recipes to vllm-ascend overlays …
esmeetu Nov 2, 2026
cc69774
[ROCm][Perf][DSv4.1] Mono: batch TP4 K2's X8 copies, load its push's …
okorzh-amd Nov 2, 2026
860da3d
[Core] Extensible KV cache (#56492)
njhill Nov 2, 2026
410ab34
[Bugfix][Tool Parser] Parse bare FunctionGemma arguments and stream t…
saifltr Nov 2, 2026
a9cf9df
[Bugfix][EC Connector] Allocate producer control ports at startup (#6…
gty111 Nov 2, 2026
37e1668
[Perf][MiniMax-M3] Sequence parallelism and GEMM-RS for TP + MegaMoE …
gau-nernst Nov 2, 2026
3d23773
[Bugfix][ROCm] Use 64-bit row offsets in the RDNA hybrid W4A16 GEMM (…
vllmellm Nov 2, 2026
b10a8c2
[Model] Remove redundant Muse Spark configuration overrides (#65045)
jeejeelee Nov 2, 2026
be09292
[ROCm][Perf][Muse Spark] FlyDSL decode monokernel for DSpark verify s…
azaidy Nov 2, 2026
318c4db
[Perf][MiniMax-M3] (NVIDIA-only) Fused norm+quant MXFP8 (#64852)
gau-nernst Nov 2, 2026
4c393ce
[CI] Enroll three standalone AMD steps in automatic sharding (#64181)
Thangnguyenvn98 Nov 2, 2026
b2fcbdd
[CI] Enroll five steps and four AMD mirrors in automatic sharding (#6…
Thangnguyenvn98 Nov 2, 2026
24d7bc9
[CI] Enroll the remaining Models (basic, multimodal, language) jobs i…
Thangnguyenvn98 Nov 2, 2026
90cd144
[CI] Enroll the remaining Engine and Basic Correctness jobs in automa…
Thangnguyenvn98 Nov 2, 2026
bbac37a
[CI] Enroll the remaining quantization and benchmarks jobs in automat…
Thangnguyenvn98 Nov 2, 2026
76c6f3f
[CI] Enroll the remaining Rust frontend and OpenAI API correctness jo…
Thangnguyenvn98 Nov 2, 2026
0e5b2ba
[Model] Enable --mm-encoder-tp-mode data for MiMo-V2.6 (#64179)
vllmellm Nov 2, 2026
51c6dfd
[ROCm][Perf][Kimi-K3] Specialized decode K2: sentinel all-reduces, pr…
hyukjlee Nov 2, 2026
5689c27
[Bugfix][ROCm] Muse Spark: merge the two process_weights_after_loadin…
Alex-Wengg Nov 2, 2026
ccafd6c
[NIXL][CI/Build] Bump NIXL to 1.5.2 and drop source build for Rubin (…
erezzarum Nov 2, 2026
785b0e4
[Rust Frontend] Run utility calls to completion when the caller is ca…
BugenZhao Nov 2, 2026
1b95bc6
[Rust Frontend][1/3] Map developer messages to system for templates w…
franciscojavierarceo Nov 2, 2026
5c8ae7c
[Bugfix][Rust Frontend] Match Python text-part joining for HF templat…
luyixiao95 Nov 2, 2026
d03cbd1
Merge branch 'main' into jdarve/grpc-liveness-readiness
BugenZhao Nov 2, 2026
01b6a05
[Bugfix][KV Offload] Anchor the partial-tail lookup on the full-atten…
nvyutwu Nov 2, 2026
fa62ea9
[Bugfix][Rust Frontend][ZMQ] Run ZMQ transport I/O on the dedicated r…
reidliu41 Nov 2, 2026
30565c3
[Rust Frontend] Accept duplicate reasoning aliases in chat messages (…
world-executed Nov 2, 2026
a487973
[ROCm][CI] Fix Muse Spark RoPE cache leak between tests (#65140)
djramic Nov 2, 2026
380c8e4
[Docs] Fix accidental cross-references in docstrings (#65157)
hmellor Nov 2, 2026
66dbdcd
Merge branch 'main' into jdarve/grpc-liveness-readiness
BugenZhao Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 6 additions & 4 deletions .agents/skills/model-microbenchmark/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ description: Time a vLLM model's forward pass on exact batch shapes (decode, pre

Builds the batch without the scheduler, runs it through MRV2's real
`execute_model`, and times the forward as a one-shot CUDA graph (prefill
included). Sampling, the speculator, and CPU step overhead are excluded, so
expect results somewhat below a serving step.
included). The configured drafter is included by default; use
`--exclude-drafter` for target-only timing. All draft tokens are accepted.
Target sampling, rejection sampling, and CPU step overhead are excluded.

## Usage

Expand Down Expand Up @@ -44,7 +45,8 @@ Key flags (plus all `EngineArgs`):

- `--kv-len-jitter 0.5` (default): prefixes drawn within ±50%, same on every
DP rank, capped at `max_model_len`. Use `0` for exact lengths.
- `--routing auto|real|balanced`: `auto` = balanced with dummy weights.
- `--routing auto|real|balanced|zipf`: `auto` = Zipf with dummy weights;
`zipf` uses fixed alpha=1.25 skew (target only, no PCP or grouped top-k).
- `--iters 20 --samples 5`, `--output-json out.json` (per-rank latency stats,
`samples_us`, graph-vs-eager check).
- Defaults: `--load-format dummy`, prefix caching off, no torch.compile.
Expand Down Expand Up @@ -94,7 +96,7 @@ that the JSON summary excludes.
## Caveats

- **Dummy weights lie for data-dependent kernels.** Dummy gates route every
token to the same experts (hence balanced routing). Cross-check suspicious
token to the same experts (hence synthetic routing). Cross-check suspicious
kernels with real weights.
- **torch.compile models (e.g. Qwen3/3.5) look slow**: no compile here. Use
them for correctness only; trust perf for models under `vllm/models/`.
Expand Down
6 changes: 3 additions & 3 deletions .agents/skills/model-recipes/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ description: Find vLLM deployment recipes and configs for LLMs and Hugging Face

Model serving recipes are maintained in this repository's
[recipes/models/ directory](../../../recipes/models). Omni (image, video,
audio) recipes stay in vllm-project/recipes for now (moving to vllm-omni),
and Ascend NPU content is inline in these recipes (moving to vllm-ascend
overlays). The published catalog, rendered by
audio) recipes live in vllm-project/vllm-omni, and Ascend NPU content lives in
vllm-project/vllm-ascend as overlays merged into these recipes. The published
catalog, rendered by
[vllm-project/recipes](https://github.com/vllm-project/recipes), is at
[recipes.vllm.ai](https://recipes.vllm.ai).

Expand Down
15 changes: 15 additions & 0 deletions .buildkite/amd-disagg/cluster.sh
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,21 @@ export MORI_GPU_ARCHS="gfx950"
# path fails to come up.
export MORI_ENABLE_HOST_PROXY="${MORI_ENABLE_HOST_PROXY:-1}"

# NIXL UCX defaults: RC on ionic_0, GPU-direct RDMA.
if [[ "${KV_CONNECTOR:-}" == Nixl* ]]; then
export UCX_TLS="${UCX_TLS:-rc_verbs,ud_verbs,tcp,self,rocm}"
export UCX_NET_DEVICES="${UCX_NET_DEVICES:-ionic_0:1,lo}"
export UCX_IB_GID_INDEX="${UCX_IB_GID_INDEX:-${_IB_GID_INDEX}}"
export UCX_UD_VERBS_ETH_DGID_CHECK="${UCX_UD_VERBS_ETH_DGID_CHECK:-n}"
export UCX_IB_GPU_DIRECT_RDMA="${UCX_IB_GPU_DIRECT_RDMA:-yes}"
export UCX_RMA_PPLN_ENABLE="${UCX_RMA_PPLN_ENABLE:-y}"
export UCX_PROTO_EMULATION_ENABLE="${UCX_PROTO_EMULATION_ENABLE:-n}"
export UCX_KEEPALIVE_INTERVAL="${UCX_KEEPALIVE_INTERVAL:-inf}"
export UCX_UD_VERBS_RX_QUEUE_LEN="${UCX_UD_VERBS_RX_QUEUE_LEN:-1024}"
export UCX_RCACHE_MAX_UNRELEASED="${UCX_RCACHE_MAX_UNRELEASED:-1024}"
export ACCURACY_NUM_CONCURRENT="${ACCURACY_NUM_CONCURRENT:-1}"
fi

# ----------------------------------------------------------------- benchmark
export BENCHMARK_COMBINATIONS="${BENCHMARK_COMBINATIONS:-1024/128 2048/128}"
export BENCHMARK_CON="${BENCHMARK_CON:-32 64}"
Expand Down
14 changes: 14 additions & 0 deletions .buildkite/amd-disagg/models.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,20 @@ models:
tp: "--gpu-memory-utilization 0.9"
ep: '--gpu-memory-utilization 0.75 --compilation-config {"cudagraph_mode":"PIECEWISE","custom_ops":["+quant_fp8"]}'

- model: DeepSeek-V4-Pro
env:
VLLM_ROCM_USE_AITER: "1"
VLLM_ROCM_USE_AITER_MLA: "1"
VLLM_ROCM_USE_AITER_MOE: "1"
VLLM_ROCM_USE_AITER_RMSNORM: "1"
base_flags: "--trust-remote-code --kv-cache-dtype fp8"
prefill:
tp: "--gpu-memory-utilization 0.85"
ep: "--gpu-memory-utilization 0.85 --enforce-eager"
decode:
tp: "--gpu-memory-utilization 0.85"
ep: '--gpu-memory-utilization 0.75 --compilation-config {"cudagraph_mode":"PIECEWISE","custom_ops":["+quant_fp8"]}'

- model: GLM-5.2-FP8
env:
VLLM_ROCM_USE_AITER: "1"
Expand Down
82 changes: 82 additions & 0 deletions .buildkite/amd-disagg/pipeline-disagg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,15 @@ steps:
commands:
- MODEL_NAME=MiniMax-M3-MXFP8 NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=0 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V4-Pro-PD-1P1D-TP8-MoRIIO-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 2
concurrency_group: "amd-disagg/mi350/2node"
commands:
- MODEL_NAME=DeepSeek-V4-Pro NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=0 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "GLM-5.2-FP8-PD-1P1D-TP8-MoRIIO-proxy"
agents:
queue: amd_mi350_ainic
Expand Down Expand Up @@ -310,6 +319,15 @@ steps:
commands:
- MODEL_NAME=MiniMax-M3-MXFP8 NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=1 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V4-Pro-PD-1P1D-EP8/DP8-WideEP-MoRIIO-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 2
concurrency_group: "amd-disagg/mi350/2node"
commands:
- MODEL_NAME=DeepSeek-V4-Pro NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=1 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "GLM-5.2-FP8-PD-1P1D-EP8/DP8-WideEP-MoRIIO-proxy"
agents:
queue: amd_mi350_ainic
Expand Down Expand Up @@ -378,6 +396,15 @@ steps:
commands:
- MODEL_NAME=MiniMax-M3-MXFP8 xP=2 yD=2 NODES=4 GPUS_PER_NODE=8 WIDE_EP_MODE=1 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy WORKLOAD_TIMEOUT_S=10800 ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V4-Pro-PD-2P2D-EP16/DP16-WideEP-MoRIIO-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 1
concurrency_group: "amd-disagg/mi350/4node"
commands:
- MODEL_NAME=DeepSeek-V4-Pro xP=2 yD=2 NODES=4 GPUS_PER_NODE=8 WIDE_EP_MODE=1 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "GLM-5.2-FP8-PD-2P2D-EP16/DP16-WideEP-MoRIIO-vllm-router"
agents:
queue: amd_mi350_ainic
Expand All @@ -387,3 +414,58 @@ steps:
commands:
- MODEL_NAME=GLM-5.2-FP8 xP=2 yD=2 NODES=4 GPUS_PER_NODE=8 WIDE_EP_MODE=1 MORIIO_READ_MODE=0 RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

#-------------------------------------- mi350 · disagg NIXL (UCX RDMA) · SLURM --------------------------------------#

- label: "DeepSeek-V3-PD-1P1D-TP8-NIXL-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 2
concurrency_group: "amd-disagg/mi350/2node"
commands:
- MODEL_NAME=DeepSeek-V3 NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=0 KV_CONNECTOR=NixlConnector RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V3-PD-2P2D-EP16/DP16-WideEP-NIXL-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 1
concurrency_group: "amd-disagg/mi350/4node"
commands:
- MODEL_NAME=DeepSeek-V3 xP=2 yD=2 NODES=4 GPUS_PER_NODE=8 WIDE_EP_MODE=1 KV_CONNECTOR=NixlConnector RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V3-PD-1P1D-EP8/DP8-WideEP-NIXL-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 2
concurrency_group: "amd-disagg/mi350/2node"
commands:
- MODEL_NAME=DeepSeek-V3 NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=1 KV_CONNECTOR=NixlConnector RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V3-PD-1P1D-TP8-NIXL-PUSH-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 2
concurrency_group: "amd-disagg/mi350/2node"
commands:
- MODEL_NAME=DeepSeek-V3 NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=0 KV_CONNECTOR=NixlPushConnector RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V3-PD-1P1D-EP8/DP8-WideEP-NIXL-PUSH-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 2
concurrency_group: "amd-disagg/mi350/2node"
commands:
- MODEL_NAME=DeepSeek-V3 NODES=2 GPUS_PER_NODE=8 WIDE_EP_MODE=1 KV_CONNECTOR=NixlPushConnector RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh

- label: "DeepSeek-V3-PD-2P2D-EP16/DP16-WideEP-NIXL-PUSH-vllm-router"
agents:
queue: amd_mi350_ainic
timeout_in_minutes: 270
concurrency: 1
concurrency_group: "amd-disagg/mi350/4node"
commands:
- MODEL_NAME=DeepSeek-V3 xP=2 yD=2 NODES=4 GPUS_PER_NODE=8 WIDE_EP_MODE=1 KV_CONNECTOR=NixlPushConnector RUN_AFTER_HEALTH=accuracy ROUTER_TYPE=vllm-router WAIT=1 bash .buildkite/amd-disagg/run-slurm-disagg-test.sh
3 changes: 2 additions & 1 deletion .buildkite/amd-disagg/run-slurm-disagg-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ SHARED_MOUNT="${SHARED_MOUNT:-/data}"
LOG_ROOT="${LOG_ROOT:-${SHARED_MOUNT}/${USER:-$(whoami)}/disagg_logs}"
DRY_RUN="${DRY_RUN:-0}"
MORIIO_READ_MODE="${MORIIO_READ_MODE:-0}"
KV_CONNECTOR="${KV_CONNECTOR:-MoRIIOConnector}"

WAIT="${WAIT:-0}"

Expand All @@ -69,7 +70,7 @@ export DISAGG_SCRIPTS_DIR="${STAGED_DIR}"
echo "[slurm-submit] staged scripts for compute nodes: ${DISAGG_SCRIPTS_DIR}" >&2

export IMAGE MODEL_NAME WIDE_EP_MODE xP yD GPUS_PER_NODE RUN_AFTER_HEALTH HEALTH_TIMEOUT_S
export SHARED_MOUNT LOG_ROOT DRY_RUN MORIIO_READ_MODE
export SHARED_MOUNT LOG_ROOT DRY_RUN MORIIO_READ_MODE KV_CONNECTOR
export ROUTER_TYPE ROUTER_PORT VLLM_ROUTER_IMAGE
# Leave the image's own ionic userspace in place instead of mounting the host's.
export SKIP_IONIC_MOUNTS
Expand Down
21 changes: 19 additions & 2 deletions .buildkite/amd-disagg/run_xPyD_disagg.slurm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ LOG_ROOT="${LOG_ROOT:-/data/${USER:-$(id -un)}/disagg_logs}"
RUN_AFTER_HEALTH="${RUN_AFTER_HEALTH:-accuracy}" # bench | accuracy
DRY_RUN="${DRY_RUN:-0}"
MORIIO_READ_MODE="${MORIIO_READ_MODE:-0}" # 0 -> prefill writes (default); 1 -> decode reads KV (read_mode)
KV_CONNECTOR="${KV_CONNECTOR:-MoRIIOConnector}" # MoRIIOConnector | NixlConnector | NixlPushConnector

# ---- router / gateway (host-side; also forwarded into the container) --------
# vllm-router -> external `vllm/vllm-router` container started on the rank-0 node (default)
Expand Down Expand Up @@ -232,7 +233,7 @@ echo "[disagg-pd] LOG_PATH=$LOG_PATH"
# rank xP .. end -> decode
export IPADDRS

export WIDE_EP_MODE xP yD GPUS_PER_NODE RUN_AFTER_HEALTH HEALTH_TIMEOUT_S DRY_RUN MORIIO_READ_MODE
export WIDE_EP_MODE xP yD GPUS_PER_NODE RUN_AFTER_HEALTH HEALTH_TIMEOUT_S DRY_RUN MORIIO_READ_MODE KV_CONNECTOR
export IMAGE SHARED_MOUNT CONTAINER_SCRIPTS DISAGG_SCRIPTS_DIR
export CLUSTER_ENV="${CLUSTER_ENV_IN}"
export DOCKER_CONT_NAME="vllm_disagg_${MODEL_NAME:-model}_${SLURM_JOB_ID}"
Expand All @@ -247,6 +248,21 @@ export PREFILL_PORT DECODE_PORT PROXY_PORT ROUTER_METRICS_PORT
export SERVE_PORT RPC_PORT KV_PORT LOCAL_PING_PORT
export PREFLIGHT PREFLIGHT_MAX_VRAM_PCT PREFLIGHT_GPU_SETTLE_S

# NIXL has no discovery service, so pass the worker URLs.
ROUTER_KV_ARGS="--kv-connector moriio --vllm-discovery-address 0.0.0.0:${PROXY_PING_PORT}"
if [[ "${KV_CONNECTOR}" == Nixl* ]]; then
nixl_startup_timeout=1800
[[ "${WIDE_EP_MODE}" == "1" && "${xP}" -gt 1 ]] && nixl_startup_timeout=7200
ROUTER_KV_ARGS="--kv-connector nixl --worker-startup-timeout-secs ${nixl_startup_timeout}"
if [[ "${WIDE_EP_MODE}" == "1" ]]; then
ROUTER_KV_ARGS+=" --prefill http://${IPS[0]}:${SERVE_PORT} --decode http://${IPS[$xP]}:${SERVE_PORT}"
else
for ((i = 0; i < xP; i++)); do ROUTER_KV_ARGS+=" --prefill http://${IPS[$i]}:${PREFILL_PORT}"; done
for ((i = xP; i < xP + yD; i++)); do ROUTER_KV_ARGS+=" --decode http://${IPS[$i]}:${DECODE_PORT}"; done
fi
fi
export ROUTER_KV_ARGS

echo "[disagg-pd] IPADDRS=${IPADDRS}"
echo "[disagg-pd] launching ${NUM_NODES} containers (1/node) -> vllm_disagg.sh node"

Expand Down Expand Up @@ -479,7 +495,7 @@ run_node_container() {
-e USER="$(id -un)" \
-e LOGNAME="$(id -un)" \
"$VLLM_ROUTER_IMAGE" \
bash -lc "exec vllm-router --vllm-pd-disaggregation --kv-connector moriio --vllm-discovery-address 0.0.0.0:$PROXY_PING_PORT --port $ROUTER_PORT --host 0.0.0.0 --intra-node-data-parallel-size $ROUTER_DP_LOCAL --policy $ROUTER_POLICY --prefill-policy $ROUTER_POLICY --decode-policy $ROUTER_POLICY --log-level info >> $LOG_PATH/vllm_router.log 2>&1" \
bash -lc "exec vllm-router --vllm-pd-disaggregation $ROUTER_KV_ARGS --port $ROUTER_PORT --host 0.0.0.0 --intra-node-data-parallel-size $ROUTER_DP_LOCAL --policy $ROUTER_POLICY --prefill-policy $ROUTER_POLICY --decode-policy $ROUTER_POLICY --log-level info >> $LOG_PATH/vllm_router.log 2>&1" \
&& echo "vllm-router container started ok" \
|| echo "WARN: failed to start vllm-router container on $(hostname)"
} 2>&1 | tee -a "$LOG_PATH/vllm_router_start.log"
Expand Down Expand Up @@ -528,6 +544,7 @@ run_node_container() {
-e HEALTH_TIMEOUT_S="$HEALTH_TIMEOUT_S" \
-e DRY_RUN="$DRY_RUN" \
-e MORIIO_READ_MODE="$MORIIO_READ_MODE" \
-e KV_CONNECTOR="$KV_CONNECTOR" \
-e ROUTER_TYPE="$ROUTER_TYPE" \
-e ROUTER_PORT="$ROUTER_PORT" \
-e ROUTER_POLICY="$ROUTER_POLICY" \
Expand Down
18 changes: 18 additions & 0 deletions .buildkite/amd-disagg/vllm_disagg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,18 @@ moriio_read_mode_kv() {
esac
}

# NIXL KV config. UCX backend.
nixl_kv_cfg() {
cat <<EOF
{
"kv_connector": "${KV_CONNECTOR}",
"kv_role": "${KV_ROLE}",
"kv_load_failure_policy": "recompute",
"kv_connector_extra_config": {"backends": ["UCX"], "kv_lease_duration": 180}
}
EOF
}

# ----------------------------------------------------------------- topology
# Resolves MODEL_PATH, MODELS_YAML, the IP array, and the master/proxy addresses.
# IP_ARRAY[0..xP-1] = prefill nodes, [xP..xP+yD-1] = decode nodes.
Expand Down Expand Up @@ -309,6 +321,7 @@ build_tp_cmd() {
}
EOF
)
if [[ "${KV_CONNECTOR:-}" == Nixl* ]]; then kv_cfg="$(nixl_kv_cfg)"; fi
CMD+=(--kv-transfer-config "${kv_cfg}")
log "role=${ROLE} mode=tp host=${HOST_IP:-0.0.0.0}:${port} kv_role=${KV_ROLE} tp=${TP_SIZE} read_mode=${MORIIO_READ_MODE}"
}
Expand Down Expand Up @@ -337,6 +350,10 @@ build_ep_cmd() {
--distributed-timeout-seconds "${DISTRIBUTED_TIMEOUT_SECONDS}"
)
local _mc; read -ra _mc <<< "${MODEL_CONFIG}"; CMD+=("${_mc[@]}")
# 2P2D EP16 only. At 0.85 the AITER MoE sort buffer runs out of memory.
if [[ "${KV_CONNECTOR:-}" == Nixl* && "${ROLE}" == "prefill" && "${xP}" -gt 1 ]]; then
CMD+=(--gpu-memory-utilization 0.75)
fi

if [[ "${IS_MASTER}" == "1" ]]; then
CMD+=(--api-server-count="${GPUS_PER_NODE}")
Expand All @@ -359,6 +376,7 @@ build_ep_cmd() {
}
EOF
)
if [[ "${KV_CONNECTOR:-}" == Nixl* ]]; then kv_cfg="$(nixl_kv_cfg)"; fi
CMD+=(--kv-transfer-config "${kv_cfg}")
log "role=${ROLE} mode=ep MASTER node_rank=${NODE_RANK} dp_size=${DP_GROUP_SIZE} dp_addr=${DP_MASTER_ADDR} kv_role=${KV_ROLE} all2all=${backend} read_mode=${MORIIO_READ_MODE}"
else
Expand Down
9 changes: 5 additions & 4 deletions .buildkite/ci_config_rocm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,17 @@ run_all_patterns:
- ".dockerignore"
- "docker/Dockerfile.rocm"
- "docker/Dockerfile.rocm_base"
- "docker/ci-rocm.hcl"
- "docker/docker-bake-rocm.hcl"
- ".buildkite/hardware_tests/amd.yaml"
- ".buildkite/ci_config_rocm.yaml"
- ".buildkite/scripts/ci-bake-rocm.sh"
- ".buildkite/scripts/rocm/"
- ".buildkite/scripts/rocm/build.sh"
- ".buildkite/scripts/rocm/select_aiter_nightly_wheel.py"
- ".buildkite/scripts/hardware_ci/run-amd-test.sh"
- ".buildkite/scripts/hardware_ci/amd_ci_fast_exit.py"
- "CMakeLists.txt"
- "requirements/common.txt"
- "requirements/rocm.txt"
- "requirements/build/rust.txt"
- "requirements/build/rocm.txt"
- "requirements/test/rocm.txt"
- "pyproject.toml"
- "setup.py"
Expand All @@ -25,6 +24,8 @@ run_all_patterns:
- "rust-toolchain.toml"
- "tools/build_rust.py"
- "tools/install_torchcodec_rocm.sh"
- "tools/vllm-rocm/therock_wheels.py"
- "tools/ci/rocm_kernel_symbol_map.py"
- "tests/vllm_test_utils/"
- "vllm/envs.py"
- "vllm/__init__.py"
Expand Down
Loading
Loading