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 6, 09:30 UTC
[V0 Deprecation] Deprecate --disable-frontend-multiprocessing (#37612)
Signed-off-by: sfeng33 <4florafeng@gmail.com>
Flora Feng committed
Mar 19, 2026 at 23:31 UTC
9040151fe1899aba6e2934364fb4c5edfcb5e29c
10 files changed
+8
-73
tests/distributed/test_pipeline_parallel.py
-3
@@ -319,9 +319,6 @@ def _compare_tp(
319
pp_env = {
320
"VLLM_USE_RAY_COMPILED_DAG_NCCL_CHANNEL": "1",
321
}
322
- # Temporary. Currently when zeromq + SPMD is used, it does not properly
323
- # terminate because of a Ray Compiled Graph issue.
324
- common_args.append("--disable-frontend-multiprocessing")
322
elif distributed_backend == "mp":
323
pp_env = None
324
else:
tests/entrypoints/instrumentator/test_basic.py
+3
-31
@@ -28,7 +28,7 @@ def server_args(request: pytest.FixtureRequest) -> list[str]:
28
>>> @pytest.mark.parametrize(
29
>>> "server_args",
30
>>> [
31
- >>> ["--disable-frontend-multiprocessing"],
31
+ >>> ["--max-model-len", "10100"],
32
>>> [
33
>>> "--model=NousResearch/Hermes-3-Llama-3.1-70B",
34
>>> "--enable-auto-tool-choice",
@@ -40,7 +40,7 @@ def server_args(request: pytest.FixtureRequest) -> list[str]:
40
>>> ...
41
42
This will run `test_foo` twice with servers with:
43
- - `--disable-frontend-multiprocessing`
43
+ - `--max-model-len 10100`
44
- `--model=NousResearch/Hermes-3-Llama-3.1-70B --enable-auto-tool-choice`.
45
46
"""
@@ -79,17 +79,6 @@ async def client(server):
79
yield async_client
80
81
82
-@pytest.mark.parametrize(
83
- "server_args",
84
- [
85
- pytest.param([], id="default-frontend-multiprocessing"),
86
- pytest.param(
87
- ["--disable-frontend-multiprocessing"],
88
- id="disable-frontend-multiprocessing",
89
- ),
90
- ],
91
- indirect=True,
92
-)
82
@pytest.mark.asyncio
83
async def test_show_version(server: RemoteOpenAIServer):
84
response = requests.get(server.url_for("version"))
@@ -98,17 +87,6 @@ async def test_show_version(server: RemoteOpenAIServer):
87
assert response.json() == {"version": VLLM_VERSION}
88
89
101
-@pytest.mark.parametrize(
102
- "server_args",
103
- [
104
- pytest.param([], id="default-frontend-multiprocessing"),
105
- pytest.param(
106
- ["--disable-frontend-multiprocessing"],
107
- id="disable-frontend-multiprocessing",
108
- ),
109
- ],
110
- indirect=True,
111
-)
90
@pytest.mark.asyncio
91
async def test_check_health(server: RemoteOpenAIServer):
92
response = requests.get(server.url_for("health"))
@@ -119,13 +97,7 @@ async def test_check_health(server: RemoteOpenAIServer):
97
@pytest.mark.parametrize(
98
"server_args",
99
[
122
- pytest.param(
123
- ["--max-model-len", "10100"], id="default-frontend-multiprocessing"
124
- ),
125
- pytest.param(
126
- ["--disable-frontend-multiprocessing", "--max-model-len", "10100"],
127
- id="disable-frontend-multiprocessing",
128
- ),
100
+ pytest.param(["--max-model-len", "10100"]),
101
],
102
indirect=True,
103
)
tests/entrypoints/instrumentator/test_metrics.py
-1
@@ -50,7 +50,6 @@ def default_server_args():
50
params=[
51
"",
52
"--enable-chunked-prefill",
53
- "--disable-frontend-multiprocessing",
53
f"--show-hidden-metrics-for-version={PREV_MINOR_VERSION}",
54
],
55
)
tests/entrypoints/openai/completion/test_completion_with_prompt_embeds.py
+2
-5
@@ -83,11 +83,8 @@ def example_prompt_embeds(hf_runner):
83
return [_encode_embeds(item) for item in example_embeddings]
84
85
86
-@pytest.fixture(scope="module", params=["", "--disable-frontend-multiprocessing"])
87
-def server_with_prompt_embeds(default_server_args, request):
88
- if request.param:
89
- default_server_args.append(request.param)
90
-
86
+@pytest.fixture(scope="module")
87
+def server_with_prompt_embeds(default_server_args):
88
with RemoteOpenAIServer(MODEL_NAME, default_server_args) as remote_server:
89
yield remote_server
90
tests/entrypoints/openai/completion/test_shutdown.py
-1
@@ -150,7 +150,6 @@ async def test_shutdown_on_engine_failure():
150
"0.05",
151
"--max-num-seqs",
152
"2",
153
- "--disable-frontend-multiprocessing",
153
],
154
# ROCm: Disable stdout/stderr pipe capture. Subprocess hangs when
155
# stdout/stderr pipes are enabled during ROCm GPU initialization.
tests/v1/entrypoints/openai/test_completion.py
+3
-10
@@ -26,19 +26,12 @@ def default_server_args():
26
"128",
27
"--enforce-eager",
28
"--enable-prompt-tokens-details",
29
+ "--no-enable-prefix-caching",
30
]
31
32
32
-@pytest.fixture(
33
- scope="module",
34
- params=[
35
- ["--no-enable-prefix-caching"],
36
- ["--no-enable-prefix-caching", "--disable-frontend-multiprocessing"],
37
- ],
38
-)
39
-def server(default_server_args, request):
40
- if request.param:
41
- default_server_args = default_server_args + request.param
33
+@pytest.fixture(scope="module")
34
+def server(default_server_args):
35
with RemoteOpenAIServer(MODEL_NAME, default_server_args) as remote_server:
36
yield remote_server
37
vllm/benchmarks/throughput.py
-9
@@ -181,7 +181,6 @@ async def run_vllm_async(
181
n: int,
182
engine_args: AsyncEngineArgs,
183
do_profile: bool,
184
- disable_frontend_multiprocessing: bool = False,
184
disable_detokenize: bool = False,
185
) -> float:
186
from vllm import SamplingParams
@@ -191,7 +190,6 @@ async def run_vllm_async(
190
191
async with build_async_engine_client_from_engine_args(
192
engine_args,
194
- disable_frontend_multiprocessing=disable_frontend_multiprocessing,
193
) as llm:
194
model_config = llm.model_config
195
assert all(
@@ -757,12 +755,6 @@ def add_cli_args(parser: argparse.ArgumentParser):
755
default=False,
756
help="Use vLLM async engine rather than LLM class.",
757
)
760
- parser.add_argument(
761
- "--disable-frontend-multiprocessing",
762
- action="store_true",
763
- default=False,
764
- help="Disable decoupled async engine frontend.",
765
- )
758
parser.add_argument(
759
"--disable-detokenize",
760
action="store_true",
@@ -880,7 +872,6 @@ def main(args: argparse.Namespace):
872
requests,
873
args.n,
874
AsyncEngineArgs.from_cli_args(args),
883
- disable_frontend_multiprocessing=args.disable_frontend_multiprocessing,
875
disable_detokenize=args.disable_detokenize,
876
do_profile=args.profile,
877
)
vllm/entrypoints/openai/api_server.py
-9
@@ -79,7 +79,6 @@ async def build_async_engine_client(
79
args: Namespace,
80
*,
81
usage_context: UsageContext = UsageContext.OPENAI_API_SERVER,
82
- disable_frontend_multiprocessing: bool | None = None,
82
client_config: dict[str, Any] | None = None,
83
) -> AsyncIterator[EngineClient]:
84
if os.getenv("VLLM_WORKER_MULTIPROC_METHOD") == "forkserver":
@@ -98,13 +97,9 @@ async def build_async_engine_client(
97
engine_args._api_process_count = client_config.get("client_count", 1)
98
engine_args._api_process_rank = client_config.get("client_index", 0)
99
101
- if disable_frontend_multiprocessing is None:
102
- disable_frontend_multiprocessing = bool(args.disable_frontend_multiprocessing)
103
-
100
async with build_async_engine_client_from_engine_args(
101
engine_args,
102
usage_context=usage_context,
107
- disable_frontend_multiprocessing=disable_frontend_multiprocessing,
103
client_config=client_config,
104
) as engine:
105
yield engine
@@ -115,7 +110,6 @@ async def build_async_engine_client_from_engine_args(
110
engine_args: AsyncEngineArgs,
111
*,
112
usage_context: UsageContext = UsageContext.OPENAI_API_SERVER,
118
- disable_frontend_multiprocessing: bool = False,
113
client_config: dict[str, Any] | None = None,
114
) -> AsyncIterator[EngineClient]:
115
"""
@@ -129,9 +123,6 @@ async def build_async_engine_client_from_engine_args(
123
# Create the EngineConfig (determines if we can use V1).
124
vllm_config = engine_args.create_engine_config(usage_context=usage_context)
125
132
- if disable_frontend_multiprocessing:
133
- logger.warning("V1 is enabled, but got --disable-frontend-multiprocessing.")
134
-
126
from vllm.v1.engine.async_llm import AsyncLLM
127
128
async_llm: AsyncLLM | None = None
vllm/entrypoints/openai/cli_args.py
-3
@@ -105,9 +105,6 @@ class BaseFrontendArgs:
105
"""When `--max-logprobs` is specified, represents single tokens as
106
strings of the form 'token_id:{token_id}' so that tokens that are not
107
JSON-encodable can be identified."""
108
- disable_frontend_multiprocessing: bool = False
109
- """If specified, will run the OpenAI frontend server in the same process as
110
- the model serving engine."""
108
enable_auto_tool_choice: bool = False
109
"""Enable auto tool choice for supported models. Use `--tool-call-parser`
110
to specify which parser to use."""
vllm/entrypoints/openai/run_batch.py
-1
@@ -823,7 +823,6 @@ async def main(args: Namespace):
823
async with build_async_engine_client(
824
args,
825
usage_context=UsageContext.OPENAI_BATCH_RUNNER,
826
- disable_frontend_multiprocessing=False,
826
) as engine_client:
827
await run_batch(engine_client, args)
828