Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
952 commits
Select commit Hold shift + click to select a range
9edcc7f
[Bugfix][Spec Decode] Avoid reusing random draws across block verific…
DimensionSTP Oct 15, 2026
9b99ccb
[CI] Shard the AMD mirrors of the DP, RayExecutorV2 and batch invaria…
Thangnguyenvn98 Oct 15, 2026
e711723
[ROCm] gfx1250 optimizations and model enablement (#58800)
jpvillam-amd Oct 15, 2026
d92a4f2
[watermarking] Add DFlash support to dual-key gumbel-max watermarking…
shernshiou Oct 15, 2026
784d1ff
[MRV2][Spec Decode] Quantized draft lm_head for drafters that share t…
stecasta Oct 15, 2026
de7d706
[Perf] Low-latency CPU all-reduce for DP metadata syncs (#61767)
njhill Oct 15, 2026
3f1e572
[ROCm][Perf][Kimi-K3] Use AITER Gluon KDA kernels for decode and spec…
omuhamma Oct 15, 2026
4a89316
[Core] Drop the Ray driver-node GPU pin left over from the legacy exe…
WoosukKwon Oct 15, 2026
19b0efc
[Perf][Core] Skip the null head of sliding-window block tables (#61724)
Juntian777 Oct 15, 2026
af28c17
[Dependency] Upgrade FlashInfer to 0.7.2 and restore KDA auto backend…
Anerudhan Oct 16, 2026
ef38e8d
[Model][Hardware][AMD][Kernel] Part 2/2 -> Enable e2e QK Norm + RoPE …
jhu960213 Oct 16, 2026
a8be150
[Bugfix][MoE] Restore TP-sharded routed-expert capture for DP=1 (#61388)
Ronald1995 Oct 16, 2026
8f93c64
[Bugfix] remove duplicate hash-routing capability method (#61924)
tessapham Oct 16, 2026
bee9514
Update DeepGEMM commit (#61744)
jeejeelee Oct 16, 2026
a956a81
[Bugfix][MoE] Keep the gate's hash_indices_table out of RoutedExperts…
khluu Oct 16, 2026
29345f4
[ROCm][Qwen4Exp] Support HC and MoE sequence parallelism on ROCm (#61…
AndreasKaratzas Oct 16, 2026
fb3fec9
[Bugfix][Kernel] silu_and_mul_quant: run the vectorized loop (#61716)
Monishver11 Oct 16, 2026
dd9e07a
[Feature] Add External LB Mode Support for Elastic EP Scaling (#43202)
fangyuchu Oct 16, 2026
05ad0a8
[Perf][DSv4.1] Split fused_wqa_wkv by token across TP ranks on SM90 (…
ShuoleiWang Oct 16, 2026
3ddc670
[XPU][Docker] Bump nixl to 1.5.0 (#60356)
sandeep-maddipatla Oct 16, 2026
642c18d
[Perf] Kimi K3 Specialized Decode: CuTeDSL Optimized GB300 (1.5-2x) (…
benchislett Oct 16, 2026
b466fba
[ROCm][Perf] Any-shape low-latency MoE router GEMM on MI355 (#61895)
AndreasKaratzas Oct 16, 2026
92dc3dd
[Bugfix] Honor OPT token embedding width for prompt embeddings (#61736)
maithilijoshi20 Oct 16, 2026
4ac1f8d
[Bugfix][Structured Output] Mask grammar-invalid implicit reasoning e…
vMaroon Oct 16, 2026
49cb2bb
[Bugfix] Honor code_revision in config-based tokenizer loading (#61611)
dskwe Oct 16, 2026
e365792
[Dependency] Upgrade TokenSpeed MLA to 2.0.3 (#61689)
wzhao18 Oct 16, 2026
074c83a
[CI][Intel] Skip ROCm-only test_topk_gating_enabled_by_cdna on XPU (#…
chaojun-zhang Oct 16, 2026
fa75d34
[Feature][PCP] Add DeepSeek-V4.1-Flash support (#59857)
wangyicong52 Oct 16, 2026
07f3857
[XPU][Linear][MXFP4] enable torch as mxfp4 linear backend on xpu (#51…
zufangzhu Oct 16, 2026
9a16d43
[Bugfix][Mooncake] Fix MultiConnector stats and proxy SSE responses (…
whx-sjtu Oct 16, 2026
024c518
[Frontend] Resolve logprobs on the parsed streaming derender path (#6…
shimib Oct 16, 2026
4ab99ff
[Bugfix][Frontend] Honor the constructor chat template in offline sco…
mottopanikeiku Oct 16, 2026
64175d3
[Bugfix][Frontend] Keep the parser's tool call IDs in batch derender …
hickeyma Oct 16, 2026
de7eeaa
[Perf] Share Triton JIT warmup compilation pool across registered ker…
ayush1399 Oct 16, 2026
8a6c044
[Bugfix][ROCm][GLM-5.2] Stop forcing skip_final_all_reduce on AMD DSA…
avininjamay8 Oct 16, 2026
8e25bbc
[Refactor] Remove dead code multiple places (#61843)
yewentao256 Oct 16, 2026
1a5b187
Add @bnellnm to CODEOWNERS (#62025)
bnellnm Oct 16, 2026
76081b9
[Bugfix][Model] Honor quantization config in Inkling MTP (#61921)
soyr-redhat Oct 16, 2026
706791d
[CI][AMD] Move 17 test groups from MI300 to MI355 and test large Deep…
AndreasKaratzas Oct 16, 2026
cffc0cf
[CI] Fix B200 FusedMoE Layer Kernels hang on NVSHMEM IB setup (#61695)
mgoin Oct 16, 2026
ae8f412
[Bugfix][Parser] Honor a prompt-closed reasoning block in non-streami…
albertoperdomo2 Oct 16, 2026
e7a5bdb
[ROCm][CI] Move Spec Decode Speculators + MTP to MI355 (#62053)
djramic Oct 16, 2026
3dc6def
[Attention][Spec Decode] Enable varlen Mamba2 decode for adaptive ver…
guan404ming Oct 16, 2026
307c584
[ROCm][CI] Enable batch invariance for the ngram scheduling accuracy …
djramic Oct 16, 2026
5bf3d9f
[ROCm][Kimi-K3] Support DSpark adaptive verification on MI355X (#59824)
okorzh-amd Oct 16, 2026
663e535
[Perf][Spec Decode] Skip bonus-logit reduction for short drafts in re…
cjackal Oct 16, 2026
9eb7fb9
[Build] Remove unused `tools/install_deepgemm.sh` (#61265)
tlrmchlsmth Oct 16, 2026
cc2e4fe
[ROCm] [fusion] support ROCm aiter fusion of per tensor quant + rmsno…
afriedri Oct 16, 2026
68ebea7
[Perf][MoE] Skip padded work in SM100 FP4 DeepGEMM experts (#59044)
tlrmchlsmth Oct 16, 2026
9731f30
[Bugfix] Keep VLLM_RAY_BUNDLE_INDICES out of the compile cache key (#…
DanBlanaru Oct 16, 2026
153a171
[Frontend] Add the Beam reasoning and tool parsers (#62052)
WoosukKwon Oct 16, 2026
596e530
[Kernel] Add router GEMM kernels for (5120, 256) and BF16 output to l…
WoosukKwon Oct 16, 2026
b088eba
[Perf][Parser] Stream MiniMax M2 tool argument values incrementally (…
deadstrobe5 Oct 16, 2026
28e92ee
[ROCm][Perf][Kimi-K3] Use AITER Gluon chunk_kda for KDA prefill (#59552)
omuhamma Oct 16, 2026
2268d83
[Bugfix][Multimodal] Honor RGB PNG transparency when loading images (…
mottopanikeiku Oct 16, 2026
b544587
[Core][Feat] Pluggable KVCacheConfigBuilder for platform/model-specif…
wangxiyuan Oct 16, 2026
a94c315
[DP] Engines own wave wake-ups; drop the front-end FIRST_REQ (#59559)
aoshen02 Oct 16, 2026
523d74e
[Bugfix][LoRA] Fix garbage/NaN lora_expand output on SM90 with fp32 i…
BeichenHuang Oct 16, 2026
be25977
[CI][Tests] Account for FP8 KV-cache rounding in MLA reference (#62067)
wzhao18 Oct 17, 2026
783380a
[Bugfix] Fix NaN output of the Mamba2 chunk scan kernel on sm90 (#61718)
vadiklyutiy Oct 17, 2026
f019e3e
[ROCm] attn res + sigmoid_mul + conv fusions (#52968)
omuhamma Oct 17, 2026
f811270
[Chore] Use upstream Transformers InklingProcessor (#61883)
hmellor Oct 17, 2026
6b6a6c5
[RL] Support per-parameter source layouts for NCCL M2N (#60934)
pkousha Oct 17, 2026
b3a7e2f
[RL][Frontend] Return weight-version spans on OpenAI completions and …
ShuoleiWang Oct 17, 2026
71c20f7
[FlashInfer] Migrate autotune warmup to flashinfer.autotune_v2 manage…
YangXu1990uiuc Oct 17, 2026
ce8853d
[Bugfix][KV Offload] Allow explicit SimpleCPUOffload block counts (#6…
SherifWaly Oct 17, 2026
ce49c47
[Bugfix][Sampler] Carry the boundary tie count across blocks in the s…
cipheraxat Oct 17, 2026
dcd0796
[CPU] Keep the hybrid block size across the engine core's config reru…
lucifer1004 Oct 17, 2026
556ac15
[Bugfix] Remove extra args from CPU's compute slot mapping kernel (#6…
fadara01 Oct 17, 2026
7b6310c
[Perf][Sampler] Speed up the small-batch split top-p pipeline (#61996)
abmfy Oct 17, 2026
a0e7137
[CI][ROCm][Bugfix] DeepSeek V4.1: don't pass expert intermediate padd…
micah-wil Oct 17, 2026
41b8c15
[Feature][MoRIIO] Support hybrid WRITE transfers with DSpark (#60544)
YukioZzz Oct 17, 2026
39983a5
[Kernel] Add FP32 router GEMM support for Step-5 Preview and Muse Spa…
jeejeelee Oct 17, 2026
d74f418
[Bugfix][Frontend] Detokenize echoed prompts after truncation (#61876)
cycancode Oct 17, 2026
90d6d87
[Attention] Add CuTe DSL backend selection for MLA context prefill (#…
wzhao18 Oct 17, 2026
5be4266
[Bugfix][Frontend] Preserve Cohere and Anthropic streaming errors (#6…
KuanJia Oct 17, 2026
ad2688a
[Bugfix] Validate draft-token capacity in forward benchmark (#61809)
znzryb Oct 17, 2026
08a65e2
[Bugfix][Kernel] hadacore: don't load past the input on a partial las…
khluu Oct 17, 2026
c3de0b3
[Core][Spec Decode] Replace EAGLE group heuristics with explicit draf…
andakai Oct 17, 2026
61bb590
[Bugfix][Spec Decode] Clear stale shared block-table rows (#61174)
positive666 Oct 17, 2026
b05ede5
[Bugfix][Frontend] Preserve token IDs in completion derender response…
dskwe Oct 17, 2026
eb8de8d
[Bugfix][OpenAI] Respect allowed_token_ids in beam search (#47630)
Sunt-ing Oct 17, 2026
e56b160
[Kernel]Add norm fused kernel for Step-5 Preview and Muse Spark Open …
jeejeelee Oct 17, 2026
3bf25c5
[CI][Bugfix] Ignore AMD CI webhook no-op builds in /amd-ci run and r…
aarushjain29 Oct 17, 2026
2067297
[ROCm][Perf] Use AITER tuned configs to select a4w4 gemm kernel inste…
afriedri Oct 17, 2026
f98ae6a
[Bugfix][Core] Keep resumable sessions that stop while preempted (#58…
sawsa307 Oct 17, 2026
b515648
[Doc] Host model recipes in recipes/ (#61302)
esmeetu Oct 17, 2026
026f6ab
[Model] DeepSeek-V4/V4.1 VL: stream language-model weights instead of…
gitbisector Oct 17, 2026
2b85d9c
[Perf][Bugfix] Prefer MNNVL for single-node FlashInfer allreduce agai…
khluu Oct 17, 2026
ec8b20f
[Bugfix] Fix Gemma 4 encoder CUDA graph capture OOM at startup (#61365)
vadiklyutiy Oct 17, 2026
4e964b2
[XPU] Fix Event init failure w/ external (#61743)
zhenwei-intel Oct 17, 2026
837e87e
[Feature][LoRA][MoE] Expert LoRA for FlashInfer TRTLLM MXFP4 experts …
aoshen02 Oct 17, 2026
21e09ea
[Doc] Sync DeepSeek-V4.1-Flash recipe with vllm-project/recipes#1136,…
esmeetu Oct 17, 2026
2d8efee
[Docs] Add train-inference consistency agent skill (#61551)
aoshen02 Oct 17, 2026
237d99b
Revert "[Docs] Add train-inference consistency agent skill" (#61551) …
aoshen02 Oct 17, 2026
c61a1e7
[Feature] Skip MLA weight absorption when weights are pre-processed (…
liusy58 Oct 17, 2026
c0b6f74
[Benchmark] Add per-case kernel profiles to vllm bench forward (#61692)
WoosukKwon Oct 17, 2026
e744eac
[Rust Frontend] Validate bad_words limits during request lowering (#6…
alec-flowers Oct 17, 2026
763e3f7
[Bugfix][Spec Decode] Disable dynamic speculative decoding for fixed-…
Sunt-ing Oct 17, 2026
0c5dd18
[MRV2] Collect KV transfer results before the drafter runs (#62041)
njhill Oct 17, 2026
bafb263
[Bugfix][Benchmarks] Name the real cause when the /tokenize alignment…
TyroneNel Oct 17, 2026
5c1c903
[Perf][Parser] Stream Qwen3 tool argument values incrementally (12 KB…
deadstrobe5 Oct 17, 2026
03e8300
[Bugfix] Enable inductor batch-invariant mode under VLLM_BATCH_INVARI…
yifanFengg Oct 17, 2026
255f145
[Bugfix][Rust Frontend] Fix macOS build: read inherited listener fami…
khluu Oct 17, 2026
7879f36
[NIXL] Drop unreachable producer-side notif counting in push mode (#6…
sawsa307 Oct 17, 2026
9c778e9
[Bugfix][EPLB] Wait for pending expert buffer copies before NIXL READ…
djramic Oct 17, 2026
03ee2e1
[CI][ROCm] Fix order-dependent test_rocm_aiter_sampler_defers_import …
khluu Oct 18, 2026
b2456c6
[ROCm][CI] Make ROCm 10.0 the default image; keep ROCm 7.2 as -rocm72…
Rohan138 Oct 18, 2026
da9134b
[ROCm][CI] Give the MoE parallel-launch watchdog room for AITER JIT b…
AndreasKaratzas Oct 18, 2026
7c9042c
[Bugfix][MRV2] Fix speculative warmup deadlock with pipeline parallel…
chenjr97 Oct 18, 2026
b510857
[Bugfix][Build] Build fused GDN MTP decode for SM80-SM90 with CUDA < …
kimseunghyun-kr Oct 18, 2026
83c9a54
[CI][Release] Fix release wheel builds: stop excluding tracked recipe…
khluu Oct 18, 2026
1b2a666
[Doc][Recipe] Fix for redhat fp8 xeon support issue (#62245)
louie-tsai Oct 18, 2026
2365177
[Doc][RL] Document the weight-transfer HTTP protocol for trainers wit…
aoshen02 Oct 18, 2026
3f1b04e
[Bugfix] Fix Opencv video backend frames count missing for WebM video…
Isotr0py Oct 18, 2026
953fa44
[CI] Per-test timeout for Language Models (Extended Pooling) (#62279)
khluu Oct 18, 2026
3c13653
[Frontend] Score with the chat template declared by Sentence Transfor…
rdlh Oct 18, 2026
4946639
[Qwen4Exp] Clean up HC and PLE implementations for Qwen3.8-Flash-Next…
peakcrosser7 Oct 18, 2026
6b24947
[CI/Build] Build DeepEP for SM103 (B300/GB300) in the Docker image (#…
ibrahimnd2000 Oct 18, 2026
072c088
[Build] Keep plain CUDA arch when its suffixed variant is also reques…
andre-motta Oct 18, 2026
371745e
[Doc][RL] Document routed experts return for MoE routing replay (R3) …
aoshen02 Oct 18, 2026
e80b6c6
[ROCm][DSv4] Overlap the unfused shared expert with AITER MegaMoE (#6…
benenzhu Oct 18, 2026
fe8f214
[Doc] Document /inference/v1/generate request/response fields and DP …
aoshen02 Oct 18, 2026
ff01a6b
[Bugfix][Frontend] Stop beam search on generation config EOS tokens (…
mottopanikeiku Oct 18, 2026
6540d5c
[Bugfix][Spec Decode][Structured Output] Drive grammar masks from GPU…
LucasWilkinson Oct 18, 2026
82a24bb
[Bugfix][ROCm] Only set inductor batch_invariant when torch has it (#…
khluu Oct 18, 2026
e0adacc
[Bugfix][Rust Frontend] Use xgrammar for gRPC structured outputs (#61…
alec-flowers Oct 18, 2026
36e0ae2
[Bugfix][MoE] Keep DeepEP high-throughput buffers alive across DBO st…
aniravich Oct 18, 2026
8f17dbf
[Bugfix][KV Connector] Pair non-divisible hybrid MLA block sizes in N…
AndreasKaratzas Oct 19, 2026
52e88e2
[Core] Remove the obsolete VLLM_USE_RAY_V2_EXECUTOR_BACKEND env var (…
njhill Oct 19, 2026
8e5cae0
[ROCm][CI] Pin Inductor pointwise configs in the MoRIIO dummy-weight …
AndreasKaratzas Oct 19, 2026
0ee62b9
[ROCm][CI] Contain the MI355 DP + EP exit-time abort (#62286)
AndreasKaratzas Oct 19, 2026
689effe
[Bugfix][Attention] Fix Triton MLA decode int32 overflow and logits w…
AndreasKaratzas Oct 19, 2026
c07c59f
[ROCm][Bugfix] Release vLLM's communicators on external-launcher shut…
AndreasKaratzas Oct 19, 2026
b0d61e5
[Model] Add Reflection Beam (#62074)
WoosukKwon Oct 19, 2026
3497d72
[Frontend] Add Muse Spark Open reasoning and tool parsers (#62207)
jeejeelee Oct 19, 2026
83db1ab
[Bugfix][LoRA] Keep failed activations retryable (#61618)
LeslieWylie Oct 19, 2026
e719b41
[ROCm][Perf][DSv4.1] Mono decode for the DSpark draft layers (#62131)
Fangzhou-Ai Oct 19, 2026
38127f6
[Multimodal][Docs] State that retried media downloads count toward th…
surajm20061998 Oct 19, 2026
37891a9
[Bugfix] Reject LoRA at config time for models without SupportsLoRA (…
YaashuDave Oct 19, 2026
dcf8158
[Bugfix][Benchmark] Don't count content-free chunks as streamed outpu…
dilberx Oct 19, 2026
ebf5d31
[Model] Add ColUltraVBERT late-interaction retrieval model (#62237)
athrael-soju Oct 19, 2026
7dc1705
[Bugfix][LoRA] Apply text-only LoRAs to the LM of multimodal wrappers…
BeichenHuang Oct 19, 2026
4e35590
[Frontend] Serve Gemma 4 on /v1/systemone and /v1/decisions (#62303)
cipheraxat Oct 19, 2026
2b50973
[Quantization][Autoround][ARK] Add ARK W4A16(moe) Support (#50396)
Zhenzhong1 Oct 19, 2026
ed871c9
[Bugfix][DSv4.1] Keep the Engram all-to-all buffers in one allocator …
Juntian777 Oct 19, 2026
43caf5b
[Bugfix][Core] Requeue encoder-stalled waiting requests (#59030)
peperunas Oct 19, 2026
66b4318
[PCP] Allow decode-only full CUDA graphs for DSv3.2/GLM-5.2/5.3 spars…
LucasWilkinson Oct 19, 2026
6a0b146
[ROCm][Compile] Fuse AITER static FP8 quant into MLA attention output…
AndreasKaratzas Oct 19, 2026
e68efc6
[CI][AMD] Split LM Eval Small by CDNA generation, unify AMD step titl…
AndreasKaratzas Oct 19, 2026
38168d5
[XPU] [Feature] Adding triton/sycl GDN toggle (#56835)
iboiko-habana Oct 19, 2026
dec6dda
[CPU] Optimize routed INT8 W8A8 MoE GEMM dispatch (#60740)
tianmu-li Oct 19, 2026
1aa5b6d
[BugFix][MyPy] Guard Linux-only mmap/fadvise calls with sys.platform …
wentian-byte Oct 19, 2026
93de77c
[CPU] Fix underflow in FP8 AMX attention (#61329)
tianmu-li Oct 19, 2026
573f2f9
[Frontend] Raise VLLMValidationError for an unknown Harmony channel i…
longluubao Oct 19, 2026
b9c48c9
[Fast Start] support ep (#55490)
liusy58 Oct 19, 2026
3c8245b
[Bugfix][Frontend] Align DeepSeek V4.1 images with rendered content (…
xijiaat Oct 19, 2026
3788269
[Benchmark][XPU] Support XPU in forward bench graph capture/profiling…
chaojun-zhang Oct 19, 2026
42472f9
[CPU][Bugfix] Flatten >2-D activations in the AMX int8 W8A8 linear pa…
harshaladhav-amd Oct 19, 2026
e7023e5
[Bugfix][ROCm][MoRIIO] Support heterogeneous TP in WRITE mode for all…
junkang1991 Oct 19, 2026
d5b3669
[Core] Reject new requests while generation is paused (#51488)
aoshen02 Oct 19, 2026
6af1e0a
[Bugfix][Frontend] Honor --enable-log-outputs on /v1/completions (#62…
surajm20061998 Oct 19, 2026
fc47cc8
[Feature][PCP] Support APC and encoder-side SWA bounded replay for De…
wangyicong52 Oct 19, 2026
10e8e92
[Bugfix][Frontend] Fix auto truncation without an output token limit …
bzsuni Oct 19, 2026
c1dc2e9
[Spec Decode][ROCm] Add FLy: entropy-gated deferred verification for …
eecspan Oct 19, 2026
018f5ff
[Perf][DSv4.1] MegaAttn: wo_a writes wo_b's MXFP8 input (#60118)
Juntian777 Oct 19, 2026
bbf59fb
[Kernel] Reject unsupported layouts in CUTLASS 3.x scaled_mm (#55537)
jackLei0901 Oct 19, 2026
852989f
[Bugfix][Sampler] Fix split top-p masking every token for huge logits…
zamog Oct 19, 2026
d46cb9a
[Bugfix][Weight Cache] Key non-MoE DP daemons as DP=1 like the engine…
nien-hui Oct 19, 2026
1641765
[Bugfix][Scheduler] Fix encoder cache deadlock with drafter look-ahea…
gty111 Oct 19, 2026
fb61ac0
[ROCm][Perf] Use AITER top-k for the DeepSeek-V3.2/GLM-5 sparse index…
whx-sjtu Oct 19, 2026
5bc2671
[ROCm][Qwen4Exp] Remove the Qwen3.8-Flash-Next TEP8 MXFP4 emulation g…
mjkvaak-amd Oct 19, 2026
ee22f68
[Frontend] systemone: prefill the shared prefix once before the reads…
SCcagg5 Oct 19, 2026
dde9aca
Add Step-5 Preview support (#61727)
jeejeelee Oct 19, 2026
3e96f9c
[ROCm][CI] Bump the ROCm 10 image to torch 2.13 (#62276)
AndreasKaratzas Oct 19, 2026
283d48f
[Bugfix][Frontend] Preserve scheduling priority for online and offlin…
dskwe Oct 19, 2026
ffa18e5
[ROCm][DSv4] Require explicit MXFP4 opt-in for MegaMoE shared-expert …
AMD-yanfeiwang Oct 19, 2026
a608b6e
[Bugfix][Core] Keep the EAGLE-reachable SWA tail at a shared-prefix j…
JaredforReal Oct 19, 2026
81f7c69
[Bugfix][Tool Calling] Tool parser non-streaming parse drops post-too…
Lucky-Lodhi2004 Oct 19, 2026
2aa5080
[Bugfix][Weight Cache] Include RoPE parameters in IPC cache key (#60994)
bzsuni Oct 19, 2026
973dbf8
[Doc][ROCm] Align Kimi-K3 MI355X recipe with InferenceX #4215 (#62273)
chunfangamd Oct 19, 2026
4bd75e9
[Bugfix][KV Offload][P2P] Report NIXL submission failures and escalat…
liranschour Oct 19, 2026
2cea893
[Bugfix][Rust Frontend] Match DeepSeek-V4.1 renderer to the 1017 refe…
robertgshaw2-redhat Oct 19, 2026
b29be52
[Perf][AuxOutput] Do not rescan referenced keys in the routed-experts…
aoshen02 Oct 19, 2026
b048630
[Bugfix] Size the HiSparse hot buffer from the rounded sparse top-k w…
qimcis Oct 19, 2026
ddefe40
[Bugfix][Frontend] Match DeepSeek-V4.1 encoder to the 1017 reference …
robertgshaw2-redhat Oct 19, 2026
3aad539
[Model] Support hotwords for MOSS-Transcribe-Diarize (#62329)
lzwwaylon Oct 19, 2026
afe2183
[KV Connector] Support sleep mode with the NIXL pull connector (#59635)
aoshen02 Oct 19, 2026
a3cee21
[Bugfix] Require cudnn-frontend >=1.31.0: cuDNN could replay an unloa…
PeganovAnton Oct 19, 2026
5caabdb
[Frontend] Consolidate startup utils. (#62390)
noooop Oct 19, 2026
e347836
[Bugfix][Tool Parser] Parse multi-line JSON arguments in the DeepSeek…
niansia Oct 19, 2026
a9104fd
[Pooling] Improve SPLADE throughput 3.6% to 7.8% (#62250)
taneem-ibrahim Oct 19, 2026
bde4d00
[Bugfix][Kernel] persistent_topk: don't select float4 tail lanes past…
simon-veitner-redhat Oct 19, 2026
aa3564c
[Bugfix][Test] Stop requesting capfd in the subprocess weight cache t…
stefankoncarevic Oct 19, 2026
3b05805
[Misc] Fix failing weight cache RoPE test on main (#62508)
Isotr0py Oct 19, 2026
c8fbb79
[ROCm][MoE] Add AITER MXFP4 W4A16/W4A4 modular-kernel test coverage (…
divakar-amd Oct 19, 2026
b439421
[CI][ROCm] Raise data_parallel_offline.py --timeout in AMD Torchrun +…
aarushjain29 Oct 19, 2026
3c9beb8
[Perf] Enable PDL for fused MoE top-k gating (#59737)
wolfcomos Oct 19, 2026
fdb9533
[CI][Unit Test] Patch MoE layer unit tests for Blackwell and Rubin (#…
johncalesp Oct 19, 2026
b188771
[Doc] Document Kimi-K3 GB300 disaggregated AgentX profile (#62528)
Ankur-singh Oct 19, 2026
b9df898
[CI][Tests] Add SM107a to DeepEP build (#61442)
johncalesp Oct 19, 2026
8a1c02e
[Bugfix][DeepSeek V4.1] Inject Engram at pipeline stage entry (#62208)
wangyicong52 Oct 19, 2026
b7701fc
[Bugfix][Test] Synchronise ranks before the profiled call in profile_…
x41lakazam Oct 19, 2026
e1f3141
[Bugfix][V1] Null sliding-window block-table entries below the window…
stu-cao Oct 19, 2026
3ff10dd
[Doc] Document DeepSeek-V4.1-Flash Dynamo sidecar serving / 记录 DeepSe…
RohitNagraj Oct 19, 2026
04631c4
[Security][CI/Build] Add pre-commit check for hardcoded trust_remote_…
mritunjaysharma394 Oct 19, 2026
5f446bf
docs: explain parser boundary tokens in custom grammars (#58219)
yuchenwang3 Oct 19, 2026
5fd6268
[Docs] Add Gemma-2, Granite SWA, Qwen3-0.6B to batch invariance valid…
yuvalluria Oct 19, 2026
0b7ae8f
[CI] Run the heaviest 4xL4 steps nightly only (#62564)
khluu Oct 19, 2026
8c60cf0
[CI] Keep the AMD mirrors of the nightly-only 4xL4 steps on PRs (#62567)
khluu Oct 19, 2026
53172fa
[CI] Bump Transformers version to 5.20.0 (#61983)
hmellor Oct 19, 2026
59a5125
[Perf][Spec Decode] Avoid target request padding in DP drafter (#58984)
wangyicong52 Oct 20, 2026
473cc8e
[Rust][Benchmark] Add openai-responses backend to vllm-bench (#59489)
QHarshil Oct 20, 2026
17dd7d8
[Bugfix][AuxOutput] Send routed-experts block hashes only for compute…
aoshen02 Oct 20, 2026
45ce405
[Bugfix][KV Connector][NIXL] Shard a GQA draft's KV by head under an …
stu-cao Oct 20, 2026
2296c12
[Doc] Document DeepSeek-V4.1-Flash B300 Dynamo disaggregated profile …
Ankur-singh Oct 20, 2026
e1faffb
[CI][XPU] Ignore test_weight_cache.py in Intel CI (#62422)
chaojun-zhang Oct 20, 2026
19997aa
[Chore] Port more vendored configs and processors to upstream Transfo…
hmellor Oct 20, 2026
1a74cc7
[ROCm][Perf][DSv4.1] Mono decode on MI300X and MI325X (gfx942) (#60731)
maeehart Oct 20, 2026
75eb034
[CI] Keep a per-PR 2-GPU core of the NIXL PD accuracy sweeps (#62579)
NickLucche Oct 20, 2026
083d616
[CI/Build] Drop CUDA 12.9 from the release pipeline (#62575)
khluu Oct 20, 2026
9499c94
[Quantizaiton][Feature] Pluggable KV Cache Data Types (#52670)
lcfenglinwan Oct 20, 2026
e10ecb6
[Bugfix][DCP] Support strided LSE in direct A2A reduction (#60373)
john-evan08 Oct 20, 2026
4e304b4
[CI] Move Multimodal Processor, KV Connectors, LoRA, Spec Decode Draf…
Thangnguyenvn98 Oct 20, 2026
143ee3b
[Misc] Fix pre-commit failure on main from conflicts between pluggabl…
Isotr0py Oct 20, 2026
3b51898
[Feature][Quantization] Gather MiMo fused-QKV FP8 rows exactly by def…
peperunas Oct 20, 2026
bc01c06
[Perf][Qwen4Exp] Internal prefill checkpoints for the PLE short conv …
ZJY0516 Oct 20, 2026
8dfbeee
[Frontend] Write run-batch responses incrementally instead of at the …
fangchenli Oct 20, 2026
5c399f2
[Doc] Add Kimi-K3 GB300 Dynamo disaggregated profile to the recipe se…
Ankur-singh Oct 20, 2026
34ac4f9
[Bugfix][KV Connector][Mooncake] Wait for all peers before completing…
zhou-yuhan Oct 20, 2026
df3bd09
[Bugfix][NIXL] Use XPU-compatible block size in sleep test (#62578)
chaojun-zhang Oct 20, 2026
3897f95
[Docs] Use probabilistic DSpark sampling in Kimi-K3 GB300 recipes / […
RohitNagraj Oct 20, 2026
b44446c
[Quantization] replace_parameter keeps the parameter object by defaul…
aoshen02 Oct 20, 2026
8612993
[Bugfix][LoRA] Restore LoRA state on wake-up from level-2 sleep (#62358)
HollowMan6 Oct 20, 2026
fce64bc
[RL] Send NCCL weight metadata once and reuse it (#35911)
S1ro1 Oct 20, 2026
d3c9c73
[Bugfix][Frontend] Return prompt token IDs from derender when request…
hickeyma Oct 20, 2026
f8e1e87
[CI][Bugfix] Skip the SmolVLM HF comparison on Transformers 5.20 (#62…
AndreasKaratzas Oct 20, 2026
428cd0c
[ROCm][Model] DeepSeek-V4.1 VL: stream language-model weights on ROCm…
AndreasKaratzas Oct 20, 2026
f85e39e
[ROCm][Quantization][MOE] Enable fused shared experts for MXFP8 check…
sshlyapn Oct 20, 2026
e4a676c
[Perf][Mamba] Reduce host overhead in the Mamba2 Triton SSD prefill p…
jhaotingc Oct 20, 2026
b9c8bd5
[CI] Shard MTEB, DFlash Nightly, MoE Refactor DP and Entrypoints LLM …
Thangnguyenvn98 Oct 20, 2026
87fa712
[CI] Shard (H200 MIG 35GB / MI355 DPX) Multimodal Models (Standard) 4…
Thangnguyenvn98 Oct 20, 2026
e2d2680
[CI] Shard E2E Scheduling, Benchmarks CLI and six AMD mirrors automat…
Thangnguyenvn98 Oct 20, 2026
0d00d8b
[CI][Bugfix] ColPali miss hidden_size (#62627)
wenjinhust Oct 20, 2026
39568e2
[Doc] Document DeepSeek-V4.1-Flash B300 aggregate AgentX config (#62670)
Juntian777 Oct 20, 2026
b8e9001
[Rust][Frontend] Return routed experts from the generate route (#61949)
aoshen02 Oct 20, 2026
8407bc0
[CI][LoRA] Release punica test GPU memory before later engine tests (…
khluu Oct 20, 2026
cc8a41f
[MyPy][4/N] Fix mypy errors in medium-hard tests/ dirs (#55485)
theSatvik Oct 20, 2026
7669ecf
[ROCm] Split the head-dim block for non-power-of-2 head dims on gfx1151
roberteg16 Oct 5, 2026
69ed334
[ROCm] Narrow the KV tile for the 64 + 16 head dims on gfx1151
roberteg16 Oct 5, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
115 changes: 115 additions & 0 deletions .agents/skills/model-microbenchmark/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
---
name: model-microbenchmark
description: Time a vLLM model's forward pass on exact batch shapes (decode, prefill, chunked prefill, prefix hit, spec-decode verify, or mixes) with `vllm bench forward`, single-GPU or DP/TP/EP across nodes. Use for per-step model latency, layout/parallelism comparisons, and checking a model-level optimization. Not for single kernels (use kernel-microbenchmark) or end-to-end serving (use `vllm bench serve`).
---

# Model Microbenchmark (`vllm bench forward`)

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.

## Usage

```bash
vllm bench forward --model deepseek-ai/DeepSeek-V4-Flash \
--case decode=64*1@8192 --case prefill=8192 --case mix=4096,32*1@8192

# DP/TP/EP: one process per GPU (multi-node: add --nnodes/--node-rank/--master-addr)
torchrun --nproc-per-node=4 -m vllm.entrypoints.cli.main bench forward \
--model ... -dp 4 --enable-expert-parallel --case decode=128*1@100000
```

Requests: `[N*]Q[@K][c][:D]`, comma-separated, per DP rank.

| Form | Meaning |
| --- | --- |
| `8192` | fresh prefill, 8192 tokens |
| `32*1@8192` | 32 decodes, KV length 8192 (KV length **includes** the query) |
| `4@4096:3` | spec-decode verify, 3 draft tokens |
| `2048@10240` | prefill after an 8192-token prefix-cache hit |
| `2048@10240c` | chunked prefill: the prefix came from earlier chunks |

Verify cases require `--speculative-config` with `num_speculative_tokens`
at least as large as the case's draft count; insufficient capacity is rejected.

Hit vs chunk only differs on models with SWA bounded replay (DSV4.1): a hit
also recomputes the last window (128 tokens) of the prefix.

Or `--shapes file.json|yaml`:
`{"cases": [{"name": ..., "requests": [{"query_len", "kv_len", "num_draft_tokens", "chunked", "count"}]}]}`.

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.
- `--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.

Read `median_us` (each replay is already the max over ranks).

## Kernel breakdown

Add `--profile-dir DIR` to see where the time goes. After timing, each case is
replayed 3 more times under `torch.profiler`; every rank writes
`DIR/<case>.rank<r>.kernels.json` (GPU time per kernel per forward, sorted)
and `DIR/<case>.rank<r>.trace.json.gz` (open in Perfetto). Rank 0's top
kernels are printed and included in `--output-json`.

```bash
python -m vllm.benchmarks.forward.profile DIR/decode.rank0.kernels.json
# Before/after a change, same case: per-kernel deltas, largest first.
python -m vllm.benchmarks.forward.profile base/decode.rank0.kernels.json new/decode.rank0.kernels.json
```

- Kernels are grouped by name without template or function arguments; the
JSON keeps one full name per group in `example`.
- Only the timed forward is included: the in-graph KV restore and rank
rendezvous are excluded (`pre_forward_us`). `span_us` (first to last
forward kernel) should be close to `median_us`, a bit higher from profiler
overhead; `busy_us` can exceed it when streams overlap.
- Compare the same rank across runs: under EP, ranks differ (e.g. collective
wait time shows up inside communication kernels).

For Nsight Systems (NVTX, NCCL, CPU side, GPU metrics), skip `--profile-dir`:
the two can't share CUPTI. Each case's 3 profiled replays run between
`cudaProfilerStart`/`Stop` in an NVTX range `forward/<case>`, so a capture range
records only them, one report per case (and rank):

```bash
nsys profile --capture-range=cudaProfilerApi --capture-range-end=repeat \
--cuda-graph-trace=node -o prof vllm bench forward ... # prof.1, prof.2, ...
torchrun --nproc-per-node=4 --no-python nsys profile ... -o prof_rank%q{RANK} \
python -m vllm.entrypoints.cli.main bench forward ...
nsys stats --report cuda_gpu_kern_sum --format csv -o kern prof.1.nsys-rep
```

Keep `--capture-range-end=repeat`: nsys's default stops after the first case
and leaves the bench hanging. `nsys stats` also counts the KV restore copies
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
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/`.
- `sample spread > 0.5%` warns of unstable timing. DSV4.1 DEP prefill is
inherently ~0.5–1% (MegaMoE cross-rank sync, host engram reads).
- `graph_vs_eager` may be nonzero for small batches where models branch on
`is_current_stream_capturing()`; that's expected, not a bug.
- KV cache is zero-initialized (`--kv-init zeros`); random KV was within 3%.
- Uniform DP only: every rank gets the same case; no idle ranks.
- CUDA only: it hangs on ROCm (untested cause: likely the in-graph timing
events).
- Large prefills/prefix hits need room: raise `--max-num-batched-tokens` /
`--max-model-len` / `--gpu-memory-utilization` if build fails on KV blocks.
- Startup cost is JIT/autotune, not the bench: install FlashInfer jit-cache
and cubin; DeepGEMM warmup is skipped (each case's eager pass compiles its
own shapes).
- To compare against serving decode: `vllm bench latency` with 65- vs
1-token outputs, divided by 64, with a FULL decode graph.
157 changes: 157 additions & 0 deletions .agents/skills/model-recipes/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
name: model-recipes
description: Find vLLM deployment recipes and configs for LLMs and Hugging Face models by model and hardware. Use for recipe lookup, creation, and updates.
---

# Model Recipes

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
[vllm-project/recipes](https://github.com/vllm-project/recipes), is at
[recipes.vllm.ai](https://recipes.vllm.ai).

## Usage notes

1. Recipe lookup returns commands and deployment guidance without launching
`vllm serve`.
2. Use published configurations or the recipes repository's command generator
for supported selections. Return commands as published, including their
flags and parallelism settings.
3. Recipes are starting points for deployment and may not be tuned for your
workload. Check each recipe for its verified configurations, and use
benchmarks of your workload to guide further tuning.
4. To create or update a recipe, follow the
[authoring workflow below](#create-or-update-a-recipe).

## Find a recipe

Read recipes from the published JSON on recipes.vllm.ai. It is generated from
the source YAML with variant, hardware, and strategy settings already
resolved; the YAML contains comments and conditional overrides, so do not use
it for lookup. When presenting results, link the website page. Read the source
YAML only when creating or updating a recipe.

Each recipe has a page at `https://recipes.vllm.ai/<org>/<repo>` and JSON at
the same path plus `.json`. Paths use the full Hugging Face ID, preserving
case; do not substitute `meta.slug` or a display title. For example,
`Qwen/Qwen3.8-27B` maps to
[recipes.vllm.ai/Qwen/Qwen3.8-27B](https://recipes.vllm.ai/Qwen/Qwen3.8-27B).

Recipe JSON is often over 20 KB, mostly the `guide`. Instead of printing it,
read only what the request needs: each step below returns the paths for the
next, so stop once the request is answered. Commands need `curl` and `jq`.
[scripts/read_recipe.sh](scripts/read_recipe.sh) is in this skill's directory;
the examples use its path from the vLLM repository root.

### Search the catalog

Skip this step if the exact HF ID is known. Otherwise search by model ID,
family, or provider using case-insensitive keywords. Each
whitespace-separated word must occur in the ID, title, or provider:

```bash
curl -fsSL https://recipes.vllm.ai/models.json |
jq --arg q 'qwen 27b' '
($q | ascii_downcase | [scan("\\S+")]) as $words | .[] |
([.hf_id, .title, .provider] | join(" ") | ascii_downcase) as $text |
select(all($words[]; . as $word | $text | contains($word))) |
{hf_id, json, url, derived_from}'
```

`json` is the recipe data path; `url` is its page path. Prefix both with
`https://recipes.vllm.ai`. A `derived_from` entry is a variant of a parent
recipe: fetch its own `json` to get that checkpoint's command. Its page may
belong to the parent, so link the returned `url` rather than assuming every
checkpoint has a separate page.

If there is no exact match, search the family and inspect `variants` before
concluding the recipe is missing.

### Summarize the recipe

Save the recipe JSON to a file and summarize it:

```bash
read_recipe=.agents/skills/model-recipes/scripts/read_recipe.sh
recipe=$(mktemp)
curl -fsSL https://recipes.vllm.ai/Qwen/Qwen3.8-27B.json -o "$recipe"
"$read_recipe" "$recipe"
```

`default` is the recommended hardware, strategy, and variant; `hardware` maps
each hardware ID to its command path; `recipe_verified_hardware` lists hardware
where the recipe as a whole was verified end to end. For capability
requirements, such as tool calling or text-to-video, check `features` and
`omni_tasks`, then confirm in the guide.
Some recipes, including Omni, lack `hardware`; skip hardware selection and
use the guide's launch and task-specific sections.

### Select hardware and strategy

Match a hardware ID to the user's GPU and fetch its path from `hardware`,
prefixed with `https://recipes.vllm.ai`, rather than constructing a URL. That
response is the command object itself: single-node objects carry `command`,
and multi-node objects carry `head_command` and `worker_commands` instead, so
list its keys before selecting fields.
Check `hardware_profile` to confirm that the selected configuration matches
the user's GPU model and specifications. Its `gpu_count` describes the profile,
not necessarily the number of GPUs used by the command. Check the command's
parallelism settings, `node_count`, and all `worker_commands` against the
user's available topology, and compare the variant's `vram_minimum_gb`, an
estimate, with the total memory of the GPUs the command uses; a configuration
below that minimum is not a working option unless the guide says it was
tested. Ask when the user's hardware is unclear. If no
published command or guide command fits, report the mismatch and return the
closest one unchanged; list any adjustments the user's setup would need
separately and mark them unverified instead of editing the command.

For another strategy, follow `alternatives` in the same response. These are
static files; query parameters do not change their configuration. For other
feature/topology selections, use the recipes repository's command synthesis.

### Read deployment guidance

Read the guide sections that apply to the selection, such as prerequisites,
launch notes for the selected hardware or variant, troubleshooting, and known
limitations. Pass entries from `guide_sections` or prefixes of their text.
The script prints every matching section with its subsections and fails when
a section matches nothing:

```bash
"$read_recipe" "$recipe" prerequisites troubleshooting
```

Query other fields with `jq` on the saved file, such as `features.<name>`,
`hardware_overrides`, or `omni.tasks` for request examples.

### Return the result

Return the website link, selected checkpoint and hardware, the requested
command, and relevant prerequisites and caveats from the guide. Pick one
command and copy it, including its Docker form, exactly as the command object
or guide section gives it; do not combine commands from different sections or
add, drop, or reorder flags. List optional changes separately.

For each command, state its source, either a generated hardware or strategy
configuration or a named guide section, and whether that source says it was
tested. A `recipe_verified_hardware` entry covers the recipe on that
hardware, not every variant, strategy, or guide command, so it does not make a
command verified. Generated configurations are not automatically verified.

## Create or update a recipe

Recipes cover official or widely used checkpoints, with configurations verified
end to end on real hardware. Do not add recipes for arbitrary community
uploads, untested hardware claims, or non-standard flags that only work for one
setup. Before opening a pull request, confirm that the user ran the
configuration and can share the results.

Edit the YAML under [recipes/models/](../../../recipes/models) in this
repository, following the recipes repository's
[add-recipe skill](https://github.com/vllm-project/recipes/blob/main/.agents/skills/add-recipe/SKILL.md)
for the schema. Validate and preview it from a checkout of
`vllm-project/recipes` pointed at this directory, as
[recipes/README.md](../../../recipes/README.md) describes.
4 changes: 4 additions & 0 deletions .agents/skills/model-recipes/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Model Recipes"
short_description: "Find vLLM deployment recipes and configs for LLMs and Hugging Face models by model and hardware."
default_prompt: "Use $model-recipes to find a recipe for my model and hardware, and return its commands and deployment caveats."
66 changes: 66 additions & 0 deletions .agents/skills/model-recipes/scripts/read_recipe.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/bin/bash
# Usage: read_recipe.sh <recipe.json> [guide-section...]
# Without sections, print a compact summary of a recipes.vllm.ai recipe JSON.
# With sections, print each guide section whose heading starts with one of
# them (case-insensitive), including its subsections.

set -euo pipefail

if [ $# -lt 1 ]; then
echo "Usage: $0 <recipe.json> [guide-section...]" >&2
exit 1
fi

# Print "<level>\t<heading text>\t<line>" for guide lines, marking headings
# outside code fences with their level and other lines with 0.
guide_lines() {
jq -r '.guide // ""' "$1" | awk '
/^[[:space:]]*(```|~~~)/ { fence = !fence }
!fence && match($0, /^#+ /) {
print RLENGTH - 1 "\t" substr($0, RLENGTH + 1) "\t" $0
next
}
{ print "0\t\t" $0 }'
}

if [ $# -gt 1 ]; then
recipe=$1
shift
status=0
for section in "$@"; do
guide_lines "$recipe" | awk -F '\t' -v h="$section" '
BEGIN { h = tolower(h); sub(/^#+[[:space:]]*/, "", h) }
$1 > 0 && lvl && $1 <= lvl { lvl = 0 }
$1 > 1 && !lvl && index(tolower($2), h) == 1 { lvl = $1; found = 1 }
lvl { sub(/^[^\t]*\t[^\t]*\t/, ""); print }
END {
if (!found) {
print "No guide section starts with: " h > "/dev/stderr"
exit 1
}
}' || status=1
done
exit $status
fi

sections=$(guide_lines "$1" | awk -F '\t' '$1 == 2 || $1 == 3 { print $3 }' |
jq -R . | jq -s .)

jq --argjson sections "$sections" '{
hf_id,
title: .meta.title,
tasks: .meta.tasks,
recipe_verified_hardware: .meta.hardware,
omni_tasks: (.omni.tasks // null |
if . then map(objects |= {id, label, endpoint, model_id, description})
else null end),
variants: (.variants // {} | map_values(
{model_id, precision, vram_minimum_gb, supported_hardware} |
with_entries(select(.value != null)))),
features: (.features // {} | keys),
opt_in_features,
default: (.recommended_command // null |
if . then {hardware, strategy, variant} else null end),
hardware: .recommended_command.by_hardware,
guide_sections: $sections
} | with_entries(select(.value != null))' "$1"
4 changes: 3 additions & 1 deletion .agents/skills/pr-checklist/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: pr-checklist
description: Prepare a vLLM change for human PR review or re-review, or analyze an open pull request. Use to check design fit, behavioral coverage, performance evidence, diff quality, and closure of previous feedback before requesting maintainer attention.
description: Prepare a vLLM change for human PR review or re-review, or analyze an open pull request. Use before opening a PR, drafts included (e.g. `gh pr create`), or pushing review fixes, to check design fit, behavioral coverage, performance evidence, diff quality, and closure of previous feedback.
---

# PR Checklist
Expand Down Expand Up @@ -181,6 +181,8 @@ Summarize model evaluations and benchmarks in compact tables with the configurat

When fixing bugs or issues, provide a clear root-cause analysis. Explain what caused the problem, how it was identified, and why the chosen solution effectively addresses it. A patch which resolves the issue without a proper root-cause analysis may lead to recurring problems and increased maintenance overhead.

For fixes that involve disaggregated prefill/decode (PD) logic, such as the NIXL connector (`vllm/distributed/kv_transfer/kv_connector/v1/nixl/`), make a best effort to include a minimal example of the flow being changed and/or the initial flow that caused the failure. A short numbered sequence (or diagram) of a request's path across the P and D instances, e.g. scheduler admission, prefill execution, KV transfer registration and write, decode-side read, token generation, lets reviewers trace the root cause and the fix without reconstructing the distributed flow from the diff. Keep the example minimal: only the steps and components involved in the change. See the [disaggregated prefill](../../../docs/features/disagg_prefill.md), [NIXL KV push](../../../docs/design/nixl_kv_push_connector.md), and [NIXL KV cache lease](../../../docs/design/nixl_kv_cache_lease.md) docs for the flows involved.

#### 4.4: Implementation Details

Provide a detailed explanation of the implementation, including design decisions, trade-offs, and any relevant technical details. Highlight any non-obvious choices, tradeoffs, potential limitations, and areas where maintainer attention is required.
Expand Down
Loading
Loading