Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion knowledge/repos/vllm-omni/rules-amd-ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ created: 2026-10-22
updated: 2026-10-22
type: rule
tags: [vllm-omni]
sources: ["PR #9227"]
sources: ["PR #9227", "PR #9224"]
---

# vllm-omni AMD/ROCm CI 流水线规则
Expand All @@ -17,3 +17,12 @@ sources: ["PR #9227"]
- 验收:`.buildkite/amd/test-amd-ready.yml` 的 R2-01 步骤含 `parallelism: 2`、以 `· Shard %N/%t` 结尾的 label、pytest 命令含 `--num-shards` 与 `--shard-id`、三类工件名均含 `-of-` 分片后缀、命令级 `45m` 与 `timeout_in_minutes: 50`、`grade: NonBlocking`;`python3 -m pytest --confcutdir=tests/buildkite tests/buildkite/test_amd_ready_r2_01.py -q` 通过;`pre-commit run --files .buildkite/amd/test-amd-ready.yml tests/buildkite/test_amd_ready_r2_01.py` 通过。^[PR #9227]

<!-- kb:rule status=active since=v0.30.0 -->

## VLLM-OMNI-PR9224-AITER-MHA-ABI-FALLBACK — AMD AITER MHA 缓存:精确可信源在前、可信分支非 PR 回退候选随后追加,注意力套件成功后发布

- 触发:改动 `.buildkite/amd/scripts/aiter_mha_cache.py` 中候选构建来源的发现或生产者校验(`candidate_sources`、`discover_build_sources`、`discover_recent_branch_sources`、`_build_numbers_from_listing`、`provenance_matches_source`);或改动 `.buildkite/amd/test-amd-ready.yml` 中 FlashAttention/AITER 作业的缓存 prepare、注意力测试编排与发布步骤;或改动 `tests/buildkite/test_aiter_mha_cache.py`、`tests/buildkite/test_amd_pipeline.py` 中对应契约测试。R2-01 lane 的分片契约不在本规则范围(PR #9224 明确不改该 lane,见 VLLM-OMNI-PR9227-R2-01-SHARDING)。
- 强制:`candidate_sources` 必须保持“精确可信来源在前、可信分支回退候选在后”的列表顺序:先收集同 PR/head commit/merge base/精确 checkout 的早期构建与可信 commit 上的非 PR 构建;随后对每个可信分支(`main`;本构建为非 PR release-line push 时含 `release/vX.Y.Z`)调用 `discover_recent_branch_sources` 追加其最近的非 PR 构建(默认 `limit=15`,commit 须为完整 SHA、剔除 PR 构建与当前构建自身,按 build_id 去重)。该追加是无条件的——调用点不检查精确来源是否已找到,优先级完全由列表顺序表达;`discover_recent_branch_sources` 文档所述“精确 merge-base 从未发布(如镜像 ABI 升级后)”只是该函数的动机说明,不是调用前提。兼容性闸门是既有工件校验链(checksum、`gfx942` 设备码、运行时 ABI 身份哈希、Buildkite 来源元数据、provenance),不是 Omni merge-base SHA 等值——`.so` 由 ROCm 镜像内的 AITER 产出,身份哈希才是兼容依据;因此 `provenance_matches_source` 对可信分支非 PR 生产者只要求:分支属于可信分支、非 PR、`VLLM_OMNI_AITER_MHA_TRUSTED_COMMIT` 为完整 SHA。消费方仍获得 job-local 可写副本,缓存未命中时在该目录原地编译。Buildkite 查询/校验失败的日志必须脱敏:不得携带 commit、branch 或异常文本,仅输出固定措辞(可含构建号)。READY 的 FlashAttention/AITER 作业仅在注意力测试套件退出码为 0 时发布该模块,使后续 READY/MERGE 作业可命中同一 ABI。
- 禁止:把可信分支回退候选排在精确可信来源之前;对可信分支来源恢复 `source.commit == VLLM_OMNI_AITER_MHA_TRUSTED_COMMIT` 的等值要求;接受 PR 产生的、当前构建自身的、或未通过校验链的原生模块进入另一构建;在注意力套件非零退出时发布模块;在失败日志中回填异常文本、commit 或 branch 值;删除候选排序、可信分支 provenance、PR 拒绝、不兼容 ABI 拒绝、checksum 校验、敏感值日志或 FA 发布的契约测试。
- 验收:`tests/buildkite/test_aiter_mha_cache.py` 与 `tests/buildkite/test_amd_pipeline.py` 通过;`aiter_mha_cache.py` 的 `candidate_sources` 在精确来源之后无条件追加去重、排除自身构建的可信分支非 PR 候选,可信分支 provenance 保持三项条件,失败日志为脱敏固定措辞;`test-amd-ready.yml` 的 FA/AITER 作业仅在注意力套件成功(退出码 0)后发布模块。^[PR #9224]

<!-- kb:rule status=active since=v0.30.0 -->
Loading