在执行完Profiling数据导出命令“python3 msprof.py export summary -dir xxx”后,会在屏幕打印相关性能调优建议,具体如下:
如果没有调优建议,相应项目结果显示NA。
单算子数据分析时,发现算子满足cube或vector使用率小于预设阈值(80%),cube或vector利用率低,需要提升利用率。
单算子数据分析时,发现算子满足vec_bankgroup_cflt_ratio或vec_bank_cflt_ratio使用率大于预设阈值(4%),提示用户bank冲突。
单算子数据分析时,发现算子满足memory bound大于设定阈值(1),检查数据搬运的burthlength是否较小、是否存在重复搬运。
单算子数据分析时,发现算子满足vector bound大于设定阈值(1),检查vector指令的repeat是否较小、是否频繁设置vector mask。
根据配置的时间间隔阈值,如果前后两个算子的间隔(上一个算子执行结束到下一个算子执行开始的时间间隔)大于该阈值(10us),即存在等待时间较长的算子。
存在transData算子,且数量超过设定的阈值(2),需检查是否有使用transData算子的必要性。
整网数据分析时,存在aicpu算子,建议优化并去除网络中的aicpu算子。
检测到性能数据memory_workspace中存在不为0的数据,建议优化memory_workspace。
由于集合通信算子是同步执行的,若集群中存在慢节点,则会由于木桶效应,拖累整个集群的性能。
优化建议原则:
计算每个Profiling的数据增强拖尾的平均耗时和所有Profiling目录的数据增强拖尾的平均时间的占比,当占比大于配置的迭代间隙阈值(20%),则识别为慢节点。
若集群中某些链路存在问题,带宽较小,会影响集群通信的时长从而拖累整个集群的性能。
优化建议原则:
计算每个Profiling目录下的不同链路类型的带宽占比,当占比大于配置的链路带宽阈值(20%),则识别为慢链路。