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) |
开启数据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