| fix(nn): release resources on init failure in aclnn examples and docs Co-authored-by: wangjun03<wangjun01@nuaa.edu.cn> # message auto-generated for no-merge-commit merge: !8693 merge fix/init-failure-resource-release-nn into master fix(nn): release resources on init failure in aclnn examples and docs Created-by: wangjun03 Commit-by: wangjun03 Merged-by: cann-robot Description: ## 描述 修复 NN/Transformer 类算子调用示例在初始化失败场景下资源释放不完整的问题。 - aclrtSetDevice 失败时,在返回前调用 aclFinalize,释放已初始化的 ACL 资源。 - aclrtCreateStream 失败时,在返回前依次调用 aclrtResetDevice 和 aclFinalize,释放已设置的 Device 及 ACL 资源。 - 保留原有 CHECK_RET 写法和正常执行路径的资源释放顺序。 - 同步修改文档示例和对应的可执行示例源码,保证两处代码一致。 本次修改参考仓库内 PR #8603(aclnnSoftmax)的修复方式,仅补齐资源释放逻辑,不涉及算子 Tiling、Kernel 和计算功能变更。 ## 涉及算子 ### activation(4 个算子,8 个文件) - **SoftmaxV2**:aclnnSoftmax - **LogSoftmaxV2**:aclnnLogSoftmax - **SoftmaxGrad**:aclnnSoftmaxBackward - **LogSoftmaxGrad**:aclnnLogSoftmaxBackward ### norm(23 个算子,56 个文件) - **GroupNormGrad**:aclnnGroupNormBackward - **LpNormV2**:aclnnLinalgVectorNorm、aclnnNorm - **LayerNormV4**:aclnnLayerNorm、aclnnFastLayerNorm - **LayerNormGradV3**:aclnnLayerNormBackward - **AddLayerNorm**:aclnnAddLayerNorm - **AddLayerNormQuant**:aclnnAddLayerNormQuant - **AddRmsNorm**:aclnnAddRmsNorm - **AddRmsNormCast**:aclnnAddRmsNormCast - **AddRmsNormQuant**:aclnnAddRmsNormQuant - **AddRmsNormDynamicQuant**:aclnnAddRmsNormDynamicQuant、aclnnAddRmsNormDynamicQuantV2 - **AddRmsNormDynamicMxQuant**:aclnnAddRmsNormDynamicMxQuant - **RmsNormDynamicMxQuant**:aclnnRmsNormDynamicMxQuant - **RmsNormGradQuant**:aclnnRmsNormGradQuant - **RmsNormQuantV3**:aclnnRmsNormQuantV3 - **BatchNormV3**:aclnnBatchNorm、aclnnBatchNormElemt - **BatchNormGradV3**:aclnnBatchNormBackward、aclnnFastBatchNormBackward - **RmsNorm**:aclnnRmsNorm - **RmsNormGrad**:aclnnRmsNormGrad - **InplaceAddRmsNorm**:aclnnInplaceAddRmsNorm - **SyncBatchNormBackwardElemt**:aclnnBatchNormElemtBackward - **SyncBatchNormBackwardReduce**:aclnnBatchNormReduceBackward - **SyncBatchNormGatherStats**:aclnnSyncBatchNormGatherStats ### experimental 镜像(8 个文件) - experimental/activation: LogSoftmaxV2 - experimental/loss: SoftmaxGrad - experimental/norm: SyncBatchNormBackwardElemt、SyncBatchNormBackwardReduce、SyncBatchNormGatherStats ## 关联的 Issue Issue #4745 ## 测试 - git diff --check:通过。 - 本次仅修改调用示例的异常处理逻辑,未执行 NPU 运行测试。 ## 文档更新 - 更新上述算子 docs/ 目录下的 aclnn*.md 中的调用示例。 - 同步更新 examples/ 目录下的 test_aclnn_*.cpp 可执行示例源码。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8693 | 12 天前 |