已关闭
[Requirement|需求建议]: SigmoidFocalLossGrad 支持 Ascend 950 #5283
yulianjie创建于  8月28日关闭于  9月2日
yulianjie成员
8月28日 创建

Backgroud(背景信息)

现有 canndev 已包含 SigmoidFocalLossGrad 的图原型和历史实现信息,但 ops-nn 尚无该算子的 Ascend 950 内置实现。目标检测等使用 Sigmoid Focal Loss 的训练网络需要在 Ascend 950 上完成对应反向梯度计算。

该算子在 canndev 和 ops-nn 中均没有 ACLNN 接口契约,因此需求范围明确为 GEIR 图模式和 Kernel 直调能力,不新增 ACLNN API、ACLNN 实现、ACLNN 文档或 ACLNN 测试通路。

Origin(信息来源)

来源于 LongTailInfo 8August requirement 中的 SigmoidFocalLossGrad 长尾算子迁移需求,以及 ops-nn Ascend 950 转测准入任务。

Benefit / Necessity (价值/作用)

  • 为目标检测等 Focal Loss 训练场景补齐 Ascend 950 反向算子能力。
  • 在无 ACLNN 契约的前提下,通过 GEIR 和 Kernel 标准通路提供可构建、可安装、可验证的内置实现。
  • 使用冻结 Golden 和 L0 精度标准形成可复现回归基线,避免接口语义与历史 ACLNN 测试假设混用。

Design(设计方案)

  • 在 loss/sigmoid_focal_loss_grad 新增 OpDef、GEIR 图推导、Tiling 和 AscendC Kernel,支持 FLOAT16/FLOAT 输入组合、可选 weight 与 mean/sum/none reduction。
  • 通过 ACLNNTYPE aclnn_exclude 禁止构建系统生成 ACLNN,历史 ACLNN 用例转换为 Kernel 直调或 GEIR 用例。
  • Golden 按 LongTailInfo/Sinh/golden文件/sinh.py 的 TestSpec 结构改造,仅注册 Kernel/GEIR 共用的 raw op;计算顺序使用用户指定 sigmoid_focal_loss_grad_golden.py(SHA256 c10e2a95a87e50702f73091e3f6c57d9919496975c839e6fb978907c35faf35b),Torch 小算子组合注册为 third_party,FLOAT16/FLOAT 均采用 L0 cross_check。
  • 共性问题通过 COMMON_ISSUE_SCAN.md 跟踪,功能精度通过与完整转测准入分别裁决。

Acceptance Criteria(验收标准)

https://gitcode.com/cann/ops-nn/merge_requests/9433

likedislike
Yyulianjie成员
8月28日 添加了label:requirement
yulianjie成员
8月28日 评论:

/assign

likedislike
CANN-robotCANN-robot成员
8月28日 将 lianjieyu 设为负责人
Yyulianjie成员
8月28日 关联了pull request:[Ascend 950] SigmoidFocalLossGrad 算子迁移
Yyulianjie成员
8月29日 修改了issue 的描述
Yyulianjie成员
8月29日 修改了issue 的描述
CANN-robotCANN-robot成员
9月2日 关闭了 issue
CANN-robotCANN-robot成员
9月2日 添加了label:resolved