Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
ops-transfer-test-scan 检查发现以下问题:
Relu6D 当前通过 tiling key 模板声明和分发 dtype,kernel 类型与 tiling key 绑定,没有完全由算子 def 生成的 DTYPE_X 驱动。这会导致 dtype 配置存在两套来源,增加配置不一致以及新增 dtype 时遗漏修改的风险。
这两个算子的 REG_OP 定义可能同时来自算子目录、公共扩展头或 CANN legacy proto。相关定义缺少 OPS_PROTO_DEF_* 宏保护,在多份 proto 合并或共同包含时可能产生重复定义。
涉及文件主要包括:
目标硬件/SoC:
软件环境:
获取 ops-nn 仓库并切换到受影响版本。
使用 ops-transfer-test-scan 检查以下算子目录:
检查 Relu6D 第 7 项,可以看到:
检查第 1 项,可以看到:
合并或共同编译相关 proto 定义时,存在同名算子原型被重复展开的风险。
Relu6D 的 kernel dtype 应完全由算子 def 生成的 DTYPE_X 驱动:
Relu6D 和 SmoothL1LossGrad 的 REG_OP 定义应增加统一宏保护:
修复后验证结果:
Relu6D Host/Proto UT
Relu6D Kernel UT
Proto 合并编译
Relu6D 正式二进制编译
编译最终输出: [SUCCESS] Build binary success!
重复定义问题按照 PR 8552 的处理方式修复,即保留现有 REG_OP 定义并增加 OPS_PROTO_DEF_* 宏保护,不删除重复定义代码。
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Describe the current behavior / 问题描述 (Mandatory / 必填)
ops-transfer-test-scan 检查发现以下问题:
Relu6D 当前通过 tiling key 模板声明和分发 dtype,kernel 类型与 tiling key 绑定,没有完全由算子 def 生成的 DTYPE_X 驱动。这会导致 dtype 配置存在两套来源,增加配置不一致以及新增 dtype 时遗漏修改的风险。
这两个算子的 REG_OP 定义可能同时来自算子目录、公共扩展头或 CANN legacy proto。相关定义缺少 OPS_PROTO_DEF_* 宏保护,在多份 proto 合并或共同包含时可能产生重复定义。
涉及文件主要包括:
Environment / 环境信息 (Mandatory / 必填)
目标硬件/SoC:
软件环境:
Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)
获取 ops-nn 仓库并切换到受影响版本。
使用 ops-transfer-test-scan 检查以下算子目录:
检查 Relu6D 第 7 项,可以看到:
检查第 1 项,可以看到:
合并或共同编译相关 proto 定义时,存在同名算子原型被重复展开的风险。
Describe the expected behavior / 预期结果 (Mandatory / 必填)
Relu6D 的 kernel dtype 应完全由算子 def 生成的 DTYPE_X 驱动:
Relu6D 和 SmoothL1LossGrad 的 REG_OP 定义应增加统一宏保护:
Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
修复后验证结果:
Relu6D Host/Proto UT
Relu6D Kernel UT
Proto 合并编译
以上定义合并并编译成功,未出现重复定义错误。
Relu6D 正式二进制编译
编译最终输出:
[SUCCESS] Build binary success!
Special notes for this issue/备注 (Optional / 选填)
重复定义问题按照 PR 8552 的处理方式修复,即保留现有 REG_OP 定义并增加 OPS_PROTO_DEF_* 宏保护,不删除重复定义代码。