@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 9040151fe1
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 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