Skip to content

fix(agentx): adopt additive AIPerf main warmup - #2415

Merged
cquil11 merged 1 commit into
mainfrom
agent/bump-aiperf-main-deterministic-warmup
Jul 30, 2026
Merged

fix(agentx): adopt additive AIPerf main warmup#2415
cquil11 merged 1 commit into
mainfrom
agent/bump-aiperf-main-deterministic-warmup

Conversation

@cquil11

@cquil11 cquil11 commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Pin the shared AIPerf submodule to be758d62 on synchronized SemiAnalysisAI/aiperf main.
  • Run mandatory snapshot primers followed by 10 additional warmup requests per lane.
  • In agentx-fast, use one additional warmup request per lane and a 20-minute profile.
  • Keep AIPerf main's timing-faithful spread phase starts; InferenceX does not pass --burst-phase-starts.
  • Emit rolling TTFT, ITL, and throughput metrics every 30 seconds.
  • Forward the new warmup control through AMD sibling clients and remove obsolete duration overrides.

The 10-second cap applies only to whole-system idle periods. Recorded per-trace end-to-start delays remain intact.

Validation

  • python -m pytest utils/matrix_logic/ utils/test_process_changelog.py -q — 238 passed
  • Bash syntax checks for the shared benchmark and AMD sibling-client scripts
  • Normal command: 10 additional warmup requests per lane, 60-minute profile
  • Fast command: 1 additional warmup request per lane, 20-minute profile
  • AIPerf configuration tests — 2,018 passed, 52 skipped
  • AIPerf generated CLI documentation and configuration schema checks
  • AIPerf pre-commit suite
  • B300 validation run: all 12 throughput jobs passed across concurrency 1/2/4/8/16/24, with and without KV offload

The workflow's unrelated full SWE-bench eval was externally canceled; all AgentX throughput jobs completed successfully.

@github-actions

Copy link
Copy Markdown
Contributor

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 As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

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 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

@cquil11
cquil11 marked this pull request as ready for review July 29, 2026 22:09
@cquil11
cquil11 requested a review from a team July 29, 2026 22:09
@claude

claude Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Claude finished @cquil11's task in 4m 6s —— View job


Review of PR #2415

  • Gather context (diff vs origin/main, read changed files)
  • Review benchmarks/benchmark_lib.sh warmup/metrics changes
  • Verify submodule pin consistency (.gitmodules, workflows, utils/aiperf)
  • Post review feedback

Summary

The core change is sound: build_replay_cmd cleanly swaps time-based cache warmup (--agentic-cache-warmup-duration) for deterministic per-lane warmup (--warmup-requests-per-lane, 10 normally / 1 with agentx-fast), adds --stats-interval 30 with AIPERF_UI_REALTIME_METRICS_ENABLED=true, and the AGENTS.md / workflow-description updates match the new behavior. Both single-node and multi-node agentic paths route through the same build_replay_cmd, so the switch applies consistently.

One 🟡 warning posted inline (benchmarks/benchmark_lib.sh:1745): the removed AIPERF_AGENTIC_CACHE_WARMUP_DURATION knob is still referenced in four deepseek-v4/agentic recipe YAMLs (now a silent no-op) and in the server_sglang.sh client env-forwarding allowlist — which also does not forward the new AIPERF_WARMUP_REQUESTS_PER_LANE, so recipe-level warmup overrides can't reach the AMD multi-node sibling-client container.

Notes on verification scope: this environment couldn't reach the SemiAnalysisAI/aiperf fork (submodule init, gh api, and web fetch are all restricted here), so I could not independently confirm that c57ad643 is on the fork's main or that the new CLI flags exist at that pin — the linked B300 validation run exercises the real command, which covers that in practice. Also, the runner's working tree showed a local revert of .gitmodules to the old branch; the committed PR content correctly points at main, so that's checkout noise, not a PR issue.

No blocking issues found.

