已合并
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 #8450
yuanbin_22创建于 15 天前
refactor: arch35 算子 MicroAPI/Reg 旧接口替换为新接口 #8450
已合并
yuanbin_22创建于 15 天前
yuanbin_22成员
15 天前

描述

将 ops-nn 仓库中 34 个算子的 arch35 kernel 实现从 MicroAPI/Reg 旧接口替换为新接口,同时将地址空间限定符 __local_mem__ 统一替换为 __ubuf__,并对 3 个 UT 测试文件的 ubFormer 参数进行调整,使代码与 AscendC SDK 最新命名规范保持一致。

改动原因

AscendC SDK 新版本对 MicroAPI 和 Reg 层 API 进行了重命名,旧 API(如 DataCopy、CompareScalar、MaskAnd、ReduceMax、ReduceSum、UnalignReg 等)将逐步废弃。本 PR 同步更新仓库中 arch35 算子 kernel 的接口调用,避免使用将废弃的 API。

改动方法

对 108 个文件进行批量接口替换,其中 105 个为 arch35 kernel 头文件、3 个为 UT 测试文件,涉及 3 个算子域共 34 个算子:

  • activation(20 个算子,52 个文件):elu、fast_gelu、fast_gelu_grad、gelu、gelu_grad、gelu_grad_v2、gelu_quant、gelu_v2、leaky_relu、log_sigmoid、mish、mish_grad、p_relu、sigmoid、sigmoid_grad、silu_grad、softmax_grad_ext、swi_glu_grad、swish、swish_grad
  • index(3 个算子,8 个文件):map_index、quant_update_scatter、sparse_slice
  • quant(11 个算子,48 个文件):ascend_anti_quant_v2、ascend_quant、dynamic_block_mx_quant、dynamic_block_quant、dynamic_dual_level_mx_quant、dynamic_mx_quant、dynamic_mx_quant_with_dual_axis、dynamic_quant、grouped_dynamic_block_quant、quant_common、quantize

接口替换映射如下:

旧接口 新接口 说明
MicroAPI::DataCopy(reg, addr) MicroAPI::LoadAlign(reg, addr) UB→Reg 加载
MicroAPI::DataCopy(addr, reg) MicroAPI::StoreAlign(addr, reg) Reg→UB 存储
MicroAPI::DataCopy<T, LoadDist>(reg, addr) MicroAPI::LoadAlign<T, LoadDist>(reg, addr) 带 Dist 模板参数的 UB→Reg 加载
MicroAPI::DataCopy<T, StoreDist>(addr, reg) MicroAPI::StoreAlign<T, StoreDist>(addr, reg) 带 Dist 模板参数的 Reg→UB 存储
DataCopyUnAlign(addr, reg, ...) StoreUnAlign(addr, reg, ...) 非对齐存储
DataCopyUnAlign(reg, addr, ...) LoadUnAlign(reg, addr, ...) 非对齐加载
DataCopyUnAlignPre LoadUnAlignPre 非对齐预加载
DataCopyUnAlignPost StoreUnAlignPost 非对齐后存储
DataCopyScatter Scatter 散射写入
DataCopyGather Gather 聚集读取
CompareScalar Compares 标量比较
Copy Move 寄存器间拷贝
MaskAnd And 掩码与运算
MaskUnPack UnPack 掩码解包
MaskPack Pack 掩码打包
ReduceMax Reduce<ReduceType::MAX, T> 最大值归约
ReduceMin Reduce<ReduceType::MIN, T> 最小值归约
ReduceSum ReduceReduceType::SUM 求和归约
ReduceMaxWithDataBlock ReduceDataBlockReduceType::MAX 数据块最大值归约
UnalignReg UnalignRegForStore 非对齐存储寄存器
local_mem ubuf 地址空间限定符

注:上述替换同时覆盖 MicroAPI 和 Reg 两个命名空间。带 LoadDist/StoreDist 模板参数的 DataCopy<T, Dist>(...) 变体同步替换为 LoadAlign<T, Dist>(...) / StoreAlign<T, Dist>(...),仅替换接口名、保留模板参数。

此外,3 个 UT 测试文件(fast_gelu、fast_gelu_grad、log_sigmoid)的 ubFormer 参数从 256 调整为 1024,并补充文件末尾换行符。

关联的Issue

https://gitcode.com/cann/ops-nn/issues/4689

测试

接口替换为纯命名变更,不涉及计算逻辑修改,通过编译验证和已有 ST/UT 用例回归验证。UT 测试文件 ubFormer 参数调整(256→1024)用于适配新接口下的 UB 对齐要求。

文档更新

类型标签

AI/Agent生成声明

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 yuanbin_22 的贡献)
Yyuanbin_22成员
15 天前 创建了 pull request,commit 06ccccc2
atomgit-bot
atomgit-bot
15 天前 评论:

变更摘要

本次变更对多个激活算子(activation)和量化算子(quant)中使用的 MicroAPI 旧版接口进行了系统性替换,将其升级为对应的新版接口。改动涉及比较操作、归约操作、地址空间标识符、寄存器类型以及融合运算等多个 API 层面,属于纯重构性质的接口迁移,不改变算子的实际计算逻辑。

主要改动

  • CompareScalarCompares:在 elu_dag.hmish_dag.hmish_grad_dag.h 中将 MicroAPI::CompareScalar 替换为 MicroAPI::Compares,接口名由单数形式改为复数形式,模板参数和调用方式保持一致。
  • ReduceMaxReduce<ReduceType::MAX>:在 gelu_dynamic_quant_regbase.hgelu_dynamic_quant_workspace_regbase.h 中将专用的 MicroAPI::ReduceMax 替换为模板化的 MicroAPI::Reduce<ReduceType::MAX>,统一了归约操作的接口风格。
  • __local_mem____ubuf__:在 sigmoidsigmoid_gradswishascend_quant 相关算子内核文件中,将局部内存地址空间标识符 __local_mem__ 统一替换为 __ubuf__,以匹配新版 MicroAPI 的统一缓冲区(Unified Buffer)地址空间语义。
  • UnalignRegUnalignRegForLoad:在 gelu_dynamic_quant_workspace_regbase.h 中将 MicroAPI::UnalignReg 替换为 MicroAPI::UnalignRegForLoad,明确了该非对齐寄存器仅用于加载场景的语义。
  • FusedMulDstAddMulDstAdd:在 swish_grad_dag.h 中将 MicroAPI::FusedMulDstAdd 替换为 MicroAPI::MulDstAdd,去掉了接口名中的 Fused 前缀,语义更简洁清晰。
likedislike
atomgit-bot
atomgit-bot
15 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
15 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
15 天前 评论:

CLA Signature Pass

yuanbin_22, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
此处折叠了388条消息 查看更多
范其瑞
范其瑞成员
6 天前 评论:

/lgtm
/approve

likedislike
su-yueming成员
6 天前 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:lgtmapproved
CANN-robotCANN-robot成员
6 天前 关闭了关联的issue
CANN-robotCANN-robot成员
6 天前 合入了pull request