dump结果目录结构示例如下:
├── dump_path │ └── ptdbg_dump_{version} │ ├── step0 │ │ ├── rank0 │ │ │ ├── dump │ │ │ │ ├── Tensor_permute_1_forward.npy │ │ │ │ ├── MyModule_0_forward_input.npy │ │ │ │ ... │ │ │ │ └── Fcuntion_linear_5_backward_output.npy │ │ │ │ └── dump.pkl │ │ ├── rank1 │ │ │ ├── dump │ │ │ │ └── ... │ │ │ └── dump.pkl │ │ ├── ... │ │ │ │ │ └── rank7 │ ├── step1 │ │ ├── ... │ ├── step2
dump过程中,npy文件在对应算子或者模块被执行后就会落盘,而pkl文件则需要在正常执行PrecisionDebugger.stop()或set_dump_switch("OFF")后才会被落盘保存,异常的程序终止会保存终止前被执行算子的相关npy文件,但是不会生成pkl文件。
其中ptdbg_dump_{version}为默认命名,debugger方式dump不支持修改该文件夹名称,使用set_dump_path函数则支持通过dump_tag参数修改文件夹名称;rank为设备上各卡的ID,每张卡上dump的数据会生成对应dump目录。
精度比对dump场景的结果如下:
其中,“参数序号”表示该API下的第n个参数,例如1,则为第一个参数,若该参数为list格式,则根据list继续排序,例如1.1,表示该API的第1个参数的第1个子参数。
前缀 |
Torch模块 |
---|---|
Tensor |
torch.Tensor |
Torch |
torch |
Functional |
torch.nn.functional |
NPU |
NPU亲和算子 |
VF |
torch._VF |
Aten |
torch.ops.aten |
Distributed |
torch.distributed |
当configure_hook或set_dump_switch配置mode参数(例如:mode="api_stack" )时,dump结果的文件名会添加api_stack前缀,dump结果如下:
PrecisionDebugger模块的hook_name参数或register_hook函数设置了overflow_check时,检测API溢出,dump结果的文件名格式为:{api_type}_{api_name}_{API调用次数}_{前向反向}_{当前溢出次数},dump结果示例如下: