已合并
特性分支helpers.h文件修改 #5511
特性分支helpers.h文件修改 #5511
已合并
treefei创建于 8月31日
treefei
treefei成员
8月31日

描述

关联的Issue

测试

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 treefei 的贡献)
treefeitreefei成员
8月31日 创建了 pull request,commit 06de18b1
atomgit-bot
atomgit-bot
8月31日 评论:

变更摘要

本 PR 在特性分支上重构了 helpers.h 的接口组织方式:新增公开头文件 include/c_api/utils/helpers.h 与内部实现头文件 impl/c_api/utils/helpers_impl.h,将 C API 辅助函数 asc_vf_call 的声明与实现分离,并调整 include/c_api/asc_simd.h 的头文件引用路径。核心逻辑是新增的 asc_vf_call 模板(及内部实现 asc_vf_call_impl),用于在 AIV 场景下统一封装 SIMD 向量函数调用,并在调试特性启用时自动执行 AscVFDebugInitUb 初始化、AscVFDebugTransferUb 溢出检测及告警打印。两个新增头文件还引入了 ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS 内部头文件保护机制,防止内部实现头被直接引用。

主要改动

  • 新增公开头文件 include/c_api/utils/helpers.h:在 asc::c_api 命名空间中声明 asc_vf_call 模板函数(转发 funcPtr 与变参),并在文件末尾包含内部实现头 impl/c_api/utils/helpers_impl.h,构成声明与实现的分离。
  • 新增内部实现头 impl/c_api/utils/helpers_impl.h:在 asc::c_api::details 命名空间中实现 asc_vf_call_impl,当 SimdVfDebugTraits<DebugTag>::enabled 为真时依次调用 AscVFDebugInitUb 初始化调试缓冲区、AscVFDebugTransferUb 传输并检测溢出,且在启用 ASCENDC_INTERNAL_SIMD_VF_OVERFLOW_WARNING_ENABLED 宏时通过 printf_impl 打印 2KB 上限溢出的告警信息;外层 asc_vf_call 仅在 ASCEND_IS_AIV 条件下派发执行。
  • 调整 include/c_api/asc_simd.h 的头文件引用:将原有 #include "utils/base/helpers.h" 替换为 #include "c_api/utils/helpers.h",使 SIMD 相关公共头文件改从新的 C API helpers 路径引入辅助函数。
  • 引入内部头文件使用保护机制:新增的 helpers.h 与 helpers_impl.h 均通过 ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS 宏进行守卫,直接包含内部实现头时会产生编译告警,提示改用公开接口 c_api/utils/helpers.h。
likedislike
不准确?
atomgit-bot
atomgit-bot
8月31日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
treefei
treefei成员
8月31日 评论:

compile

likedislike
treefeitreefei成员
8月31日 预合并成功(commit_id: e7d69bb2e0f4a6461cf9e2c49a570132c2e97f8c)
此处折叠了58条消息 查看更多
hyolee成员
9月4日 评论:

/approve

likedislike
CANN-robot
CANN-robot成员
9月4日 评论:

The following users do not have permission to comment /lgtm or /approve on any module in this PR:
hyolee

likedislike
hyolee成员
9月4日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
9月4日 添加了label:lgtm
CANN-robotCANN-robot成员
9月4日 合入了pull request