From 2078255c4d780f3ad659b7185fa1bee1d38449f0 Mon Sep 17 00:00:00 2001 From: s30048155 Date: Thu, 7 Dec 2023 16:01:13 +0800 Subject: [PATCH 1/6] fix bug --- .../api_accuracy_checker/test/resources/forward.json | 2 +- .../test/ut/run_ut/test_data_generate.py | 10 +++++----- .../test/ut/run_ut/test_run_ut.py | 12 +++++------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/test/resources/forward.json b/debug/accuracy_tools/api_accuracy_checker/test/resources/forward.json index fe5212ebe3..5f54e077bf 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/resources/forward.json +++ b/debug/accuracy_tools/api_accuracy_checker/test/resources/forward.json @@ -1,3 +1,3 @@ { - "Functional*silu*0": {"args": [{"type": "torch.Tensor", "dtype": "torch.float16", "shape": [2, 2560, 24, 24], "Max": 5.7421875, "Min": -5.125, "requires_grad": true}], "kwargs" :{"inplace": {"type": "bool", "value": false}}} + "Functional*silu*0": {"args": [{"type": "torch.Tensor", "dtype": "torch.float32", "shape": [2, 2560, 24, 24], "Max": 5.7421875, "Min": -5.125, "requires_grad": true}], "kwargs" :{"inplace": {"type": "bool", "value": false}}} } \ No newline at end of file diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py index 7cb9a8504d..b7a451cb8f 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py @@ -23,7 +23,7 @@ class TestDataGenerateMethods(unittest.TestCase): max_diff = abs(args_params[0].max() - max_value) min_diff = abs(args_params[0].min() - min_value) self.assertEqual(len(args_params), 1) - self.assertEqual(args_params[0].dtype, torch.float16) + self.assertEqual(args_params[0].dtype, torch.float32) self.assertLessEqual(max_diff, 0.001) self.assertLessEqual(min_diff, 0.001) self.assertEqual(args_params[0].shape, torch.Size([2, 2560, 24, 24])) @@ -34,7 +34,7 @@ class TestDataGenerateMethods(unittest.TestCase): max_diff = abs(args_result[0].max() - max_value) min_diff = abs(args_result[0].min() - min_value) self.assertEqual(len(args_result), 1) - self.assertEqual(args_result[0].dtype, torch.float16) + self.assertEqual(args_result[0].dtype, torch.float32) self.assertLessEqual(max_diff, 0.001) self.assertLessEqual(min_diff, 0.001) self.assertEqual(args_result[0].shape, torch.Size([2, 2560, 24, 24])) @@ -43,7 +43,7 @@ class TestDataGenerateMethods(unittest.TestCase): data = gen_data(api_info_dict.get('args')[0], True, None) max_diff = abs(data.max() - max_value) min_diff = abs(data.min() - min_value) - self.assertEqual(data.dtype, torch.float16) + self.assertEqual(data.dtype, torch.float32) self.assertEqual(data.requires_grad, True) self.assertLessEqual(max_diff, 0.001) self.assertLessEqual(min_diff, 0.001) @@ -75,7 +75,7 @@ class TestDataGenerateMethods(unittest.TestCase): data = gen_random_tensor(api_info_dict.get('args')[0], None) max_diff = abs(data.max() - max_value) min_diff = abs(data.min() - min_value) - self.assertEqual(data.dtype, torch.float16) + self.assertEqual(data.dtype, torch.float32) self.assertEqual(data.requires_grad, False) self.assertLessEqual(max_diff, 0.001) self.assertLessEqual(min_diff, 0.001) @@ -89,7 +89,7 @@ class TestDataGenerateMethods(unittest.TestCase): data = gen_common_tensor(low, high, shape, data_dtype, None) max_diff = abs(data.max() - max_value) min_diff = abs(data.min() - min_value) - self.assertEqual(data.dtype, torch.float16) + self.assertEqual(data.dtype, torch.float32) self.assertEqual(data.requires_grad, False) self.assertLessEqual(max_diff, 0.001) self.assertLessEqual(min_diff, 0.001) diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py index 6ed7acbede..cc8001ade5 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py @@ -1,12 +1,11 @@ # coding=utf-8 import os import copy -import numpy as np import unittest -from unittest.mock import patch +import torch +from unittest.mock import patch, DEFAULT from api_accuracy_checker.run_ut.run_ut import * from api_accuracy_checker.common.utils import get_json_contents -from api_accuracy_checker.run_ut.run_ut import generate_cpu_params, get_api_info, UtDataInfo base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) forward_file = os.path.join(base_dir, "../resources/forward.json") @@ -22,13 +21,12 @@ class TestRunUtMethods(unittest.TestCase): args, kwargs, need_grad = get_api_info(api_info, api_name) cpu_args, cpu_kwargs = generate_cpu_params(args, kwargs, True) out = exec_api(api_type, api_name, cpu_args, cpu_kwargs) - self.assertEqual(out.dtype, torch.float32) + self.assertEqual(out.dtype, torch.float64) self.assertEqual(out.requires_grad, True) self.assertEqual(out.shape, torch.Size([2, 2560, 24, 24])) def test_generate_device_params(self): - MockTensor = namedtuple('MockTensor', ['requires_grad', 'dtype', 'shape']) - mock_tensor = MockTensor(True, torch.float16, torch.Size([2, 2560, 24, 24])) + mock_tensor = torch.rand([2, 2560, 24, 24], dtype=torch.float16, requires_grad=True) with patch.multiple('torch.Tensor', to=DEFAULT, @@ -57,7 +55,7 @@ class TestRunUtMethods(unittest.TestCase): args, kwargs, need_grad = get_api_info(api_info, api_name) cpu_args, cpu_kwargs = generate_cpu_params(args, kwargs, True) self.assertEqual(len(cpu_args), 1) - self.assertEqual(cpu_args[0].dtype, torch.float32) + self.assertEqual(cpu_args[0].dtype, torch.float64) self.assertEqual(cpu_args[0].requires_grad, True) self.assertEqual(cpu_args[0].shape, torch.Size([2, 2560, 24, 24])) self.assertEqual(cpu_kwargs, {'inplace': False}) -- Gitee From b56371aa6096f7090ed826f4c17dd65f38d757b6 Mon Sep 17 00:00:00 2001 From: s30048155 Date: Fri, 8 Dec 2023 09:14:57 +0800 Subject: [PATCH 2/6] change to cpu --- .../test/ut/run_ut/test_data_generate.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py index b7a451cb8f..876e54d1d6 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py @@ -55,15 +55,15 @@ class TestDataGenerateMethods(unittest.TestCase): self.assertEqual(kwargs_params, {'inplace': False}) def test_gen_kwargs_device(self): - k_dict = {"kwargs": {"device": {"type": "torch.device", "value": "npu:0"}}} + k_dict = {"kwargs": {"device": "cpu"}} kwargs_params = gen_kwargs(k_dict, None) - self.assertEqual(str(kwargs_params), "{'device': device(type='npu', index=0)}") - + self.assertEqual(str(kwargs_params), "{'device': 'cpu'}") + def test_gen_kwargs_1(self): - k_dict = {"device": {"type": "torch.device", "value": "npu:0"}} + k_dict = {"device": "cpu"} for key, value in k_dict.items(): gen_torch_kwargs(k_dict, key, value) - self.assertEqual(str(k_dict), "{'device': device(type='npu', index=0)}") + self.assertEqual(str(k_dict), "{'device': 'cpu'}") def test_gen_kwargs_2(self): k_dict = {"inplace": {"type": "bool", "value": "False"}} -- Gitee From 9a3931f845b4cc5e20c54f84753a71761d8bd8db Mon Sep 17 00:00:00 2001 From: s30048155 Date: Fri, 8 Dec 2023 10:33:21 +0800 Subject: [PATCH 3/6] bug fix --- .../ut/online_dispatch/test_dispatch_util.py | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py diff --git a/debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py b/debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py new file mode 100644 index 0000000000..8531ac0f79 --- /dev/null +++ b/debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py @@ -0,0 +1,97 @@ +import unittest +from unittest.mock import patch, MagicMock +from ptdbg_ascend.online_dispatch.utils import * +import torch +import numpy as np +import os +import logging +from ptdbg_ascend.common.utils import CompareConst + +COLOR_YELLOW='\033[33m' +COLOR_RED='\033[31m' +COLOR_RESET='\033[0m' + +class TestUtils(unittest.TestCase): + + def test_get_callstack(self): + stack = get_callstack() + self.assertTrue(isinstance(stack, list)) + self.assertTrue(all(isinstance(item, list) for item in stack)) + + @patch('numpy.save') + def test_np_save_data(self, mock_save): + data = np.array([1, 2, 3]) + np_save_data(data, 'test', '/tmp') + mock_save.assert_called_once() + data = torch.tensor([1, 2, 3]) + np_save_data(data, 'test', '/tmp') + mock_save.assert_called() + + def test_data_to_cpu(self): + tensor = torch.tensor([1, 2, 3], device='npu:0') + result = data_to_cpu(tensor, 0, []) + self.assertTrue(result.device.type == 'cpu') + + @patch('logging.getLogger') + def test_get_mp_logger(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger = get_mp_logger() + self.assertTrue(callable(logger)) + + @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') + def test_logger_debug(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger_debug('test') + mock_logger.assert_called_once_with('DEBUG test') + + @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') + def test_logger_info(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger_info('test') + mock_logger.assert_called_once_with('INFO test') + + @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') + def test_logger_warn(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger_warn('test') + mock_logger.assert_called_once_with(f'{COLOR_YELLOW}WARNING test {COLOR_RESET}') + + @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') + def test_logger_error(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger_error('test') + mock_logger.assert_called_once_with(f'{COLOR_RED}ERROR test {COLOR_RESET}') + + @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') + def test_logger_user(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger_user('test') + mock_logger.assert_called_once_with('test') + + @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') + def test_logger_logo(self, mock_get_logger): + mock_logger = MagicMock() + mock_get_logger.return_value = mock_logger + logger_logo() + mock_logger.assert_called_once() + + @patch('psutil.virtual_memory') + @patch('psutil.cpu_percent') + def test_get_sys_info(self, mock_cpu_percent, mock_virtual_memory): + mock_virtual_memory.return_value = MagicMock(total=8*1024*1024, available=4*1024*1024, used=4*1024*1024) + mock_cpu_percent.return_value = 50 + sys_info = get_sys_info() + self.assertIn('Total:', sys_info) + self.assertIn('Free:', sys_info) + self.assertIn('Used:', sys_info) + self.assertIn('CPU:', sys_info) + + +if __name__ == '__main__': + unittest.main() \ No newline at end of file -- Gitee From 3e6e423b406b7657af6d4c718c7cb8109776c4de Mon Sep 17 00:00:00 2001 From: sunyiming Date: Fri, 8 Dec 2023 02:35:00 +0000 Subject: [PATCH 4/6] Revert "bug fix" This reverts commit 9a3931f845b4cc5e20c54f84753a71761d8bd8db. --- .../ut/online_dispatch/test_dispatch_util.py | 97 ------------------- 1 file changed, 97 deletions(-) delete mode 100644 debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py diff --git a/debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py b/debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py deleted file mode 100644 index 8531ac0f79..0000000000 --- a/debug/accuracy_tools/ptdbg_ascend/test/ut/online_dispatch/test_dispatch_util.py +++ /dev/null @@ -1,97 +0,0 @@ -import unittest -from unittest.mock import patch, MagicMock -from ptdbg_ascend.online_dispatch.utils import * -import torch -import numpy as np -import os -import logging -from ptdbg_ascend.common.utils import CompareConst - -COLOR_YELLOW='\033[33m' -COLOR_RED='\033[31m' -COLOR_RESET='\033[0m' - -class TestUtils(unittest.TestCase): - - def test_get_callstack(self): - stack = get_callstack() - self.assertTrue(isinstance(stack, list)) - self.assertTrue(all(isinstance(item, list) for item in stack)) - - @patch('numpy.save') - def test_np_save_data(self, mock_save): - data = np.array([1, 2, 3]) - np_save_data(data, 'test', '/tmp') - mock_save.assert_called_once() - data = torch.tensor([1, 2, 3]) - np_save_data(data, 'test', '/tmp') - mock_save.assert_called() - - def test_data_to_cpu(self): - tensor = torch.tensor([1, 2, 3], device='npu:0') - result = data_to_cpu(tensor, 0, []) - self.assertTrue(result.device.type == 'cpu') - - @patch('logging.getLogger') - def test_get_mp_logger(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger = get_mp_logger() - self.assertTrue(callable(logger)) - - @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') - def test_logger_debug(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger_debug('test') - mock_logger.assert_called_once_with('DEBUG test') - - @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') - def test_logger_info(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger_info('test') - mock_logger.assert_called_once_with('INFO test') - - @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') - def test_logger_warn(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger_warn('test') - mock_logger.assert_called_once_with(f'{COLOR_YELLOW}WARNING test {COLOR_RESET}') - - @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') - def test_logger_error(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger_error('test') - mock_logger.assert_called_once_with(f'{COLOR_RED}ERROR test {COLOR_RESET}') - - @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') - def test_logger_user(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger_user('test') - mock_logger.assert_called_once_with('test') - - @patch('ptdbg_ascend.online_dispatch.utils.get_mp_logger') - def test_logger_logo(self, mock_get_logger): - mock_logger = MagicMock() - mock_get_logger.return_value = mock_logger - logger_logo() - mock_logger.assert_called_once() - - @patch('psutil.virtual_memory') - @patch('psutil.cpu_percent') - def test_get_sys_info(self, mock_cpu_percent, mock_virtual_memory): - mock_virtual_memory.return_value = MagicMock(total=8*1024*1024, available=4*1024*1024, used=4*1024*1024) - mock_cpu_percent.return_value = 50 - sys_info = get_sys_info() - self.assertIn('Total:', sys_info) - self.assertIn('Free:', sys_info) - self.assertIn('Used:', sys_info) - self.assertIn('CPU:', sys_info) - - -if __name__ == '__main__': - unittest.main() \ No newline at end of file -- Gitee From b69efbc535812e0eb0713f457c0950d07d691a79 Mon Sep 17 00:00:00 2001 From: s30048155 Date: Fri, 8 Dec 2023 10:35:32 +0800 Subject: [PATCH 5/6] bug fix --- .../test/ut/run_ut/test_data_generate.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py index 876e54d1d6..fff5d6e4bd 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_data_generate.py @@ -55,15 +55,15 @@ class TestDataGenerateMethods(unittest.TestCase): self.assertEqual(kwargs_params, {'inplace': False}) def test_gen_kwargs_device(self): - k_dict = {"kwargs": {"device": "cpu"}} + k_dict = {"kwargs": {"device": {"type": "torch.device", "value": "cpu"}}} kwargs_params = gen_kwargs(k_dict, None) - self.assertEqual(str(kwargs_params), "{'device': 'cpu'}") - + self.assertEqual(str(kwargs_params), "{'device': device(type='cpu')}") + def test_gen_kwargs_1(self): - k_dict = {"device": "cpu"} + k_dict = {"device": {"type": "torch.device", "value": "cpu"}} for key, value in k_dict.items(): gen_torch_kwargs(k_dict, key, value) - self.assertEqual(str(k_dict), "{'device': 'cpu'}") + self.assertEqual(str(k_dict), "{'device': device(type='cpu')}") def test_gen_kwargs_2(self): k_dict = {"inplace": {"type": "bool", "value": "False"}} -- Gitee From c6608283885019dee03c157c8a4045d8215d563e Mon Sep 17 00:00:00 2001 From: sunyiming Date: Mon, 11 Dec 2023 08:52:14 +0000 Subject: [PATCH 6/6] update debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py. Signed-off-by: sunyiming --- .../api_accuracy_checker/test/ut/run_ut/test_run_ut.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py index cc8001ade5..e966e18104 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py @@ -26,7 +26,7 @@ class TestRunUtMethods(unittest.TestCase): self.assertEqual(out.shape, torch.Size([2, 2560, 24, 24])) def test_generate_device_params(self): - mock_tensor = torch.rand([2, 2560, 24, 24], dtype=torch.float16, requires_grad=True) + mock_tensor = torch.rand([2, 2560, 24, 24], dtype=torch.float32, requires_grad=True) with patch.multiple('torch.Tensor', to=DEFAULT, @@ -44,7 +44,7 @@ class TestRunUtMethods(unittest.TestCase): device_args, device_kwargs = generate_device_params([mock_tensor], {'inplace': False}, True) self.assertEqual(len(device_args), 1) - self.assertEqual(device_args[0].dtype, torch.float16) + self.assertEqual(device_args[0].dtype, torch.float32) self.assertEqual(device_args[0].requires_grad, True) self.assertEqual(device_args[0].shape, torch.Size([2, 2560, 24, 24])) self.assertEqual(device_kwargs, {'inplace': False}) -- Gitee