@cquil11 cquil11 added agentx-fast Run AgentX throughput with 1 warmup request per lane and a 20-minute profile; not reusable sweep-enabled labels Jul 29, 2026 — with ChatGPT Codex Connector
Comment thread benchmarks/benchmark_lib.sh
@github-actions

Copy link
Copy Markdown
Contributor

Comment thread AGENTS.md
Comment thread benchmarks/benchmark_lib.sh
@github-actions

Copy link
Copy Markdown
Contributor

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

@cquil11
cquil11 force-pushed the agent/bump-aiperf-main-deterministic-warmup branch from 786f856 to 9543505 Compare July 30, 2026 01:17
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@cquil11
cquil11 force-pushed the agent/bump-aiperf-main-deterministic-warmup branch from 9543505 to aac2334 Compare July 30, 2026 02:36
@cquil11 cquil11 removed sweep-enabled agentx-fast Run AgentX throughput with 1 warmup request per lane and a 20-minute profile; not reusable labels Jul 30, 2026
@cquil11 cquil11 changed the title feat(agentx): adopt deterministic AIPerf warmup fix(agentx): adopt additive AIPerf main warmup Jul 30, 2026
Pin the shared AIPerf submodule to the synchronized main revision with additive per-lane warmup after mandatory primers while retaining timing-faithful spread phase starts. Align the workflow documentation with the request-count fast preset.

中文:将共享 AIPerf 子模块固定到已同步的 main 版本,在必需预热请求之后执行额外的逐 lane 预热,并保留符合轨迹时序的分散阶段启动。同步更新工作流文档,使其准确描述基于请求数量的快速预设。
@cquil11
cquil11 force-pushed the agent/bump-aiperf-main-deterministic-warmup branch from aac2334 to 3f788b0 Compare July 30, 2026 02:47
@cquil11
cquil11 merged commit ddeb02e into main Jul 30, 2026
5 checks passed
@cquil11
cquil11 deleted the agent/bump-aiperf-main-deterministic-warmup branch July 30, 2026 02:48
hyukjlee added a commit that referenced this pull request Jul 30, 2026
…armup

Run 30511545046 tried lazy alone and is uninterpretable. It landed just after
#2415 swapped the agentic warmup from --agentic-cache-warmup-duration 600 to
--warmup-requests-per-lane 10 (benchmark_lib.sh:1793, plus a new utils/aiperf
pin), so it moved two variables at once. Its "0 successful / 49 total, OSL=1"
is the new warmup's one-token lane primers, not a lazy-offload symptom -- the
cell never left warmup.

That also invalidates the seven earlier fp8+offload failures as baselines: all
of them ran the old time-based warmup. So run the eager control at c8 on the
SAME warmup as lazy, in one dispatch, and compare those two only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
seungrokj pushed a commit that referenced this pull request Jul 30, 2026
Pin the shared AIPerf submodule to the synchronized main revision with additive per-lane warmup after mandatory primers while retaining timing-faithful spread phase starts. Align the workflow documentation with the request-count fast preset.

中文:将共享 AIPerf 子模块固定到已同步的 main 版本,在必需预热请求之后执行额外的逐 lane 预热,并保留符合轨迹时序的分散阶段启动。同步更新工作流文档,使其准确描述基于请求数量的快速预设。
hyukjlee added a commit that referenced this pull request Jul 30, 2026
…armup

Run 30511545046 tried lazy alone and is uninterpretable. It landed just after
#2415 swapped the agentic warmup from --agentic-cache-warmup-duration 600 to
--warmup-requests-per-lane 10 (benchmark_lib.sh:1793, plus a new utils/aiperf
pin), so it moved two variables at once. Its "0 successful / 49 total, OSL=1"
is the new warmup's one-token lane primers, not a lazy-offload symptom -- the
cell never left warmup.

That also invalidates the seven earlier fp8+offload failures as baselines: all
of them ran the old time-based warmup. So run the eager control at c8 on the
SAME warmup as lazy, in one dispatch, and compare those two only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant