已合并
IsClose示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 #4696
IsClose示例改用C++ RAII资源管理,与IsFinite/IsInf示例风格对齐 #4696
已合并
sunday创建于 5 天前
sunday成员
5 天前

描述

math/is_close/examples 下的 aclnn 示例由手动资源管理改为 C++ RAII 管理,与同仓 math/is_finitemath/is_inf 示例风格保持一致。

测试

  • bash build.sh --run_example is_close eager --soc=ascend950:编译通过,在 Ascend950PR 上运行成功,输出符合预期(isclose 比较掩码 1,1,1,1,0,1,1,1 正确),示例正常退出。

文档更新

无。

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 sunday 的贡献)
Ssunday成员
5 天前 创建了 pull request,commit f30a7396
atomgit-bot
atomgit-bot
5 天前 评论:

变更摘要

本 PR 将 math/is_close/examples/test_aclnn_isclose.cpp 中的 ACLNN 示例从手动资源管理改造为 C++ RAII 风格,与同仓 math/is_finitemath/is_inf 示例保持一致。核心是引入基于 std::unique_ptr 的自定义删除器类型(StreamPtrDeviceMemPtrTensorPtr),并通过 std::shared_ptr 清理守卫统一管理设备初始化/复位与 aclFinalize,移除原先在 main 结尾处的显式 aclDestroyTensoraclrtFreeaclrtDestroyStreamaclrtResetDeviceaclFinalize 调用。

主要改动

  • 引入 RAII 智能指针类型: 新增 StreamPtrDeviceMemPtrTensorPtr 三个类型别名,分别以 aclrtDestroyStreamaclrtFreeaclDestroyTensor 作为自定义删除器,并在文件中补充 <memory><type_traits> 头文件。
  • 调整 Init 函数接口: Init 改为接收 StreamPtr& 引用,并新增 initializeddeviceSet 两个状态标志,内部通过 aclrtCreateStream 创建裸指针后调用 stream.reset(rawStream) 交由 RAII 管理。
  • 调整 CreateAclTensor 函数接口: 函数参数由裸指针输出参数改为 DeviceMemPtr&TensorPtr& 引用,先申请裸指针资源再 reset() 托管,并为 aclCreateTensor 增加空指针 CHECK_RET 校验。
  • 增加设备生命周期清理守卫: 在 main 中使用 std::shared_ptr<void> 类型的 aclGuard,通过捕获 deviceSetinitialized 标志,在作用域结束时自动执行 aclrtResetDeviceaclFinalize
  • 调用点统一改用 .get() 并删除手动释放: aclnnIsCloseGetWorkspaceSizeaclnnIsCloseaclrtSynchronizeStreamaclrtMemcpy 等接口调用均改为传入智能指针的 .get(),同时移除原先 main 末尾第 6、7 步的全部手动资源释放代码。
likedislike
atomgit-bot
atomgit-bot
5 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
5 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
5 天前 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
For more, you also can visit HICANN.


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
math/is_close zhangzijie, 王瑞 (2/2) zhangzijie, 王瑞 (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

zhou-qilong, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
5 天前 将FelixTang7,yue-ma,wangrui_,rxtfeng,loov1,zhangzijie,jia0liang,zl_hw,songkai111,chenxingyu18,pingchuantang,llimwang,gubaocheng,andong_hw,xuejinghui,zhanw_coding设为评审人
CANN-robotCANN-robot成员
5 天前 将FelixTang7,yue-ma,wangrui_,rxtfeng,loov1,zhangzijie,zl_hw,songkai111,chenxingyu18,pingchuantang,llimwang,gubaocheng,andong_hw,xuejinghui,zhanw_coding设为审查人
sunday成员
4 天前 评论:

compile

likedislike
Ssunday成员
4 天前 update merge request[project id: 7649531, iid: 4696, commit_id: 556056e528cae16c85dd38ae51af6eae297fea92] virtual merging success
CANN-robotCANN-robot成员
4 天前 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
4 天前 评论:

流水线任务触发成功
任务链接 [f3355288ff1b4d7bb042e0d1248a66fe][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_mobile_station_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_experimental_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_harmony-infer ✅ SUCCESS >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_experimental_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_910b ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_910c ✅ SUCCESS >>>>> >>>>>
Compile_X86_monitor_950 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_A5_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_A5_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_mobile_station_9030_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_single ✅ SUCCESS >>>>> >>>>>
UT_Test ✅ SUCCESS
UT_Test_experimental ✅ SUCCESS
UT_Test_kernel ✅ SUCCESS
PreSmoke_A900 ✅ SUCCESS >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_ATK_Test_A2 ✅ SUCCESS >>>>>

[2026-08-15 20:05:43]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
4 天前 评论:

流水线任务触发成功
任务链接 [f67ceefb252c4c5fa8fc35829934d01f][流水线指导]

任务名称状态日志下载链接
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_Pr ✅ SUCCESS
StaticCheck_codespell ✅ SUCCESS
StaticCheck_link_validity ✅ SUCCESS
StaticCheck_resource_existence ✅ SUCCESS
StaticCheck_tag_closed ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
codecheck_precommit ✅ SUCCESS >>>>>

[2026-08-15 19:54:00]    CI执行结束

likedislike
CANN-robotCANN-robot成员
4 天前 添加了label:api-check-pass
CANN-robotCANN-robot成员
4 天前 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
4 天前 添加了label:ci-pipeline-passed
Ssunday成员
2 天前 修改了pull request 的描述
Ssunday成员
2 天前 关联了issue:[Requirement|需求建议]: IsClose算子aclnn示例改为C++ RAII资源管理
zhangzijie成员
1 天前 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
1 天前 添加了label:approved
RuiWang_成员
1 天前 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
1 天前 添加了label:lgtm
CANN-robotCANN-robot成员
1 天前 关闭了关联的issue
CANN-robotCANN-robot成员
1 天前 合入了pull request