已关闭
UnsortedSegment(Sum/Max/Min/Prod)系列算子TilingKey整改 #5312
oah_o创建于 10 天前关闭于 9 天前
oah_o
10 天前 评论:
10 天前 评论:
/assign


10 天前 将 oah28 设为负责人
10 天前 关联了pull request:refactor unsorted_segment series tilingkey register
9 天前 修改了issue 的描述
9 天前 关闭了 issue
9 天前 添加了label:resolved
重构了 unsorted_segment 系列算子(Sum/Max/Min/Prod)的 tiling key 注册与分发机制,利用模板化编程ASCENDC_TPL_ARGS_DECL/ASCENDC_TPL_SEL 模板注册方式替换硬编码 TilingKey。() 直接赋值;
针对UnsortedSegment 系列算子(Sum/Max/Min/Prod)的 TilingKey 采用新的注册方式,利用模板化编程ASCENDC_TPL_ARGS_DECL/ASCENDC_TPL_SEL 模板注册方式替换硬编码 TilingKey。
1.将各 Tiling 类 GetTilingKey() 中硬编码的数值常量(如 1000/4000/5000/6000/7000/8000/9000/3100-3202)统一替换为基于模板参数的 GET_TPL_TILING_KEY(TPL_MODE_, TPL_CAST_);
2.新增 unsorted_segment_tiling_key.h、unsorted_segment_sum_tiling_key.h、unsorted_segment_sum_struct.h 集中声明模板模式、cast 模式及各模式对应的 tiling 数据结构;
3.host 侧注册宏由 REGISTER_OPS_TILING_TEMPLATE 改为 REGISTER_TILING_TEMPLATE,并将 tiling 数据的写入方式从 set_xxx() + SaveToBuffer 迁移到 context_->GetTilingData
4.kernel 入口由运行时 TILING_KEY_IS 判断改为 template <uint64_t TEMPLATE_MODE, uint64_t CAST_MODE> + if constexpr 的编译期分发。