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(