ProfilingConfig构造函数

函数原型

def __init__(self,

enable_profiling=False,

profiling_options=None

)

功能说明

ProfilingConfig类的构造函数,用于配置Profiling功能。

参数说明

参数名

输入/输出

描述

enable_profiling

输入

是否开启Profiling功能。

  • True:开启Profiling功能,从profiling_options读取Profiling的采集选项。
  • False:关闭Profiling功能,默认关闭。

profiling_options

输入

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:采集任务轨迹数据,即昇腾AI处理器HWTS,分析任务开始、结束等信息。取值on/off。如果将该参数配置为“on”和“off”之外的任意值,则按配置为“off”处理。
  • hccl:控制hccl数据采集开关,可选on或off,默认为off。
  • aicpu:采集aicpu数据增强的Profiling数据。取值on/off。如果将该参数配置为“on”和“off”之外的任意值,则按配置为“off”处理。
  • fp_point:training_trace为on时需要配置。指定训练网络迭代轨迹正向算子的开始位置,用于记录前向计算开始时间戳。配置值为指定的正向第一个算子名字。用户可以在训练脚本中,通过tf.io.write_graph将graph保存成.pbtxt文件,并获取文件中的name名称填入。
  • bp_point:training_trace为on时需要配置。指定训练网络迭代轨迹反向算子的结束位置,记录后向计算结束时间戳,fp_point和bp_point可以计算出正反向时间。配置值为指定的反向最后一个算子名字。用户可以在训练脚本中,通过tf.io.write_graph将graph保存成.pbtxt文件,并获取文件中的name名称填入。
  • aic_metrics:AICore的硬件信息,取值如下:

    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间的同步异步内存复制时延runtime-api性能数据。
配置示例:
profiling_options = '{"output":"/tmp/profiling","training_trace":"on","fp_point":"","bp_point":""}'

返回值

返回ProfilingConfig类对象,作为NPURunConfig的参数传入。