@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 6437ff1fb9
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 9, 20:45 UTC

[Deprecation] Remove deprecated environment variables (#32812)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

Wentao Ye committed Jan 21, 2026 at 21:25 UTC 6437ff1fb9dd64ca4637007a9659d866d93ddae4
6 files changed +7 -118
.buildkite/test-amd.yaml
+2 -2
@@ -1473,7 +1473,7 @@ steps:
1473 - tests/v1/kv_connector/nixl_integration/
1474 commands:
1475 - uv pip install --system -r /vllm-workspace/requirements/kv_connectors_rocm.txt
1476 - - VLLM_ATTENTION_BACKEND=ROCM_ATTN bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
1476 + - bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh --attention-backend ROCM_ATTN
1477
1478 - label: DP EP NixlConnector PD accuracy tests (Distributed) # 15min
1479 mirror_hardwares: [amdexperimental, amdproduction]
@@ -1487,7 +1487,7 @@ steps:
1487 - tests/v1/kv_connector/nixl_integration/
1488 commands:
1489 - uv pip install --system -r /vllm-workspace/requirements/kv_connectors_rocm.txt
1490 - - VLLM_ATTENTION_BACKEND=ROCM_ATTN DP_EP=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh
1490 + - DP_EP=1 bash v1/kv_connector/nixl_integration/config_sweep_accuracy_test.sh --attention-backend ROCM_ATTN
1491
1492 ##### multi gpus test #####
1493 ##### A100 test #####
tests/v1/spec_decode/test_acceptance_length.py
+1 -1
@@ -207,7 +207,6 @@ def test_eagle3_acceptance_length(
207
208 with monkeypatch.context() as m:
209 m.setenv("VLLM_ALLOW_INSECURE_SERIALIZATION", "1")
210 - m.setenv("VLLM_ATTENTION_BACKEND", attention_backend)
210
211 with VllmRunner(
212 model_name=model_config.verifier,
@@ -216,6 +215,7 @@ def test_eagle3_acceptance_length(
215 "model": model_config.drafter,
216 "num_speculative_tokens": num_spec_tokens,
217 },
218 + attention_config={"backend": attention_backend},
219 tensor_parallel_size=tp_size,
220 gpu_memory_utilization=0.7,
221 disable_log_stats=False,
vllm/config/attention.py
-46
@@ -7,11 +7,8 @@ from pydantic import field_validator
7 from pydantic.dataclasses import dataclass
8
9 from vllm.config.utils import config
10 -from vllm.logger import init_logger
10 from vllm.v1.attention.backends.registry import AttentionBackendEnum
11
13 -logger = init_logger(__name__)
14 -
12
13 @config
14 @dataclass
@@ -69,46 +66,3 @@ class AttentionConfig:
66 if isinstance(value, str):
67 return AttentionBackendEnum[value.upper()]
68 return value
72 -
73 - def _set_from_env_if_set(self, field_name: str, env_var_name: str) -> None:
74 - """Set field from env var if set, with deprecation warning."""
75 - from vllm import envs
76 -
77 - if envs.is_set(env_var_name):
78 - value = getattr(envs, env_var_name)
79 - if field_name == "backend":
80 - value = self.validate_backend_before(value)
81 - setattr(self, field_name, value)
82 - logger.warning_once(
83 - "Using %s environment variable is deprecated and will be removed in "
84 - "v0.14.0 or v1.0.0, whichever is soonest. Please use "
85 - "--attention-config.%s command line argument or "
86 - "AttentionConfig(%s=...) config field instead.",
87 - env_var_name,
88 - field_name,
89 - field_name,
90 - )
91 -
92 - def __post_init__(self) -> None:
93 - self._set_from_env_if_set("backend", "VLLM_ATTENTION_BACKEND")
94 - self._set_from_env_if_set("flash_attn_version", "VLLM_FLASH_ATTN_VERSION")
95 - self._set_from_env_if_set(
96 - "use_prefill_decode_attention", "VLLM_V1_USE_PREFILL_DECODE_ATTENTION"
97 - )
98 - self._set_from_env_if_set(
99 - "flash_attn_max_num_splits_for_cuda_graph",
100 - "VLLM_FLASH_ATTN_MAX_NUM_SPLITS_FOR_CUDA_GRAPH",
101 - )
102 - self._set_from_env_if_set("use_cudnn_prefill", "VLLM_USE_CUDNN_PREFILL")
103 - self._set_from_env_if_set(
104 - "use_trtllm_ragged_deepseek_prefill",
105 - "VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL",
106 - )
107 - self._set_from_env_if_set("use_trtllm_attention", "VLLM_USE_TRTLLM_ATTENTION")
108 - self._set_from_env_if_set(
109 - "disable_flashinfer_prefill", "VLLM_DISABLE_FLASHINFER_PREFILL"
110 - )
111 - self._set_from_env_if_set(
112 - "disable_flashinfer_q_quantization",
113 - "VLLM_FLASHINFER_DISABLE_Q_QUANTIZATION",
114 - )
vllm/envs.py
-67
@@ -20,8 +20,6 @@ if TYPE_CHECKING:
20 VLLM_NCCL_SO_PATH: str | None = None
21 LD_LIBRARY_PATH: str | None = None
22 VLLM_ROCM_SLEEP_MEM_CHUNK_SIZE: int = 256
23 - VLLM_V1_USE_PREFILL_DECODE_ATTENTION: bool = False
24 - VLLM_FLASH_ATTN_VERSION: int | None = None
23 LOCAL_RANK: int = 0
24 CUDA_VISIBLE_DEVICES: str | None = None
25 VLLM_ENGINE_ITERATION_TIMEOUT_S: int = 60
@@ -36,7 +34,6 @@ if TYPE_CHECKING:
34 VLLM_CONFIG_ROOT: str = os.path.expanduser("~/.config/vllm")
35 VLLM_USAGE_STATS_SERVER: str = "https://stats.vllm.ai"
36 VLLM_NO_USAGE_STATS: bool = False
39 - VLLM_DISABLE_FLASHINFER_PREFILL: bool = False
37 VLLM_DO_NOT_TRACK: bool = False
38 VLLM_USAGE_SOURCE: str = ""
39 VLLM_CONFIGURE_LOGGING: bool = True
@@ -48,7 +45,6 @@ if TYPE_CHECKING:
45 NO_COLOR: bool = False
46 VLLM_LOG_STATS_INTERVAL: float = 10.0
47 VLLM_TRACE_FUNCTION: int = 0
51 - VLLM_ATTENTION_BACKEND: str | None = None
48 VLLM_USE_FLASHINFER_SAMPLER: bool | None = None
49 VLLM_PP_LAYER_PARTITION: str | None = None
50 VLLM_CPU_KVCACHE_SPACE: int | None = 0
@@ -142,7 +138,6 @@ if TYPE_CHECKING:
138 VLLM_SERVER_DEV_MODE: bool = False
139 VLLM_V1_OUTPUT_PROC_CHUNK_SIZE: int = 128
140 VLLM_MLA_DISABLE: bool = False
145 - VLLM_FLASH_ATTN_MAX_NUM_SPLITS_FOR_CUDA_GRAPH: int = 32
141 VLLM_RAY_PER_WORKER_GPUS: float = 1.0
142 VLLM_RAY_BUNDLE_INDICES: str = ""
143 VLLM_CUDART_SO_PATH: str | None = None
@@ -214,15 +209,11 @@ if TYPE_CHECKING:
209 VLLM_MORIIO_POST_BATCH_SIZE: int = -1
210 VLLM_MORIIO_NUM_WORKERS: int = 1
211 VLLM_MOONCAKE_ABORT_REQUEST_TIMEOUT: int = 480
217 - VLLM_USE_CUDNN_PREFILL: bool = False
218 - VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL: bool = False
212 VLLM_ENABLE_CUDAGRAPH_GC: bool = False
213 VLLM_LOOPBACK_IP: str = ""
214 VLLM_ALLOW_CHUNKED_LOCAL_ATTN_WITH_HYBRID_KV_CACHE: bool = True
215 VLLM_ENABLE_RESPONSES_API_STORE: bool = False
223 - VLLM_USE_TRTLLM_ATTENTION: str | None = None
216 VLLM_NVFP4_GEMM_BACKEND: str | None = None
225 - VLLM_FLASHINFER_DISABLE_Q_QUANTIZATION: bool = False
217 VLLM_HAS_FLASHINFER_CUBIN: bool = False
218 VLLM_USE_FLASHINFER_MOE_MXFP4_MXFP8: bool = False
219 VLLM_USE_FLASHINFER_MOE_MXFP4_BF16: bool = False
@@ -592,17 +583,6 @@ environment_variables: dict[str, Callable[[], Any]] = {
583 "VLLM_ROCM_SLEEP_MEM_CHUNK_SIZE": lambda: int(
584 os.environ.get("VLLM_ROCM_SLEEP_MEM_CHUNK_SIZE", "256")
585 ),
595 - # Use separate prefill and decode kernels for V1 attention instead of
596 - # the unified triton kernel.
597 - "VLLM_V1_USE_PREFILL_DECODE_ATTENTION": lambda: (
598 - os.getenv("VLLM_V1_USE_PREFILL_DECODE_ATTENTION", "False").lower()
599 - in ("true", "1")
600 - ),
601 - # Force vllm to use a specific flash-attention version (2 or 3), only valid
602 - # when using the flash-attention backend.
603 - "VLLM_FLASH_ATTN_VERSION": lambda: maybe_convert_int(
604 - os.environ.get("VLLM_FLASH_ATTN_VERSION", None)
605 - ),
586 # Feature flag to enable/disable Inductor standalone compile.
587 # In torch <= 2.7 we ignore this flag; in torch >= 2.9 this is
588 # enabled by default.
@@ -668,10 +648,6 @@ environment_variables: dict[str, Callable[[], Any]] = {
648 "VLLM_USAGE_STATS_SERVER", "https://stats.vllm.ai"
649 ),
650 "VLLM_NO_USAGE_STATS": lambda: os.environ.get("VLLM_NO_USAGE_STATS", "0") == "1",
671 - "VLLM_DISABLE_FLASHINFER_PREFILL": lambda: os.environ.get(
672 - "VLLM_DISABLE_FLASHINFER_PREFILL", "0"
673 - )
674 - == "1",
651 "VLLM_DO_NOT_TRACK": lambda: (
652 os.environ.get("VLLM_DO_NOT_TRACK", None)
653 or os.environ.get("DO_NOT_TRACK", None)
@@ -707,25 +683,6 @@ environment_variables: dict[str, Callable[[], Any]] = {
683 # If set to 1, vllm will trace function calls
684 # Useful for debugging
685 "VLLM_TRACE_FUNCTION": lambda: int(os.getenv("VLLM_TRACE_FUNCTION", "0")),
710 - # Backend for attention computation
711 - # Example options:
712 - # - "TORCH_SDPA": use torch.nn.MultiheadAttention
713 - # - "FLASH_ATTN": use FlashAttention
714 - # - "FLASHINFER": use flashinfer
715 - # - "FLASHMLA": use FlashMLA
716 - # - "FLASH_ATTN_MLA": use FlashAttention for MLA
717 - # - "FLASHINFER_MLA": use FlashInfer for MLA
718 - # - "CUTLASS_MLA": use CUTLASS for MLA
719 - # All possible options loaded dynamically from AttentionBackendEnum
720 - "VLLM_ATTENTION_BACKEND": env_with_choices(
721 - "VLLM_ATTENTION_BACKEND",
722 - None,
723 - lambda: list(
724 - __import__(
725 - "vllm.v1.attention.backends.registry", fromlist=["AttentionBackendEnum"]
726 - ).AttentionBackendEnum.__members__.keys()
727 - ),
728 - ),
686 # If set, vllm will use flashinfer sampler
687 "VLLM_USE_FLASHINFER_SAMPLER": lambda: bool(
688 int(os.environ["VLLM_USE_FLASHINFER_SAMPLER"])
@@ -1127,10 +1084,6 @@ environment_variables: dict[str, Callable[[], Any]] = {
1084 # If set, vLLM will disable the MLA attention optimizations.
1085 "VLLM_MLA_DISABLE": lambda: bool(int(os.getenv("VLLM_MLA_DISABLE", "0"))),
1086 # If set, vLLM will pick up the provided Flash Attention MLA
1130 - # max number splits for cuda graph decode
1131 - "VLLM_FLASH_ATTN_MAX_NUM_SPLITS_FOR_CUDA_GRAPH": lambda: int(
1132 - os.getenv("VLLM_FLASH_ATTN_MAX_NUM_SPLITS_FOR_CUDA_GRAPH", "32")
1133 - ),
1087 # Number of GPUs per worker in Ray, if it is set to be a fraction,
1088 # it allows ray to schedule multiple actors on a single GPU,
1089 # so that users can colocate other actors on the same GPUs as vLLM.
@@ -1464,26 +1417,6 @@ environment_variables: dict[str, Callable[[], Any]] = {
1417 "VLLM_MOONCAKE_ABORT_REQUEST_TIMEOUT": lambda: int(
1418 os.getenv("VLLM_MOONCAKE_ABORT_REQUEST_TIMEOUT", "480")
1419 ),
1467 - # Controls whether or not to use cudnn prefill
1468 - "VLLM_USE_CUDNN_PREFILL": lambda: bool(
1469 - int(os.getenv("VLLM_USE_CUDNN_PREFILL", "0"))
1470 - ),
1471 - # Controls whether to use TRT-LLM ragged DeepSeek prefill
1472 - "VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL": lambda: bool(
1473 - int(os.getenv("VLLM_USE_TRTLLM_RAGGED_DEEPSEEK_PREFILL", "0"))
1474 - ),
1475 - # If set to 1/True, use the TRTLLM attention backend in flashinfer.
1476 - # If set to 0/False, use the default attention backend in flashinfer.
1477 - # If not set, auto-detect the attention backend in flashinfer.
1478 - "VLLM_USE_TRTLLM_ATTENTION": lambda: (
1479 - None
1480 - if "VLLM_USE_TRTLLM_ATTENTION" not in os.environ
1481 - else os.environ["VLLM_USE_TRTLLM_ATTENTION"].lower() in ("1", "true")
1482 - ),
1483 - # If set to 1, when we use fp8 kv, we do not quantize Q to fp8
1484 - "VLLM_FLASHINFER_DISABLE_Q_QUANTIZATION": lambda: bool(
1485 - int(os.getenv("VLLM_FLASHINFER_DISABLE_Q_QUANTIZATION", "0"))
1486 - ),
1420 # If set, it means we pre-downloaded cubin files and flashinfer will
1421 # read the cubin files directly.
1422 "VLLM_HAS_FLASHINFER_CUBIN": lambda: bool(
vllm/platforms/rocm.py
+4 -1
@@ -287,7 +287,10 @@ class RocmPlatform(Platform):
287 return AttentionBackendEnum.ROCM_AITER_FA.get_path()
288
289 # Priority 3: Check for ROCM_ATTN (prefill-decode split)
290 - if envs.VLLM_V1_USE_PREFILL_DECODE_ATTENTION:
290 + from vllm.config import get_current_vllm_config
291 +
292 + vllm_config = get_current_vllm_config()
293 + if vllm_config.attention_config.use_prefill_decode_attention:
294 logger.info("Using Rocm Attention backend.")
295 return AttentionBackendEnum.ROCM_ATTN.get_path()
296
vllm/usage/usage_lib.py
-1
@@ -37,7 +37,6 @@ _GLOBAL_RUNTIME_DATA = dict[str, str | int | bool]()
37
38 _USAGE_ENV_VARS_TO_COLLECT = [
39 "VLLM_USE_MODELSCOPE",
40 - "VLLM_ATTENTION_BACKEND",
40 "VLLM_USE_FLASHINFER_SAMPLER",
41 "VLLM_PP_LAYER_PARTITION",
42 "VLLM_USE_TRITON_AWQ",