You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* [AMD][dsv4] fix 2P1D eval 503s and 8k1k straggler tail
- Speed circuit-breaker recovery and gate benchmarking on an end-to-end
router readiness canary, so a transient trip or a not-yet-serving
router doesn't 503 every request until the client's retry budget is
exhausted (port of PR #2255).
- Keep decode's admission context-length symmetric with prefill
(falling back to prefill's value when unset in models.yaml), so
over-length requests are rejected fast by both sides instead of
hanging on decode while waiting for a KV transfer prefill never
sends (port of PR #2257).
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: inkcherry <mingzhi.liu@amd.com>
* add con=500/512
Signed-off-by: Theresa Shan <theresa.shan@amd.com>
* set max_total_tokens: 2097152
Signed-off-by: Theresa Shan <theresa.shan@amd.com>
Co-authored-by: lixiufei-leo <Xiufei.Li@amd.com>
* update config
Signed-off-by: Theresa Shan <theresa.shan@amd.com>
* [AMD][dsv4] Replace 2P1D DEP8 sweep with 1P1D pure-TP8 in disagg non-MTP search space
Drop the 2P1D DEP8 (conc 256/512/1024) and 1P1D DEP8 conc=1024 entries
and add a 1P1D pure-TP8 (no EP, no DP-attention) scenario sweeping
conc [1, 2, 4, 8, 16, 32, 64, 128] for dsv4-fp4-mi355x-sglang-disagg.
Co-authored-by: Cursor <cursoragent@cursor.com>
* remove decode context_length
Squash of f7295a5 "remove decode context_length", 0be1d30
"Revert 'remove decode context_length' for DeepSeek-V4-Pro", and
bfb8988 "remove decode context_length ending with a newline" into
a single commit with the same net result.
Signed-off-by: Theresa Shan <theresa.shan@amd.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* Add perf-changelog.yaml entry for dsv4-fp4-mi355x-sglang-disagg retune
Per the automated PR reviewer: any edit to configs/amd-master.yaml
requires a paired perf-changelog.yaml entry. Documents the 503/
straggler-tail fixes, the max_total_tokens bump, and the 2P1D DEP8 ->
1P1D DEP8/pure-TP8 concurrency sweep retune from PR #2293.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Guard router readiness canary with wait_or_die on prefill0_pid
The canary poll loop was a plain while/curl loop, unlike every other
blocking wait on node rank 0 (container barrier, servers-up barrier,
/readiness health barrier), so a prefill crash right after /readiness
passed just looked like repeated 503s and burned the full
ROUTER_CANARY_TIMEOUT (default 600s) instead of failing fast. Extract
the loop into run_router_canary() and run it under wait_or_die so a
dead prefill pid aborts it in ~5s like the surrounding barriers.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Signed-off-by: Theresa Shan <theresa.shan@amd.com>
Co-authored-by: inkcherry <mingzhi.liu@amd.com>
Co-authored-by: lixiufei-leo <Xiufei.Li@amd.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Chun Fang <chun.fang@amd.com>
echo"Router readiness canary not ready yet (http=${canary_code}); retrying in 5s . . ."
885
+
sleep 5
886
+
done
887
+
echo"ERROR: router readiness canary failed after ${ROUTER_CANARY_TIMEOUT:-600}s -- the router cannot complete a generation through a prefill worker (all circuits open/unhealthy). Refusing to start the eval against a non-serving router."
888
+
head -c 800 /tmp/router_canary.out 2>/dev/null
889
+
return 1
890
+
}
891
+
if [[ "${ROUTER_READINESS_CANARY:-1}"=="1" ]];then
- "Retune the non-MTP 8k1k disagg search space: drop the 2P1D DEP8 sweep (conc 128/256/512/1024 across 2 prefill nodes) and the 1P1D DEP8 conc=1024 point"
4990
+
- "Add 1P1D DEP8 (TP8/EP8 + dp-attention, 1 prefill node) at conc 256/512, and a new 1P1D pure-TP8 (no EP, no DP-attention) scenario sweeping conc [1, 2, 4, 8, 16, 32, 64, 128]"
4991
+
- "Fix 2P1D eval 503s: speed up router circuit-breaker recovery (--cb-timeout-duration-secs 15 --retry-max-retries 3) and gate benchmarking on an end-to-end router readiness canary (one real generation through the router), so the eval no longer starts against a router whose prefill path isn't actually serving yet"
4992
+
- "Fix the 8k1k conc-500 straggler tail: decode now derives its admission context_length from models.yaml (falling back to prefill's value when unset) so decode and prefill reject over-length requests symmetrically instead of decode hanging on a KV transfer prefill never sends"
4993
+
- "Bump DeepSeek-V4-Pro prefill max_total_tokens from 262144 to 2097152 to match the model's actual KV budget"
0 commit comments