动态采集性能数据
使用说明
动态采集性能数据的主要功能是在执行性能数据采集的过程中可以随时启动和停止采集进程。
动态采集性能数据可以通过launch和attach两种方式执行:
- launch方式:msprof命令行启动动态采集时,同步调起推理或训练任务并进入性能数据采集交互模式,可以通过命令随时启动和停止采集。
- attach方式:用户先自行启动推理或训练任务,再启动msprof动态采集并进入性能数据采集交互模式,可以通过命令随时启动和停止采集。
支持的型号:
- Atlas 200/500 A2推理产品
- Atlas 训练系列产品
- Atlas A2训练系列产品
前提条件
- 使用该方式采集数据前请确保完成使用前准备。
- 动态采集性能数据前,需确保训练任务能在运行环境中正常运行。
- attach方式下启动训练任务前需设置环境变量:
export PROFILING_MODE=dynamic
约束说明
- 在同一推理或训练任务下,同一时间内仅允许一个用户进入交互模式。
- 进入交互模式后未启动数据采集,30分钟后将自动退出,执行命令可重新进入交互模式。
- 不支持Host侧及msproftx数据采集。
- 当前版本仅保证第一次启停时性能数据的正确性和完整性,需规范操作。
- 多卡(含集群)场景下推荐使用attach方式进行动态采集性能数据,仅支持逐一采集每张卡的性能数据。
- 与--delay和--duration参数不能同时配置。
- launch方式下,在--application传入的用户程序中,不能设置环境变量 “PROFILING_MODE” 和 “PROFILING_OPTIONS”。
命令示例
以下两种方式任选其一。
- launch方式:
msprof --dynamic=on --application="/home/projects/MyApp/out/main" --output=/home/projects/output --model-execution=on --runtime-api=on --aicpu=on > start ... > stop ... > quit ...
动态采集性能数据--application必选。
- attach方式:
msprof --dynamic=on --pid=<pid> --output=/home/projects/output --model-execution=on --runtime-api=on --aicpu=on > start ... > stop ... > quit ...
动态采集性能数据功能命令行可以选择所需的采集项,在命令行上添加性能数据采集中的采集参数即可。
采集所生成的性能数据保存在--output参数指定目录下,数据结果与命令指定性能数据采集中的采集参数有关。
参数说明
参数 |
描述 |
可选/必选 |
---|---|---|
--dynamic |
控制动态采集性能数据的开关,可选on或off,默认值为off。 |
必选 |
--pid |
指定一个需要采集的应用程序的pid。获取pid的方法可参考获取应用程序pid。 |
attach方式必选 |
start |
启动采集。 |
可选 |
stop |
停止采集。每完成一次start和stop命令,在--output参数指定路径下生成一个存放数据文件的PROF_XXX目录。 |
可选 |
quit |
停止采集并退出交互模式。推理或训练任务正常运行,执行msprof命令可再次进入交互模式。 |
可选 |
获取应用程序pid
- 单Device场景下:
ll ~/dynamic_profiling_socket_*
查询后出现类似如下信息(运行用户以root为例),找到最近时间运行的pid,如下加粗字段“130065”即为应用程序的pid。
srw-------. 1 root root 0 Feb 8 11:24 /root/dynamic_profiling_socket_112549 srw-------. 1 root root 0 Feb 8 13:38 /root/dynamic_profiling_socket_128848 srw-------. 1 root root 0 Feb 8 13:39 /root/dynamic_profiling_socket_130065
- 多Device场景下:
建议每个Device逐一执行训练,并按照单Device场景的方式获取pid;若多Device同时执行训练,则获取任意一个pid进行采集,当前暂不支持同时指定多pid进行采集。
数据解析
推荐使用性能数据解析与导出(msprof命令)对PROF_XXX目录进行性能数据解析和导出。
父主题: 性能数据采集