函数原型
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的参数传入。