已合并
revert: 回退 PR !3807 删除 aclrtDim3 统一使用 dim3 #3937
yanmingxiang创建于 7月29日
revert: 回退 PR !3807 删除 aclrtDim3 统一使用 dim3 #3937
已合并
yanmingxiang创建于 7月29日
yanmingxiang成员
7月29日

Pull Request

描述

回退 PR !3807(refactor: 删除 aclrtDim3 统一使用 dim3,新增 SIMT API 参考文档,commit f5a5243a2)。

该 PR 删除了 aclrtDim3 类型定义并统一使用 dim3,同时新增了 SIMT API 参考文档。由于需要保留 aclrtDim3 类型,现回退此变更。

回退涉及 6 个文件:

  • include/external/acl/acl_rt.h:恢复 aclrtDim3 定义
  • src/acl/aclrt_impl/acl_rt_wrapper.h:恢复 dim3aclrtDim3
  • src/acl/aclrt_impl/kernel.cpp:恢复 dim3aclrtDim3
  • tests/ut/acl/testcase/acl_runtime_unittest.cpp:恢复 aclrtDim3 相关 UT
  • docs/zh/api_ref/14_kerne_loading_and_execution.md:恢复文档
  • docs/zh/api_ref/25-04_Structs.md:恢复文档

变更类型

关联的Issue

如何测试

  1. 编译验证
  2. UT 验证

核对清单

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 yanmingxiang 的贡献)
Yyanmingxiang成员
7月29日 创建了 pull request,commit eac0ab0f
atomgit-bot
atomgit-bot
7月29日 评论:

变更摘要

此 PR 回退了 PR !3807 的变更,恢复 aclrtDim3 类型的定义与使用。PR !3807 曾删除 aclrtDim3 并统一替换为 dim3(含 C++ 构造函数支持),但出于需保留 aclrtDim3 类型的原因,本次回退将所有 dim3 引用还原为 aclrtDim3,同时移除 dim3 的构造函数及条件编译保护,并删除对应的构造行为单元测试。

主要改动

  • 恢复 aclrtDim3 类型定义:在 include/external/acl/acl_rt.h 中,删除带 C++ 构造函数与 #ifndef __BISHENG_CCEC__ 条件编译的 dim3 结构体,恢复为无构造函数的 aclrtDim3 结构体(含 xyz 三个 uint32_t 成员)。
  • 恢复 SIMT 内核 API 参数类型:在 acl_rt_wrapper.h 的宏定义和 kernel.cpp 的实现中,将 aclrtLaunchSIMTKernelWithArgsArrayaclrtLaunchSIMTKernelWithHostArgsgridDimblockDim 参数类型从 dim3 还原为 aclrtDim3
  • 修复单元测试:在 acl_runtime_unittest.cpp 中,将所有 SIMT 内核测试用例中的 dim3 变量声明替换回 aclrtDim3,并移除针对 dim3 默认构造函数、部分参数构造函数和全参数构造函数的三项测试用例。
  • 恢复 API 参考文档:在 docs/zh/api_ref/14_kerne_loading_and_execution.mddocs/zh/api_ref/25-04_Structs.md 中恢复与 aclrtDim3 相关的文档内容。
likedislike
atomgit-bot
atomgit-bot
7月29日 评论:

代码审查

经过全面审查,所有 6 个变更文件均已检查完毕。以下是我的分析:


逐文件审查结果

1. include/external/acl/acl_rt.h

  • dim3aclrtDim3 类型定义恢复正确,移除了 __BISHENG_CCEC__ 守卫和 C++ 构造函数(恢复至 C 语言纯结构体形态)
  • 两个 SIMT API 函数签名中 dim3aclrtDim3 参数类型恢复正确
  • aclrtPlaceHolderInfo 结构体定义未变更,仍位于第 749-752 行
  • 所有变更与其余文件一致

结论:无问题。

2. src/acl/aclrt_impl/acl_rt_wrapper.h

  • wrapper 宏中 dim3aclrtDim3 类型替换正确
  • 两个 SIMT API 的宏定义与头文件声明一致

结论:无问题。

3. src/acl/aclrt_impl/kernel.cpp

  • aclrtLaunchSIMTKernelWithArgsArrayImplaclrtLaunchSIMTKernelWithHostArgsImpl 两个实现函数签名中 dim3aclrtDim3 替换正确
  • 函数体内部的 gridDim.x/y/zblockDim.x/y/z 字段访问无需变更(结构体成员名相同)
  • static_cast<uint32_t>(argsSize)static_cast<uint32_t>(placeHolderNum) 是已有的窄化转换,不在本次 diff 变更范围内

结论:无问题。

