From e835cee1b0aabb4e770e70c0cab688c324b2d147 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Thu, 22 Oct 2026 21:21:07 +0000 Subject: [PATCH] knowledge(vllm-omni): 1 change(s) from refine --- knowledge/repos/vllm-omni/rules-amd-ci.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/knowledge/repos/vllm-omni/rules-amd-ci.md b/knowledge/repos/vllm-omni/rules-amd-ci.md index 7d847eef..8dc37be7 100644 --- a/knowledge/repos/vllm-omni/rules-amd-ci.md +++ b/knowledge/repos/vllm-omni/rules-amd-ci.md @@ -4,7 +4,7 @@ created: 2026-10-22 updated: 2026-10-22 type: rule tags: [vllm-omni] -sources: ["PR #9227", "PR #9224"] +sources: ["PR #9227", "PR #9224", "PR #9126"] --- # vllm-omni AMD/ROCm CI 流水线规则 @@ -26,3 +26,12 @@ sources: ["PR #9227", "PR #9224"] - 验收:`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] + +## VLLM-OMNI-PR9126-WAN22-I2V-ACC-NIGHTLY — Wan2.2 I2V AMD MI300 夜间精度作业:单 pod 基线→在线→比对、收集钉死三节点、缺前置工件 fail closed + +- 触发:改动 `.buildkite/amd/test-amd-nightly.yml` 中 `:full_moon: Wan2.2 Accuracy MI300 Nightly` 组或 `Wan2.2 I2V Accuracy 2 GPU` 作业的定义(agent 池、grade、超时、env、命令、artifact 路径);或改动 `tests/e2e/accuracy/wan22_i2v/prerequisite.py` 的 `require_similarity_artifacts`、`tests/e2e/accuracy/wan22_i2v/test_wan22_i2v_video_similarity.py` 的比对前置与结果落盘;或改动 `tests/buildkite/test_amd_pipeline.py` 中三个 Wan2.2 精度契约测试。本规则只覆盖 AMD 夜间通道;MERGE 通道的 Wan2.2 e2e 冷启动拆分另见 VLLM-OMNI-PR8014-WAN22-COLDSTART,两轨互不替代。 +- 强制:该精度路径必须是夜间流水线中恰好一个 NonBlocking 作业:组内仅 `Wan2.2 I2V Accuracy 2 GPU` 一步,`agent_pool: mi300_2`、`grade: NonBlocking`、`timeout_in_minutes: 180`、`env.DIFFUSION_ATTENTION_BACKEND: TORCH_SDPA`、工件根 `artifacts/rocm-wan22-accuracy-2gpu/**/*`。三个测试节点 `test_wan22_i2v_diffusers_offline_generates_video`、`test_wan22_i2v_online_serving_generates_video`、`test_wan22_i2v_serving_matches_diffusers_video_similarity` 必须在同一 pod 内按此固定顺序、以单次 `pytest -s -v` 调用执行:离线 diffusers 基线(cards_1)先运行,其产物供同 pod 内后续的 cards_2 在线生成与比对消费,基线生成与比对不得拆到不同 pod。marker 必须保持 `full_model and diffusion and rocm and MI325 and (cards_1 or cards_2)`,同时容纳 cards_1 与 cards_2,不得收窄为仅 cards_2。正式运行前必须 `pytest --collect-only -q` 预收集:输出写入工件目录 `collection.txt`,逐一 grep 确认三个节点均被收集,并断言收集到的 `::` 节点数恰好为 3;任一不满足即以 `exit 5` 失败,防止 marker 漂移导致静默少跑。比对必须 fail closed:`require_similarity_artifacts` 对任一缺失前置工件(在线视频、离线视频、离线 metadata)抛出指名缺失路径的 AssertionError——被跳过的比对不算精度覆盖。比对摘要以 `similarity.json` 落盘;生成的视频与元数据写入测试运行期在 `tests/e2e/accuracy/wan22_i2v/` 目录下生成的 `result` 输出目录(运行期产物,非仓库检入路径),作业命令须在透传退出码前以 `if [[ -d ... ]]` 守卫把该目录 `cp -a` 复制进工件目录的 `result/` 子目录。内层 `timeout --signal=TERM --kill-after=2m 165m` 必须短于外层 180 分钟作业期限,pytest 退出码经 `PIPESTATUS[0]` 透传后决定作业结果。 +- 禁止:把该组拆成多个作业,或把基线生成与比对分离到不同 pod 形成跨 pod 工件依赖;将 `grade` 改为阻塞合并的级别,或把 `Wan2.2 I2V Accuracy` 作业加入 `.buildkite/amd/test-amd-ready.yml` / `.buildkite/amd/test-amd-merge.yml`;删除 `--collect-only` 预收集、三节点逐一核对或 `exit 5` 计数断言;把缺前置工件的比对改回 skip 路径(相似度测试文件不得回归 `Missing offline artifacts` 字样);把命令换成或混入 `test_diffusers_backend_similarity.py` 节点;删除或放宽 `test_wan22_accuracy_has_one_nonblocking_comparison_job` 与 `test_wan22_similarity_fails_when_offline_baseline_is_removed`、`test_wan22_similarity_accepts_complete_artifacts` 两个单元测试;删除 pytest 结束后复制 `result` 输出目录的命令块,使失败运行丢失视频与元数据证据。 +- 验收:`pytest tests/buildkite/test_amd_pipeline.py` 通过;`.buildkite/amd/test-amd-nightly.yml` 该组恰含一个 `mi300_2`、`NonBlocking`、`timeout_in_minutes: 180`、`TORCH_SDPA` 的 `Wan2.2 I2V Accuracy 2 GPU` 作业,命令含 `--collect-only`、`exit 5` 且三节点按固定顺序出现;ready 与 merge 流水线不含 `Wan2.2 I2V Accuracy`;`require_similarity_artifacts` 在任一工件缺失时抛 AssertionError、齐全时静默通过。^[PR #9126] + +