昇腾社区首页
中文
注册

算子代码热点图

通过msprof opmsprof op simulator生成的visualize_data.bin文件可通过MindStudio Insight进行可视化呈现,界面支持查看算子源码与指令集的映射关系、耗时情况等功能,协助开发者识别热点代码分布,并分析热点函数优化的可行性。具体特性支持情况请参见表1

表1 msprof op和msprof op simulator的热点图的功能介绍

特性名称

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
    表2 MindStudio Insight Cache命中率对比表

    页面位置

    数据来源

    维度

    时间线

    工具模拟

    代码行和指令维度。

    详情

    真实存在

    核维度。

    • 模拟Cache命中率的功能不支持 Atlas 推理系列产品
    • 查看与GM有关的数据搬运量(Process Bytes)时,不涉及GM单元的情况都显示为NA。

msprof op simulator热点图

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

通用寄存器的最大数量为32,当寄存器的使用数量达到32时,仿真过程需等到使用中的寄存器释放后才能运行。