已合并
fix: RmsNormQuantV2/V3新算子按照标准整改 #5393
huanghaihong创建于 5月29日
fix: RmsNormQuantV2/V3新算子按照标准整改 #5393
已合并
huanghaihong创建于 5月29日
huanghaihong
5月29日

描述

修复RmsNormQuantV2和RmsNormQuantV3算子的tiling key不合规问题,将旧的硬编码tiling key(5000/6000)+ 运行时TILING_KEY_IS()分发方式,迁移到标准的模板化tiling key体系(ASCENDC_TPL_ARGS_DECL + if constexpr编译期分发)。同时对V3算子进行目录结构合规化改造。

改动原因

RmsNormQuantV2/V3算子使用了非标准的tiling key硬编码方式(#define RMSNORMQUANTV2_REGBASE_NORMAL 5000),不符合当前仓库的模板化tiling key规范。V3算子的目录结构(kernel文件未放入arch35/、op_api在op_host下、使用simplified_key.ini配置等)也不符合生产仓标准。

改动方法

RmsNormQuantV2改造:

  • 新增op_kernel/arch35/rms_norm_quant_v2_tiling_key.h,使用ASCENDC_TPL_ARGS_DECL宏声明模板参数(COMPUTE_MODE: FULL_LOAD=0, RECOMPUTE=1)
  • 新增RmsNormQuantV2TilingKey类,通过GET_TPL_TILING_KEY生成tiling key
  • 内核函数从extern "C"改为模板函数template <int8_t COMPUTE_MODE>
  • 内核分发从运行时TILING_KEY_IS()改为if constexpr编译期分发
  • REGISTER_TILING_DEFAULT从函数内部移至函数外部

RmsNormQuantV3合规化:

  • 内核文件从op_kernel/rms_norm_quant_v3_apt.cpp迁移至op_kernel/arch35/rms_norm_quant_v3.cpp
  • 新增op_kernel/CMakeLists.txt,使用add_kernel_sources配置(SIMPLIFIED_KEY=0, AUTO_SYNC=false)
  • op_api/目录从op_host/op_api/迁移至算子根目录下的op_api/
  • 删除op_host/config/ascend950/rms_norm_quant_v3_simplified_key.ini
  • 移除rms_norm_quant_v3_def.cpp中的ExtendCfgInfo("opFile.value", "rms_norm_quant_v3_apt")
  • 根CMakeLists.txt改用add_modules_sources宏,声明芯片类型和tiling目录
  • ascendc_config.json中移除RmsNormQuantV3条目(改由CMake管理)
  • op_graph/rms_norm_quant_v3_proto.h中y1/y2输出dtype补充int4类型

测试更新:

  • V2 tiling单测中tiling key期望值从5000/6000更新为0/1
  • V3 kernel单测文件重命名并更新为模板化调用方式
  • V3 aclnn单测迁移至tests/ut/op_api/目录

关联的Issue

关联Issue #2969

测试

  • 更新了RmsNormQuantV2 tiling单元测试,验证新tiling key值(FULL_LOAD=0, RECOMPUTE=1)
  • 更新了RmsNormQuantV3 kernel单元测试,适配模板化内核调用
  • 迁移并更新了RmsNormQuantV3 aclnn单元测试

文档更新

  • 更新了op_graph/rms_norm_quant_v3_proto.h中的接口注释,y1/y2输出新增int4类型说明

类型标签

  • Bug修复
  • 新特性
  • 性能优化
  • 文档更新
  • 其他,请描述:
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 huanghaihong 的贡献)
Hhuanghaihong
5月29日 创建了 pull request,commit 10fd776d
此处折叠了61条消息 查看更多
tang-lei01成员
6月3日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
6月3日 添加了label:approved
CANN-robotCANN-robot成员
6月3日 关闭了关联的issue
CANN-robotCANN-robot成员
6月3日 合入了pull request
CANN-robot
CANN-robot成员
6月3日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike