Closed
[Requirement|需求建议]: 新增TextGatedResidualGrad算子 #7267
azyuliAdd on  6 days agoClosed at  6 days ago
azyuli
azyuliCollaborators
6 days ago Create

Backgroud(背景信息)

在 ops-transformer 中新增 TextGatedResidual 融合算子反向传播时需要反向算子TextGatedResidualGrad

关联 PR

Benefit / Necessity (价值/作用)

减少中间数据搬运和算子调度开销,提供 ACLNN 调用接口,计算算子的输出梯度。不在本需求中承诺尚未验证的整网收益。

Design(设计方案)

  • 算子分类:mhc,目录 mhc/text_gated_residual_grad。
  • 融合分组 RMSNorm、down/SiLU/up、sigmoid 混合与可选 inject;gamma 内部使用 1+gamma。
  • 支持 FP16/BF16,适配 A2/A5;needBackward 控制 invRms、downPreAct、upPreAct 缓存输出。
  • 分别交付 kernel/host/ACLNN、Torch 封装和接口文档。
  • 网络代表形状:R=320、C=4、每通道 H=2560、D=10240,覆盖大 token 数场景。
  • 通过设备构建、代表用例精度、host/op_api UT 及模型性能对比验证;
likedislike
azyuliazyuliCollaborators
6 days ago Added label: requirement
azyuliazyuliCollaborators
6 days ago Modify description of issue
azyuliazyuliCollaborators
6 days ago Modify description of issue
周云飞
周云飞Collaborators
6 days ago Comments:

/assign @azyuli

likedislike
CANN-robotCANN-robotCollaborators
6 days ago Assign azyuli as responsible person
周云飞
周云飞Collaborators
6 days ago Comments:

问题说明

新增 TextGatedResidualGrad 可作为补齐训练反向计算的方向。现有前向接口通过 needBackward 保存三个反向缓存,但保存缓存不等于已提供反向算子。需注意,downPreAct 保存的是未除以 C 的投影,upPreAct 保存的是 sigmoid 前的投影,反向公式须与这些定义及 1+gamma 缩放保持一致。

处理建议

建议先明确反向接口的上游梯度输入、各输入及权重的梯度输出,以及可选 inject、gamma 为空时的行为,再确定融合范围与缓存复用方式。请补充这份接口定义,以便判断实现边界。

kernel/host/ACLNN、Torch 封装与文档应保持一致;FP16/BF16、A2/A5 和代表形状属于待验证目标,整网收益以实测为准。正文关联的两项 PR 尚缺具体变更及状态证据,目前不能确认其反向实现覆盖范围。

likedislike
CANN-robotCANN-robotCollaborators
6 days ago Close issue
CANN-robotCANN-robotCollaborators
5 days ago Added label: resolved
周云飞
周云飞Collaborators
5 days ago Comments:

关闭总结

关联需求的 PR #15084 和 PR #15537 已合入:

  • 新增 TextGatedResidualGrad 算子注册及相关调用接口,用于计算混合输出、RMS 归一化和可选注入分支的梯度。
  • 补充算子 README,说明计算功能、参数、产品支持范围及调用约束;并补充 ACLNN 接口文档。

关联 PR:PR #15084、PR #15537

likedislike