A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 5, 13:30 UTC
[Model Runner V2] Add config validation for not-yet-supported features (#38758)
Signed-off-by: Nick Hill <nickhill123@gmail.com>
Nick Hill committed
Apr 3, 2026 at 12:08 UTC
5f1de2b14b1daece3eb2a1768563e7f84bf1aa99
2 files changed
+46
-1
.buildkite/test_areas/model_runner_v2.yaml
-1
@@ -78,7 +78,6 @@ steps:
78
- TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_async_llm_dp.py -k "not ray"
79
- TP_SIZE=1 DP_SIZE=2 pytest -v -s v1/distributed/test_eagle_dp.py
80
81
-# These require fix https://github.com/vllm-project/vllm/pull/36280
81
- label: Model Runner V2 Pipeline Parallelism (4 GPUs)
82
timeout_in_minutes: 60
83
working_dir: "/vllm-workspace/tests"
vllm/config/vllm.py
+46
@@ -1106,6 +1106,9 @@ class VllmConfig:
1106
)
1107
current_platform.check_and_update_config(self)
1108
1109
+ if envs.VLLM_USE_V2_MODEL_RUNNER:
1110
+ self._validate_v2_model_runner()
1111
+
1112
# Re-compute compile ranges after platform-specific config updates
1113
# (e.g., XPU may lower max_num_batched_tokens when MLA is enabled)
1114
self._set_compile_ranges()
@@ -1729,6 +1732,49 @@ class VllmConfig:
1732
f"kernel_config={self.kernel_config!r}"
1733
)
1734
1735
+ def _validate_v2_model_runner(self) -> None:
1736
+ """Check for features not yet supported by the V2 model runner."""
1737
+ unsupported: list[str] = []
1738
+
1739
+ if self.model_config is not None and self.model_config.has_inner_state:
1740
+ unsupported.append("hybrid/mamba models")
1741
+
1742
+ if self.parallel_config.prefill_context_parallel_size > 1:
1743
+ unsupported.append("prefill context parallelism")
1744
+
1745
+ if (
1746
+ self.speculative_config is not None
1747
+ and self.speculative_config.method not in ("eagle", "eagle3", "mtp")
1748
+ ):
1749
+ unsupported.append(f"speculative method '{self.speculative_config.method}'")
1750
+
1751
+ if self.parallel_config.enable_dbo:
1752
+ unsupported.append("dual batch overlap")
1753
+
1754
+ if (
1755
+ self.model_config is not None
1756
+ and self.model_config.enable_return_routed_experts
1757
+ ):
1758
+ # Will be added by https://github.com/vllm-project/vllm/pull/38163
1759
+ unsupported.append("routed experts capture")
1760
+
1761
+ if self.model_config is not None and self.model_config.logits_processors:
1762
+ unsupported.append("custom logits processors")
1763
+
1764
+ if self.cache_config.kv_sharing_fast_prefill:
1765
+ # Will be added by https://github.com/vllm-project/vllm/pull/35045
1766
+ unsupported.append("KV sharing fast prefill")
1767
+
1768
+ if self.ec_transfer_config is not None:
1769
+ # Will be added by https://github.com/vllm-project/vllm/pull/38390
1770
+ unsupported.append("EC transfer")
1771
+
1772
+ if unsupported:
1773
+ raise ValueError(
1774
+ "VLLM_USE_V2_MODEL_RUNNER does not yet support: "
1775
+ + ", ".join(unsupported)
1776
+ )
1777
+
1778
def validate_block_size(self) -> None:
1779
"""Validate block_size against DCP and mamba constraints.
1780