产品 |
是否支持 |
---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
msprof支持采集AI任务运行时相关的性能数据,并且在采集后可以自动进行性能数据解析和文件落盘。
msprof [options] <app>
msprof [options] --application=<app>
./msprof [options] <app>
./msprof [options] --application=<app>
参数 |
可选/必选 |
说明 |
产品支持情况 |
性能数据文件 |
---|---|---|---|---|
<app> |
必选 |
(仅方式一支持)待采集性能数据的用户程序,请在msprof命令末尾传入用户程序名和入参。 配置示例: msprof --output=/home/projects/output main msprof --output=/home/projects/output /home/projects/MyApp/out/main msprof --output=/home/projects/output /home/projects/MyApp/out/main parameter1 parameter2 msprof --output=/home/projects/output /home/projects/MyApp/out/sample_run.sh parameter1 parameter2 msprof --output=/home/projects/output python3 /home/projects/MyApp/out/sample_run.py parameter1 parameter2 |
- |
|
--application=<app> |
必选 |
(仅方式二支持)待采集性能数据的用户程序,通过该参数可以传入用户程序名和入参。 配置示例: 推理场景:msprof --application="/home/projects/MyApp/out/main parameter1 parameter2 ..." 训练场景:msprof --application="/home/projects/mindspore/scripts/run_standalone_train.sh parameter1 parameter2 ..." 若parameter中存在异常符号时将无法识别参数,因此推荐使用方式一传入用户程序。 |
- |
|
--ascendcl=<ascendcl-value> |
可选 |
控制AscendCL性能数据采集的开关,可选on或off,默认为on。 可采集AscendCL性能数据,包括Host与Device之间、Device间的同步异步内存复制时延等。 |
||
--model-execution=<model-execution-value> |
可选 |
控制ge model execution性能数据采集开关,可选on或off,默认为on。 说明:
此开关后续版本会废弃,请使用--task-time开关控制相关数据采集。 |
||
--runtime-api=<runtime-api-value> |
可选 |
控制runtime api性能数据采集开关,可选on或off,默认为off。可采集runtime-api性能数据,包括Host与Device之间、Device间的同步异步内存复制时延等。 |
||
--hccl=<hccl-value> |
可选 |
控制通信数据采集开关,可选on或off,默认为off。该数据只在多卡、多节点或集群场景下生成。 说明:
此开关后续版本会废弃,请使用--task-time开关控制相关数据采集。 |
msprof_*.json中的Communication层级和communication_statistic_*.csv文件 |
|
--task-time=<task-time-value> |
可选 |
控制采集算子下发耗时和算子执行耗时的开关。涉及在task_time、op_summary、op_statistic等文件中输出相关耗时数据。配置值:
|
msprof_*.json中的CANN层级和api_statistic_*.csv文件 msprof_*.json中的Ascend Hardware层级和task_time_*.csv文件 msprof_*.json中的Communication层级和communication_statistic_*.csv文件 |
|
--aicpu=<aicpu-value> |
可选 |
采集AICPU算子的详细信息,如:计算耗时、数据拷贝耗时等。可选on或off,默认值为off。 |
||
--ai-core=<aicore-value> |
可选 |
控制AI Core数据采集的开关。 取值可选on或off,--task-time配置为on、l1时,默认为on;--task-time配置为off、l0时,默认为off。 |
||
--aic-mode=<aic-mode-value> |
可选 |
AI Core硬件的采集类型,可选值task-based或sample-based。该参数配置前提是--ai-core参数设置为on。 task-based是以task为粒度进行性能数据采集,sample-based是以固定的时间周期进行性能数据采集,采集AI任务性能数据时建议使用task-based,如果不配置默认为task-based。 |
- |
|
--aic-freq=<aic-freq-value> |
可选 |
sample-based场景下的采样频率,默认值100,范围1~100,单位hz。该参数配置前提是--ai-core参数设置为on。 |
- |
|
--aic-metrics=<aic-metrics-value> |
可选 |
AI Core性能指标采集项。该参数配置前提是--ai-core参数设置为on。 取值包括:
说明:
支持自定义需要采集的寄存器,例如:--aic-metrics=Custom:0x49,0x8,0x15,0x1b,0x64,0x10。
|
||
--sys-hardware-mem=<sys-hardware-mem-value> |
可选 |
任务级别的片上内存采集开关,可选on或off,默认为off。 说明:
已知在安装有glibc<2.34的环境上采集memory数据,可能触发glibc的一个已知Bug 19329,通过升级环境的glibc版本可解决此问题。 |
不同产品支持情况不同,请以实际实现为准。 |
|
--sys-hardware-mem-freq=<sys-hardware-mem-freq-value> |
可选 |
任务级别的片上内存信息采集频率,范围[1,100],默认值为50,单位hz。 设置该参数需要--sys-hardware-mem参数设置为on。 |
- |
|
--l2=<l2-value> |
可选 |
采集L2 Cache命中率,可选on或off,默认为off。
|
||
--ge-api=<ge-api-value> |
可选 |
采集动态Shape算子在Host调度阶段的耗时数据。相关数据生成在msprof_*.json和api_statistic_*.csv文件中。 取值:
|
||
--task-memory=<task-memory-value> |
可选 |
CANN算子级内存占用情况采集开关,用于优化内存使用。取值:
单算子场景下,按照GE组件维度和算子维度采集算子内存大小及生命周期信息(单算子API执行场景不采集GE组件内存);静态图和静态子图场景下,按照算子维度采集算子内存大小及生命周期信息。 |
单算子场景生成: 静态图和静态子图场景生成: |
msprof --output=/home/projects/output --ascendcl=on --runtime-api=on --task-time=on --aicpu=on --ai-core=on /home/projects/MyApp/out/main
./msprof --output=/home/projects/output --ascendcl=on --runtime-api=on --task-time=on --aicpu=on --ai-core=on /home/projects/MyApp/out/main