动态采集性能数据的主要功能是在执行性能数据采集的过程中可以随时启动和停止采集进程。
动态采集性能数据可以通过launch和attach两种方式执行:
支持的型号:
export PROFILING_MODE=dynamic
以下两种方式任选其一。
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必选。
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命令可再次进入交互模式。 |
可选 |
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场景的方式获取pid;若多Device同时执行训练,则获取任意一个pid进行采集,当前暂不支持同时指定多pid进行采集。
推荐使用性能数据解析与导出(msprof命令)对PROF_XXX目录进行性能数据解析和导出。