Skip to content

[codex] support optional heterogeneous hardware metadata#2100

Merged
cquil11 merged 5 commits into
mainfrom
feat/support-heterogeneous-configs
Jul 6, 2026
Merged

[codex] support optional heterogeneous hardware metadata#2100
cquil11 merged 5 commits into
mainfrom
feat/support-heterogeneous-configs

Conversation

@cquil11

@cquil11 cquil11 commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Adds optional hardware metadata inside the prefill and decode worker blocks for heterogeneous disaggregated multi-node configs. The fields must be specified together or both omitted; omission preserves the existing homogeneous behavior. disagg: true is rejected for single-node configs.

Worker metadata flows through generated matrices and workflows into both regular and agentic aggregate results as prefill_hw and decode_hw. It does not affect scheduling or launcher behavior, and no existing master config entries are modified.

Validation: 186 matrix-logic tests, 28 regular process-result tests, and 26 agentic process-result tests pass; all 226 active master entries validate successfully.

Follow-up: #2105 tracks consolidating duplicated regular/agentic metadata processing into a shared helper.

@github-actions

github-actions Bot commented Jul 6, 2026

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 changed the title [codex] support heterogeneous disaggregated hardware metadata [codex] support optional heterogeneous hardware metadata Jul 6, 2026
@cquil11 cquil11 marked this pull request as ready for review July 6, 2026 19:52
@cquil11 cquil11 requested a review from a team July 6, 2026 19:52
@cquil11 cquil11 merged commit da54b42 into main Jul 6, 2026
7 checks passed
@cquil11 cquil11 deleted the feat/support-heterogeneous-configs branch July 6, 2026 19:52
@claude

claude Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Claude finished @cquil11's task in 2m 49s —— View job


PR Review: heterogeneous hardware metadata

  • Gather context and read the PR diff
  • Review validation logic, workflow plumbing, and result processing
  • Post review feedback

LGTM - no blocking issues found

Verified during review:

  • All seven benchmark-multinode-tmpl.yml call sites receive the new prefill-hardware/decode-hardware inputs — the sweep-multi-node-8k1k job (.github/workflows/run-sweep.yml:405) inherits them via the *multi-node-inputs YAML anchor, so nothing was missed.
  • When a config omits hardware, ${{ matrix.config.prefill.hardware }} resolves to an empty string, which matches the template's default: "" and the empty-string handling in both result processors, so homogeneous behavior is preserved end-to-end.
  • The must-be-specified-together (XOR) check is enforced consistently in three places: the pydantic models (utils/matrix_logic/validation.py:129), utils/process_result.py:71, and utils/agentic/aggregation/process_agentic_result.py:72.
  • Tightening disagg to Literal[False] on single-node matrix/master models is safe — YAML booleans parse to Python bool, no existing master entries change, and the author confirmed all 226 active entries validate.
  • The direct _gpu_shape() unit test is safe despite not setting the other multinode env vars, since env_int defaults to 0.

Notes per review checklist: no master configs were modified (no perf-changelog entry needed), and generate_sweep_configs.py was not touched (no line count report required). Test suites could not be re-run in this sandbox (pytest execution not permitted), but the changes were verified by inspection and the PR's CI covered them.

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