动态采集性能数据
动态采集性能数据的主要功能是在执行采集的过程中可以随时启动和停止采集进程。
使用说明
动态采集性能数据可以通过launch和attach两种方式执行:
- launch方式:msprof命令行启动动态采集时,同步调起AI任务并进入性能数据采集交互模式,可以通过命令随时启动和停止采集。
- attach方式:用户先自行启动AI任务,再启动msprof动态采集并进入性能数据采集交互模式,可以通过命令随时启动和停止采集。

若用户进程被设置为后台执行,将导致launch方式失效从而无法进入交互界面,此时建议使用attach方式动态采集性能数据。
支持的型号
前提条件
- 使用该方式采集数据前请确保完成使用前准备。
- 动态采集性能数据前,需确保AI任务能在运行环境中正常运行。
- attach方式下启动训练任务前需设置环境变量:
export PROFILING_MODE=dynamic
约束说明
- 在同一AI任务下,同一时间内仅允许一个用户进入交互模式。
- 进入交互模式后未启动数据采集,30分钟后将自动退出,执行命令可重新进入交互模式。
- 多卡(含集群)场景下推荐使用attach方式进行动态采集性能数据,仅支持逐一采集每张卡的性能数据。
- 本功能与延迟采集性能数据(--delay和--duration参数)不能同时配置。
- launch方式下,在传入的用户程序中,不能设置环境变量 “PROFILING_MODE” 和 “PROFILING_OPTIONS”。
命令示例
以下两种方式任选其一。
- launch方式:
msprof --dynamic=on --output=/home/projects/output --model-execution=on --runtime-api=on --aicpu=on /home/projects/MyApp/out/main > start ... > stop ... > quit ...
动态采集性能数据必须传入用户程序。
- 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 |
停止采集并退出交互模式。AI任务正常运行,执行msprof命令可再次进入交互模式。 |
可选 |

- start 、stop命令执行次数上限为100,两条命令执行次数总和超过100次后,服务端将终止连接,即最多采集50份性能数据。重新连接服务端时,重新计算次数。
- 反复执行start 、stop命令时,可能因stop结束Profiling流程而终止了CANN组件的数据上报,因此打印ERROR日志,为正常现象。
获取应用程序pid
- 单Device场景下:
ll ~/dynamic_profiling_socket_*
查询后出现类似如下信息(运行用户以root为例),找到最近时间运行的pid,如下字段“130065”即为应用程序的pid。
1 2 3
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逐一执行AI,并按照单Device场景的方式获取pid;若多Device同时执行AI,则获取任意一个pid进行采集,当前暂不支持同时指定多pid进行采集。
数据解析
推荐使用性能数据解析与导出(msprof命令)对PROF_XXX目录进行性能数据解析和导出。