dump数据存盘说明

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场景

精度比对dump场景的结果如下:

当configure_hook或set_dump_switch配置mode参数(例如:mode="api_stack" )时,dump结果的文件名会添加api_stack前缀,dump结果如下:

溢出检测dump场景

PrecisionDebugger模块的hook_name参数或register_hook函数设置了overflow_check时,检测API溢出,dump结果的文件名格式为:{api_type}_{api_name}_{API调用次数}_{前向反向}_{当前溢出次数},dump结果示例如下: