From 5d50bdc2ab7691b98fa0371ab2d9c534ca801991 Mon Sep 17 00:00:00 2001 From: zhengjia Date: Fri, 14 Aug 2026 12:14:55 +0800 Subject: [PATCH] [Perf] Cap diffusion worker thread count before spawn (#6165) Signed-off-by: zjli2013 Co-authored-by: Cursor --- vllm_omni/diffusion/executor/multiproc_executor.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vllm_omni/diffusion/executor/multiproc_executor.py b/vllm_omni/diffusion/executor/multiproc_executor.py index 7de46b5cf..7cc6488c1 100644 --- a/vllm_omni/diffusion/executor/multiproc_executor.py +++ b/vllm_omni/diffusion/executor/multiproc_executor.py @@ -18,6 +18,7 @@ import zmq from vllm.distributed.device_communicators.shm_broadcast import Handle, MessageQueue from vllm.logger import init_logger from vllm.v1.engine.exceptions import EngineDeadError +from vllm.v1.executor.multiproc_executor import set_multiprocessing_worker_envs from vllm_omni.diffusion.data import SHUTDOWN_MESSAGE, AsyncDiffusionOutput, AsyncOutputKind, DiffusionOutput from vllm_omni.diffusion.executor.abstract import DiffusionExecutor @@ -294,6 +295,10 @@ class MultiprocDiffusionExecutor(DiffusionExecutor): logger.info("Starting server...") num_gpus = cast(int, od_config.num_gpus) + # Without this, every worker inherits one Torch thread per core, so an + # N-GPU run oversubscribes the host by N x core_count. Honours a + # user-provided OMP_NUM_THREADS. + set_multiprocessing_worker_envs() mp.set_start_method("spawn", force=True) processes = []