@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / dfdda96747
Fork 0

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 12, 02:15 UTC

[Core] Remove forced None assignment for deprecated PassConfig flags (#29994)

Signed-off-by: arpitkh101 <arpit5khandelwal@gmail.com> Co-authored-by: Cyrus Leung <tlleungac@connect.ust.hk>

Arpit Khandelwal committed Dec 4, 2025 at 04:15 UTC dfdda96747c4d06e96355ea96c7207c9f7dd3816
2 files changed +27 -17
tests/compile/test_config.py
+15 -6
@@ -392,39 +392,48 @@ def test_pass_config_deprecation(caplog_vllm):
392 assert "enable_fusion is deprecated" in caplog_vllm.text
393 assert config.fuse_norm_quant is True
394 assert config.fuse_act_quant is True
395 - assert config.enable_fusion is None
395 + assert config.enable_fusion is True
396
397 # Test enable_attn_fusion -> fuse_attn_quant
398 caplog_vllm.clear()
399 config = PassConfig(enable_attn_fusion=True)
400 assert "enable_attn_fusion is deprecated" in caplog_vllm.text
401 assert config.fuse_attn_quant is True
402 - assert config.enable_attn_fusion is None
402 + assert config.enable_attn_fusion is True
403
404 # Test enable_noop -> eliminate_noops
405 caplog_vllm.clear()
406 config = PassConfig(enable_noop=True)
407 assert "enable_noop is deprecated" in caplog_vllm.text
408 assert config.eliminate_noops is True
409 - assert config.enable_noop is None
409 + assert config.enable_noop is True
410
411 # Test enable_sequence_parallelism -> enable_sp
412 caplog_vllm.clear()
413 config = PassConfig(enable_sequence_parallelism=True)
414 assert "enable_sequence_parallelism is deprecated" in caplog_vllm.text
415 assert config.enable_sp is True
416 - assert config.enable_sequence_parallelism is None
416 + assert config.enable_sequence_parallelism is True
417
418 # Test enable_async_tp -> fuse_gemm_comms
419 caplog_vllm.clear()
420 config = PassConfig(enable_async_tp=True)
421 assert "enable_async_tp is deprecated" in caplog_vllm.text
422 assert config.fuse_gemm_comms is True
423 - assert config.enable_async_tp is None
423 + assert config.enable_async_tp is True
424
425 # Test enable_fi_allreduce_fusion -> fuse_allreduce_rms
426 caplog_vllm.clear()
427 config = PassConfig(enable_fi_allreduce_fusion=True)
428 assert "enable_fi_allreduce_fusion is deprecated" in caplog_vllm.text
429 assert config.fuse_allreduce_rms is True
430 - assert config.enable_fi_allreduce_fusion is None
430 + assert config.enable_fi_allreduce_fusion is True
431 +
432 + # Test hash consistency
433 + config_old = PassConfig(enable_fusion=True)
434 + config_new = PassConfig(fuse_norm_quant=True, fuse_act_quant=True)
435 + assert config_old.compute_hash() == config_new.compute_hash()
436 +
437 + config_old = PassConfig(enable_async_tp=True)
438 + config_new = PassConfig(fuse_gemm_comms=True)
439 + assert config_old.compute_hash() == config_new.compute_hash()
vllm/config/compilation.py
+12 -11
@@ -4,7 +4,7 @@
4 import enum
5 from collections import Counter
6 from collections.abc import Callable
7 -from dataclasses import asdict, field
7 +from dataclasses import field
8 from pathlib import Path
9 from typing import TYPE_CHECKING, Any, ClassVar, Literal
10
@@ -13,7 +13,7 @@ from pydantic.dataclasses import dataclass
13
14 import vllm.envs as envs
15 from vllm.compilation.inductor_pass import CallableInductorPass, InductorPass
16 -from vllm.config.utils import config, handle_deprecated
16 +from vllm.config.utils import config, get_hash_factors, handle_deprecated, hash_factors
17 from vllm.logger import init_logger
18 from vllm.platforms import current_platform
19 from vllm.utils.import_utils import resolve_obj_by_qualname
@@ -196,7 +196,16 @@ class PassConfig:
196 Any new fields that affect compilation should be added to the hash.
197 Any future fields that don't affect compilation should be excluded.
198 """
199 - return InductorPass.hash_dict(asdict(self))
199 +
200 + ignored_fields = [
201 + "enable_fusion",
202 + "enable_attn_fusion",
203 + "enable_noop",
204 + "enable_sequence_parallelism",
205 + "enable_async_tp",
206 + "enable_fi_allreduce_fusion",
207 + ]
208 + return hash_factors(get_hash_factors(self, ignored_factors=ignored_fields))
209
210 @field_validator(
211 "fuse_norm_quant",
@@ -267,14 +276,6 @@ class PassConfig:
276 "v0.13.0 or v1.0.0, whichever is sooner",
277 )
278
270 - # Force old flags to None to ensure they are not used
271 - self.enable_fusion = None
272 - self.enable_attn_fusion = None
273 - self.enable_noop = None
274 - self.enable_sequence_parallelism = None
275 - self.enable_async_tp = None
276 - self.enable_fi_allreduce_fusion = None
277 -
279 if not self.eliminate_noops:
280 if self.fuse_norm_quant or self.fuse_act_quant:
281 logger.warning_once(