全局采集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”。
父主题: Profiling数据采集与分析