From 0b658b845fdef9b7946e79948d34de9590f95914 Mon Sep 17 00:00:00 2001
From: user_10012209 <734267852@qq.com>
Date: Fri, 15 Dec 2023 14:27:14 +0800
Subject: [PATCH 1/4] =?UTF-8?q?[ptdbg=5Fascend]=E4=BD=BF=E7=94=A8=E6=89=8B?=
=?UTF-8?q?=E5=86=8Cptdbg=5Fascend.parse=E6=95=B0=E6=8D=AE=E8=A7=A3?=
=?UTF-8?q?=E6=9E=90=E5=8A=9F=E8=83=BD=E8=A1=A5=E5=85=85run=E5=89=8D?=
=?UTF-8?q?=E7=BC=80=E6=8F=8F=E8=BF=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...03\275\350\257\264\346\230\216_v4.0.T3.md" | 25 +++++++++++++++----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md" "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
index 120c70cddb2..deaf8676120 100644
--- "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
+++ "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
@@ -1277,8 +1277,6 @@ dump结果目录结构示例如下:
| └── rank7
```
-dump过程中,npy文件在对应算子或者模块被执行后就会落盘,而pkl文件则需要在正常执行PrecisionDebugger.stop()或set_dump_switch("OFF")后才会被落盘保存,异常的程序终止会保存终止前被执行算子的相关npy文件,但是不会生成pkl文件。
-
其中ptdbg_dump_{version}为未设置set_dump_path的dump_tag参数时的默认命名;rank为设备上各卡的ID,每张卡上dump的数据会生成对应dump目录。
当使用debugger方式dump数据时,配置了PrecisionDebugger模块的step=[]参数,dump结果目录则以step为父目录,例如配置step=[0,1,2]时,dump结果目录为:
@@ -1392,7 +1390,7 @@ compare(input_param, output_path, stack_mode=False, auto_analyze=True, fuzzy_mat
| 参数名 | 说明 | 是否必选 |
| ------------ | ------------------------------------------------------------ | -------- |
-| input_param | 配置dump数据文件及目录。配置参数包括:
- "npu_pkl_path":指定NPU dump目录下的.pkl文件。参数示例:"npu_pkl_path": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "bench_pkl_path":指定CPU、GPU或NPU dump目录下的.pkl文件。参数示例:"bench_pkl_path": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "npu_dump_data_dir":"指定NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。可选,仅比对pkl文件时不选。
- "bench_dump_data_dir":"指定CPU、GPU或NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。可选,仅比对pkl文件时不选。
- "is_print_compare_log":配置是否开启日志打屏。可取值True或False。可选。 | 是 |
+| input_param | 配置dump数据文件及目录。配置参数包括:
- "npu_pkl_path":指定NPU dump目录下的.pkl文件。参数示例:"npu_pkl_path": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "bench_pkl_path":指定CPU、GPU或NPU dump目录下的.pkl文件。参数示例:"bench_pkl_path": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "npu_dump_data_dir":"指定NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。必选。
- "bench_dump_data_dir":"指定CPU、GPU或NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。必选。
- "is_print_compare_log":配置是否开启日志打屏。可取值True或False。可选。 | 是 |
| output_path | 配置比对结果csv文件存盘目录。参数示例:'./output'。文件名称基于时间戳自动生成,格式为:`compare_result_{timestamp}.csv`。 | 是 |
| stack_mode | 配置stack_mode的开关。仅当dump数据时配置set_dump_switch的mode="api_stack"时需要开启。参数示例:stack_mode=True,默认为False。 | 否 |
| auto_analyze | 自动精度分析,开启后工具自动针对比对结果进行分析,识别到第一个精度不达标节点(在比对结果文件中的“Accuracy Reached or Not”列显示为No),并给出问题可能产生的原因(打屏展示并生成advisor_{timestamp}.txt文件)。可取值True或False,参数示例:auto_analyze=False,默认为True。 | 否 |
@@ -1471,14 +1469,31 @@ PyTorch精度比对是以CPU或GPU的计算结果为标杆,计算Cosine(余
ptdbg_ascend.parse为命令行交互式界面解析工具,提供更多的数据解析功能并且展示结果。
-主要的使用场景包括:
+### 进入parse交互式界面
+
+安装ptdbg_ascend工具后,可以通过使用命令 **python -m ptdbg_ascend.parse** 进入交互式界面,如下所示:
+
+```bash
+python -m ptdbg_ascend.parse
+Parse >>>
+```
+
+可在parse的界面中执行Shell命令,以及如下场景的相关解析命令:
- 支持指定ACL层级算子数据比对。
- 支持指定ACL层级算子数据转换及展示。
- 支持交互式指定pkl文件中API对应dump数据查看。
- 支持API进行可选层级比对和打印(统计级和像素级)。
-安装ptdbg_ascend工具后,可以通过使用命令 **python -m ptdbg_ascend.parse** 进入交互式界面,可在parse的界面中执行Shell命令,以及上述场景的相关解析命令。Ctrl+C可以退出该界面。
+Ctrl+C可以退出parse交互式界面。不退出parse交互式界面若需要执行非该界面下的Shell命令,可以加上run前缀,如下示例:
+
+```bash
+python -m ptdbg_ascend.parse
+Parse >>> run vim cli.py
+Parse >>> vim cli.py
+```
+
+以上各场景详细介绍请参见下文章节。
### ACL层级算子数据比对
--
Gitee
From a86282b37781dde7b0b40323aac9b88f13e92caf Mon Sep 17 00:00:00 2001
From: user_10012209 <734267852@qq.com>
Date: Fri, 15 Dec 2023 14:38:07 +0800
Subject: [PATCH 2/4] =?UTF-8?q?[ptdbg=5Fascend]=E4=BD=BF=E7=94=A8=E6=89=8B?=
=?UTF-8?q?=E5=86=8Cptdbg=5Fascend.parse=E6=95=B0=E6=8D=AE=E8=A7=A3?=
=?UTF-8?q?=E6=9E=90=E5=8A=9F=E8=83=BD=E8=A1=A5=E5=85=85run=E5=89=8D?=
=?UTF-8?q?=E7=BC=80=E6=8F=8F=E8=BF=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...45\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md" | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md" "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
index deaf8676120..d93aad0d8f3 100644
--- "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
+++ "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
@@ -1277,6 +1277,8 @@ dump结果目录结构示例如下:
| └── rank7
```
+dump过程中,npy文件在对应算子或者模块被执行后就会落盘,而pkl文件则需要在正常执行PrecisionDebugger.stop()或set_dump_switch("OFF")后才会被落盘保存,异常的程序终止会保存终止前被执行算子的相关npy文件,但是不会生成pkl文件。
+
其中ptdbg_dump_{version}为未设置set_dump_path的dump_tag参数时的默认命名;rank为设备上各卡的ID,每张卡上dump的数据会生成对应dump目录。
当使用debugger方式dump数据时,配置了PrecisionDebugger模块的step=[]参数,dump结果目录则以step为父目录,例如配置step=[0,1,2]时,dump结果目录为:
@@ -1390,7 +1392,7 @@ compare(input_param, output_path, stack_mode=False, auto_analyze=True, fuzzy_mat
| 参数名 | 说明 | 是否必选 |
| ------------ | ------------------------------------------------------------ | -------- |
-| input_param | 配置dump数据文件及目录。配置参数包括:
- "npu_pkl_path":指定NPU dump目录下的.pkl文件。参数示例:"npu_pkl_path": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "bench_pkl_path":指定CPU、GPU或NPU dump目录下的.pkl文件。参数示例:"bench_pkl_path": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "npu_dump_data_dir":"指定NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。必选。
- "bench_dump_data_dir":"指定CPU、GPU或NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。必选。
- "is_print_compare_log":配置是否开启日志打屏。可取值True或False。可选。 | 是 |
+| input_param | 配置dump数据文件及目录。配置参数包括:
- "npu_pkl_path":指定NPU dump目录下的.pkl文件。参数示例:"npu_pkl_path": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "bench_pkl_path":指定CPU、GPU或NPU dump目录下的.pkl文件。参数示例:"bench_pkl_path": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump.pkl"。必选。
- "npu_dump_data_dir":"指定NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./npu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。可选,只比对pkl文件时不选。
- "bench_dump_data_dir":"指定CPU、GPU或NPU dump目录下的dump数据目录。参数示例:"npu_dump_data_dir": "./gpu_dump/ptdbg_dump_v2.0/rank0/api_stack_dump"。可选,只比对pkl文件时不选。
- "is_print_compare_log":配置是否开启日志打屏。可取值True或False。可选。 | 是 |
| output_path | 配置比对结果csv文件存盘目录。参数示例:'./output'。文件名称基于时间戳自动生成,格式为:`compare_result_{timestamp}.csv`。 | 是 |
| stack_mode | 配置stack_mode的开关。仅当dump数据时配置set_dump_switch的mode="api_stack"时需要开启。参数示例:stack_mode=True,默认为False。 | 否 |
| auto_analyze | 自动精度分析,开启后工具自动针对比对结果进行分析,识别到第一个精度不达标节点(在比对结果文件中的“Accuracy Reached or Not”列显示为No),并给出问题可能产生的原因(打屏展示并生成advisor_{timestamp}.txt文件)。可取值True或False,参数示例:auto_analyze=False,默认为True。 | 否 |
--
Gitee
From cf3d2f1fd8f0172d418bb2315cd5d21fcd20e024 Mon Sep 17 00:00:00 2001
From: user_10012209 <734267852@qq.com>
Date: Fri, 15 Dec 2023 15:22:19 +0800
Subject: [PATCH 3/4] =?UTF-8?q?[ptdbg=5Fascend]ptdbg=5Fascend.parse?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=A7=A3=E6=9E=90=E5=8A=9F=E8=83=BD=E8=A1=A5?=
=?UTF-8?q?=E5=85=85run=E5=89=8D=E7=BC=80=E6=8F=8F=E8=BF=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...03\275\350\257\264\346\230\216_v4.0.T3.md" | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md" "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
index d93aad0d8f3..f9d9f6c2bc3 100644
--- "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
+++ "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
@@ -1487,7 +1487,7 @@ Parse >>>
- 支持交互式指定pkl文件中API对应dump数据查看。
- 支持API进行可选层级比对和打印(统计级和像素级)。
-Ctrl+C可以退出parse交互式界面。不退出parse交互式界面若需要执行非该界面下的Shell命令,可以加上run前缀,如下示例:
+Ctrl+C可以退出parse交互式界面。不退出parse交互式界面若需要执行非该界面下的Shell命令,且命令与parse交互式界面命令冲突时,非该界面命令需要加上run前缀,如下示例:
```bash
python -m ptdbg_ascend.parse
@@ -1507,12 +1507,12 @@ Parse >>> vim cli.py
vc -m my_dump_path -g golden_dump_path [-out output_path]
```
- | 参数名称 | 说明 | 是否必选 |
- | -------- | ------------------------------------------------------------ | -------- |
- | -m | 待比对dump数据目录。 | 是 |
- | -g | dump数据目录。 | 是 |
- | -out | 结果输出目录。 | 否 |
- | -asc | 指定msaccucmp路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py。 | 否 |
+ | 参数名称 | 说明 | 是否必选 |
+ | --------- | ------------------------------------------------------------ | -------- |
+ | -m | 待比对dump数据目录。 | 是 |
+ | -g | dump数据目录。 | 是 |
+ | -out | 结果输出目录。 | 否 |
+ | -cmp_path | 指定msaccucmp路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py。 | 否 |
- 输出结果:result_{timestamp}.csv文件。
- 若指定-out参数需要用户传入输出路径,并且路径需要已存在。
@@ -1540,12 +1540,12 @@ Parse >>> vc -m ./my_dump_path -g ./golden_data_path
dc -n file_name/file_path [-f format] [-out output_path]
```
- | 参数名称 | 说明 | 是否必选 |
- | -------- | ------------------------------------------------------------ | -------- |
- | -n | 需转换的dump数据文件或dump数据文件目录。 | 是 |
- | -f | 开启format转换,指定该参数时需要配置format格式,若未指定该参数,则直接转换为npy格式。 | 否 |
- | -out | 结果输出目录。 | 否 |
- | -asc | 指定msaccucmp路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py | 否 |
+ | 参数名称 | 说明 | 是否必选 |
+ | --------- | ------------------------------------------------------------ | -------- |
+ | -n | 需转换的dump数据文件或dump数据文件目录。 | 是 |
+ | -f | 开启format转换,指定该参数时需要配置format格式,若未指定该参数,则直接转换为npy格式。 | 否 |
+ | -out | 结果输出目录。 | 否 |
+ | -cmp_path | 指定msaccucmp路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py | 否 |
[^]: 若传入单个dump文件,则转换单个文件,若传入dump文件目录则转换目录下所有dump文件。
@@ -1563,7 +1563,7 @@ Parse >>> vc -m ./my_dump_path -g ./golden_data_path
| -------- | ------------- | -------- |
| -n | npy文件路径。 | 是 |
- 打印统计信息:shape, dtype, max, min和mean。
+ 打印统计信息:shape, dtype, max, min和mean。默认在npy文件路径下将该数据保存为txt文件。
**示例1**
--
Gitee
From 3f3377bdce5d95f89a8296c219d0db686298d8a7 Mon Sep 17 00:00:00 2001
From: user_10012209 <734267852@qq.com>
Date: Fri, 15 Dec 2023 16:41:30 +0800
Subject: [PATCH 4/4] =?UTF-8?q?[ptdbg=5Fascend]=E5=B7=A5=E5=85=B7=E6=96=B0?=
=?UTF-8?q?=E5=A2=9Esummary=5Fmode=E5=8F=82=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...7\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md" | 1 +
1 file changed, 1 insertion(+)
diff --git "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md" "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
index f9d9f6c2bc3..7eb5f0b702c 100644
--- "a/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
+++ "b/debug/accuracy_tools/ptdbg_ascend/doc/ptdbg_ascend\347\262\276\345\272\246\345\267\245\345\205\267\345\212\237\350\203\275\350\257\264\346\230\216_v4.0.T3.md"
@@ -495,6 +495,7 @@ debugger.configure_hook(mode=None, acl_config=None, overflow_nums=1, need_replic
| backward_input | 该输入文件为首次运行训练dump得到反向API输入的.npy文件。例如若需要dump Functional_conv2d_1 API的反向过程的输入输出,则需要在dump目录下查找命名包含Functional_conv2d_1、backward和input字段的.npy文件。 | 否 |
| input_output_mode | dump数据过滤。可取值"all"、"forward"、"backward"、"input"和"output",表示仅保存dump的数据中文件名包含"forward"、"backward"、"input"和"output"的前向、反向、输入或输出的.npy文件。参数示例input_output_mode=["backward"]或input_output_mode=["forward", "backward"]。默认为all,即保存所有dump的数据。除了all参数只能单独配置外,其他参数可以自由组合。 | 否 |
| summary_only | dump npy文件过滤,可取值True或False,配置为True后仅dump保存API统计信息的pkl文件,参数示例:summary_only=False,默认为False。 | 否 |
+| summary_mode | 控制dump文件输出的模式,可取值md5(dump仅输出包含md5值的pkl文件)、summary(dump仅输出包含API统计信息的pkl文件)、all(dump输出包含API统计信息的pkl文件以及具体的npy文件),参数示例:summary_mode=md5,默认为all。summary_only=True时,该参数不生效。 | 否 |
| overflow_nums | 控制溢出次数,表示第N次溢出时,停止训练,过程中检测到溢出API对应ACL数据均dump。参数示例:overflow_nums=3。配置overflow_check时可配置,默认不配置,即检测到1次溢出,训练停止,配置为-1时,表示持续检测溢出直到训练结束。 | 否 |
| need_replicate | 过程dump数据生成开关,执行溢出检测时,dump目录下会生成forward_real_data和backward_real_data的过程dump数据目录,可取值True(生成)或False(不生成),默认不生成。 | 否 |
--
Gitee