下载
中文
注册

全局采集Profiling数据

修改训练脚本的方式

修改训练脚本,在初始化NPU设备前通过添加“profiling_config”相关参数指定调优模式:
1
2
3
4
import npu_device as npu
npu.global_options().profiling_config.enable_profiling=True
npu.global_options().profiling_config.profiling_options = '{"output":"/tmp/profiling","task_trace":"on","training_trace":"on","aicpu":"on","fp_point":"","bp_point":"","aic_metrics":"PipeUtilization"}'
npu.open().as_default()
其中:
  • enable_profiling:是否开启profiling数据采集功能。
  • profiling_options:profiling配置选项。
    • output:profiling数据存放路径,该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限,支持配置绝对路径或相对路径
    • task_trace:是否采集任务轨迹数据
    • training_trace:是否采集迭代轨迹数据,training_trace配置为“on”的场景下需要同时配置fp_point和bp_point。
    • aicpu:是否采集AI CPU算子的详细信息,如算子执行时间、数据拷贝时间等。
    • fp_point:指定训练网络迭代轨迹正向算子的开始位置,用于记录前向计算开始时间戳,可直接配置为空,由系统自动获取。
    • bp_point:指定训练网络迭代轨迹反向算子的结束位置,记录后向计算结束时间戳,可直接配置为空,由系统自动获取。
    • aic_metrics:AI Core和AI Vector Core的硬件信息,取值“PipeUtilization”代表记录计算单元和搬运单元的耗时占比。
  • Profiling配置的详细介绍请参考Profiling

环境变量方式

除了通过修改训练脚本的方式采集Profiling数据外,用户还可以修改启动脚本中的环境变量,开启Profiling采集功能。

配置示例如下:

1
2
3
4
# 开启Profiling功能
export PROFILING_MODE=true 
# 配置Profling配置选项
export PROFILING_OPTIONS='{"output":"/home/HwHiAiUser/output","training_trace":"on","task_trace":"on","aicpu":"on","fp_point":"","bp_point":"","aic_metrics":"PipeUtilization"}'

环境变量PROFILING_OPTIONS的详细配置说明请参考环境变量参考

需要注意,环境变量“PROFILING_MODE”的优先级低于训练脚本中的配置项“enable_profiling”。