开发者
资源
[object Object][object Object]

msprof命令行工具是通过msprof.py封装的,支持性能数据的通用解析。

工具使用流程

  • 自动解析:一般情况下,在执行msprof命令行采集性能数据时,默认即解析并导出性能数据文件。
  • 离线解析:
    • 对于不支持自动解析或需要重新解析的情况,可使用进行解析。
    • (可选)对于性能数据文件解析失败的情况,可尝试使用进行重新解析后再次执行
    • (可选)对于需要指定迭代(Iteration ID)和模型(Model ID)进行解析的情况,可先使用查询总迭代数和Model ID,再选择需要的迭代(Iteration ID)和模型(Model ID)进行
    • 对于通信场景的性能数据需要在完成后,对已导出的数据进行
[object Object]

环境准备

  1. 安装配套版本的CANN Toolkit开发套件包和ops算子包并配置CANN环境变量,具体请参见

    Ascend EP场景下msprof工具路径为:[object Object],${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/cann。

    Ascend RC场景下msprof工具路径为:/var。

  2. 设置Python相关环境变量。

    存在多个Python3版本时,以指定python3.7.5为例,请根据实际修改。

    [object Object]
[object Object]

约束

使用该工具前,请了解相关使用约束:

  • 权限约束

    • 用户须自行保证使用最小权限原则(如禁止other用户拥有写权限,常见如禁止666、777)。
    • 使用性能分析工具前请确保执行用户的umask值大于等于0027,否则会导致获取的性能数据所在目录和文件权限过大。
    • 出于安全性及权限最小化角度考虑,本工具不应使用root等高权限账户,建议使用普通用户权限执行。
    • 本工具为开发调测工具,不建议在生产环境使用。
    • 请确保性能数据保存在不含软链接的当前用户目录下,否则可能引起安全问题。
  • 数据落盘约束

    解析性能数据过程中如果配置的落盘路径磁盘或用户目录空间已满,会出现解析失败或文件无法落盘的情况,须自行清理磁盘或用户目录空间。

  • 兼容性和场景约束

    工具要求Python 3.7.5及以上版本。

  • 其他约束

    本工具中需要指定路径的参数,要求路径中不能包含如下特殊字符。

    [object Object]
[object Object]

产品支持情况

[object Object]undefined

功能说明

本功能用于解析并导出性能数据。

注意事项

  • 请先完成
  • 请先完成性能数据采集。
  • Atlas 200I/500 A2 推理产品的Ascend RC场景不支持在设备上直接解析,需要将采集到的PROF_XXX目录拷贝到安装了Toolkit软件包的环境下进行解析。

命令格式

[object Object]

参数说明

表 1 参数说明

[object Object]undefined
[object Object]

使用示例

指定性能数据文件目录的为/home/profiler_data/PROF_XXX目录,执行导出命令。

[object Object]

使用示例(--reports参数)[object Object][object Object]

指定的性能数据文件目录为/home/profiler_data/PROF_XXX目录,传入用户自定义的reports_sample_config.json配置文件,执行导出命令。

[object Object]

${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/cann。

[object Object]

reports_sample_config.json文件默认保存在[object Object]目录下,内容如下:

支持在任意有读写权限的目录下自行创建reports_sample_config.json文件。

[object Object]

以上为控制相应性能数据的开关,可配置开启(true)或关闭(false或删除字段)。控制的性能数据包括msprof_*.json文件的timeline数据层级(包括CANN,Ascend Hardware、AI Core Freq、片上内存、Communication、Overlap Analysis、NPU_MEM层级等)。

[object Object]

输出说明

执行完msprof --export命令后,会在PROF_XXX目录下生成mindstudio_profiler_output目录。

生成的性能数据目录结构如下所示。

  • 单采集进程

    [object Object]
  • 多采集进程

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

产品支持情况[object Object][object Object]

[object Object]undefined

功能说明[object Object][object Object]

本功能用于查询性能数据文件信息,确认导出时指定迭代(Iteration ID)/模型(Model ID)。

性能数据解析时自动打印展示性能数据文件信息,故本功能在数据解析中为可选操作,主要用于已解析的历史PROF_XXX目录重新查询性能数据文件信息。

注意事项[object Object][object Object]

  • 请先完成
  • 请先完成性能数据采集。
  • Atlas 200I/500 A2 推理产品的Ascend RC场景不支持在设备上直接解析,需要将采集到的PROF_XXX目录拷贝到安装了Toolkit软件包的环境下进行解析。

命令格式[object Object][object Object]

[object Object]

参数说明[object Object][object Object]

表 1 参数说明

[object Object]undefined

使用示例[object Object][object Object]

指定解析后的性能数据文件目录为/home/profiler_data/PROF_XXX,开启查询性能数据文件信息功能。

[object Object]

输出说明[object Object][object Object]

msprof工具的查询功能获取到的信息如下表所示。

表 2 Profiling数据文件信息

[object Object]undefined
[object Object]

产品支持情况[object Object][object Object]

[object Object]undefined

功能说明[object Object][object Object]

该功能只会进行性能数据解析,不会导出性能数据文件,导出性能数据文件功能请参见

一般情况下,解析性能数据功能不需要单独使用,主要有如下两种使用场景:

  • 对于性能数据文件解析失败的场景(例如:当存在首次解析由于某些原因导致解析失败,残留文件时),可以使用msprof --parse功能重新解析后,再次执行msprof --export
  • 对于需要指定 --model-id--iteration-id参数进行msprof --export导出时,可以先执行msprof --parse解析并打印迭代(Iteration ID)/模型(Model ID)后,选择需要的Iteration ID和Model ID进行导出。

注意事项[object Object][object Object]

  • 请先完成
  • 请先完成性能数据采集。
  • Atlas 200I/500 A2 推理产品的Ascend RC场景不支持在设备上直接解析,需要将采集到的PROF_XXX目录拷贝到安装了Toolkit软件包的环境下进行解析。

命令格式[object Object][object Object]

[object Object]

参数说明[object Object][object Object]

表 1 参数说明

[object Object]undefined

使用示例[object Object][object Object]

解析原始性能数据文件,指定/home/profiler_data/PROF_XXX为原始性能数据文件目录。

[object Object]

输出说明[object Object][object Object]

执行完上述命令,会打印展示性能数据文件信息并在PROF_XXX的device_{id}和host目录下生成sqlite目录,sqlite目录下会有db文件生成。

需要继续导出最终结果的timeline数据或db文件,可执行

[object Object]

产品支持情况[object Object][object Object]

[object Object]undefined

功能说明[object Object][object Object]

msprof通信性能数据解析功能主要用于统计通信类的分段耗时、拷贝、带宽等信息,以便进行通信类数据分析。通信类数据只有在多卡、多节点或集群场景下存在。

注意事项[object Object][object Object]

  • 请先完成

  • 请先对PROF_XXX目录执行msprof的解析导出操作,同时关闭数据精简模式,命令示例如下:

    [object Object]
  • Atlas 200I/500 A2 推理产品的Ascend RC场景不支持在设备上直接解析,需要将采集到的PROF_XXX目录拷贝到安装了Toolkit软件包的环境下进行解析。

命令格式[object Object][object Object]

msprof命令行方式:

[object Object]

msprof.py脚本方式:

[object Object]

参数说明[object Object][object Object]

表 1 参数说明(msprof命令行方式)

[object Object]undefined

表 2 参数说明(msprof.py脚本方式)

[object Object]undefined

使用示例(msprof命令行方式)[object Object][object Object]

指定/home/profiler_data/PROF_XXX目录为性能数据文件目录,开启解析通信性能数据文件功能。

[object Object]

使用示例(msprof.py脚本方式)[object Object][object Object]

  1. 以Toolkit软件包的运行用户登录开发环境。

  2. 切换至msprof.py脚本所在目录。

    [object Object],${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。若安装的Toolkit软件包,以root安装举例,则安装后文件存储路径为:/usr/local/Ascend/cann。

  3. 设置解析通信类数据,指定/home/profiler_data/PROF_XXX目录为性能数据文件目录,执行解析命令。

    [object Object]

输出结果文件说明[object Object][object Object]

  • --type=text或--type=db以及--rule=communication

图 1 CommAnalyzerTime[object Object][object Object]

表 3 CommAnalyzerTime

[object Object]undefined

图 2 CommAnalyzerBandwidth[object Object][object Object]

表 4 CommAnalyzerBandwidth

[object Object]undefined
  • --type=text或--type=db以及--rule=communication_matrix

    图 3 CommAnalyzerMatrix[object Object][object Object]

    表 5 CommAnalyzerMatrix

[object Object]undefined
  • --type=text、--rule=communication

    图 4 communication.json[object Object][object Object]

  • --type=text、--rule=communication_matrix

    图 5 communication_matrix.json[object Object][object Object]