已合并
fix(nn): release resources on init failure in aclnn examples and docs #8693
苏世创建于 18 天前
fix(nn): release resources on init failure in aclnn examples and docs #8693
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 苏世 的贡献)18 天前 关联了issue:[Bug-Report|缺陷反馈]: aclnnSoftmax示例初始化失败时资源释放不完整
atomgit-bot
18 天前 评论:
18 天前 评论:
变更摘要
本 PR 主要修复 NN/Transformer 类算子 aclnn 调用示例在初始化失败场景下资源释放不完整的问题。通过调整 examples/ 下多个 test_aclnn_*.cpp 的 Init 函数,在 aclrtSetDevice 失败时补充 aclFinalize(),在 aclrtCreateStream 失败时补充 aclrtResetDevice(deviceId) 与 aclFinalize(),覆盖 activation、norm 及 experimental 镜像下的示例源码,并同步保持文档示例与可执行示例一致。本次改动仅涉及调用示例的异常清理逻辑,不影响算子 Tiling、Kernel 和计算功能。
主要改动
aclrtSetDevice失败分支补充清理: 各示例的Init函数中,当aclrtSetDevice返回非ACL_SUCCESS时,在返回前新增aclFinalize()调用,释放已初始化的 ACL 资源。aclrtCreateStream失败分支补充清理: 当aclrtCreateStream返回非ACL_SUCCESS时,在返回前依次新增aclrtResetDevice(deviceId)和aclFinalize()调用,释放已设置的 Device 与 ACL 资源。- 统一多类算子示例的异常处理: activation、norm 及 experimental 镜像下的多个
test_aclnn_*.cpp示例采用相同的Init失败清理逻辑,同时保留原有CHECK_RET写法与正常执行路径的资源释放顺序。


atomgit-bot
18 天前 评论:
18 天前 评论:
18 天前 添加了label:cann-cla/yes
此处折叠了114条消息 查看更多
CANN-robot
7 天前 评论:
7 天前 评论:
流水线任务触发成功
任务链接 [a3126ef409c14b838098b06da4c7fdda][流水线指导]
| 任务名称 | 状态 | 日志 | 下载链接 |
|---|---|---|---|
| antipoison | ✅ SUCCESS | >>>>> | |
| codecheck_checkpr | ✅ SUCCESS | ||
| StaticCheck_codespell | ✅ SUCCESS | ||
| StaticCheck_link_validity | ✅ SUCCESS | ||
| StaticCheck_resource_existence | ✅ SUCCESS | ||
| StaticCheck_tag_closed | ✅ SUCCESS | ||
| StaticCheck_markdownlint | ✅ SUCCESS | ||
| codecheck_precommit | ✅ SUCCESS | >>>>> | |
| SCA | ✅ SUCCESS | >>>>> |
[2026-08-24 17:29:45] CI执行结束


7 天前 添加了label:api-check-pass
7 天前 删除了label:ci-pipeline-running
7 天前 添加了label:ci-pipeline-passed
7 天前 合入了pull request
描述
修复 NN/Transformer 类算子调用示例在初始化失败场景下资源释放不完整的问题。
aclrtSetDevice失败时,在返回前调用aclFinalize,释放已初始化的 ACL 资源。aclrtCreateStream失败时,在返回前依次调用aclrtResetDevice和aclFinalize,释放已设置的 Device 及 ACL 资源。CHECK_RET写法和正常执行路径的资源释放顺序。本次修改参考仓库内 PR #8603(aclnnSoftmax)的修复方式,仅补齐资源释放逻辑,不涉及算子 Tiling、Kernel 和计算功能变更。
涉及算子
activation(4 个算子,8 个文件)
norm(23 个算子,56 个文件)
experimental 镜像(8 个文件)
关联的 Issue
Issue #4745
测试
git diff --check:通过。文档更新
docs/目录下的aclnn*.md中的调用示例。examples/目录下的test_aclnn_*.cpp可执行示例源码。类型标签
AI/Agent生成声明