性能数据采集
操作须知
- 当前MindStudio不支持集群场景的数据采集,可通过Import Result导入已采集的PROF_XXX的父目录来展示集群场景性能数据。
- 用户通过训练工程采集数据,需要在训练工程的环境变量脚本文件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配置的参数详细介绍请参见《性能分析工具使用指南》的“性能分析工具介绍 > 其他采集方式 > 使用TensorFlow框架接口采集 > Profiling options参数解释”。
操作步骤
- 在欢迎界面的左侧导航栏单击“Projects”,单击选择并打开已编译完成的工程。
- 单击菜单栏 ,弹出系统分析工程界面。图1 系统分析工程界面
- 进入系统分析工程界面,单击欢迎界面中的“New Project”或左上角的
图标,弹出Profiling配置窗口,如图2。
配置“Project Properties”,配置工程名称“Project Name”和选择工程路径“Project Location”。单击“Next”进入下一步。表1 Project Properties参数说明 参数
说明
Project Name
Profiling工程名称,用户自定义。
配置后在“Project Location”设置的路径下自动创建工程名称文件夹,后续采集和解析产生的原始性能数据目录PROF_XXX和解析结果.json文件均保存在该目录下。
说明:解析结果.json文件命名格式为:report_{时间戳}_{device_id}_{model_id}_{iter_id}.json,其中{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID号。
Project Location
Profiling数据输出路径。
完成采集后在该路径下生成以“Project Name”命名的文件目录。
- 进入“Executable Properties”配置界面,如下各图所示。
- Linux使用场景下可选择Remote Run和Local Run两种模式。
- Windows使用场景下仅支持Remote Run模式,无需配置“Run Mode”。
图3 Remote Run配置完成后,Deployment和对应的Environment Variables、Remote Toolkit Path参数为绑定关系,单击“Next”后参数值将被保存。再次配置时,如连接已配置过的Deployment,则Environment Variables、Remote Toolkit Path参数自动填充,可手动修改。
图4 Local Run(训练工程)表2 Executable Properties参数说明 参数
说明
Run Mode
- Remote Run:远程运行。
- Local Run:本地运行。
Deployment
运行配置,选择Remote Run模式时可见,必选配置。通过Deployment功能,可以将指定项目中的文件、文件夹同步到远程指定机器的指定目录,具体可参见Ascend Deployment。
Project Path
执行Profiling目标工程目录,必选配置。
当指定的目标工程为训练工程时,可直接单击“Start”按钮启动Profiling。
Executable File
执行Profiling目标工程的可执行文件,必选配置。
需指定为Project Path子目录下的可执行文件,支持指定二进制脚本文件(如main文件)、Python脚本文件(如train.py文件)和Shell脚本文件(如npu_set_env_1p.sh文件)。
指定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软件包安装路径。
- 单击“Next”后需获取Profiling configuration,如图5所示将出现弹框提示。
- 进入“Profiling Options”配置界面,其中配置AI Core Profiling时分为Task-based和Sample-based场景。如图6和图7所示。
表3 Profiling Options参数说明 参数
说明
AI Core Profiling
Mode
- Task-based:AI Core采集开关,以task为粒度进行性能数据采集。默认值为Pipeline Utilization。
- Sample-based:AI Core采集开关,以固定的时间周期(AI Core-Sampling Interval)进行性能数据采集。默认值为Pipeline Utilization。
Metrics
Mode为Task-based时:
- 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读写带宽速率。
Mode为Sample-based时:
- 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读写带宽速率。
L2Cache
Task-based场景下控制L2采样数据的开关。可选配置,默认关闭。
Frequency(Hz)
Sample-based场景下的采集频率,取值范围为[1, 100],默认值为100,单位Hz。
MsprofTX
MsprofTX
控制MsprofTX用户和上层框架程序输出性能数据采集的开关。可选配置,默认关闭。
API Trace
AscendCL API
AscendCL(Ascend Compute Language)采集开关,采集接口流水信息。默认开启。
Runtime API
Runtime采集开关,采集运行管理器接口流水信息。可选配置,默认关闭。
Graph Engine(GE)
Graph Engine采集开关,采集模型图引擎调度流水信息。默认开启,不可关闭。
AICPU Operators
AI CPU采集开关,采集aicpu数据增强的Profiling数据。可选配置,默认关闭。
HCCL
HCCL
控制HCCL数据采集开关。可选配置,默认关闭。
当前采集完成后,默认导出对应迭代数目最多模型号(Model ID)的第一轮迭代数据。
Device System Profiling
CPU & Memory Usage Profiling
系统CPU usage及System memory采集开关。可选配置,默认关闭。
可以更改采样频率Frequency(Hz),取值范围为[1, 10],默认频率为10Hz。
Host System Profiling
Application Based System Profiling
CPU
采集Host侧CPU资源利用率信息。可选配置,默认关闭。
Memory
采集Host侧Memory资源利用率信息。可选配置,默认关闭。
Disk
采集Host侧Disk资源利用率信息。可选配置,默认关闭。
说明:采集Disk调用数据需要安装第三方开源工具iotop。参见使用前准备。
Network
采集Host侧Network资源利用率信息。可选配置,默认关闭。
Syscall & PThreadcall
Host侧syscall和pthreadcall数据。可选配置,默认关闭。
System CPU & Memory Usage
CPU
采集Host侧系统和所有进程的CPU资源利用率信息。可选配置,默认关闭。
Memory
采集Host侧系统和所有进程的Memory资源利用率信息。可选配置,默认关闭。
Frequency(Hz)
CPU利用率和内存利用率的采集频率,取值范围为[1,50],默认值50,单位hz。
- 完成上述配置后单击窗口右下角的“Start”按钮,启动性能数据采集。
工程执行完成后,MindStudio自动弹出性能分析结果视图。