网络调测时,网络整体性能较慢。通过Profiling工具获取网络的Profiling数据(Profiling工具的使用方法可参见对应版本的《CANN 开发工具指南》中的“Profiling工具使用指南”章节),并进行算子的性能数据分析,发现ReduceSum算子的性能很差。
查看Profiling性能数据中ReduceSum算子的详细信息,如下图所示:
其中,ReduceSum算子的输入数据类型(input_data_type)为“DT_FLOAT16”,block_dim字段的值为“1”,说明该算子未开启多核并行计算。
对于昇腾AI处理器的ReduceSum算子或者是用户自定义实现的调用了TBE DSL的”reduce_sum”接口的算子,若输入的数据类型为float16,由于硬件限制,某些场景下会无法开启多核计算。
此种场景下,若算子的性能较差,可参见解决方案尝试修改。
网络调测时,可在ReduceSum算子前插入一个Cast算子,将算子的输入数据类型从float16转换为float32。
ReduceSum算子在输入类型为float32的场景下,会使能多核并发计算,从而达到提升该算子性能的效果。
仅在ReduceSum算子性能较差时,且符合现象描述时,可尝试使用此方法进行性能提升。