@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 5175b884f7
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 15, 13:30 UTC

[BugFix] Remove default multiproc executor `collective_rpc` timeout (#17000)

Signed-off-by: Nick Hill <nhill@redhat.com>

Nick Hill committed Apr 22, 2025 at 16:27 UTC 5175b884f70d82d57ad7ce5229f579e45d0c502a
1 file changed +7 -7
vllm/v1/executor/multiproc_executor.py
+7 -7
@@ -38,7 +38,7 @@ logger = init_logger(__name__)
38 POLLING_TIMEOUT_MS = 5000
39 POLLING_TIMEOUT_S = POLLING_TIMEOUT_MS // 1000
40
41 -EXECUTE_MODEL_TIMEOUT_S = 30
41 +EXECUTE_MODEL_TIMEOUT_S = 40
42
43
44 class MultiprocExecutor(Executor):
@@ -151,16 +151,16 @@ class MultiprocExecutor(Executor):
151
152 def collective_rpc(self,
153 method: Union[str, Callable],
154 - timeout: Optional[float] = 180.0,
154 + timeout: Optional[float] = None,
155 args: tuple = (),
156 kwargs: Optional[dict] = None,
157 rank0_reply_only: bool = False) -> list[Any]:
158 - start_time = time.monotonic()
159 - kwargs = kwargs or {}
160 -
158 if self.is_failed:
159 raise RuntimeError("Executor failed.")
160
161 + deadline = None if timeout is None else time.monotonic() + timeout
162 + kwargs = kwargs or {}
163 +
164 # NOTE: If the args are heterogeneous, then we pack them into a list,
165 # and unpack them in the method of every worker, because every worker
166 # knows their own rank.
@@ -176,8 +176,8 @@ class MultiprocExecutor(Executor):
176 workers = (self.workers[0], ) if rank0_reply_only else self.workers
177 responses = [None] * len(workers)
178 for w in workers:
179 - dequeue_timeout = timeout - (time.monotonic() - start_time
180 - ) if timeout is not None else None
179 + dequeue_timeout = None if deadline is None else (
180 + deadline - time.monotonic())
181 status, result = w.worker_response_mq.dequeue(
182 timeout=dequeue_timeout, cancel=self.shutdown_event)
183