迭代拖尾和其他性能优化
迭代拖尾的性能优化
-
解析性能数据之后,如果该阶段耗占比较高,可能是集合通信耗时比较长。
-
通过参数索引设置 AllReduce 融合策略。仅支持ReduceOp.SUM和HCCL_WORLD_GROUP/NCCL_WORLD_GROUP。
-
没有默认值。如果不设置,则关闭算子融合。
其他方面的性能优化
这里主要涉及代码或环境层面的优化。
代码优化:如关闭一些不必要的信息获取;关闭一些不必要的日志打印
-
关闭summary
-
summary用于收集tensor信息,后续进行可视化,如可视化网络loss结果。
但正常流程不需要一直收集数据,所以可提过排查脚本,增加开关,在需要的时候再利用summary收集需要的信息;正常不开启。
-
降低推理频率
-
一般网络都会使用边训练边推理,来更好的评估网络,但频繁的推理会造成性能劣化。
所以可通过增加拉起推理的steps数来降低推理频率来优化后处理性能。
-
关闭dump
-
dump主要用于分析精度问题,及进行溢出检测,正常流程不需要开启dump。
可env | grep "DUMP"查看是否开启dump,如果开启,需要排查脚本,并关闭相关环境变量。
-
降低日志级别
-
过多的日志打印会造成性能劣化。
mindspore默认warning级别,export GLOG_v=2即可。
TODO:增加晟腾日志及驱动日志环境变量
-
优化CPU资源
-
性能测试,最好保证机器独占。top指令查看,关闭其他程序。