Prhub

#29816 [AMD] Update ROCm AITER pin to 9127c94

原始 PR 作者 bingxche 合并时间 2026-07-01 16:09 文件变更 2 提交数 2 评论 2 代码增减 +6 / -4

执行摘要

更新 ROCm Docker AITER 版本并适配新 API

PR body 明确说明:更新 ROCm Docker AITER pin 到 9127c94,并且包含了来自 SGLang commit 4bb8f00bcb291bec8243f013dabb9482c1eedbc6 的补丁,用于修复 AITER MLA reduce 签名变更。Issue 评论进一步解释:mla_reduce_v1 新增了 num_kv_splits 参数,而 prefill PS 路径不需要额外的 split cap,因此传入 0 以保持默认 CU 基数 reduce 尺寸。

此 PR 为常规基础设施更新,建议阅读 docker/rocm.Dockerfile 中的版本变更,了解 AMD GPU 构建的最新依赖。aiter_backend.py 的 1 行改动值得留意:当第三方库 API 变更时,如何以最小改动兼容新签名。

讨论亮点

讨论主要在 Issue 评论中进行,作者 bingxche 详细说明了额外参数 0 的来源:上游 AITER PR ff61bb399(Fix HK MLA decode fwd)新增了 num_kv_splits 参数,prefill 路径无需 split cap,因此 0 保持默认行为。

实现拆解

  1. Dockerfile 版本更新
    - 修改 docker/rocm.Dockerfile,将 AITER_COMMIT_DEFAULT 环境变量在四个构建阶段(base image 942, 942+rocm720, 950, 950+rocm720)中均从 7d604afe5fa7efba63c0dce323b95d9daf2db112 更新为 9127c94a18e4398e1eba91f6639e910f0994ad02

  2. 适配新 AITER API 签名
    - 在 python/sglang/srt/layers/attention/aiter_backend.pymla_fp8_prefill_attn 函数中,调用 mla_reduce_v1 时新增一个参数:0,对应 num_kv_splits。该参数由上游 ROCm/AITER#3391 引入,用于在 decode 阶段按批次限制 reduce 分片数量,而 prefill 路径中传入 0 可沿用旧有的基于 multiprocessor count 的默认分片策略。

文件 模块 状态 重要度
docker/rocm.Dockerfile 部署脚本 modified 3.96
python/sglang/srt/layers/attention/aiter_backend.py 注意力层 modified 5.12

关键符号

mla_fp8_prefill_attn

关键源码片段

python/sglang/srt/layers/attention/aiter_backend.py core-logic

适配新 AITER API 签名的关键源码文件,改动虽小但直接影响 FP8 MLA 预填充路径的正确性。

# python/sglang/srt/layers/attention/aiter_backend.py
# 在 mla_fp8_prefill_attn 函数内,调用 mla_reduce_v1 时新增参数
# Prefill PS 路径不需要 split cap;0 保持 AITER 默认 reduce 尺寸
mla_reduce_v1(
    logits,
    attn_lse,
    reduce_indptr,
    reduce_final_map,
    reduce_partial_map,
    tile_q,
    0, # num_kv_splits: 0 表示使用默认 CU 基数 reduce 分片
    output,
    final_lse,
)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 回归风险AITER_COMMIT_DEFAULT 的更新涉及多个构建阶段,若新 AITER 版本存在兼容性问题,可能影响所有 ROCm Docker 镜像的构建及运行时。
  2. API 适配风险mla_reduce_v1 的参数变化仅通过 0 简单适配,如果未来版本对 num_kv_splits 的处理逻辑发生改变,可能需再次调整。
  3. 覆盖范围:变更仅涉及 AMD GPU 平台,对 NVIDIA 等后端无影响。
  • 用户影响:使用 ROCm Docker 镜像的 AMD GPU 用户将自动获得新版本 AITER 的修复与特性,同时推理不受 API 签名变更影响。
  • 系统影响:Docker 构建可能因上游 commit 不存在或新版本引入的问题而失败。但作者已确认 9127c94 存在于 ROCm/AITER origin/main
  • 团队影响:后续维护需跟随上游 AITER 版本更新,保持 API 一致性。
外部依赖变更 缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论