4. tests/ut/acl/testcase/acl_runtime_unittest.cpp

  • 所有 SIMT kernel 测试用例中 dim3aclrtDim3 替换正确
  • 移除了三个 dim3 构造函数测试(dim3_default_constructor_initializes_to_onedim3_partial_args_constructordim3_full_args_constructor),因为 aclrtDim3 是纯 C 结构体,无构造函数
  • 测试调用处的类型与函数签名完全匹配

结论:无问题。

5. docs/zh/api_ref/14_kerne_loading_and_execution.md

  • TOC 中移除了两个 SIMT API 条目
  • launch_kernel_comparison 锚点和 SIMT 行已移除
  • 各 Launch 接口的"参考资源"小节中,跨引用恢复为内联对比表(去除了 SIMT 行),语义一致
  • aclrtLaunchKernelWithHostArgsplaceHolderArray 参数,aclrtPlaceHolderInfo 文档恢复为内联定义
  • 两个 SIMT API 的完整文档章节(aclrtLaunchSIMTKernelWithArgsArrayaclrtLaunchSIMTKernelWithHostArgs)已移除
  • 无悬空的跨引用(已确认 launch_kernel_comparison25-04_Structs.md#dim325-04_Structs.md#aclrtPlaceHolderInfo 均无残留引用)

结论:无问题。

6. docs/zh/api_ref/25-04_Structs.md

  • TOC 中移除了 aclrtPlaceHolderInfodim3
  • 两个结构体的完整文档条目已移除
  • 文件以 aclrtUuid 正常结束

结论:无问题。


关闭摘要

  • P0:0 个
  • P1:0 个
  • P2:0 个
  • P3:0 个

整体风险判断:低。 这是一次干净的回退操作,所有类型名称从 dim3 恢复到 aclrtDim3,所有文档、实现和测试一致。SIMT API 文档被移除(这些文档原本就是被回退的 PR 新增的),API 声明和实现仍然保留。跨文件引用和类型一致性均已验证,未发现任何正确性、安全性或可靠性问题。

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

💬 仅评论

likedislike
CANN-robotCANN-robot成员
7月29日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月29日 评论:

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


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
docs 卢煜坤, 王涛 (2/2) 王涛, 卢煜坤 (2/1)
include/external/acl shikai-1, 卢煜坤 (2/2) shikai-1 (1/1)
src/acl 卢煜坤, 王涛 (2/2) 王涛, 卢煜坤 (2/1)
tests/ut/acl 卢煜坤, 王涛 (2/2) 王涛, 卢煜坤 (2/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
CANN-robotCANN-robot成员
7月29日 将zhaozhixuan,wda1991,wangtao43,zhangpengpeng8,changhaixun,vaceciliachen,turing_yhy,Henry_ascend,Reyn52166,Turing_JasonWen,phy-zhao,WangHuiH,shikai-1,Axiaolei,ykl999,sunnana_004434229,YzQnWyx,houyanbao,wangluyao17,zhou-wuxiao,tingwood,liubin1986设为评审人
CANN-robotCANN-robot成员
7月29日 将zhaozhixuan,wda1991,wangtao43,zhangpengpeng8,changhaixun,vaceciliachen,turing_yhy,Henry_ascend,Reyn52166,Turing_JasonWen,phy-zhao,WangHuiH,shikai-1,Axiaolei,ykl999,sunnana_004434229,YzQnWyx,houyanbao,wangluyao17,zhou-wuxiao,tingwood,liubin1986设为审查人
yanmingxiang成员
7月29日 评论:

/compile

likedislike
Yyanmingxiang成员
7月29日 update merge request[project id: 8810053, iid: 3937, commit_id: 83e6596d06242aa2a6dd0cac6cc993b1caf092cb] virtual merging success
CANN-robotCANN-robot成员
7月29日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月29日 评论:

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

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
UT_Test_acl ✅ SUCCESS >>>>>
UT_Test_rts_v201 ✅ SUCCESS >>>>>
UT_Test_rts_c ✅ SUCCESS >>>>>
UT_Test_rts_david ✅ SUCCESS >>>>>
UT_Test_rts_910b ✅ SUCCESS >>>>>
UT_Test_rts_common ✅ SUCCESS >>>>>
UT_Test_platform ✅ SUCCESS >>>>>
UT_Test_qs ✅ SUCCESS >>>>>
UT_Test_aicpusd ✅ SUCCESS >>>>>
UT_Test_tsd ✅ SUCCESS >>>>>
UT_Test_error_manager ✅ SUCCESS >>>>>
UT_Test_slog ✅ SUCCESS >>>>>
UT_Test_atrace ✅ SUCCESS >>>>>
UT_Test_msprof_part2 ✅ SUCCESS
UT_Test_adump ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>
UT_Test_camodel_check ✅ SUCCESS
API_Check ⚠️ WARNING >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-29 21:07:43]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月29日 评论:

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

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

[2026-07-29 20:40:22]    CI执行结束

likedislike
ykl999
ykl999成员
7月29日 评论:

/approve
/lgtm

likedislike
shikai成员
7月29日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月29日 添加了label:approved
atomgit-bot
atomgit-bot7月29日进行代码检视1
docs/zh/api_ref/14_kerne_loading_and_execution.md
@@ -45,4 +45,2 @@
4545- [`aclError aclrtGetFuncBySymbol(const void *symbol, aclrtFuncHandle *funcHandle)`](#aclrtGetFuncBySymbol):根据核函数名获取核函数句柄。
46-- [`aclError aclrtLaunchSIMTKernelWithArgsArray(void *func, dim3 gridDim, dim3 blockDim, size_t dynUbufSize, aclrtStream stream, aclrtLaunchKernelCfg *cfg, void **args)`](#aclrtLaunchSIMTKernelWithArgsArray):使用参数数组启动SIMT核函数计算任务,异步接口。
47-- [`aclError aclrtLaunchSIMTKernelWithHostArgs(void *func, dim3 gridDim, dim3 blockDim, size_t dynUbufSize, aclrtStream stream, aclrtLaunchKernelCfg *cfg, void *hostArgs, size_t argsSize, aclrtPlaceHolderInfo *placeHolderArray, size_t placeHolderNum)`](#aclrtLaunchSIMTKernelWithHostArgs):使用Host参数启动SIMT核函数计算任务,异步接口。
4846 
atomgit-bot
atomgit-bot7月29日评论:

🟡 Medium Priority

变更行:diff 中删除了 docs/zh/api_ref/14_kerne_loading_and_execution.mdaclrtLaunchSIMTKernelWithArgsArrayaclrtLaunchSIMTKernelWithHostArgs 两个 API 的完整参考文档章节(含功能说明、参数说明、返回值说明、约束说明、参考资源),同时从文件顶部的接口列表和 Launch 接口对比表中移除了这两个 API 的条目。

影响:这两个 API 仍然作为公开接口存在于 include/external/acl/acl_rt.h 中(带有 ACL_FUNC_VISIBILITY 和 doxygen 注释),但在 docs/zh/api_ref/ 下的接口参考文档中已无任何说明。用户查阅《核函数加载与执行》文档时将找不到这两个 API 的用法、参数约束和返回值说明,仅能依赖头文件中的简要 doxygen 注释。

触发条件:用户通过文档了解 AscendCL Runtime 核函数启动 API 时,会遗漏这两个 SIMT 专用接口。

建议:如果确认这两个 SIMT API 应保留文档,则恢复其参考章节并将类型从 dim3 改为 aclrtDim3;如果当前有意不公开文档(例如 API 仍为实验性),则无需修改。

likedislike
wangtao成员
7月29日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月29日 添加了label:lgtm
yanmingxiang成员
7月29日 评论:

/compile

likedislike
CANN-robotCANN-robot成员
7月29日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月29日 添加了label:api-check-failed
Yyanmingxiang成员
7月29日 解决了最后一个问题
CANN-robotCANN-robot成员
7月29日 删除了label:api-check-failed
CANN-robotCANN-robot成员
7月29日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月29日 评论:

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

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
UT_Test_acl ✅ SUCCESS >>>>>
UT_Test_rts_v201 ✅ SUCCESS >>>>>
UT_Test_rts_c ✅ SUCCESS >>>>>
UT_Test_rts_david ✅ SUCCESS >>>>>
UT_Test_rts_910b ✅ SUCCESS >>>>>
UT_Test_rts_common ✅ SUCCESS >>>>>
UT_Test_platform ✅ SUCCESS >>>>>
UT_Test_qs ✅ SUCCESS >>>>>
UT_Test_aicpusd ✅ SUCCESS >>>>>
UT_Test_tsd ✅ SUCCESS >>>>>
UT_Test_error_manager ✅ SUCCESS >>>>>
UT_Test_slog ✅ SUCCESS >>>>>
UT_Test_atrace ✅ SUCCESS >>>>>
UT_Test_msprof_part1 ✅ SUCCESS
UT_Test_msprof_part2 ✅ SUCCESS
UT_Test_adump ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>
UT_Test_camodel_check ✅ SUCCESS
API_Check ⚠️ WARNING >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>
UT_Test_rts_report ✅ SUCCESS >>>>>
UT_Test_msprof_report ✅ SUCCESS >>>>>

[2026-07-29 21:19:03]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月29日 评论:

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

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

[2026-07-29 21:10:46]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月29日 添加了label:api-check-failed
CANN-robotCANN-robot成员
7月29日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月29日 添加了label:ci-pipeline-passed
CANN-robotCANN-robot成员
7月29日 合入了pull request