已合并
fix: RmsNormQuantV2/V3新算子按照标准整改 #5393
huanghaihong创建于 5月29日
fix: RmsNormQuantV2/V3新算子按照标准整改 #5393
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 huanghaihong 的贡献)5月29日 创建了 pull request,commit 10fd776d
此处折叠了61条消息 查看更多
tang-lei01
6月3日 评论:
6月3日 评论:
/approve


6月3日 添加了label:approved
6月3日 关闭了关联的issue
6月3日 合入了pull request
CANN-robot
6月3日 评论:
6月3日 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


描述
修复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 keyextern "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.cppop_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.inirms_norm_quant_v3_def.cpp中的ExtendCfgInfo("opFile.value", "rms_norm_quant_v3_apt")add_modules_sources宏,声明芯片类型和tiling目录ascendc_config.json中移除RmsNormQuantV3条目(改由CMake管理)op_graph/rms_norm_quant_v3_proto.h中y1/y2输出dtype补充int4类型测试更新:
tests/ut/op_api/目录关联的Issue
关联Issue #2969
测试
文档更新
op_graph/rms_norm_quant_v3_proto.h中的接口注释,y1/y2输出新增int4类型说明类型标签