[Feature] Spec-Overlap supporting DP-ATTN; PD-Disaggregation; npugraph mode (#12443)
This commit is contained in:
@@ -846,6 +846,15 @@ class Scheduler(
|
||||
self.server_args.disaggregation_transfer_backend
|
||||
)
|
||||
|
||||
if self.draft_worker is None or self.spec_algorithm.is_ngram():
|
||||
draft_token_to_kv_pool = None
|
||||
elif self.spec_algorithm.is_eagle() and self.enable_overlap:
|
||||
draft_token_to_kv_pool = (
|
||||
self.draft_worker.draft_worker.draft_runner.token_to_kv_pool
|
||||
)
|
||||
else:
|
||||
draft_token_to_kv_pool = self.draft_worker.model_runner.token_to_kv_pool
|
||||
|
||||
if (
|
||||
self.disaggregation_mode == DisaggregationMode.DECODE
|
||||
): # *2 for the headroom.
|
||||
@@ -874,11 +883,7 @@ class Scheduler(
|
||||
self.disagg_decode_prealloc_queue = DecodePreallocQueue(
|
||||
req_to_token_pool=self.req_to_token_pool,
|
||||
token_to_kv_pool_allocator=self.token_to_kv_pool_allocator,
|
||||
draft_token_to_kv_pool=(
|
||||
None
|
||||
if self.draft_worker is None or self.spec_algorithm.is_ngram()
|
||||
else self.draft_worker.model_runner.token_to_kv_pool
|
||||
),
|
||||
draft_token_to_kv_pool=draft_token_to_kv_pool,
|
||||
req_to_metadata_buffer_idx_allocator=self.req_to_metadata_buffer_idx_allocator,
|
||||
metadata_buffers=self.disagg_metadata_buffers,
|
||||
scheduler=self,
|
||||
@@ -911,11 +916,7 @@ class Scheduler(
|
||||
|
||||
self.disagg_prefill_bootstrap_queue = PrefillBootstrapQueue(
|
||||
token_to_kv_pool=self.token_to_kv_pool_allocator.get_kvcache(),
|
||||
draft_token_to_kv_pool=(
|
||||
None
|
||||
if self.draft_worker is None or self.spec_algorithm.is_ngram()
|
||||
else self.draft_worker.model_runner.token_to_kv_pool
|
||||
),
|
||||
draft_token_to_kv_pool=draft_token_to_kv_pool,
|
||||
req_to_metadata_buffer_idx_allocator=self.req_to_metadata_buffer_idx_allocator,
|
||||
metadata_buffers=self.disagg_metadata_buffers,
|
||||
tp_rank=self.tp_rank,
|
||||
@@ -935,6 +936,8 @@ class Scheduler(
|
||||
self.disagg_prefill_inflight_queue: List[Req] = []
|
||||
|
||||
def init_overlap(self):
|
||||
self.future_map = None
|
||||
|
||||
if not self.enable_overlap:
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user