Prhub

#51273 [ROCm][CI] Update AITER AR+RMS e2e fusion counts for final-norm coverage

原始 PR 作者 divakar-amd 合并时间 2026-08-07 02:05 文件变更 1 提交数 2 评论 2 代码增减 +2 / -2

执行摘要

修正 AITER AR+RMS e2e 融合计数以覆盖最终 norm

PR #50802 新增 AiterAllreduceFusedAddRMSNormOutputOnlyPattern,使 AITER AllReduce+RMSNorm 融合能覆盖最终 model.norm,但只更新了单元测试,未同步 tests/compile/fusions_e2e/models.py 中的 e2e 期望计数,导致 AITER e2e 计数差一。本 PR 修复该遗漏,将 llama3_8bqwen3_a3baiter_ar_rms_fusionn_layers * 2 提升到 n_layers * 2 + 1,与 ar_rms_fusion 对齐。

不值得精读,改动机械(2 行测试期望值)。值得注意的设计点:功能 PR 必须同步所有相关测试期望;e2e 期望值与单元测试需配套维护;ROCm 特有路径的覆盖依赖平台条件断言,修改时需谨慎。

讨论亮点

该 PR 无实质性技术讨论。claude[bot] 提示来自 fork 的 PR 自动审查被禁用;AndreasKaratzas 直接批准合并,未留下评论。

实现拆解

  1. 修改入口:tests/compile/fusions_e2e/models.py 中的 ModelFusionInfo 数据定义,该文件集中维护 torch.compile 融合 e2e 测试的期望匹配值。
  2. llama3_8baiter_ar_rms_fusion 期望值由 n_layers * 2 改为 n_layers * 2 + 1,与 ar_rms_fusion 对齐,记录最终 model.norm 的融合。
  3. qwen3_a3b 做相同修改。
  4. 验证方式:运行 pytest tests/compile/fusions_e2e/test_tp2_ar_rms.py::test_tp2_ar_rms_fusions,覆盖 llama3_8bqwen3_a3b 两个模型;CUDA-only 路径不参与 aiter_ar_rms_fusion 断言,该字段仅在 ROCm 上生效。
    无配置、schema 或部署配套改动。
文件 模块 状态 重要度
tests/compile/fusions_e2e/models.py 融合测试 modified 3.8

关键源码片段

tests/compile/fusions_e2e/models.py test-coverage

唯一修改的文件,更新 AITER AR+RMS 融合的 e2e 期望计数,是 PR #50802 的配套测试修正。

# tests/compile/fusions_e2e/models.py 中 llama3_8b 与 qwen3_a3b 的融合期望定义
# 本次修改将 aiter_ar_rms_fusion 期望值从 n_layers * 2 调整为 n_layers * 2 + 1,
# 使其与 ar_rms_fusion 对齐,覆盖 PR#50802 引入的最终 norm 融合能力。llama3_8b = ModelFusionInfo(
    model_name="meta-llama/Llama-3.1-8B-Instruct",
    matches=lambda n_layers: Matches(
        ar_rms_fusion=n_layers * 2 + 1,
        aiter_ar_rms_fusion=n_layers * 2 + 1, # 修改点:与 ar_rms_fusion 保持一致
        sequence_parallel=n_layers * 2 + 1,
        async_tp=n_layers * 4,
    ),
)qwen3_a3b = ModelFusionInfo(
    model_name="Qwen/Qwen3-30B-A3B",
    matches=lambda n_layers: Matches(
        norm_rope_fusion=n_layers,
        ar_rms_fusion=n_layers * 2 + 1,
        aiter_ar_rms_fusion=n_layers * 2 + 1, # 修改点:与 ar_rms_fusion 保持一致
        sequence_parallel=n_layers * 2 + 1,
        async_tp=n_layers * 2,
    ),
)

评论区精华

fork PR 自动 review 禁用 other

claude[bot] 指出该 PR 来自 fork,自动审查被禁用,需要维护者手动触发 '@claude review' 或人工审批。

结论:无技术讨论;AndreasKaratzas 直接批准合并。 · 已解决

风险与影响

变更集中在 tests/compile/fusions_e2e/models.py 的 e2e 期望值。潜在风险是若 AITER 融合实现实际未覆盖最终 model.norm,修改后 ROCm CI 会因计数不匹配而失败;但 PR #50802 已实现 AiterAllreduceFusedAddRMSNormOutputOnlyPattern,且新期望值与 ar_rms_fusion 一致,因此风险极低。该 PR 不触碰任何推理运行时代码,无性能、安全或兼容性影响。

对用户无影响;对推理系统无影响;对团队的影响是补全 ROCm CI 的测试覆盖,消除 PR #50802 遗留的计数不一致,避免后续 AITER 相关改动出现假阳性或假阴性。影响面限定在 ROCm 平台上的 e2e 融合测试。

仅测试期望变更 ROCm 专用路径

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论