将训练过程中的算子耗时等信息记录到文件中,通过可视化界面供用户查看分析,帮助用户更高效地调试神经网络性能。目前仅支持在Ascend芯片上的性能调试。
操作流程可以参考Ascend 910上profiler的操作:
https://www.mindspore.cn/tutorial/training/zh-CN/master/advanced_use/performance_profiling.html#id3
为了收集神经网络的性能数据,需要在训练脚本中添加MindSpore Profiler相关接口。
set_context之后,需要初始化MindSpore Profiler对象,GPU场景下初始化Profiler对象时只有output_path参数有效。Profiler.analyse()停止性能数据收集并生成性能分析结果。样例代码与Ascend使用方式一致可以参考:
https://www.mindspore.cn/tutorial/training/zh-CN/master/advanced_use/performance_profiling.html#id4
启动命令请参考MindInsight相关命令。
用户从训练列表中选择指定的训练,点击性能调试,可以查看该次训练的性能数据(目前gpu版本只支持算子耗时排名统计功能,其他功能暂时敬请期待)。
图1:性能数据总览
图1展示了性能数据总览页面,包含了迭代轨迹(Step Trace)、算子性能、MindData性能和Timeline等组件的数据总体呈现。目前GPU场景下只支持算子性能统计功能:
用户可以点击查看详情链接,进入组件页面进行详细分析。
使用算子性能分析组件可以对MindSpore运行过程中的各个算子的执行时间进行统计展示。
图2:算子类别统计分析
图2展示了按算子类别进行统计分析的结果,包含以下内容:
图2下半部分展示了算子性能统计表,包含以下内容:
图3:内核信息分析
图3展示了CUDA activity信息统计,包含以下内容: