Merged
feat: 补充部分算子缺失的 aclnn API 示例 #4575
feat: 补充部分算子缺失的 aclnn API 示例 #4575
Merged
zhangqijia1Add on Aug 11
zhangqijia1Collaborators
Aug 11

描述

补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例:

  • 新增 8 个缺失的 aclnn API 示例。
  • 将已有的 4 个示例调整为 CI 可识别的 test_aclnn_*.cpp 命名,并修正 BatchNormStats 示例文件名。
  • 根据 Cdist 已有 AscendC kernel 实现,完善其 README 的产品支持、功能公式、参数及约束说明。
  • 更新相关算子 README 中的调用入口。

关联的Issue

https://gitcode.com/cann/ops-math/issues/2281

测试

文档更新

  • 更新 10 个算子目录下的 README.md,补充 aclnn 示例链接及对应 API 文档入口。
  • 重写 Cdist README,删除“仅包含 aclnn 接口”的过期说明,并按仓内算子格式补充产品支持、功能、参数和约束。

类型标签

likedislike
Pull Request has been successfully merged by CANN-robot.
(Thank you for zhangqijia1's contribution.)
Zzhangqijia1Collaborators
Aug 11 Created pull request, commit c7b6e797
Zzhangqijia1Collaborators
Aug 11 Associated issue: [Requirement|需求建议]: 补充部分算子缺失的aclnnapi example
atomgit-bot
atomgit-bot
Aug 11 Comments:

变更摘要

本次 PR 针对 Issue #2281 中列出的 10 个算子,补充了 13 个 aclnn API 的调用示例。主要工作包括:新增 9 个缺失算子的 test_aclnn_*.cpp 示例文件,将已有 4 个示例重命名为 CI 可识别的规范命名并修正文件头 License 格式,以及同步更新 10 个算子目录下共 11 个 README.md 中的示例链接与 API 文档入口。

主要改动

  • 新增 9 个 aclnn API 示例文件:为 diag、amp_update_scale、angle_v2、histc、search_sorted、search_sorteds、silent_check、silent_check_v2、topk 等算子补充完整的 test_aclnn_*.cpp 示例,涵盖标准的两段式调用流程(GetWorkspaceSize + 执行接口)、资源初始化、数据拷贝与结果打印。
  • 已有示例重命名为 CI 兼容格式:将 cdist、reduce_nansum、batch_norm_stats(原 BatchNormStats)、std_mean_correction 的示例文件统一重命名为 test_aclnn_*.cpp,确保能被 CI 自动识别和编译。
  • 统一 License 文件头格式:对重命名的 4 个已有示例文件,将原本不规范的文件头注释修正为与其他示例一致的 CANN Open Software License Agreement Version 2.0 标准格式,并补充文件末尾的换行符。
  • 更新算子 README 中的调用入口:同步修改 10 个算子目录下的 README.md,补充对应的 aclnn 示例链接及 API 文档入口,保持文档与代码示例的一致性。
likedislike
Incorrect?
atomgit-bot
atomgit-bot
Aug 11 Comments:

代码审查

审查结束 —— 汇总

逐文件审查结果

文件 审查结果
conversion/diag_v2/examples/test_aclnn_diag.cpp 无新增问题
math/amp_update_scale/examples/test_aclnn_amp_update_scale.cpp 无新增问题
math/angle_v2/examples/test_aclnn_angle_v2.cpp 无新增问题
math/cdist/examples/test_aclnn_cdist.cpp 仅 License 头 + 行尾换行,无新增问题
math/histogram_v2/examples/test_aclnn_histc.cpp 1 个 P2 问题(见上)
math/reduce_nansum/examples/test_aclnn_reduce_nansum.cpp 仅 License 头 + 行尾换行,无新增问题
math/reduce_std_with_mean/examples/test_aclnn_batch_norm_stats.cpp 仅 License 头 + 行尾换行,无新增问题
math/reduce_std_with_mean/examples/test_aclnn_std_mean_correction.cpp 仅 License 头 + 行尾换行,无新增问题

分级统计

  • P0: 0
  • P1: 0
  • P2: 1(aclCreateScalar 失败时返回错误退出码)
  • P3: 0

整体风险判断

低风险。仅一个 P2 问题位于新增的示例文件 test_aclnn_histc.cpp 中,影响范围局限于该示例在 aclCreateScalar 失败时无法正确报告错误。其余 7 个文件均无新增问题。建议在合入前修复上述 P2 问题。


审查完毕总结

共审查 5 个变更文件,报告 6 个问题:

优先级 数量 说明
P2 1 selfDeviceAddr 内存泄漏(search_sorted)
P3 5 注释复制粘贴错误 ×2(silent_check)、const 正确性 ×2(silent_check_v2)、Init 返回值比较不一致 ×1(topk)

逐文件确认:

  • math/search_sorted/examples/test_aclnn_search_sorted.cpp:发现 1 个 P2 问题(selfDeviceAddr 泄漏)
  • math/search_sorted/examples/test_aclnn_search_sorteds.cpp:无问题
  • math/silent_check/examples/test_aclnn_silent_check.cpp:发现 2 个 P3 问题(注释中 "aclnnAdd" 应为 "aclnnSilentCheck")
  • math/silent_check_v2/examples/test_aclnn_silent_check_v2.cpp:发现 2 个 P3 问题(GetShapeSize 和 CreateAclTensor 缺少 const 限定)
  • math/topk/examples/test_aclnn_topk.cpp:发现 1 个 P3 问题(Init 返回值用 ACL_SUCCESS 而非 0 比较)

整体风险评估:低风险。 唯一的 P2 问题是 device 内存泄漏,每次运行泄漏约 32 字节,不影响功能正确性。其余 P3 问题均为代码质量/一致性改进,不影响运行时行为。五个新增示例的 API 调用逻辑和资源管理整体正确。

类型 数量
🔴 阻塞 0
🟡 建议 13

💬 仅评论

likedislike
Incorrect?
CANN-robotCANN-robotCollaborators
Aug 11 Added label: cann-cla/yes
87 messages are collapsed here。 See more
CANN-robotCANN-robotCollaborators
Aug 18 Added label: lgtmapproved
CANN-robot
CANN-robotCollaborators
Aug 18 Comments:

The MR can not be merged, because of CodeReview discussion not resolved

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
Zzhangqijia1Collaborators
Aug 18 Resolved final issue
CANN-robotCANN-robotCollaborators
Aug 18 Closed associated issue
CANN-robotCANN-robotCollaborators
Aug 18 Merged pull request