[CI] Bound the CUDA graph capture range in test launches and lift the spec fixture's admission cap (#33776)

This commit is contained in:
Liangsheng Yin
2026-08-05 20:00:30 -07:00
committed by GitHub
parent f33f6a522f
commit 9bd1461757
9 changed files with 26 additions and 6 deletions
@@ -58,8 +58,12 @@ class SpecEagleServerBase(CustomTestCase):
attention_backend = "flashinfer"
# Primary axis: False -> overlap scheduler; True -> synchronous (non-overlap).
disable_overlap = False
mem_fraction_static = 0.85
max_running_requests = 8
# Leaves ~3.3GB on a 32GB card for the verify logits and activations at a
# cap of 64; higher OOMs, lower starves the KV pool into capping the batch.
mem_fraction_static = 0.80
# The eval kits drive 128 client threads, so a small cap just serializes them.
# Capture follows: capture_bs is clipped to req_to_token_pool.size (cap + 1).
max_running_requests = 64
chunked_prefill_size = 128
# bf16 rather than fp16: fp16 activations can overflow (-> Inf -> NaN) on
# degenerate draft branches in verify and trip the CI NaN asserts.
+9
View File
@@ -952,6 +952,15 @@ def popen_launch_server(
other_args = list(other_args)
other_args += ["--device", str(device)]
# Prefill dominates capture time: the bucket list runs to chunked_prefill_size
# (8192 on H100-class GPUs) and its largest buckets cost seconds each, while
# 97% of CI prefill batches are under 1024 tokens -- a server that serves one
# test file captures the rest and never replays it. Decode is left alone: its
# capture cost is per-phase, not per-bucket. Pass the flag to opt out.
prefill_flag = "--cuda-graph-max-bs-prefill"
if not any(str(arg).startswith(prefill_flag) for arg in other_args):
other_args = list(other_args) + [prefill_flag, "1024"]
# CI-specific: Validate cache and enable offline mode if complete
if env is None:
env = os.environ.copy()