算子输入输出dump功能(Eager模式)

功能简介

Eager模式下,dump图计算过程中的输入、输出数据,用于后续问题定位和分析,如算子运行性能或精度问题。

使用约束

使用该功能时,NPU图编译后端npu_backend中与图模式相关的配置均不生效,具体参见CompilerConfig类

使用方法

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

1
2
3
4
5
6
import torch_npu, torchair
config = torchair.CompilerConfig()
# Eager模式下数据dump功能开关
config.debug.data_dump.type = "npy"
npu_backend = torchair.get_npu_backend(compiler_config=config)
opt_model = torch.compile(model, backend=npu_backend)
表1 参数说明

参数名

参数说明

type

指定dump的文件类型,字符串类型。

  • 缺省为None,表示不导出dump数据。
  • 若设置,当前仅支持npy格式。

filter

设置导出的过滤规则。默认不配置。

产物说明

开启数据dump功能后,得到${op_type}-${aten_ir}.${param_type}${param_idx}${timestamp}.npy文件。其中${op_type}为算子类型,${aten_ir}为Aten算子名,${param_type}为参数输入/输出类型,${param_idx}为输入/输出参数的索引(默认从0开始),{timestamp}为时间戳。

产物的缺省路径为当前脚本执行所在目录的data_dump文件夹下,目录结构如下:

├ torch_test.py                            // PyTorch脚本
├── data_dump
│   ├── 1                               // graph_id
│       ├── gm_${timestamp}_dump        // 第1次dump的结果文件,通过时间戳标记
│           ├── view_3-aten.view.default.OUTPUT.0.20240823175323985506.npy   
│           ├── view_3-aten.view.default.OUTPUT.0.20240823175323985506.npy
│       ......
│       ├── gm_${timestamp}_dump        // 第n次dump的结果文件,通过时间戳标记
│           ├── xxx.npy   
│   ├── 2
│       ├── gm_${timestamp}_dump
│           ├── xxx.npy