Merged
feat: 补充部分算子缺失的 aclnn API 示例 #4575
zhangqijia1Add on Aug 11
feat: 补充部分算子缺失的 aclnn API 示例 #4575
Merged
Pull Request has been successfully merged by CANN-robot.
(Thank you for zhangqijia1's contribution.)Aug 11 Created pull request, commit c7b6e797
Aug 11 Associated issue: [Requirement|需求建议]: 补充部分算子缺失的aclnnapi example
atomgit-bot
Aug 11 Comments:
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 文档入口,保持文档与代码示例的一致性。


Incorrect?
atomgit-bot
Aug 11 Comments:
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 |
💬 仅评论


Incorrect?
Aug 11 Added label: cann-cla/yes
87 messages are collapsed here。 See more
Aug 18 Added label: lgtmapproved
CANN-robot
Aug 18 Comments:
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.


Aug 18 Resolved final issue
Aug 18 Closed associated issue
Aug 18 Merged pull request
描述
补充 Issue #2281 中归属 ops-math 的 10 个算子、12 个 aclnn API 调用示例:
test_aclnn_*.cpp命名,并修正BatchNormStats示例文件名。关联的Issue
https://gitcode.com/cann/ops-math/issues/2281
测试
文档更新
类型标签