math/segsum/op_kernel/arch35/segsum.h(A5/arch35)与 math/segsum/op_kernel/segsum.h(A2)基名完全相同。两份头文件都可能出现在内核编译的头文件搜索路径上,#include "segsum.h" 的落点依赖 include 顺序;检视、排障时也无法从文件名分辨属于哪一代实现。
math/segsum/op_kernel/arch35/segsum.h
math/segsum/op_kernel/segsum.h
#include "segsum.h"
仓内现状:248 个含 op_kernel/arch35 的算子中,仅 4 个存在这种同名(mul_addn、pad_v3_grad_replication、exp_segsum_grad、segsum),其余均在 arch35 侧另起名,例如 conversion/slice/op_kernel/arch35/slice_arch35.h。
op_kernel/arch35
conversion/slice/op_kernel/arch35/slice_arch35.h
消除同名头文件带来的 include 歧义风险,使文件名自带代次信息,与本算子 host 侧既有命名(op_host/arch35/segsum_tiling_arch35.cpp/.h)保持一致,降低后续检视与维护成本。
op_host/arch35/segsum_tiling_arch35.cpp/.h
本算子对外经 aclnn 直调:aclnnExpSegsumGetWorkspaceSize / aclnnExpSegsum(math/segsum/op_host/op_api/aclnn_segsum.h)。本需求仅涉及内核源码文件命名,不新增、不变更任何使能路径。
aclnnExpSegsumGetWorkspaceSize
aclnnExpSegsum
math/segsum/op_host/op_api/aclnn_segsum.h
按 op_host/segsum_def.cpp:ascend910b / ascend910_93 / ascend950 上 x、y 为 FLOAT16、FLOAT、BFLOAT16;kirinx90 / kirin9030 为 FLOAT16、FLOAT。本需求不改变支持面。
op_host/segsum_def.cpp
不涉及。host 侧 tiling 已按代次分目录并区分命名(op_host/arch22/segsum_tiling.*、op_host/arch35/segsum_tiling_arch35.*)。
op_host/arch22/segsum_tiling.*
op_host/arch35/segsum_tiling_arch35.*
op_kernel/arch35/segsum.h 更名为 segsum_arch35.h,op_kernel/arch35/segsum.cpp 的 include 跟随更名。include guard(SEGSUM_ARCH35_H)与命名空间(SegsumArch35)本就带代次标识,无需改动;入口源文件 arch35/segsum.cpp 与内核入口函数名 segsum 均保持不变(.cpp 不被 include,由 CMakeLists 的 KERNEL_SRC 按显式路径编译)。A2 侧 op_kernel/segsum.{cpp,h} 不改动。
op_kernel/arch35/segsum.h
segsum_arch35.h
op_kernel/arch35/segsum.cpp
SEGSUM_ARCH35_H
SegsumArch35
arch35/segsum.cpp
segsum
.cpp
KERNEL_SRC
op_kernel/segsum.{cpp,h}
op_host/segsum_def.cpp 注册 ascend910b、ascend910_93、ascend950、kirinx90、kirin9030;本次仅触及 arch35(ascend950)侧的文件命名。
无新增约束。纯文件重命名,不改变算子行为、支持面与接口。
关联 PR:https://gitcode.com/cann/ops-math/pull/5035
/assign @zl_hw
一、背景信息 (必填)
math/segsum/op_kernel/arch35/segsum.h(A5/arch35)与math/segsum/op_kernel/segsum.h(A2)基名完全相同。两份头文件都可能出现在内核编译的头文件搜索路径上,#include "segsum.h"的落点依赖 include 顺序;检视、排障时也无法从文件名分辨属于哪一代实现。仓内现状:248 个含
op_kernel/arch35的算子中,仅 4 个存在这种同名(mul_addn、pad_v3_grad_replication、exp_segsum_grad、segsum),其余均在 arch35 侧另起名,例如conversion/slice/op_kernel/arch35/slice_arch35.h。二、价值/作用 (必填)
消除同名头文件带来的 include 歧义风险,使文件名自带代次信息,与本算子 host 侧既有命名(
op_host/arch35/segsum_tiling_arch35.cpp/.h)保持一致,降低后续检视与维护成本。三、设计方案 (必填)
3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)
本算子对外经 aclnn 直调:
aclnnExpSegsumGetWorkspaceSize/aclnnExpSegsum(math/segsum/op_host/op_api/aclnn_segsum.h)。本需求仅涉及内核源码文件命名,不新增、不变更任何使能路径。3.2 总体设计
3.2.1 算子支持的数据类型
按
op_host/segsum_def.cpp:ascend910b / ascend910_93 / ascend950 上 x、y 为 FLOAT16、FLOAT、BFLOAT16;kirinx90 / kirin9030 为 FLOAT16、FLOAT。本需求不改变支持面。3.2.2 host侧设计
不涉及。host 侧 tiling 已按代次分目录并区分命名(
op_host/arch22/segsum_tiling.*、op_host/arch35/segsum_tiling_arch35.*)。3.2.3 kernel侧设计
op_kernel/arch35/segsum.h更名为segsum_arch35.h,op_kernel/arch35/segsum.cpp的 include 跟随更名。include guard(SEGSUM_ARCH35_H)与命名空间(SegsumArch35)本就带代次标识,无需改动;入口源文件arch35/segsum.cpp与内核入口函数名segsum均保持不变(.cpp不被 include,由 CMakeLists 的KERNEL_SRC按显式路径编译)。A2 侧op_kernel/segsum.{cpp,h}不改动。3.3 支持硬件
op_host/segsum_def.cpp注册 ascend910b、ascend910_93、ascend950、kirinx90、kirin9030;本次仅触及 arch35(ascend950)侧的文件命名。3.4 算子约束限制
无新增约束。纯文件重命名,不改变算子行为、支持面与接口。
关联 PR:https://gitcode.com/cann/ops-math/pull/5035