fix(agentic): remove warmup drain timeout#2186
Conversation
|
Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase For PR verification, add the PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs 感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
|
Claude finished @cquil11's task in 5m 31s —— View job Review complete
SummaryThe change itself is clean and lands in the right place — Note: I attempted to inspect the pinned aiperf fork ( |
| REPLAY_CMD+=" --agentic-cache-warmup-duration 600" | ||
| # Long-context warmup requests can take more than AIPerf's default 300s | ||
| # grace period to drain. Wait for every warmup request before profiling. | ||
| REPLAY_CMD+=" --warmup-grace-period inf" |
There was a problem hiding this comment.
🟡 WARNING: Nothing in this PR (or CI, since the PR is unlabeled) actually exercises --warmup-grace-period inf against the pinned aiperf, and inf removes the only bound on warmup drain short of the job-level timeout.
Why it matters:
- The
utils/aiperfsubmodule pin (0d2aa05) was not bumped in this PR, and the stated validation (bash -n+ a generated-command assertion) only proves the flag is appended to the command string — not that the pinned aiperf CLI accepts--warmup-grace-periodor parsesinffor it. If it doesn't, every agentic replay fails at argument parsing (all ~25 single-node recipes plusmulti_node/agentic_srt.shroute throughbuild_replay_cmd). $REPLAY_CMDruns with notimeoutwrapper (run_agentic_replay_and_write_outputs, line 1595), so with an infinite grace period a single wedged warmup request (hung server, stuck stream) now blocks the job until the outer GHA/Slurm timeout instead of proceeding after 300s — that's hours of idle GPU time per stuck config in a sweep.
Fix: Run at least one agentic config against this branch (add the full-sweep-fail-fast label) to confirm the pinned aiperf accepts --warmup-grace-period inf before merging. If the goal is just "longer than 300s", a large finite grace (e.g. 1800, matching the bumped configure timeouts at lines 1455–1458) preserves the hang backstop:
| REPLAY_CMD+=" --warmup-grace-period inf" | |
| REPLAY_CMD+=" --warmup-grace-period 1800" |
There was a problem hiding this comment.
LGTM — a single-line addition of --warmup-grace-period inf to the agentic replay aiperf command.
Extended reasoning...
Overview
The PR adds one line to build_replay_cmd() in benchmarks/benchmark_lib.sh, appending --warmup-grace-period inf to the aiperf replay command used for agentic benchmarks. No other files change.
Verification
Traced the flag through utils/aiperf: under TimingMode.AGENTIC_REPLAY, when warmup_grace_period is unset, _agentic_warmup_grace_period() (utils/aiperf/src/aiperf/timing/config.py) computes min(agentic_cache_warmup_duration, 300.0). Since this recipe sets --agentic-cache-warmup-duration 600, the effective default grace period is currently capped at 300s, matching the PR's stated motivation of removing a "default 300-second drain cutoff." --warmup-grace-period inf is a valid override — the CLI field is float | None with ge=0 (accepts inf), and user_config.py's validate_warmup_grace_period explicitly exempts AGENTIC_REPLAY mode from requiring --warmup-duration, so the flag is accepted standalone in this scenario.
Security risks
None — this only affects a benchmark harness shell script, no production code paths, auth, or data handling.
Level of scrutiny
Low. This is a one-line, well-commented addition to an internal benchmarking script that only changes CLI flags passed to a load-generation tool, with no logic changes elsewhere.
Other factors
The PR description's rationale checks out against the actual aiperf source and its validator/test coverage (test_grace_period_validation.py covers the agentic-mode-alone case). No CODEOWNER-sensitive or security-relevant code is touched.
Passes
--warmup-grace-period inffor agentic replays, removing AIPerf's default 300-second drain cutoff.Validated with
bash -n benchmarks/benchmark_lib.shand a generated-command assertion.