[PD+DP] Allow PrefillDelayer in disaggregated-prefill mode (#23588)
This commit is contained in:
@@ -70,9 +70,6 @@ class PrefillDelayer:
|
||||
self._curr_state: Optional[_State] = None
|
||||
self.skip_first_delayer = True
|
||||
|
||||
assert (
|
||||
server_args.disaggregation_mode == "null"
|
||||
), "To use PrefillDelayer, disaggregation_mode must be null."
|
||||
assert (
|
||||
not server_args.disable_overlap_schedule
|
||||
), "To use PrefillDelayer, disable_overlap_schedule must be False."
|
||||
|
||||
@@ -982,22 +982,28 @@ class Scheduler(
|
||||
self.prefill_delayer: Optional[PrefillDelayer] = None
|
||||
self.max_prefill_bs: int = 0
|
||||
if self.server_args.enable_prefill_delayer:
|
||||
self.prefill_delayer = PrefillDelayer(
|
||||
dp_size=self.dp_size,
|
||||
attn_tp_size=self.attn_tp_size,
|
||||
cpu_group=self.tp_cpu_group,
|
||||
server_args=self.server_args,
|
||||
metrics_collector=(
|
||||
self.metrics_collector if self.enable_metrics else None
|
||||
),
|
||||
max_delay_passes=self.server_args.prefill_delayer_max_delay_passes,
|
||||
token_usage_low_watermark=self.server_args.prefill_delayer_token_usage_low_watermark,
|
||||
device=(
|
||||
self.tp_group.device
|
||||
if self.server_args.disable_overlap_schedule
|
||||
else "cpu"
|
||||
),
|
||||
)
|
||||
if self.server_args.disaggregation_mode == "decode":
|
||||
logger.info(
|
||||
"Ignoring --enable-prefill-delayer on decode engine "
|
||||
"(no prefill scheduling path; delayer would be a no-op)."
|
||||
)
|
||||
else:
|
||||
self.prefill_delayer = PrefillDelayer(
|
||||
dp_size=self.dp_size,
|
||||
attn_tp_size=self.attn_tp_size,
|
||||
cpu_group=self.tp_cpu_group,
|
||||
server_args=self.server_args,
|
||||
metrics_collector=(
|
||||
self.metrics_collector if self.enable_metrics else None
|
||||
),
|
||||
max_delay_passes=self.server_args.prefill_delayer_max_delay_passes,
|
||||
token_usage_low_watermark=self.server_args.prefill_delayer_token_usage_low_watermark,
|
||||
device=(
|
||||
self.tp_group.device
|
||||
if self.server_args.disable_overlap_schedule
|
||||
else "cpu"
|
||||
),
|
||||
)
|
||||
|
||||
# NOTE: preemption is enabled by default for priority scheduling.
|
||||
self.enable_priority_preemption = (
|
||||
|
||||
Reference in New Issue
Block a user