From 1874b61656d046be409f11906833d04114653e52 Mon Sep 17 00:00:00 2001 From: louyujing Date: Wed, 25 Oct 2023 07:18:55 +0000 Subject: [PATCH 1/6] update debug/accuracy_tools/api_accuracy_checker/README.md. Signed-off-by: louyujing --- debug/accuracy_tools/api_accuracy_checker/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/README.md b/debug/accuracy_tools/api_accuracy_checker/README.md index 3ee506f04..2ec0bd979 100644 --- a/debug/accuracy_tools/api_accuracy_checker/README.md +++ b/debug/accuracy_tools/api_accuracy_checker/README.md @@ -60,14 +60,13 @@ Ascend模型精度预检工具能在昇腾NPU上扫描用户训练模型中所 ```Python from api_accuracy_checker.dump import msCheckerConfig - msCheckerConfig.update_config(dump_path="my/dump/path", real_data=True, enable_dataloader=True, target_iter=1) + msCheckerConfig.update_config(dump_path="my/dump/path", real_data=True, target_iter=1) ``` | 参数名称 | 说明 | 是否必选 | | ----------------- | ------------------------------------------------------------ | -------- | | dump_path | 设置dump路径,须为已存在目录,默认为当前目录。 | 否 | | real_data | 真实数据模式,可取值True或False,默认为False,配置为True后开启真实数据模式,dump信息增加forward_real_data和backward_real_data目录,目录下保存每个API输入的具体数值。开启真实数据模式目前仅支持单卡,且会存盘较多数据,可能对磁盘空间有较大冲击。 | 否 | - | enable_dataloader | 自动控制开关,可取值True或False,默认为False,配置为True后自动识别dump target_iter参数指定的迭代数据,并在该迭代执行完成后退出训练。 | 否 | | target_iter | 指定dump某个step的数据,默认为1,仅支持dump1个step,须指定为训练脚本中存在的step。 | 否 | 3. 将API信息输入给run_ut模块运行精度检测并比对,运行如下命令: -- Gitee From 7ff331a0de9b6e8a5d058f39012ad7cb0e844e46 Mon Sep 17 00:00:00 2001 From: louyujing Date: Wed, 25 Oct 2023 07:19:53 +0000 Subject: [PATCH 2/6] update debug/accuracy_tools/api_accuracy_checker/common/config.py. Signed-off-by: louyujing --- debug/accuracy_tools/api_accuracy_checker/common/config.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/common/config.py b/debug/accuracy_tools/api_accuracy_checker/common/config.py index 821842ddd..c47911e21 100644 --- a/debug/accuracy_tools/api_accuracy_checker/common/config.py +++ b/debug/accuracy_tools/api_accuracy_checker/common/config.py @@ -17,7 +17,6 @@ class Config: 'real_data': bool, 'dump_step': int, 'error_data_path': str, - 'enable_dataloader': bool, 'target_iter': int, 'precision': int } @@ -35,11 +34,10 @@ class Config: def __str__(self): return '\n'.join(f"{key}={value}" for key, value in self.config.items()) - def update_config(self, dump_path, real_data=False, enable_dataloader=False, target_iter=1): + def update_config(self, dump_path, real_data=False, target_iter=1): args = { "dump_path": dump_path, "real_data": real_data, - "enable_dataloader": enable_dataloader, "target_iter": target_iter } for key, value in args.items(): -- Gitee From 525ea3bf33a7ff719abfa2620d188ad9dd90d2b9 Mon Sep 17 00:00:00 2001 From: louyujing Date: Wed, 25 Oct 2023 07:20:15 +0000 Subject: [PATCH 3/6] update debug/accuracy_tools/api_accuracy_checker/config.yaml. Signed-off-by: louyujing --- debug/accuracy_tools/api_accuracy_checker/config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/config.yaml b/debug/accuracy_tools/api_accuracy_checker/config.yaml index 76a31db42..22ef99c3a 100644 --- a/debug/accuracy_tools/api_accuracy_checker/config.yaml +++ b/debug/accuracy_tools/api_accuracy_checker/config.yaml @@ -3,7 +3,6 @@ jit_compile: True real_data: False dump_step: 1000 error_data_path: './' -enable_dataloader: True target_iter: 1 precision: 14 \ No newline at end of file -- Gitee From baeec1abd8db98e0fde8241bd3c41440c1635ee8 Mon Sep 17 00:00:00 2001 From: louyujing Date: Wed, 25 Oct 2023 07:21:01 +0000 Subject: [PATCH 4/6] update debug/accuracy_tools/api_accuracy_checker/dump/dump.py. Signed-off-by: louyujing --- debug/accuracy_tools/api_accuracy_checker/dump/dump.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/dump/dump.py b/debug/accuracy_tools/api_accuracy_checker/dump/dump.py index 830ff5e4f..2a69e226c 100644 --- a/debug/accuracy_tools/api_accuracy_checker/dump/dump.py +++ b/debug/accuracy_tools/api_accuracy_checker/dump/dump.py @@ -45,9 +45,9 @@ class DumpUtil(object): @staticmethod def incr_iter_num_maybe_exit(): - if DumpUtil.call_num == msCheckerConfig.target_iter or not msCheckerConfig.enable_dataloader: + if DumpUtil.call_num == msCheckerConfig.target_iter: set_dump_switch("ON") - elif DumpUtil.call_num > msCheckerConfig.target_iter and msCheckerConfig.enable_dataloader: + elif DumpUtil.call_num > msCheckerConfig.target_iter: raise Exception("Model pretest: exit after iteration {}".format(msCheckerConfig.target_iter)) else: set_dump_switch("OFF") -- Gitee From 9d79e3c3821e488e8b07657f217e5f4fcd7e9d7a Mon Sep 17 00:00:00 2001 From: louyujing Date: Wed, 25 Oct 2023 07:22:23 +0000 Subject: [PATCH 5/6] update debug/accuracy_tools/api_accuracy_checker/run_ut/run_ut.py. Signed-off-by: louyujing --- debug/accuracy_tools/api_accuracy_checker/run_ut/run_ut.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/run_ut/run_ut.py b/debug/accuracy_tools/api_accuracy_checker/run_ut/run_ut.py index e7f240185..9dba68190 100644 --- a/debug/accuracy_tools/api_accuracy_checker/run_ut/run_ut.py +++ b/debug/accuracy_tools/api_accuracy_checker/run_ut/run_ut.py @@ -19,7 +19,6 @@ from api_accuracy_checker.common.config import msCheckerConfig from ptdbg_ascend.src.python.ptdbg_ascend.common.file_check_util import FileOpen, FileCheckConst, FileChecker, \ change_mode, check_file_suffix -NO_GRAD_APIS = ["hardtanh"] def init_environment(): @@ -151,7 +150,7 @@ def run_torch_api(api_full_name, api_setting_dict, backward_content, api_info_di need_backward = api_full_name in backward_content need_backward = need_backward and need_grad if not need_grad: - print_warn_log("%s involves in-place operations, skip backward" % api_full_name) + print_warn_log("%s function with out=... arguments don't support automatic differentiation, skip backward." % api_full_name) cpu_args, cpu_kwargs = generate_cpu_params(args, kwargs, need_backward) npu_args, npu_kwargs = generate_npu_params(args, kwargs, need_backward) grad_out, npu_grad_out = None, None @@ -178,8 +177,6 @@ def get_api_info(api_info_dict, api_name): need_grad = True if api_info_dict.get("kwargs") and "out" in api_info_dict.get("kwargs"): need_grad = False - if api_name in NO_GRAD_APIS: - need_grad = False args, kwargs = gen_api_params(api_info_dict, need_grad, convert_type) return args, kwargs, need_grad -- Gitee From 8a8907e5f854da32be075c380c69c761051ca76d Mon Sep 17 00:00:00 2001 From: louyujing Date: Wed, 25 Oct 2023 07:23:57 +0000 Subject: [PATCH 6/6] update debug/accuracy_tools/api_accuracy_checker/run_ut/run_overflow_check.py. Signed-off-by: louyujing --- .../api_accuracy_checker/run_ut/run_overflow_check.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/run_ut/run_overflow_check.py b/debug/accuracy_tools/api_accuracy_checker/run_ut/run_overflow_check.py index 03e4e545a..40ce2fee5 100644 --- a/debug/accuracy_tools/api_accuracy_checker/run_ut/run_overflow_check.py +++ b/debug/accuracy_tools/api_accuracy_checker/run_ut/run_overflow_check.py @@ -11,7 +11,6 @@ from api_accuracy_checker.common.utils import print_info_log, print_warn_log, ge from ptdbg_ascend.src.python.ptdbg_ascend.common.file_check_util import FileCheckConst, check_file_suffix -NO_GRAD_APIS = ["hardtanh"] init_environment() @@ -78,10 +77,10 @@ def run_torch_api(api_full_name, api_setting_dict, backward_content, api_info_di api_type = api_full_name.split("_")[0] api_name = api_full_name.split("_", 1)[1].rsplit("_", 2)[0] args, kwargs, need_grad = get_api_info(api_info_dict, api_name) - need_backward = api_full_name.replace("forward", "backward") in backward_content and api_name[-1] != "_" + need_backward = api_full_name.replace("forward", "backward") in backward_content need_backward = need_backward and need_grad if not need_grad: - print_warn_log("%s involves in-place operations, skip backward" % api_full_name) + print_warn_log("%s function with out=... arguments don't support automatic differentiation, skip backward." % api_full_name) npu_args, npu_kwargs = generate_npu_params(args, kwargs, need_backward) if kwargs.get("device"): del kwargs["device"] -- Gitee