图模式下数据dump功能

功能简介

用于配置图模式下数据dump功能,方便用户进行问题定位,如图模式下算子运行性能和精度问题。

本功能与图dump功能是不同的功能,二者可以单独使用,也可共同用于用户定位精度问题。

使用方法

该功能通过torchair.get_npu_backend中compiler_config配置,示例如下,参数介绍参见表1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import torch_npu, torchair
config = torchair.CompilerConfig()
# data dump开关:[必选]
config.dump_config.enable_dump = True
# dump类型:[可选],all代表dump所有数据
config.dump_config.dump_mode = "all"
# dump路径:[可选],缺省为当前目录
config.dump_config.dump_path = 'home/dump'
# 量化data dump开关:[可选],是否采集量化前的dump数据
config.dump_config.quant_dumpable = True
# 保存dump的步数,否则每一步都会保存
config.dump_config.dump_step = "0|1"
# 取值为算子名
config.dump_config.dump_layer = "Add_1Mul_1 Add2"
npu_backend= torchair.get_npu_backend(compiler_config=config)
表1 参数说明

参数名

参数说明

是否必选

enable_dump

是否开启图模式下的数据dump功能,bool类型。

  • False(缺省值):不开启数据dump。
  • True:开启数据dump。

说明:

若要使用图模式下数据dump功能,该参数为必选,且置为True。

dump_mode

数据dump模式,用于指定dump算子的输入还是输出数据,字符串类型。

  • input:仅dump算子输入数据。
  • output:仅dump算子输出数据。
  • all(缺省值):同时dump算子输入和输出数据。

dump_path

dump数据的存放路径,字符串类型,缺省值为脚本所在路径。

该参数指定的目录需要提前创建且确保具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。

说明:

当参数enable_dump为True时,该参数必须配置。

quant_dumpable

如果是量化后的网络,可通过此参数控制是否采集量化前的dump数据,bool类型。

  • False(缺省值):不采集量化前的dump数据。因为图编译过程中可能优化量化前的输入/输出,此时无法获取量化前的dump数据。
  • True:开启此配置后,可确保能够采集量化前的dump数据。

dump_step

指定采集哪些迭代的dump数据。

字符串类型,默认值None,表示所有迭代都会产生dump数据。

多个迭代用“|”分割,例如:"0|5|10";也可以用"-"指定迭代范围,例如:"0|3-5|10"。

说明:
  • 推理场景下,step是指tokenizer次数。
  • 训练场景下,每个epoch迭代次数*epochs为总次数,step指其中一个迭代。

dump_layer

指定需要dump的算子,取值为算子名,多个算子名之间使用空格分隔,形如"layer1 layer2 layer3"。

说明:

若指定的算子其输入涉及data算子,会同时将data算子信息dump出来。

算子名获取:在dump_path参数指定目录下的GE图文件(如ge_proto_xxxxx_Bulid.txt)中获取算子名称。

产物说明

关于dump数据文件查看和解析的详细介绍请参考《CANN 精度调试工具指南》中“查看dump数据文件”章节