下载
中文
注册

导出性能数据

在导出性能数据前,需要参见解析性能数据解析性能数据。参见如下步骤导出性能数据。

  1. 以Ascend-cann-toolkit开发套件包的运行用户登录开发环境
  2. 切换至“msprof.py”脚本所在目录。

    CANN软件安装目录/ascend-toolkit/latest/tools/profiler/profiler_tool/analysis/msprof

  3. 导出性能数据。可以导出timeline和summary两类文件,命令行格式如下:
    • 导出timeline数据
      python3 msprof.py export timeline [-h] -dir <dir> [--iteration-id <iteration_id>] [--model-id <model-id>] [--iteration-count <iteration_count>] [--clear]

      例如:python3 msprof.py export timeline -dir /home/HwHiAiUser/profiler_data/PROF_XXX

    • 导出summary数据
      python3 msprof.py export summary [-h] -dir <dir> [--iteration-id <iteration_id>] [--model-id <model-id>] [--iteration-count <iteration_count>] [--format <export_format>] [--clear]

      例如:python3 msprof.py export summary -dir /home/HwHiAiUser/profiler_data/PROF_XXX

    表1 导出性能数据命令参数说明

    参数名

    描述

    可选/必选

    -dir, --collection-dir

    收集到的性能数据目录。须指定为PROF_XXX目录或PROF_XXX目录的父目录,例如:

    /home/HwHiAiUser/profiler_data/PROF_XXX

    必选

    --iteration-id

    迭代ID。需配置为正整数。与--model-id必须同时配置。

    • 对于Atlas A2训练系列产品/Atlas 800I A2推理产品,支持--model-id=4294967295,表示指定以Step为粒度统计的迭代ID(每执行完成一个Step,Iteration ID加1)。仅支持解析MindSpore(版本号大于等于2.3)框架的性能数据。
    • --model-id配置为其他值时,指定以Graph为粒度统计的迭代ID(每个Graph执行一次,Iteration ID加1,当一个脚本被编译为多个Graph时,该ID与脚本层面的Step ID不一致)。

    可选

    --model-id

    模型ID。需配置为正整数。与--iteration-id必须同时配置。

    • 对于Atlas A2训练系列产品/Atlas 800I A2推理产品,支持--model-id=4294967295,为Step模式,即--iteration-id配置的值以Step为粒度解析。仅支持解析MindSpore(版本号大于等于2.3)框架的性能数据。
    • --model-id配置为其他值时,为Graph模式,即--iteration-id配置的值以Graph为粒度解析。

    可选

    --iteration-count

    导出迭代的个数。

    可选

    --format

    summary数据文件的导出格式,支持csv和json两种格式,默认值为csv。

    仅配置summary参数时支持。

    本文中summary文件介绍均以csv文件为例。

    可选

    --clear

    数据精简模式,开启后将在导出性能数据后删除PROF_XXX/device_{id}下的sqlite目录,以节省存储空间。可选on或off,默认值为off。

    可选

    -h,--help

    显示帮助信息,仅在获取使用方式时使用。

    可选

    注1:Atlas 200/300/500 推理产品默认情况下,即未配置--iteration-id和--model-id时,导出迭代数最多的模型ID(Model ID)的性能数据;其他芯片默认情况下,导出所有性能数据。

    注2:单算子场景和仅执行采集昇腾AI处理器系统数据场景,不支持--iteration-id和--model-id参数。

  4. 执行完上述命令后,会在collection-dir目录下的ROF_XXX目录下生成mindstudio_profiler_output目录。

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

    • 单采集进程
      └── PROF_XXX
            ├── device_0
            │    └── data
            ├── device_1
            │    └── data
            ├── host
            │    └── data
            └── mindstudio_profiler_output
                  ├── msprof_{timestamp}.json
                  ├── step_trace_{timestamp}.json
                  ├── xx_*.csv
                   ...
                  └── README.txt
    • 多采集进程
      └── PROF_XXX1
            ├── device_0
            │    └── data
            ├── host
            │    └── data
            └── mindstudio_profiler_output
                  ├── msprof_{timestamp}.json
                  ├── step_trace_{timestamp}.json
                  ├── xx_*.csv
                   ...
                  └── README.txt
      └── PROF_XXX2
            ├── device_1
            │    └── data
            ├── host
            │    └── data
            └── mindstudio_profiler_output
                  ├── msprof_{timestamp}.json
                  ├── step_trace_{timestamp}.json
                  ├── xx_*.csv
                   ...
                  └── README.txt
    • 多Device场景下,若启动单采集进程,则仅生成一个PROF_XXX目录,若启动多采集进程则生成多个PROF_XXX目录,其中Device目录在PROF_XXX目录下生成,每个PROF_XXX目录下生成多少个Device目录与用户实际操作有关,不影响性能数据分析。
    • 性能数据详细介绍请参见性能数据文件参考
    • mindstudio_profiler_output目录中的文件是根据采集的实际性能数据进行生成,如果实际的性能数据没有相关的数据文件,就不会导出对应的timeline和summary数据。
    • 使用export命令能直接从已解析的性能数据中导出数据文件。当性能数据未解析时,单独执行export命令也能进行解析性能数据并导出数据文件。
    • 对于被强制中断的msprof采集进程,工具会保存已采集的原始性能数据,也可以使用export解析并导出。