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 13, 22:00 UTC
[V0 deprecation] Remove VLLM_USE_V1 usage in platform and v1 module (#27798)
Signed-off-by: wangxiyuan <wangxiyuan1007@gmail.com> Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
wangxiyuan committed
Nov 1, 2025 at 18:17 UTC
30a14b034fa387470a512e8004527ad1c28af303
8 files changed
+125
-201
vllm/platforms/cuda.py
+84
-100
@@ -276,17 +276,12 @@ class CudaPlatformBase(Platform):
276
"FLASHMLA, FLASH_ATTN_MLA, or TRITON_MLA. Alternatively, set "
277
"VLLM_MLA_DISABLE=1 to disable MLA for this model."
278
)
279
- if not use_v1:
280
- raise RuntimeError(
281
- "MLA attention backends require the V1 engine. "
282
- "Set VLLM_USE_V1=1 to enable them."
283
- )
279
280
from vllm.attention.ops.flashmla import is_flashmla_dense_supported
281
from vllm.attention.utils.fa_utils import flash_attn_supports_mla
282
283
if use_sparse:
289
- logger.info_once("Using Sparse MLA backend on V1 engine.")
284
+ logger.info_once("Using Sparse MLA backend.")
285
return (
286
"vllm.v1.attention.backends.mla.flashmla_sparse."
287
"FlashMLASparseBackend"
@@ -313,15 +308,13 @@ class CudaPlatformBase(Platform):
308
)
309
310
if use_cutlassmla:
316
- logger.info_once(
317
- "Using Cutlass MLA backend on V1 engine.", scope="local"
318
- )
311
+ logger.info_once("Using Cutlass MLA backend.", scope="local")
312
return "vllm.v1.attention.backends.mla.cutlass_mla.CutlassMLABackend"
313
if use_flashinfermla:
314
from vllm.v1.attention.backends.utils import set_kv_cache_layout
315
316
set_kv_cache_layout("HND")
324
- logger.info_once("Using FlashInfer MLA backend on V1 engine.")
317
+ logger.info_once("Using FlashInfer MLA backend.")
318
return (
319
"vllm.v1.attention.backends.mla.flashinfer_mla.FlashInferMLABackend"
320
)
@@ -333,116 +326,107 @@ class CudaPlatformBase(Platform):
326
block_size,
327
)
328
else:
336
- logger.info_once("Using FlashMLA backend on V1 engine.")
329
+ logger.info_once("Using FlashMLA backend.")
330
return "vllm.v1.attention.backends.mla.flashmla.FlashMLABackend"
331
if use_flashattn:
339
- logger.info_once("Using FlashAttention MLA backend on V1 engine.")
332
+ logger.info_once("Using FlashAttention MLA backend.")
333
return (
334
"vllm.v1.attention.backends.mla.flashattn_mla.FlashAttnMLABackend"
335
)
336
if use_triton:
344
- logger.info_once("Using Triton MLA backend on V1 engine.")
337
+ logger.info_once("Using Triton MLA backend.")
338
return "vllm.v1.attention.backends.mla.triton_mla.TritonMLABackend"
346
- if use_v1:
347
- FLASHINFER_V1 = "vllm.v1.attention.backends.flashinfer.FlashInferBackend" # noqa: E501
348
- FLEX_ATTENTION_V1 = (
349
- "vllm.v1.attention.backends.flex_attention.FlexAttentionBackend" # noqa: E501
350
- )
351
- TRITON_ATTN = (
352
- "vllm.v1.attention.backends.triton_attn.TritonAttentionBackend" # noqa: E501
353
- )
354
- FLASH_ATTN_V1 = (
355
- "vllm.v1.attention.backends.flash_attn.FlashAttentionBackend" # noqa: E501
356
- )
357
- TREE_ATTN_V1 = "vllm.v1.attention.backends.tree_attn.TreeAttentionBackend" # noqa: E501
358
- XFORMERS_V1 = "vllm.v1.attention.backends.xformers.XFormersAttentionBackend" # noqa: E501
339
360
- use_fp8_kv_cache = kv_cache_dtype is not None and kv_cache_dtype.startswith(
361
- "fp8"
362
- )
340
+ FLASHINFER_V1 = "vllm.v1.attention.backends.flashinfer.FlashInferBackend" # noqa: E501
341
+ FLEX_ATTENTION_V1 = (
342
+ "vllm.v1.attention.backends.flex_attention.FlexAttentionBackend" # noqa: E501
343
+ )
344
+ TRITON_ATTN = "vllm.v1.attention.backends.triton_attn.TritonAttentionBackend" # noqa: E501
345
+ FLASH_ATTN_V1 = "vllm.v1.attention.backends.flash_attn.FlashAttentionBackend" # noqa: E501
346
+ TREE_ATTN_V1 = "vllm.v1.attention.backends.tree_attn.TreeAttentionBackend" # noqa: E501
347
+ XFORMERS_V1 = "vllm.v1.attention.backends.xformers.XFormersAttentionBackend" # noqa: E501
348
364
- if selected_backend == _Backend.FLASHINFER:
365
- logger.info_once("Using FlashInfer backend on V1 engine.")
366
- if cls.has_device_capability(100):
367
- from vllm.v1.attention.backends.utils import set_kv_cache_layout
349
+ use_fp8_kv_cache = kv_cache_dtype is not None and kv_cache_dtype.startswith(
350
+ "fp8"
351
+ )
352
369
- set_kv_cache_layout("HND")
370
- return FLASHINFER_V1
371
- elif selected_backend == _Backend.FLEX_ATTENTION:
372
- logger.info_once("Using FlexAttention backend on V1 engine.")
373
- return FLEX_ATTENTION_V1
374
- elif selected_backend == _Backend.TRITON_ATTN:
375
- logger.info_once("Using Triton backend on V1 engine.")
376
- return TRITON_ATTN
377
- elif selected_backend == _Backend.FLASH_ATTN:
378
- logger.info_once("Using Flash Attention backend on V1 engine.")
379
- return FLASH_ATTN_V1
380
- elif selected_backend == _Backend.TREE_ATTN:
381
- logger.info_once("Using Tree Attention backend on V1 engine.")
382
- return TREE_ATTN_V1
383
- elif selected_backend == _Backend.XFORMERS:
384
- logger.info_once("Using XFormers backend on V1 engine.")
385
- return XFORMERS_V1
353
+ if selected_backend == _Backend.FLASHINFER:
354
+ logger.info_once("Using FlashInfer backend.")
355
+ if cls.has_device_capability(100):
356
+ from vllm.v1.attention.backends.utils import set_kv_cache_layout
357
387
- from vllm.attention.selector import is_attn_backend_supported
358
+ set_kv_cache_layout("HND")
359
+ return FLASHINFER_V1
360
+ elif selected_backend == _Backend.FLEX_ATTENTION:
361
+ logger.info_once("Using FlexAttention backend.")
362
+ return FLEX_ATTENTION_V1
363
+ elif selected_backend == _Backend.TRITON_ATTN:
364
+ logger.info_once("Using Triton backend.")
365
+ return TRITON_ATTN
366
+ elif selected_backend == _Backend.FLASH_ATTN:
367
+ logger.info_once("Using Flash Attention backend.")
368
+ return FLASH_ATTN_V1
369
+ elif selected_backend == _Backend.TREE_ATTN:
370
+ logger.info_once("Using Tree Attention backend.")
371
+ return TREE_ATTN_V1
372
+ elif selected_backend == _Backend.XFORMERS:
373
+ logger.info_once("Using XFormers backend.")
374
+ return XFORMERS_V1
375
+
376
+ from vllm.attention.selector import is_attn_backend_supported
377
+
378
+ # Default backends for V1 engine
379
+ # Prefer FlashInfer for Blackwell GPUs if installed
380
+ if cls.is_device_capability(100):
381
+ if is_default_backend_supported := is_attn_backend_supported(
382
+ FLASHINFER_V1, head_size, dtype
383
+ ):
384
+ from vllm.v1.attention.backends.utils import set_kv_cache_layout
385
389
- # Default backends for V1 engine
390
- # Prefer FlashInfer for Blackwell GPUs if installed
391
- if cls.is_device_capability(100):
392
- if is_default_backend_supported := is_attn_backend_supported(
393
- FLASHINFER_V1, head_size, dtype
394
- ):
395
- from vllm.v1.attention.backends.utils import set_kv_cache_layout
396
-
397
- logger.info_once(
398
- "Using FlashInfer backend with HND KV cache layout on "
399
- "V1 engine by default for Blackwell (SM 10.0) GPUs."
400
- )
401
- set_kv_cache_layout("HND")
386
+ logger.info_once(
387
+ "Using FlashInfer backend with HND KV cache layout on "
388
+ "V1 engine by default for Blackwell (SM 10.0) GPUs."
389
+ )
390
+ set_kv_cache_layout("HND")
391
403
- return FLASHINFER_V1
392
+ return FLASHINFER_V1
393
405
- if not is_default_backend_supported.can_import:
406
- logger.warning_once(
407
- "FlashInfer failed to import for V1 engine on "
408
- "Blackwell (SM 10.0) GPUs; it is recommended to "
409
- "install FlashInfer for better performance."
410
- )
394
+ if not is_default_backend_supported.can_import:
395
+ logger.warning_once(
396
+ "FlashInfer failed to import on Blackwell (SM 10.0) GPUs; "
397
+ "it is recommended to install FlashInfer for better "
398
+ "performance."
399
+ )
400
412
- # FlashAttention is the default for SM 8.0+ GPUs
413
- if cls.has_device_capability(80):
414
- if (has_sink or use_fp8_kv_cache) and not cls.is_device_capability(90):
415
- logger.info_once("Using Triton backend on V1 engine.")
416
- return TRITON_ATTN
417
- elif is_default_backend_supported := is_attn_backend_supported(
418
- FLASH_ATTN_V1, head_size, dtype, allow_import_error=False
419
- ):
420
- logger.info_once("Using Flash Attention backend on V1 engine.")
421
- return FLASH_ATTN_V1
422
-
423
- # FlexAttention is the default for older GPUs
424
- else:
425
- logger.info_once("Using FlexAttention backend on V1 engine.")
426
- return FLEX_ATTENTION_V1
401
+ # FlashAttention is the default for SM 8.0+ GPUs
402
+ if cls.has_device_capability(80):
403
+ if (has_sink or use_fp8_kv_cache) and not cls.is_device_capability(90):
404
+ logger.info_once("Using Triton backend.")
405
+ return TRITON_ATTN
406
+ elif is_default_backend_supported := is_attn_backend_supported(
407
+ FLASH_ATTN_V1, head_size, dtype, allow_import_error=False
408
+ ):
409
+ logger.info_once("Using Flash Attention backend.")
410
+ return FLASH_ATTN_V1
411
428
- assert not is_default_backend_supported
412
+ # FlexAttention is the default for older GPUs
413
+ else:
414
+ logger.info_once("Using FlexAttention backend.")
415
+ return FLEX_ATTENTION_V1
416
430
- use_flex_attention_reason = {}
431
- if not is_default_backend_supported.head_size:
432
- use_flex_attention_reason["head_size"] = head_size
433
- if not is_default_backend_supported.dtype:
434
- use_flex_attention_reason["dtype"] = dtype
417
+ assert not is_default_backend_supported
418
436
- logger.info_once(
437
- "Using FlexAttention backend for %s on V1 engine.",
438
- ", ".join(f"{k}={v}" for k, v in use_flex_attention_reason.items()),
439
- )
440
- return FLEX_ATTENTION_V1
419
+ use_flex_attention_reason = {}
420
+ if not is_default_backend_supported.head_size:
421
+ use_flex_attention_reason["head_size"] = head_size
422
+ if not is_default_backend_supported.dtype:
423
+ use_flex_attention_reason["dtype"] = dtype
424
442
- raise RuntimeError(
443
- "V0 attention backends have been removed. Set VLLM_USE_V1=1 "
444
- "to select a supported backend."
425
+ logger.info_once(
426
+ "Using FlexAttention backend for %s.",
427
+ ", ".join(f"{k}={v}" for k, v in use_flex_attention_reason.items()),
428
)
429
+ return FLEX_ATTENTION_V1
430
431
@classmethod
432
def get_punica_wrapper(cls) -> str:
vllm/platforms/interface.py
+1
-8
@@ -467,14 +467,7 @@ class Platform:
467
"""
468
Whether to use allgather in LogitsProcessor to gather the logits.
469
"""
470
- import vllm.envs as envs
471
- from vllm.config import get_current_vllm_config
472
-
473
- parallel_config = get_current_vllm_config().parallel_config
474
- return (
475
- envs.VLLM_USE_V1
476
- or parallel_config.distributed_executor_backend == "external_launcher"
477
- )
470
+ return True
471
472
@classmethod
473
def use_custom_allreduce(cls) -> bool:
vllm/platforms/rocm.py
+32
-52
@@ -149,7 +149,7 @@ def use_rocm_custom_paged_attention(
149
# disabled due to observed numerical discrepancy.
150
if ON_GFX9:
151
return (
152
- (not envs.VLLM_USE_V1 or sliding_window == 0 or sliding_window == (-1, -1))
152
+ (sliding_window == 0 or sliding_window == (-1, -1))
153
and (qtype == torch.half or qtype == torch.bfloat16)
154
and (head_size == 64 or head_size == 128)
155
and (block_size == 16 or block_size == 32)
@@ -163,11 +163,7 @@ def use_rocm_custom_paged_attention(
163
else:
164
return (
165
ON_GFX11_GFX12
166
- and (
167
- not envs.VLLM_USE_V1
168
- or sliding_window == 0
169
- or sliding_window == (-1, -1)
170
- )
166
+ and (sliding_window == 0 or sliding_window == (-1, -1))
167
and (qtype == torch.half or qtype == torch.bfloat16)
168
and head_size == 128
169
and block_size == 16
@@ -236,12 +232,6 @@ class RocmPlatform(Platform):
232
if use_sparse:
233
raise NotImplementedError("Sparse Attention is not supported on ROCm.")
234
if use_mla:
239
- if not use_v1:
240
- raise RuntimeError(
241
- "MLA attention backends require the V1 engine. "
242
- "Set VLLM_USE_V1=1 to enable them."
243
- )
244
-
235
from vllm.v1.attention.backends.mla.rocm_aiter_mla import (
236
is_aiter_mla_enabled,
237
)
@@ -255,7 +245,7 @@ class RocmPlatform(Platform):
245
246
if selected_backend == _Backend.TRITON_MLA:
247
if block_size != 1:
258
- logger.info_once("Using Triton MLA backend on V1 engine.")
248
+ logger.info_once("Using Triton MLA backend.")
249
return "vllm.v1.attention.backends.mla.triton_mla.TritonMLABackend"
250
raise ValueError(
251
f" The selected backend, {selected_backend.name},"
@@ -263,7 +253,7 @@ class RocmPlatform(Platform):
253
)
254
if selected_backend == _Backend.ROCM_AITER_MLA:
255
if block_size == 1:
266
- logger.info("Using AITER MLA backend on V1 engine.")
256
+ logger.info("Using AITER MLA backend.")
257
return (
258
"vllm.v1.attention.backends.mla.rocm_aiter_mla.AiterMLABackend" # noqa: E501
259
)
@@ -277,41 +267,33 @@ class RocmPlatform(Platform):
267
f"is not MLA type while requested for MLA backend."
268
)
269
280
- if envs.VLLM_USE_V1:
281
- if selected_backend == _Backend.FLEX_ATTENTION:
282
- logger.info("Using FlexAttention backend on V1 engine.")
283
- return "vllm.v1.attention.backends.flex_attention.FlexAttentionBackend"
284
- if (
285
- envs.VLLM_ROCM_USE_AITER and envs.VLLM_ROCM_USE_AITER_MHA and on_gfx9()
286
- ) or selected_backend == _Backend.ROCM_AITER_FA:
287
- logger.info("Using Aiter Flash Attention backend on V1 engine.")
288
- return (
289
- "vllm.v1.attention.backends."
290
- "rocm_aiter_fa.AiterFlashAttentionBackend"
291
- )
292
- if (
293
- envs.VLLM_ROCM_USE_AITER and envs.VLLM_ROCM_USE_AITER_UNIFIED_ATTENTION
294
- ) or selected_backend == _Backend.ROCM_AITER_UNIFIED_ATTN:
295
- logger.info("Using Aiter Unified Attention backend on V1 engine.")
296
- return (
297
- "vllm.v1.attention.backends."
298
- "rocm_aiter_unified_attn.RocmAiterUnifiedAttentionBackend"
299
- )
300
- if (
301
- envs.VLLM_V1_USE_PREFILL_DECODE_ATTENTION
302
- or selected_backend == _Backend.ROCM_ATTN
303
- ):
304
- # rocm specific backend, with aiter and/or
305
- # triton prefix-prefill
306
- logger.info("Using Rocm Attention backend on V1 engine.")
307
- return "vllm.v1.attention.backends.rocm_attn.RocmAttentionBackend"
308
- # default case, using triton unified attention
309
- logger.info("Using Triton Attention backend on V1 engine.")
310
- return "vllm.v1.attention.backends.triton_attn.TritonAttentionBackend"
311
- raise RuntimeError(
312
- "V0 attention backends have been removed. Set VLLM_USE_V1=1 "
313
- "to select a supported backend."
314
- )
270
+ if selected_backend == _Backend.FLEX_ATTENTION:
271
+ logger.info("Using FlexAttention backend.")
272
+ return "vllm.v1.attention.backends.flex_attention.FlexAttentionBackend"
273
+ if (
274
+ envs.VLLM_ROCM_USE_AITER and envs.VLLM_ROCM_USE_AITER_MHA and on_gfx9()
275
+ ) or selected_backend == _Backend.ROCM_AITER_FA:
276
+ logger.info("Using Aiter Flash Attention backend.")
277
+ return "vllm.v1.attention.backends.rocm_aiter_fa.AiterFlashAttentionBackend"
278
+ if (
279
+ envs.VLLM_ROCM_USE_AITER and envs.VLLM_ROCM_USE_AITER_UNIFIED_ATTENTION
280
+ ) or selected_backend == _Backend.ROCM_AITER_UNIFIED_ATTN:
281
+ logger.info("Using Aiter Unified Attention backend.")
282
+ return (
283
+ "vllm.v1.attention.backends."
284
+ "rocm_aiter_unified_attn.RocmAiterUnifiedAttentionBackend"
285
+ )
286
+ if (
287
+ envs.VLLM_V1_USE_PREFILL_DECODE_ATTENTION
288
+ or selected_backend == _Backend.ROCM_ATTN
289
+ ):
290
+ # rocm specific backend, with aiter and/or
291
+ # triton prefix-prefill
292
+ logger.info("Using Rocm Attention backend.")
293
+ return "vllm.v1.attention.backends.rocm_attn.RocmAttentionBackend"
294
+ # default case, using triton unified attention
295
+ logger.info("Using Triton Attention backend.")
296
+ return "vllm.v1.attention.backends.triton_attn.TritonAttentionBackend"
297
298
@classmethod
299
def set_device(cls, device: torch.device) -> None:
@@ -372,7 +354,6 @@ class RocmPlatform(Platform):
354
parallel_config = vllm_config.parallel_config
355
is_eager_execution = compilation_config == CUDAGraphMode.NONE
356
375
- use_v1 = envs.VLLM_USE_V1
357
use_aiter_rms_norm = (
358
envs.VLLM_ROCM_USE_AITER and envs.VLLM_ROCM_USE_AITER_RMSNORM
359
)
@@ -384,8 +365,7 @@ class RocmPlatform(Platform):
365
parallel_config.worker_cls = "vllm.v1.worker.gpu_worker.Worker"
366
# Aiter rms norm perform best when CUDA Graph capture is enabled.
367
if (
387
- use_v1
388
- and use_aiter_rms_norm
368
+ use_aiter_rms_norm
369
and not is_eager_execution
370
and "-rms_norm" not in compilation_config.custom_ops
371
):
vllm/platforms/tpu.py
-4
@@ -204,10 +204,6 @@ class TpuPlatform(Platform):
204
def get_device_communicator_cls(cls) -> str:
205
return "vllm.distributed.device_communicators.tpu_communicator.TpuCommunicator" # noqa
206
207
- @classmethod
208
- def use_all_gather(cls) -> bool:
209
- return True
210
-
207
@classmethod
208
def validate_request(
209
cls,
vllm/platforms/xpu.py
+3
-6
@@ -66,16 +66,13 @@ class XPUPlatform(Platform):
66
67
if use_sparse:
68
raise NotImplementedError("Sparse Attention is not supported on XPU.")
69
- use_v1 = envs.VLLM_USE_V1
70
- if not use_v1:
71
- raise ValueError("XPU backend only supports V1.")
69
TRITON_ATTN = "vllm.v1.attention.backends.triton_attn.TritonAttentionBackend" # noqa: E501
70
FLASH_ATTN = "vllm.v1.attention.backends.flash_attn.FlashAttentionBackend" # noqa: E501
71
if selected_backend == _Backend.TRITON_ATTN:
75
- logger.info_once("Using Triton backend on V1 engine.")
72
+ logger.info_once("Using Triton backend.")
73
return TRITON_ATTN
74
elif selected_backend == _Backend.FLASH_ATTN:
78
- logger.info_once("Using Flash Attention backend on V1 engine.")
75
+ logger.info_once("Using Flash Attention backend.")
76
return FLASH_ATTN
77
elif selected_backend:
78
raise ValueError(
@@ -83,7 +80,7 @@ class XPUPlatform(Platform):
80
f"with use_v1: {use_v1} use_mla: {use_mla}"
81
)
82
86
- logger.info("Using Flash Attention backend on V1 engine.")
83
+ logger.info("Using Flash Attention backend.")
84
return "vllm.v1.attention.backends.flash_attn.FlashAttentionBackend"
85
86
@classmethod
vllm/v1/engine/async_llm.py
-16
@@ -88,14 +88,6 @@ class AsyncLLM(EngineClient):
88
Returns:
89
None
90
"""
91
- if not envs.VLLM_USE_V1:
92
- raise ValueError(
93
- "Using V1 AsyncLLMEngine, but envs.VLLM_USE_V1=False. "
94
- "This should not happen. As a workaround, try using "
95
- "AsyncLLMEngine.from_vllm_config(...) or explicitly set "
96
- "VLLM_USE_V1=0 or 1 and report this issue on Github."
97
- )
98
-
91
# Ensure we can serialize custom transformer configs
92
maybe_register_config_serialize_by_value()
93
@@ -206,14 +198,6 @@ class AsyncLLM(EngineClient):
198
client_index: int = 0,
199
disable_log_requests: bool = True, # Deprecated, will be removed
200
) -> "AsyncLLM":
209
- if not envs.VLLM_USE_V1:
210
- raise ValueError(
211
- "Using V1 AsyncLLMEngine, but envs.VLLM_USE_V1=False. "
212
- "This should not happen. As a workaround, try using "
213
- "AsyncLLMEngine.from_vllm_config(...) or explicitly set "
214
- "VLLM_USE_V1=0 or 1 and report this issue on Github."
215
- )
216
-
201
# Create the LLMEngine.
202
return cls(
203
vllm_config=vllm_config,
vllm/v1/engine/llm_engine.py
+1
-10
@@ -58,18 +58,9 @@ class LLMEngine:
58
use_cached_outputs: bool = False,
59
multiprocess_mode: bool = False,
60
) -> None:
61
- if not envs.VLLM_USE_V1:
62
- raise ValueError(
63
- "Using V1 LLMEngine, but envs.VLLM_USE_V1=False. "
64
- "This should not happen. As a workaround, try using "
65
- "LLMEngine.from_vllm_config(...) or explicitly set "
66
- "VLLM_USE_V1=0 or 1 and report this issue on Github."
67
- )
68
-
61
if stat_loggers is not None:
62
raise NotImplementedError(
71
- "Passing StatLoggers to LLMEngine in V1 is not yet supported. "
72
- "Set VLLM_USE_V1=0 and file and issue on Github."
63
+ "Passing StatLoggers to LLMEngine is not yet supported."
64
)
65
66
self.vllm_config = vllm_config
vllm/v1/executor/uniproc_executor.py
+4
-5
@@ -124,11 +124,10 @@ class ExecutorWithExternalLauncher(UniProcExecutor):
124
125
def _init_executor(self) -> None:
126
"""Initialize the worker and load the model."""
127
- if envs.VLLM_USE_V1:
128
- assert not envs.VLLM_ENABLE_V1_MULTIPROCESSING, (
129
- "To get deterministic execution in V1, "
130
- "please set VLLM_ENABLE_V1_MULTIPROCESSING=0"
131
- )
127
+ assert not envs.VLLM_ENABLE_V1_MULTIPROCESSING, (
128
+ "To get deterministic execution, "
129
+ "please set VLLM_ENABLE_V1_MULTIPROCESSING=0"
130
+ )
131
super()._init_executor()
132
133
def _distributed_args(self) -> tuple[str, int, int]: