该功能通过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) |
参数名 |
参数说明 |
是否必选 |
---|---|---|
enable_dump |
是否开启图模式下的数据dump功能,bool类型。
|
否 说明:
若要使用图模式下数据dump功能,该参数为必选,且置为True。 |
dump_mode |
数据dump模式,用于指定dump算子的输入还是输出数据,字符串类型。
|
否 |
dump_path |
dump数据的存放路径,字符串类型,缺省值为脚本所在路径。 该参数指定的目录需要提前创建且确保具有读写权限,支持配置绝对路径或相对路径(相对执行命令行时的当前路径)。 |
否 说明:
当参数enable_dump为True时,该参数必须配置。 |
quant_dumpable |
如果是量化后的网络,可通过此参数控制是否采集量化前的dump数据,bool类型。
|
否 |
dump_step |
指定采集哪些迭代的dump数据。 字符串类型,默认值None,表示所有迭代都会产生dump数据。 多个迭代用“|”分割,例如:"0|5|10";也可以用"-"指定迭代范围,例如:"0|3-5|10"。 说明:
|
否 |
dump_layer |
指定需要dump的算子,取值为算子名,多个算子名之间使用空格分隔,形如"layer1 layer2 layer3"。 说明:
若指定的算子其输入涉及data算子,会同时将data算子信息dump出来。 算子名获取:在dump_path参数指定目录下的GE图文件(如ge_proto_xxxxx_Bulid.txt)中获取算子名称。 |
否 |
结果文件存储在dump_path参数指定的目录下,即${dump_path}/${time}/${device_id}/${model_name}/${model_id}/${data_index}目录,以${dump_path}配置/home/dump为例,结果目录为“/home/dump/2024112145738/0/ge_default_20200808163719_121/1/0”。
dump文件无法通过文本工具直接查看,可通过CANN包自带的msaccucmp.py脚本将dump文件转为numpy格式,借助PyCharm等工具查看。
CANN包自带的msaccucmp.py脚本一般存放在$HOME/Ascend/ascend-toolkit/latest/home/HwHiAiUser/Ascend/ascend-toolkit/mdc/toolkit/tools/operator_cmp/compare路径下,命令格式如下:
1 | python3 msaccucmp.py convert -d dump_file [-out output] [-v version] [-t type] |
命令格式参数项说明如表2所示。
参数名 |
参数说明 |
是否必选 |
---|---|---|
-d --dump_file |
生成的dump文件。支持指定单个文件;单个路径;同时指定多个文件,文件名用逗号隔开,例如-d /{PATH}/dump_file1,/{PATH}/dump_file2。 |
是 |
-out --output |
转换后的数据存放目录,缺省为当前路径。 |
否 |
-v --version |
dump文件类型。
|
否 |
-t --type |
输出文件的类型。
|
否 |
解析为numpy文件后,可进一步通过numpy官方提供的能力转为txt文档进行查看。调用Python示例如下:
1 2 3 4 5 6 | $ python3 Python 3 (default, Mar 5 2020, 16:07:54)[GCC 5.4.0 20160609] on linuxType "help", "copyright", "credits" or "license" for more information. >>> import numpy as np >>> a = np.load("$HOME/xx.npy") >>> b = a.flatten() >>> np.savetxt("$HOME/xx.txt", b) |
转换为.txt格式文件后,维度信息、Dtype均不存在。详细的使用方法请参见numpy官网介绍。