v0.20.1
vllm-project/vllmv0.20.1May 4, 2026by khluu
AI Summary
Patch release focused on DeepSeek V4 stabilization and performance improvements, along with several important bug fixes. Includes multi-stream pre-attention GEMM, BF16/MXFP8 all-to-all support, and integrated tile kernels for optimized head computation.
Key Highlights
- DeepSeek V4 base model support with multi-stream pre-attention GEMM
- BF16 and MXFP8 all-to-all support for FlashInfer one-sided communication
- PTX cvt instruction for faster FP32->FP4 conversion
- Integrated tile kernels (head_compute_mix_kernel) for optimized head computation
- Fixed persistent topk cooperative deadlock at TopK=1024
New Features
- DeepSeek V4 support with configurable pre-attn GEMM knob
- Tuned default VLLM_MULTI_STREAM_GEMM_TOKEN_THRESHOLD
- Guard megamoe flag with Pure TP
- Fixed BailingMoE linear layer and MLA RoPE rotation
Full Release Notes
# vLLM v0.20.1 This is a patch release on top of `v0.20.0` primarily focused on **DeepSeek V4 stabilization and performance improvements**, along with several important bug fixes. ### DeepSeek V4 * Base model support (#41006). * Multi-stream pre-attention GEMM (#41061), configurable pre-attn GEMM knob (#41443), and tuned default `VLLM_MULTI_STREAM_GEMM_TOKEN_THRESHOLD` (#41526). * BF16 and MXFP8 all-to-all support for FlashInfer one-sided communication (#40960). * PTX `cvt` instruction for faster FP32->FP4 conversion (#41015). * Integrated tile kernels (`head_compute_mix_kernel`) for optimized head computation (#41255). * Guard megamoe flag with Pure TP (#41522). * Fixed persistent topk cooperative deadlock at TopK=1024 (#41189) and inter-CTA init race on RadixRowState (#41444), with temporary disable of persistent topk as a workaround (#41442). * Fixed import error due to AOT compile cache loading (#41090). * Fixed torch inductor error (#41135). * Fixed repeated RoPE cache initialization (#41148). * Fixed missing type conversion for non-streaming tool calls in DSV3.2/V4 (#41198). ### Bug Fixes * Fixed `max_num_batched_token` not being captured in CUDA graph (#40734). * Fixed `num_gpu_blocks_override` not accounted for in `max_model_len` checks (#41069). * Auto-disable `expandable_segments` around cumem memory pool (#40812). * Fixed BailingMoE linear layer (#40859) and MLA RoPE rotation for BailingMoE V2.5 (#41185). * Fixed reasoning parser kwargs not being passed to structured output (#41199). * [ROCm] Fixed `input_ids` and `expert_map` args for Quark W4A8 GPT-OSS (#41165). ## List of contributors @BugenZhao, @chaunceyjiang, @gau-nernst, @ghphotoframe, @Isotr0py, @jeejeelee, @khluu, @njhill, @Rohan138, @wzhao18, @youkaichao, @ywang96, @ZJY0516, @zixi-qi, @zyongye