昇腾社区首页
中文
注册

工具简介

msprof性能分析工具用于采集和分析运行在昇腾AI处理器上算子的关键性能指标,用户可根据输出的性能数据,快速定位算子的软、硬件性能瓶颈,提升算子性能分析的效率。

使用场景

当前支持基于不同运行模式(上板或仿真)和不同文件形式(可执行文件或算子二进制.o文件)进行性能数据的采集和自动解析。

使用msprof op simulator功能时,需要先配置LD_LIBRARY_PATH环境变量来指定仿真器类型。
export LD_LIBRARY_PATH=${INSTALL_DIR}/tools/simulator/Ascendxxxyy/lib:$LD_LIBRARY_PATH  //${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
支持如下调用算子的场景:
  • Kernel直调:核函数运行验证的场景。
    • 核函数运行验证的场景,详细信息可参考Ascend C算子开发指南中“算子调用 > Kernel直调 > 核函数运行验证”章节。
    • Kernel直调的场景,需先配置好前置条件,然后执行以下命令:
      export LD_LIBRARY_PATH=${INSTALL_DIR}/tools/simulator/Ascendxxxyy/lib:$LD_LIBRARY_PATH  // xxxyy为用户实际使用的具体芯片类型
      msprof op simulator ./main  // main为用户算子程序名称,包含待调优算子的程序名
    • 对核函数运行验证方式调用的算子,若该算子已在上板运行模式下,但用户又需要对其进行仿真调优,可通过以下操作步骤实现。
      • 在任意目录下,创建一个指向libruntime_camodel.so的软连接,名称为libruntime.so。
        ln -s /{simulator_path}/lib/libruntime_camodel.so /{so_path}/libruntime.so  //例如,若使用root用户默认路径安装CANN包,simulator_path为/usr/local/Ascend/ascend-toolkit/latest/tools/simulator/Ascendxxxyy
      • 将创建的软链接的父目录加入到环境变量LD_LIBRARY_PATH中。
        export LD_LIBRARY_PATH={so_path}:$LD_LIBRARY_PATH
  • 通过AscendCL单算子调用:单算子API执行的场景。
    • 单算子API执行的场景,详细信息可参考Ascend C算子开发指南中“算子调用 > AscendCL单算子调用 > 单算子API执行”章节。
    • 单算子API执行的场景,需先配置好前置条件,然后执行以下命令:
      export LD_LIBRARY_PATH=${INSTALL_DIR}/tools/simulator/Ascendxxxyy/lib:$LD_LIBRARY_PATH  // xxxyy为用户实际使用的具体芯片类型
      msprof op simulator ./main  // main为程序名称,包含待调优算子的程序名
  • 第三方框架算子调用:Pytorch框架的场景。
    • 通过PyTorch框架进行单算子调用的场景,详细信息可参考Ascend C算子开发指南中“算子调用 > 第三方框架算子调用 > PyTorch框架”章节。
    • 通过PyTorch框架进行单算子调用的场景,需先配置好前置条件,然后执行以下命令:
      export LD_LIBRARY_PATH=${INSTALL_DIR}/tools/simulator/Ascendxxxyy/lib:$LD_LIBRARY_PATH  // xxxyy为用户实际使用的具体芯片类型
      msprof op simulator python a.py  // a.py为程序名称,包含待调优算子的程序名

功能特性

msProf命令行工具提供了算子运行性能数据、昇腾AI处理器计算单元数据等性能数据的采集和解析能力,具体请参见表1

表1 msProf工具功能

功能

具体描述

算子上板调优

  • 算子性能数据block级采集(提供每个核的数据)。
  • 采集七类性能指标数据,包括ArithmeticUtilization、PipeUtilization、Memory、MemoryL0、MemoryUB、ResourceConflictRatio以及L2Cache等。

算子仿真调优

  • 生成并展示仿真性能数据流水图。
  • 查看仿真性能数据代码行和指令耗时。
  • 支持仿真性能数据指令与代码行映射。
  • 生成热点图。

通过键盘输入“CTRL+C”后,算子执行将会被停止,工具会根据当前已有信息生成性能数据文件。若不需要生成该文件,可再次键盘输入“CTRL+C”指令。