Profiling数据采集
操作须知
- 当前MindStudio不支持集群场景的数据采集,可通过Merge Reports导入已采集的PROF_XXX的父目录来展示集群场景性能数据。
有关集群场景Profiling数据采集请参见《性能分析工具使用指南》的“高级功能 > 集群场景下的Profiling”章节。
- 用户通过训练工程采集数据,需要在训练工程的环境变量脚本文件env_*.sh内添加PROFILING_OPTIONS字段的配置信息,示例如下:
export PROFILING_MODE=true export PROFILING_OPTIONS='{"output":"/tmp/profiling","training_trace":"on","task_trace":"on","fp_point":"","bp_point":"","aic_metrics":"MemoryL0"}'
其中output参数指定的路径为Profiling在服务器端执行采集后输出的性能数据,最终会将性能数据拷贝到Project Location参数指定的路径下并生成供MindStudio展示的json结果文件。
PROFILING_OPTIONS字段为配置Profiling的采集项,请根据实际情况选择需要的参数。有关训练工程的脚本中添加Profiling配置的参数详细介绍请参见《性能分析工具使用指南》的“附录 > Profiling options参数解释”。
操作步骤
- 在欢迎界面的左侧导航栏单击“Projects”,单击选择并打开已编译完成的工程。
- 单击菜单栏 ,弹出Profiling配置窗口。
- 进入Profiling配置窗口,如图1。配置“Project Properties”,配置工程名称“Project Name”和选择工程路径“Project Location”。单击“Next”进入下一步。
表1 Project Properties参数说明 参数
说明
Project Name
Profiling工程名称,用户自定义。配置后在Project Location的MindstudioProjects目录下自动创建Profiling工程名称文件夹,后续Profiling采集和解析产生的原始性能数据目录PROF_XXX和解析结果.json文件均保存在该目录下。解析结果.json文件命名格式为:report_{时间戳}_{device_id}_{model_id}_{iter_id}.json,其中{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID号。
Project Location
Profiling数据输出路径。完成Profiling采集后在路径下生成以“Project Name”命名的文件目录。
- 进入“Executable Properties”配置界面,可选择Remote Run和Local Run两种模式,并根据指定的工程目录“Project Path”识别对应的工程类型。如下各图所示。图2 Remote Run(推理应用工程)
图3 Remote Run(推理算子工程)
图4 Remote Run(训练工程)
配置完成后,Deployment和对应的Environment Variables、Remote Toolkit Path参数为绑定关系,单击“Next”后参数值将被保存。再次配置时,如连接已配置过的Deployment,则Environment Variables、Remote Toolkit Path参数自动填充,可手动修改。
图5 Local Run(推理应用工程)
图6 Local Run(推理算子工程)
图7 Local Run(训练工程)
表2 Executable Properties参数说明 参数
说明
Run Mode
- Remote Run:远程运行。
- Local Run:本地运行。
Windows使用场景下仅支持Remote Run。
Deployment
运行配置,选择Remote Run模式时可见,必选配置。通过Deployment功能,可以将指定项目中的文件、文件夹同步到远程指定机器的指定目录,具体可参见Deployment。
Project Path
执行Profiling目标工程目录,必选配置。
可根据指定的目标工程识别工程类型:
- Ascend App:表示指定的目标工程为推理应用工程。
- Ascend Operator:表示指定的目标工程为推理算子工程。
- Ascend Training:表示指定的目标工程为训练工程,此时可直接单击“Start”按钮启动Profiling。
Executable File
执行Profiling目标工程的可执行文件,必选配置。
需指定为Project Path子目录下的可执行文件。
支持指定二进制脚本文件、Python脚本文件和Shell脚本文件。
指定Python脚本文件时由于msprof工具的限制有如下要求:
- pyacl工程中的Python脚本中的路径信息必须为绝对路径。
- 不支持异步接口(接口名以async结尾)的调用。
指定Shell脚本文件由用户自行提供,且无需保存在Project Path目录下。
Command Arguments
用户APP的执行参数,由用户自行配置,参数之间用空格分隔,默认为空。
Environment Variables
环境变量配置。可直接手动配置或单击符号,在弹出窗中配置管理。可选配置。
Remote Toolkit Path
远端运行环境toolkit软件包安装路径,选择Remote Run模式时可见,必选配置。例如配置为${HOME}/Ascend/ascend-toolkit/{version}/toolkit。
与Deployment参数为绑定关系,单击“Next”后参数值将被保存。再次配置时,如连接已配置过的Deployment,则参数自动填充,可手动修改。
CANN Version
指定CANN软件包版本,选择Local Run模式时可见,必选配置。
在启动MindStudio创建工程时指定,若未指定则需单击“Change”按钮指定对应CANN软件包安装路径。
- 进入“Profiling Options”配置界面,其中配置AI Core Profiling时分为Task-based和Sample-based场景。如图8和图9所示。
表3 Profiling Options参数说明 参数
说明
AI Core Profiling
Task-Based
AI Core采集开关,以task为粒度进行性能数据采集。默认值为Pipeline Utilization。
- Pipeline Utilization:采集计算单元和搬运单元耗时占比。
- Arithmetic Utilization:cube和vector的指令类型耗时占比。
- UB/L1/L2/Main Memory Bandwidth:UB/L1/L2/主存储器采集内存读写带宽速率。
- L0A/L0B/L0C Memory Bandwidth:L0A/L0B/L0C采集内存读写带宽速率。
- UB Memory Bandwidth:mte/vector/scalar采集ub读写带宽速率。
Sample-Based
AI Core采集开关,以固定的时间周期(AI Core-Sampling Interval)进行性能数据采集。默认值为Pipeline Utilization。
- Pipeline Utilization:采集计算单元和搬运单元耗时占比。
- Arithmetic Utilization:cube和vector的指令类型耗时占比。
- UB/L1/L2/Main Memory Bandwidth:UB/L1/L2/主存储器采集内存读写带宽速率。
- L0A/L0B/L0C Memory Bandwidth:L0A/L0B/L0C采集内存读写带宽速率。
- UB Memory Bandwidth:mte/vector/scalar采集ub读写带宽速率。
- Frequency(Hz):采集频率,取值范围为[1, 100],默认值为100,单位Hz。
MsprofTX
MsprofTX
控制MsprofTX用户和上层框架程序输出性能数据采集的开关。可选配置,默认关闭。
API Trace
AscendCL API
AscendCL(Ascend Compute Language)采集开关,采集接口流水信息。默认开启,不可关闭。
Runtime API
Runtime采集开关,采集运行管理器接口流水信息。可选配置,默认关闭。
OS Runtime API
系统运行时函数库API和Pthreads API的调用。可选配置,默认关闭。
说明:采集OS Runtime API调用数据需要安装第三方开源工具perf和ltrace,参见使用前准备。使用开源工具ltrace采集OS Runtime API调用数据会导致CPU占用率过高,其与应用工程的pthread加解锁相关,会影响进程运行速度。
Graph Engine (GE)
Graph Engine采集开关,采集模型图引擎调度流水信息。默认开启,不可关闭。
AICPU Operators
AI CPU采集开关,采集aicpu数据增强的Profiling数据。可选配置,默认关闭。
Device System Profiling
DDR
采集DDR数据。可选配置,默认关闭。
可以更改采样频率Frequency(Hz),取值范围为[1, 1000],默认频率为50Hz。
Host System Profiling
CPU
采集Host侧CPU资源利用率信息。可选配置,默认关闭。
Memory
采集Host侧Memory资源利用率信息。可选配置,默认关闭。
Disk
采集Host侧Disk资源利用率信息。可选配置,默认关闭。
说明:采集Disk调用数据需要安装第三方开源工具iotop。参见使用前准备。
Network
采集Host侧Network资源利用率信息。可选配置,默认关闭。
HCCL
HCCL
控制HCCL数据采集开关。可选配置,默认关闭。
当前采集完成后,默认导出对应迭代数目最多模型号(Model ID)的第一轮迭代数据。
- 完成上述配置后单击窗口右下角的“Start”按钮,启动Profiling。
工程执行完成后,MindStudio自动弹出Profiling结果视图。