Set up the idle sleeper outside of the IPC channel initialization (#25713)

This commit is contained in:
fzyzcjy
2026-05-19 09:18:36 +08:00
committed by GitHub
parent 2d40f45193
commit 07b4f262b7
+17 -9
View File
@@ -384,6 +384,7 @@ class Scheduler(
# Init inter-process communication
self.init_ipc_channels(port_args)
self.init_idle_sleeper()
self.mm_receiver = None
self.disagg_prefill_bootstrap_queue = None
@@ -726,7 +727,6 @@ class Scheduler(
def init_ipc_channels(self, port_args: PortArgs):
context = zmq.Context(2)
self.idle_sleeper = None
self.send_metrics_from_scheduler = None
if (
@@ -757,14 +757,6 @@ class Scheduler(
self.send_to_tokenizer = SenderWrapper(send_to_tokenizer)
self.send_to_detokenizer = SenderWrapper(send_to_detokenizer)
if self.server_args.sleep_on_idle:
self.idle_sleeper = IdleSleeper(
[
self.recv_from_tokenizer,
self.recv_from_rpc,
]
)
else:
self.recv_from_tokenizer = None
self.recv_from_rpc = None
@@ -779,6 +771,22 @@ class Scheduler(
context, zmq.PUSH, port_args.metrics_ipc_name, False
)
def init_idle_sleeper(self) -> None:
if (
self.ps.pp_rank == 0
and self.ps.attn_tp_rank == 0
and self.ps.attn_cp_rank == 0
and self.server_args.sleep_on_idle
):
self.idle_sleeper = IdleSleeper(
sockets=[
self.recv_from_tokenizer,
self.recv_from_rpc,
],
)
else:
self.idle_sleeper = None
def init_tokenizer(self):
server_args = self.server_args
self.is_generation = self.model_config.is_generation