Closed
[Bug-Report|缺陷反馈]: kernel编码:使用TILING_KEY_IS宏或包含#if TILING_KEY_VAR的内联函数需添加static关键字(BroadcastTo、PadV3算子) #3548
gylAdd on  29 days agoClosed at  27 days ago
gyl
gylCollaborators
29 days ago Create

一、问题描述 (必填)

kernel 编码中,使用了 TILING_KEY_IS 宏的内联函数,以及包含 #if TILING_KEY_VAR 的内联函数,需添加 static 关键字(内部链接)。此类内联函数依赖编译单元内的 tiling key 状态(分析),在-g 0的场景下,会进入错误的内联函数,导致精度有问题。

受影响算子:BroadcastTo、PadV3。经扫描,当前 master 命中位置如下(均为"使用 TILING_KEY_IS 宏"形态;#if TILING_KEY_VAR 形态当前未命中,修复时如有同类函数请一并按规范处理):

  1. conversion/broadcast_to/op_kernel/arch35/broadcast_to.h 第 40 行:__aicore__ void inline broadcast_to_impl(...),函数体(L57~L91)使用 TILING_KEY_IS,缺少 static
  2. conversion/pad_v3/op_kernel/arch35/pad_slice.h 第 237 行:__aicore__ inline void RunPadSliceProcess(...),函数体(L242~L266)使用 TILING_KEY_IS,缺少 static。

二、环境信息 (可选)

  • 仓库分支:cann/ops-math master
  • 昇腾硬件型号 / CANN 版本 / 操作系统:不涉及(纯编码规范问题)

三、重现步骤 (可选)

查看上述两个文件的对应行函数声明即可。

四、预期结果 (可选)

上述内联函数声明添加 static,形如 static __aicore__ inline void ...,修改后编译通过、算子功能与精度不受影响。

💡 备注:本地同名仓库已有按 static __aicore__ inline 方式修改的参考实现(broadcast_to_impl / RunPadSliceProcess),可供修复参考。

likedislike
gylgylCollaborators
29 days ago Added label: bug-report
YyangjinwenCollaborators
29 days ago Assign guyunlong1 as responsible person
gylgylCollaborators
29 days ago Associated pull request
CANN-robotCANN-robotCollaborators
27 days ago Close issue
CANN-robotCANN-robotCollaborators
27 days ago Added label: resolved