Closed
[Bug-Report|缺陷反馈]: kernel编码:使用TILING_KEY_IS宏或包含#if TILING_KEY_VAR的内联函数需添加static关键字(BroadcastTo、PadV3算子)
#3548
gylAdd on 29 days agoClosed at 27 days ago
29 days ago Added label: bug-report
29 days ago Assign guyunlong1 as responsible person
29 days ago Associated pull request
27 days ago Close issue
27 days ago Added label: resolved
一、问题描述 (必填)
kernel 编码中,使用了
TILING_KEY_IS宏的内联函数,以及包含#if TILING_KEY_VAR的内联函数,需添加static关键字(内部链接)。此类内联函数依赖编译单元内的 tiling key 状态(分析),在-g 0的场景下,会进入错误的内联函数,导致精度有问题。受影响算子:BroadcastTo、PadV3。经扫描,当前 master 命中位置如下(均为"使用 TILING_KEY_IS 宏"形态;
#if TILING_KEY_VAR形态当前未命中,修复时如有同类函数请一并按规范处理):conversion/broadcast_to/op_kernel/arch35/broadcast_to.h第 40 行:__aicore__ void inline broadcast_to_impl(...),函数体(L57~L91)使用TILING_KEY_IS,缺少staticconversion/pad_v3/op_kernel/arch35/pad_slice.h第 237 行:__aicore__ inline void RunPadSliceProcess(...),函数体(L242~L266)使用TILING_KEY_IS,缺少static。二、环境信息 (可选)
三、重现步骤 (可选)
查看上述两个文件的对应行函数声明即可。
四、预期结果 (可选)
上述内联函数声明添加
static,形如static __aicore__ inline void ...,修改后编译通过、算子功能与精度不受影响。💡 备注:本地同名仓库已有按
static __aicore__ inline方式修改的参考实现(broadcast_to_impl / RunPadSliceProcess),可供修复参考。