已关闭
[Requirement|需求建议]: BatchNormGradV3 在 A5 上支持输出 mask #6675
qianzehong创建于  16 天前关闭于  13 天前
qianzehong成员
16 天前 创建

Backgroud(背景信息)

BatchNormGradV3 需要在 A5 上支持按需输出 dx、dweight(dgamma)和 dbias(dbeta)。ACLNN L2 已有 outputMask,需要透传到 A5 的 L0、tiling 和 kernel;GEIR 需要公开的 output_mask 属性。

Origin(信息来源)

用户提出的 BatchNormGradV3 功能需求。部门/团队未提供。

Benefit / Necessity (价值/作用)

在保留三个输出的 shape、dtype 和必选定义的前提下,调用方可以关闭不需要的输出,避免对应的最终 GM 写入。

Design(设计方案)

参照 LayerNormGradV3,新增可选 ListBool 属性 output_mask,长度为 3,顺序为 [dx, dweight, dbias],默认 {true, true, true}。op proto 仅新增该属性;共用 OpDef 删除未参与计算的 version,最终属性顺序为 [is_training, epsilon, output_mask]。

仅 A5 实现 kernel 输出控制:aclnnBatchNormBackward 的 A5 分支通过新增 L0 重载透传 mask,tiling 使用 int64_t 的低 3 位编码,各 arch35 kernel 类按标记跳过关闭输出的最终写入,全 false 时直接返回。计算 dx 所需的 dgamma/dbeta 归约中间量仍保留。kernel 入口 batch_norm_grad_v3_apt.cpp 保持原版,关闭输出的内容无效。

A2/A3 保留原有 kernel、tiling 模板、tilingdata 布局及旧 L0 的两个 launcher 属性;普通 ACLNN 和 Fast ACLNN 的原有执行路径保持不变。共用属性定义和编译入口会变化,两个平台各 14 条二进制配置需将 version:int 替换为 output_mask:list_bool,以防编译参数错位。直接使用旧编译入口并显式传 version 的调用需要适配;Fast ACLNN 对外接口中的 version 参数保留。

验收

  • A5 ACLNN 和 GEIR 可以设置全部 8 种 mask 组合,默认全 true,非法 mask 长度被拒绝。
  • 启用输出数值正确,关闭输出的非零哨兵值保持不变。
  • A2/A3 保持原有计算实现、tilingdata 布局和 L0 launcher 参数;共用属性及二进制配置保持一致并可完整编包。

验证进展

  • A5 完整编包通过;ACLNN 101 个真机用例通过,采用 PyTorch BatchNorm 前向/自动求导标杆,覆盖 FP32/FP16/BF16、训练/推理及全部 8 种 mask。
  • A5 既有 kernel 精度验证 101 个用例通过,覆盖 11 个 tiling key;GEIR 9 个真机用例及旧 proto 默认属性用例 1 个通过。
  • ascend910b、ascend910_93 两种配置完整编包通过,各安装包包含 14 个对应平台 kernel 二进制及 API、tiling、proto 库。
  • 两种配置下 Host UT 各 142 个、API UT 各 94 个通过;覆盖模拟 A2/A3 的缺省/全部 mask 的 tiling 数据和普通/Fast ACLNN 训练/推理 workspace 构建。
  • A2/A3 验证范围目前为编包和模拟平台 UT,尚未执行 A2/A3 真机 ACLNN、精度、性能或 GEIR 验证。

关联 PR

11948

likedislike
Qqianzehong成员
16 天前 关联了pull request:feat: BatchNormGradV3 在 A5 上支持 output_mask
Qqianzehong成员
16 天前 修改了issue 的描述
Qqianzehong成员
16 天前 修改了issue 的描述
yuning_chenyuning_chen成员
16 天前 将 qianzehong 设为负责人
Qqianzehong成员
15 天前 修改了issue 的描述
CANN-robotCANN-robot成员
13 天前 关闭了 issue
CANN-robotCANN-robot成员
13 天前 添加了label:resolved