已关闭
[Requirement|需求建议]: 多个算子原型增加去重宏保护,避免重复注册 #2590
zhoulong50创建于  27 天前关闭于  26 天前
zhoulong50成员
27 天前 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

一、背景信息(必填)

在多仓组合编译或头文件交叉包含场景下,同一算子原型头文件可能被同一翻译单元多次包含,
导致 REG_OP 宏重复展开、同一算子被重复注册,引发编译/链接冲突。
目前 ops-math 仓中 DataCompare、SliceLastDim、SliceWithAxes 等算子原型缺少去重保护。

二、价值/作用(必填)

提升算子原型在组合编译、交叉包含场景下的构建健壮性,消除重复注册导致的编译冲突,
与 upstream cann/ops-math 已合入的 ClipByNormNoDivSum 去重宏保护(PR #4544)保持一致,
统一全仓原型头文件的保护规范。

三、设计方案(必填)

在每个算子原型的 REG_OP(...) ... .OP_END_FACTORY_REG(...) 外层增加头文件去重宏:
#ifndef OPS_PROTO_DEF_
#define OPS_PROTO_DEF_
REG_OP(OpName)
...
.OP_END_FACTORY_REG(OpName)
#endif
宏名按算子名大写、去掉分隔符命名,与 PR #4544 的命名规则一致。

3.1 使能方式

不涉及使能方式变化,仅修改原型头文件宏保护,不影响 Aclnn 直调、PyTorch 训练等调用路径。

3.2 总体设计
3.2.1 算子支持的数据类型

不改变各算子已支持的数据类型。

3.2.2 host 侧设计

不涉及 host 侧逻辑变更。

3.2.3 kernel 侧设计

不涉及 kernel 侧变更。

3.3 支持硬件

不改变各算子已支持的硬件。

3.4 算子约束限制

无新增约束;本次仅增加预处理宏保护,不改变算子功能与约束。

likedislike
Zzhoulong50成员
27 天前 关联了pull request:3个算子原型增加去重宏
陈思
陈思成员
27 天前 评论:
likedislike
CANN-robotCANN-robot成员
27 天前 将 zhoulong50_hw 设为负责人
CANN-robotCANN-robot成员
26 天前 关闭了 issue
CANN-robotCANN-robot成员
26 天前 添加了label:resolved