为了直观地展现网络模型各维度的性能信息,为我们提供易用、丰富的性能分析功能,帮助我们快速定位网络中性能问题。
Profiler架构设计
这一章将介绍Profiler的架构设计,第一节从整体Profiler的角度出发介绍其上下文交互关系,第二节将打开Profiler内部,介绍模块层架结构以及模块划分,第三节将介绍模块间的交互调用关系。
在整个使用过程中的上下文环境如下图所示:
上图所示,Profiler与其他部分的交互包括:
在训练脚本中调用MindSpore的Profiler启动收集性能数据的命令,Ascend类型下由ada模块生成性能原始数据,GPU类型下由CUPTI模块生成性能原始数据;
MindSpore侧Profiler将在用户脚本中对原始数据进行解析,并在用户指定的文件夹下面生成中间数据结果;
Mindinsight侧Profiler对接中间数据,提供可视化Profiler功能供用户使用。
模块层级结构
模块层级划分如下
层级模块关系图
如上图所示,各个模块功能介绍如下:
ProfilerAPI是代码侧为用户提供的调用入口,为用户提供了性能收集启动接口以及分析接口;
<