功能描述
Profiling配置选项。
- output:Profiling采集结果文件保存路径。该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。
- 绝对路径配置以“/”开头,例如:/home/HwHiAiUser/output。
- 相对路径配置直接以目录名开始,例如:output。
- storage_limit:用于指定Profiling数据文件保存至磁盘时的存储空间上限。当累计存放的Profiling数据文件大小接近参数设置值(<=20MB)或数据存放目录所在磁盘的可用空间即将不足(<=20MB)时,除特定的Profiling数据文件外,最早保存的Profiling数据文件将被删除,以保证新生成的数据文件可以循环覆盖保存。
单位为MB,参数值配置格式为数值+单位,例如--storage-limit=200MB,有效取值范围为[200, 4294967296]。
未配置本参数时,默认取值为Profiling数据文件存放目录所在磁盘可用空间的90%。
- training_trace:采集迭代轨迹数据开关,即训练任务及AI软件栈的软件信息,实现对训练任务的性能分析,重点关注前后向计算和梯度聚合更新等相关数据。当采集正向和反向算子数据时该参数必须配置为on。
- task_trace:采集任务信息数据以及Host与Device之间、Device间的同步异步内存复制时延,即昇腾AI处理器HWTS数据,分析任务开始、结束等信息。取值on/off。如果将该参数配置为“on”和“off”之外的任意值,则按配置为“off”处理。当训练profiling mode开启即采集训练Profiling数据时,配置task_trace为on的同时training_trace也必须配置为on。
- hccl:控制hccl数据采集开关,可选on或off,默认为off。
- aicpu:采集AICPU算子的详细信息,如:算子执行时间、数据拷贝时间等。取值on/off,默认为off。如果将该参数配置为“on”和“off”之外的任意值,则按配置为“off”处理。
- fp_point:指定训练网络迭代轨迹正向算子的开始位置,用于记录前向计算开始时间戳。配置值为指定的正向第一个算子名字。用户可以在训练脚本中,通过tf.io.write_graph将graph保存成.pbtxt文件,并获取文件中的name名称填入;也可直接配置为空,由系统自动识别正向算子的开始位置,例如"fp_point":""。
- bp_point:指定训练网络迭代轨迹反向算子的结束位置,记录后向计算结束时间戳,BP_POINT和FP_POINT可以计算出正反向时间。配置值为指定的反向最后一个算子名字。用户可以在训练脚本中,通过tf.io.write_graph将graph保存成.pbtxt文件,并获取文件中的name名称填入;也可直接配置为空,由系统自动识别反向算子的结束位置,例如"bp_point":""。
- aic_metrics:AI Core的硬件信息,取值如下:
- ArithmeticUtilization:各种计算类指标占比统计;
- PipeUtilization: 计算单元和搬运单元耗时占比,该项为默认值;
- Memory:外部内存读写类指令占比;
- MemoryL0:内部内存读写类指令占比;
- ResourceConflictRatio:流水线队列类指令占比。
- l2:控制L2采样数据的开关,可选on或off,默认为off。
- msproftx:控制msproftx用户和上层框架程序输出性能数据的开关,可选on或off,默认值为off。
Profiling开启msproftx功能之前,需要在程序内调用msproftx相关接口来开启程序的Profiling数据流的输出,详细操作请参见《应用软件开发指南 (C&C++)》“扩展更多特性>Profiling性能数据采集”章节。
- task_time:控制任务调度耗时以及算子耗时的开关。涉及在ai_stack_time、task_time、op_summary、op_statistic文件中输出相关耗时数据。可选on或off,默认为on。
- runtime_api:控制runtime api性能数据采集开关,可选on或off,默认为off。可采集runtime-api性能数据,包括Host与Device之间、Device间的同步异步内存复制时延等。
- 除动态shape场景外的其他场景,fp_point、bp_point为自动配置项,无需用户手动配置。动态shape场景不支持自动配置fp/bp,需要用户手动设置。
- 在线推理支持task_trace和aicpu,不支持training_trace。
配置示例
export PROFILING_OPTIONS='{"output":"/tmp/profiling","training_trace":"on","task_trace":"on","fp_point":"","bp_point":"","aic_metrics":"PipeUtilization"}'