[scheduler] enhance scheduler in dp_attention mixed case with spec (#14201)
This commit is contained in:
@@ -132,6 +132,7 @@ from sglang.srt.managers.schedule_policy import (
|
||||
SchedulePolicy,
|
||||
)
|
||||
from sglang.srt.managers.scheduler_dp_attn_mixin import SchedulerDPAttnMixin
|
||||
from sglang.srt.managers.scheduler_enhancer import SchedulerEnhancer
|
||||
from sglang.srt.managers.scheduler_input_blocker import SchedulerInputBlocker
|
||||
from sglang.srt.managers.scheduler_metrics_mixin import (
|
||||
RECORD_STEP_TIME,
|
||||
@@ -201,6 +202,7 @@ logger = logging.getLogger(__name__)
|
||||
TEST_RETRACT = envs.SGLANG_TEST_RETRACT.get()
|
||||
TEST_RETRACT_INTERVAL = envs.SGLANG_TEST_RETRACT_INTERVAL.get()
|
||||
TEST_RETRACT_NO_PREFILL_BS = envs.SGLANG_TEST_RETRACT_NO_PREFILL_BS.get()
|
||||
SCHEDULER_DECREASE_PREFILL_IDLE = envs.SGLANG_SCHEDULER_DECREASE_PREFILL_IDLE.get()
|
||||
GRAMMAR_TIMEOUT = float(os.environ.get("SGLANG_GRAMMAR_TIMEOUT", 300))
|
||||
|
||||
|
||||
@@ -507,6 +509,15 @@ class Scheduler(
|
||||
self.enable_priority_scheduling,
|
||||
self.schedule_low_priority_values_first,
|
||||
)
|
||||
self.schedule_enhancer = None
|
||||
if SCHEDULER_DECREASE_PREFILL_IDLE:
|
||||
self.schedule_enhancer = SchedulerEnhancer(
|
||||
self.dp_size,
|
||||
self.attn_tp_size,
|
||||
self.tp_worker,
|
||||
self.max_running_requests,
|
||||
server_args,
|
||||
)
|
||||
# Enable preemption for priority scheduling.
|
||||
self.try_preemption = self.enable_priority_scheduling
|
||||
self.init_new_token_ratio = min(
|
||||
@@ -1745,6 +1756,11 @@ class Scheduler(
|
||||
return res
|
||||
|
||||
def get_new_batch_prefill(self) -> Optional[ScheduleBatch]:
|
||||
if self.schedule_enhancer and not self.schedule_enhancer.get_schedule_decision(
|
||||
self.running_batch
|
||||
):
|
||||
# Decrease prefill idle as much as possible during high dp load.
|
||||
return None
|
||||
# Check if the grammar is ready in the grammar queue
|
||||
if self.grammar_queue:
|
||||
self.move_ready_grammar_requests()
|
||||
|
||||
Reference in New Issue
Block a user