算子代码热点图
通过msprof op或msprof op simulator生成的visualize_data.bin文件可通过MindStudio Insight进行可视化呈现,界面支持查看算子源码与指令集的映射关系、耗时情况等功能,协助开发者识别热点代码分布,并分析热点函数优化的可行性。具体特性支持情况请参见表1。
特性名称 |
msprof op |
msprof op simulator |
---|---|---|
查看core信息 |
不支持 |
支持 |
查看源码、指令PC地址、Pipe、Source |
支持 |
支持 |
查看算子源码与指令集的映射关系 |
支持 |
支持 |
查看算子源码与指令的执行次数 |
支持 |
支持 |
查看算子源码与指令的耗时情况(cycles) |
不支持 |
支持 |
查看寄存器使用情况(Gpr Count) |
不支持 |
支持 |
模拟代码行和指令维度的L2Cache命中率 |
支持 |
不支持 |
查看与GM有关的数据搬运量(Process Bytes) |
支持 |
支持 |
Vector计算类指令在UB Bank上读和写的冲突情况 |
不支持 |
支持 |
Vector计算单元利用率 |
不支持 |
支持 |

- 若要使用MindStudio Insight进行查看时,需要单独安装MindStudio Insight软件包,具体下载链接请参见《MindStudio Insight 用户指南》的“安装与卸载”章节。
- 将visualize_data.bin文件导入MindStudio Insight的具体操作请参考《MindStudio Insight 用户指南》的“算子调优 > 导入性能数据”章节。
- MindStudio Insight具体操作和详细字段解释请参考《MindStudio Insight 用户指南》的”算子调优 > 源码(Source)”章节 。
- 添加 -g 编译选项会在生成的二进制文件中附带调试信息,建议限制带有调试信息的用户程序的访问权限,确保只有授权人员可以访问该二进制文件。
- 若不使用llvm-symbolizer组件提供的相关功能,输入msProf的程序编译时不包含-g即可,msProf工具则不会调用llvm-symbolizer组件的相关功能。
msprof op热点图
图1 msprof op源码界面

- 在界面顶部,可切换计算单元和核函数文件。
- 在左侧界面,提供算子核函数各行代码模拟Cache命中率、与GM有关的数据搬运量及对应的指令数,帮助开发者快速定位瓶颈代码行。
- 在右侧界面,提供具体的指令维度模拟Cache命中率、与GM有关的数据搬运量、执行次数及与代码相关联,帮助开发者进一步分析代码耗时长的原因。
- MindStudio Insight时间线和详情页面中Cache命中率的差异请参见表2。
- 模拟Cache命中率的功能不支持
Atlas 推理系列产品 。 - 查看与GM有关的数据搬运量(Process Bytes)时,不涉及GM单元的情况都显示为NA。
- 模拟Cache命中率的功能不支持
msprof op simulator热点图
图2 msprof op simulator源码界面

- 在界面顶部,可切换计算单元和核函数文件。
- 在左侧界面,提供算子核函数各行代码对应的耗时、寄存器使用情况、与GM有关的数据搬运量及对应的指令数,帮助开发者快速定位瓶颈代码行。
- 在右侧界面,提供具体的指令耗时、寄存器使用情况、与GM有关的数据搬运量、执行次数及与代码相关联,帮助开发者进一步分析代码耗时长的原因。

通用寄存器的最大数量为32,当寄存器的使用数量达到32时,仿真过程需等到使用中的寄存器释放后才能运行。
父主题: 算子调优(msProf)