开发者
下载
[object Object][object Object]

通过毕昇编译器编译生成可执行程序后,使用msProf工具采集Ascend C算子在AI处理器上执行的性能数据,进行性能精细调优。

包含msprof op和msprof op simulator两种使用方式,协助用户定位算子内存、算子代码以及算子指令的异常,实现全方位的算子调优。两种使用方式的详细说明请参考表1。

表1 msprof op和msprof op simulator功能说明表

[object Object]undefined
[object Object]

算子程序通过毕昇编译器编译生成可执行程序后,可以通过msprof op在NPU上完成性能采集。以SIMD编程场景为例,使用msprof工具采集上板性能数据大致步骤如下:

  1. 参考,编译add算子样例,生成可执行文件。

    dav-后为NPU架构版本号,请根据实际情况进行替换,各产品型号对应的架构版本号请通过进行查询。

    [object Object]
  2. 使用msprof op调用算子可执行文件进行性能采集。

    [object Object]
  3. 查看性能数据,了解当前算子性能瓶颈。

    [object Object]

表2 msprof op文件介绍 [object Object][object Object]

[object Object][object Object][object Object][object Object][object Object][object Object][object Object]

对于SIMT编程场景,只需遵循指导进行算子编译,生成可执行文件后,按照上述步骤2和步骤3使用msprof工具执行程序,以获取算子执行的性能数据。

[object Object]

在非昇腾设备上,通过毕昇编译器仿真编译后生成可执行程序,可以通过msprof op simulator完成性能流水仿真。当前仅支持SIMD编程场景,SIMT编程场景不支持。

  • 通过CMake方式仿真编译算子

    • 灵活控制不同的target是否开启仿真编译。修改CMakeList,使用target_link_libraries与target_link_directories手动配置链接库与路径:

      [object Object]

      其中仿真库所在目录与NPU架构版本号之间的关系如下,目录名使用下划线连接“dav”和架构版本号。

      其中仿真编译所依赖的库介绍如下,开启仿真编译时,需要优先链接,确保优先使用仿真库的符号,防止出现运行时coredump等异常情况。

      表3 仿真编译依赖库介绍

      [object Object][object Object]

      [object Object]
    • 通过向CMake传入变量CMAKE_ASC_RUN_MODE和CMAKE_ASC_ARCHITECTURES来统一开启仿真编译。命令示例如下:

      sim表示开启仿真编译,dav-后为NPU架构版本号,请根据实际情况进行填写。

      [object Object]
      [object Object]
  • 通过命令行方式仿真编译算子可执行程序

    [object Object]
  • 性能流水仿真

    使用msprof op simulator并获取仿真数据。

    [object Object]

    仿真数据说明

    [object Object]

表4 msprof op simulator文件介绍

[object Object]undefined

更多详细的信息可以参考 中的“算子调优 (msOpProf)”章节。