{"id":366,"date":"2026-09-09T18:13:44","date_gmt":"2026-09-09T09:13:44","guid":{"rendered":"https:\/\/localmodelwatch.tsuchitsuchi.com\/2026\/09\/09\/vllm-v0-29-0-released\/"},"modified":"2026-09-20T17:37:12","modified_gmt":"2026-09-20T08:37:12","slug":"vllm-v0-29-0-released","status":"publish","type":"post","link":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/2026\/09\/09\/vllm-v0-29-0-released\/","title":{"rendered":"vLLM v0.29.0 Released: Model Runner V2 Default and More"},"content":{"rendered":"<p><!-- lmw:facts --><\/p>\n<h2>At a Glance<\/h2>\n<div class=\"lmw-table-scroll\" tabindex=\"0\" style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;\">\n<table style=\"width:max-content;min-width:100%;border-collapse:collapse;\">\n<thead>\n<tr>\n<th>Item<\/th>\n<th>Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Repository<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\">vllm-project\/vllm<\/a><\/td>\n<\/tr>\n<tr>\n<td>Version<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.29.0\">v0.29.0<\/a><\/td>\n<\/tr>\n<tr>\n<td>Published<\/td>\n<td>2026-09-09<\/td>\n<\/tr>\n<tr>\n<td>License<\/td>\n<td>Apache-2.0<\/td>\n<\/tr>\n<tr>\n<td>Source type<\/td>\n<td>Primary source (the publisher itself)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em>Values determined by this site&#8217;s code at collection time. Dates are JST.<\/em><\/p>\n<p><!-- \/lmw:facts --><\/p>\n<h2>Overview<\/h2>\n<p>vLLM v0.29.0 has been released. vLLM is a high-throughput and memory-efficient LLM inference and serving engine.<\/p>\n<p>The biggest change in this release is that Model Runner V2 (MRV2) is now the default for all models. This enables advanced optimizations to be available by default, such as CUDA graph memory profiling for automated KV cache sizing and batch-sharded sampling which reduces logits memory per step to 1\/TP.<\/p>\n<h2>Breaking Changes and Deprecations<\/h2>\n<p>This update removes support for several model architectures and changes launch commands.<\/p>\n<div class=\"lmw-table-scroll\" tabindex=\"0\" style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;\">\n<table style=\"width:max-content;min-width:100%;border-collapse:collapse;\">\n<thead>\n<tr>\n<th style=\"text-align: left;\">Old Architecture \/ Setting<\/th>\n<th style=\"text-align: left;\">New State \/ Setting Method<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>ArcticForCausalLM<\/code><\/td>\n<td style=\"text-align: left;\">Removed (Snowflake Arctic)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ChameleonForConditionalGeneration<\/code><\/td>\n<td style=\"text-align: left;\">Removed (Meta Chameleon)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>Cheers<\/code> \/ <code>CheersForConditionalGeneration<\/code><\/td>\n<td style=\"text-align: left;\">Removed (ai9stars Cheers)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>Fairseq2LlamaForCausalLM<\/code><\/td>\n<td style=\"text-align: left;\">Removed (fairseq2 Llama adapter)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>FireRedLIDForConditionalGeneration<\/code><\/td>\n<td style=\"text-align: left;\">Removed (FireRedLID audio)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>GritLM<\/code><\/td>\n<td style=\"text-align: left;\">Removed<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>HCXVisionForCausalLM<\/code><\/td>\n<td style=\"text-align: left;\">Removed (HyperCLOVAX-SEED-Vision V1)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MPTForCausalLM<\/code> \/ <code>MptForCausalLM<\/code><\/td>\n<td style=\"text-align: left;\">Removed (MosaicML MPT)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>python -m vllm.entrypoints.openai.api_server<\/code><\/td>\n<td style=\"text-align: left;\"><code>vllm serve<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>VLLM_TEST_FORCE_FP8_MARLIN<\/code><\/td>\n<td style=\"text-align: left;\">Use <code>linear_backend<\/code> or <code>moe_backend<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>VLLM_ROCM_USE_AITER_FP4_ASM_GEMM<\/code><\/td>\n<td style=\"text-align: left;\">Removed<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">PyAV (video decoder backend)<\/td>\n<td style=\"text-align: left;\">Removed<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Users employing the above models or launching the API server using the legacy Python module format are required to migrate to the new architectures or switch to the new launch command.<\/p>\n<h2>Key Changes<\/h2>\n<h3>Model Runner V2 as Default and MRV1 Deprecation<\/h3>\n<p>Model Runner V2 (MRV2) is now the default for all models. MRV2 provides numerous optimization features including CUDA graph memory profiling for automatic KV cache sizing, batch-sharded sampling, prompt embeds, and speculation support for <code>extract_hidden_states<\/code>.<\/p>\n<p>Accordingly, Model Runner V1 (MRV1) is deprecated and scheduled for removal in v0.32. However, if you are using features not yet supported by MRV2\u2014such as sequence parallelism, dual-batch overlap, elastic expert parallelism, custom logits processors, and certain speculative decoding methods\u2014it will automatically fall back to MRV1.<\/p>\n<h3>FlashInfer All-Reduce Enabled by Default<\/h3>\n<p>The FlashInfer all-reduce backend is now enabled by default in CUDA groups using Tensor Parallel (TP). This is expected to improve communication efficiency in distributed environments. If you want to disable this behavior and use the legacy fallback chain, set the environment variable <code>VLLM_ALLREDUCE_USE_FLASHINFER=0<\/code>. Note that if <code>VLLM_BATCH_INVARIANT=1<\/code> is set, it is automatically excluded due to consistency requirements.<\/p>\n<h3>Deterministic Behavior for Prefix Caching<\/h3>\n<p>Prefix-cache block hashes (<code>NONE_HASH<\/code>) now operate deterministically by default. In previous versions, when <code>PYTHONHASHSEED<\/code> was unset, different hashes were generated per process, requiring all nodes to fix the same <code>PYTHONHASHSEED<\/code> when using distributed KV caches (such as the Mooncake connector). With this change, caches can be shared based on the default seed even across independent instances, reducing operational complexity.<\/p>\n<h3>Introduction of New Admission Control Flags<\/h3>\n<p>To prevent increases in latency (TTFT) caused by request queueing, two new control flags have been added. <code>--max-num-queued-reqs<\/code> places an upper limit on the total number of running and waiting requests. <code>--max-num-queued-tokens<\/code> places an upper limit on the total prompt token numbers of requests currently in the prefill phase. This allows early rejection of requests when the prefill backlog threatens to exceed target latencies, helping to maintain Quality of Service (QoS).<\/p>\n<h2>Supported Models and Hardware<\/h2>\n<p>New model additions include Tencent&#8217;s MoE model Hy4-preview (770B\/49B-active, with Gated DeepSeek Sparse Attention and native MTP), Qwen3.8-Flash-Next (BF16\/FP8\/NVFP4, with MTP), GraniteSWA, GraniteMoeSWA, NemotronH_Omni_Reasoning_V3 (with MTP), and Kimi K3 NVFP4 checkpoints. Additionally, model families such as FlexOlmo, Olmo3, and Hunyuan V1\/VL have been migrated from hand-in implementations to the Transformers modeling backend.<\/p>\n<p>For hardware and accelerators, DeepSeek V3.2 \/ GLM-5.2 DSA on NVIDIA environments is routed to optimized CUDA paths, while Blackwell benefits from auto-tuning E2E latency reduction and FA4 re-enabled. On AMD ROCm, W4A4 pre-shuffled asm GEMMs are now the default for improved throughput, alongside graph replay segfault fixes. On Intel XPU, the INC int4 W4A8 linear backend and AutoRound MXFP8 MoE have been added.<\/p>\n<h2>How to Get It<\/h2>\n<p>For installing and updating vLLM, use the officially recommended <code>uv<\/code> or <code>pip<\/code>.<\/p>\n<pre><code class=\"language-bash\">uv pip install vllm\n<\/code><\/pre>\n<p>For PyPI (CUDA 13.0 environments), regular <code>pip install vllm<\/code> is also available. Check the official release page for detailed platform-specific wheels and Docker image usage instructions.<\/p>\n<p><!-- lmw:releases --><\/p>\n<h2>Releases Since Our Last Article<\/h2>\n<p><em>Compiled by Local Model Watch from the project&#8217;s GitHub releases: the versions between this release and the last one we covered, which did not get separate articles.<\/em> <em>Full history: <a href=\"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/engine-vllm-en\/\">release tracker<\/a>.<\/em><\/p>\n<div class=\"lmw-table-scroll\" tabindex=\"0\" style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;\">\n<table style=\"width:max-content;min-width:100%;border-collapse:collapse;\">\n<thead>\n<tr>\n<th>Version<\/th>\n<th>Released<\/th>\n<th>Release notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>v0.28.0<\/td>\n<td>2026-08-26<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.28.0\">GitHub<\/a><\/td>\n<\/tr>\n<tr>\n<td>v0.27.1<\/td>\n<td>2026-08-11<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.27.1\">GitHub<\/a><\/td>\n<\/tr>\n<tr>\n<td>v0.27.0<\/td>\n<td>2026-08-11<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.27.0\">GitHub<\/a><\/td>\n<\/tr>\n<tr>\n<td>v0.26.0<\/td>\n<td>2026-07-27<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.26.0\">GitHub<\/a><\/td>\n<\/tr>\n<tr>\n<td>v0.25.1<\/td>\n<td>2026-07-14<\/td>\n<td><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.25.1\">GitHub<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><!-- \/lmw:releases --><\/p>\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/releases\/tag\/v0.29.0\">vllm-project\/vllm v0.29.0 Release Notes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/52998\">vllm-project\/vllm PR #52998<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/51875\">vllm-project\/vllm PR #51875<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/49445\">vllm-project\/vllm PR #49445<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/53608\">vllm-project\/vllm PR #53608<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/53615\">vllm-project\/vllm PR #53615<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/54231\">vllm-project\/vllm PR #54231<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/52131\">vllm-project\/vllm PR #52131<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vllm-project\/vllm\/pull\/52182\">vllm-project\/vllm PR #52182<\/a><\/li>\n<\/ul>\n<p><!-- lmw:updates --><\/p>\n<h2>Update History<\/h2>\n<ul>\n<li>2026-09-20: Rewrote the article from re-collected sources and restored it from draft to published.<\/li>\n<\/ul>\n<p><!-- \/lmw:updates --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>vLLM v0.29.0 is released with Model Runner V2 as default, FlashInfer all-reduce, new admission control flags, and support for new models.<\/p>\n","protected":false},"author":1,"featured_media":365,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[586,136,588,165,1547,592],"class_list":["post-366","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engines-and-tools","tag-flashinfer-en","tag-llm-en","tag-model-runner-v2-en","tag-moe-en","tag-verified","tag-vllm-en"],"lang":"en","translations":{"en":366,"ja":364},"_links":{"self":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts\/366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/comments?post=366"}],"version-history":[{"count":8,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts\/366\/revisions"}],"predecessor-version":[{"id":2281,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/posts\/366\/revisions\/2281"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/media\/365"}],"wp:attachment":[{"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/media?parent=366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/categories?post=366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/localmodelwatch.tsuchitsuchi.com\/en\/wp-json\/wp\/v2\/tags?post=366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}