---
title: 全局采集Profiling数据
description: "修改训练脚本，在初始化NPU设备前通过添加“profiling_config”相关参数指定调优模式：```"
url: https://www.hiascend.com/document/detail/zh/TensorFlowCommercial/latest/migration/tfmigr2/tfmigr2_000072.html
sourcePath: /source/zh/TensorFlowCommercial/900/migration/tfmigr2/tfmigr2_000072.html
indexId: 0c378253139c12d8a91af06f38b7a6f07f5578d86c380445c16468d713d5562773
---
# 全局采集Profiling数据

#### 修改训练脚本的方式

修改训练脚本，在初始化NPU设备前通过添加“profiling_config”相关参数指定调优模式：```
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采集功能。

配置示例如下：

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

环境变量PROFILING_OPTIONS的详细配置说明请参考《环境变量参考(https://www.hiascend.com/document/detail/zh/canncommercial/900/maintenref/envvar/envref_07_0001.html)》。

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