config: the resolution callbacks into the record go to zero (#36972)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Cheng Wan
2026-08-29 04:18:05 -07:00
committed by GitHub
co-authored by Claude Opus 5
parent 48b88e1256
commit b65e677e48
50 changed files with 1087 additions and 979 deletions
@@ -29,8 +29,10 @@ logger = logging.getLogger(__name__)
def is_post_capture_kv_active(
*, server_args: ServerArgs, is_draft_worker: bool
) -> bool:
from sglang.srt.arg_groups.overrides import post_capture_kv_sizing_planned
return (
server_args.post_capture_kv_sizing_planned()
post_capture_kv_sizing_planned(server_args)
and current_platform.is_cuda()
and not is_draft_worker
)
@@ -44,6 +44,7 @@ from sglang.srt.runtime_context import (
get_parallel,
get_schedule,
get_spec,
max_speculative_num_draft_tokens,
)
from sglang.srt.utils.common import (
ceil_align,
@@ -780,9 +781,7 @@ class DSV4PoolConfigurator(MemoryPoolConfigurator):
self.swa_page_size = cfg.window_size
self.swa_ratio = get_schedule().swa_full_tokens_ratio
self.is_speculative = get_spec().speculative_algorithm is not None
self.online_c128_mtp_max_draft_tokens = (
kvc.server_args.max_speculative_num_draft_tokens or 0
)
self.online_c128_mtp_max_draft_tokens = max_speculative_num_draft_tokens() or 0
self.requested_max_running_requests_per_worker = (
get_schedule().max_running_requests // kvc.ps.attn_dp_size
if get_schedule().max_running_requests is not None
@@ -814,7 +813,7 @@ class DSV4PoolConfigurator(MemoryPoolConfigurator):
if self.is_speculative:
# Ring is sized once here, so it must serve the largest adaptive tier.
self._assert_ring_serves_draft_tokens(
kvc.server_args.max_speculative_num_draft_tokens or 0
max_speculative_num_draft_tokens() or 0
)
self.bytes_per_full_token = self._get_bytes_per_full_token()
@@ -30,7 +30,9 @@ from sglang.srt.runtime_context import (
get_disagg,
get_exec,
get_model,
get_schedule,
get_spec,
max_prefill_buffer_tokens,
)
from sglang.srt.utils import empty_context, log_info_on_rank0
@@ -342,9 +344,7 @@ def maybe_flashinfer_autotune_extend(
mr = runner.model_runner
# Prefer the per-rank scheduler buffer while preserving the legacy ceiling
# when chunked prefill is disabled.
num_tokens = (
mr.server_args.max_prefill_buffer_tokens() or mr.server_args.max_prefill_tokens
)
num_tokens = max_prefill_buffer_tokens() or get_schedule().max_prefill_tokens
if num_tokens <= (decode_num_tokens or 0):
return # decode-shaped autotune already covered these buckets
is_pd_prefill_target = (