diff --git a/mindinsight/profiler/analyser/analyser.py b/mindinsight/profiler/analyser/analyser.py index c5d5f6c28b19ac118d2e7c33846dea7cc2575032..48831688458bc89dbede3d2d73d6662999b94a15 100644 --- a/mindinsight/profiler/analyser/analyser.py +++ b/mindinsight/profiler/analyser/analyser.py @@ -34,6 +34,8 @@ class AicoreTypeAnalyser(BaseAnalyser): ProfilerPathErrorException: If the profiling dir is invalid. """ _col_names = ['op_type', 'execution_time', 'execution_frequency', 'percent'] + _col_names_in_result = ['op_type', 'execution_time (ms)', + 'execution_frequency', 'percent'] _file_name_aicore_type_time = 'aicore_intermediate_{}_type.csv' def _load(self): @@ -72,6 +74,7 @@ class AicoreTypeAnalyser(BaseAnalyser): """ for item in self._result: item[1] = float(format(item[1], '.6f')) + self._display_col_names = self._col_names_in_result[:] return super()._organize_query_result() def _convert_field_type(self, row): @@ -101,6 +104,8 @@ class AicoreDetailAnalyser(BaseAnalyser): """ _col_names = ['op_name', 'op_type', 'avg_execution_time', 'subgraph', 'full_op_name', 'op_info'] + _col_names_in_result = ['op_name', 'op_type', 'avg_execution_time (ms)', + 'subgraph', 'full_op_name', 'op_info'] _file_name_aicore_detail_time = 'aicore_intermediate_{}_detail.csv' _file_name_framework_info = 'framework_raw_{}.csv' @@ -226,11 +231,11 @@ class AicoreDetailAnalyser(BaseAnalyser): is_display_full_op_name (bool): Whether to display the operator full name. """ - self._display_col_names = self._col_names[0:4] + self._display_col_names = self._col_names_in_result[0:4] if is_display_full_op_name: - self._display_col_names.append(self._col_names[4]) + self._display_col_names.append(self._col_names_in_result[4]) if is_display_detail: - self._display_col_names.append(self._col_names[5]) + self._display_col_names.append(self._col_names_in_result[5]) def _convert_framework_field_type(self, row): """ @@ -275,6 +280,8 @@ class AicpuAnalyser(BaseAnalyser): """ _col_names = ['serial_number', 'op_type', 'total_time', 'dispatch_time', 'run_start', 'run_end'] + _col_names_in_result = ['serial_number', 'op_type', 'total_time (ms)', + 'dispatch_time (ms)', 'run_start', 'run_end'] _file_name_aicpu_time = 'aicpu_intermediate_{}.csv' def _load(self): @@ -305,6 +312,16 @@ class AicpuAnalyser(BaseAnalyser): return self._default_filter(item, filter_condition) self._result = list(filter(_inner_filter, self._data)) + def _organize_query_result(self): + """ + Organize the query result. + + Returns: + dict, the query result. + """ + self._display_col_names = self._col_names_in_result[:] + return super()._organize_query_result() + def _convert_field_type(self, row): """ Convert the field type to the specific type. diff --git a/tests/st/func/profiler/test_op_analyser.py b/tests/st/func/profiler/test_op_analyser.py index a5a3551ad09d9ce8a269813bf2ea0631a88f5b1e..81659820154589befef478496f5f6b257063d814 100644 --- a/tests/st/func/profiler/test_op_analyser.py +++ b/tests/st/func/profiler/test_op_analyser.py @@ -32,7 +32,8 @@ from tests.ut.profiler import RAW_DATA_BASE OP_GATHER_V2_INFO = { 'col_name': [ - 'op_name', 'op_type', 'avg_execution_time', 'subgraph', 'full_op_name', 'op_info' + 'op_name', 'op_type', 'avg_execution_time (ms)', 'subgraph', 'full_op_name', + 'op_info' ], 'object': [ [ @@ -124,7 +125,7 @@ class TestOpAnalyser: def test_query_aicore_type_1(self): """Test the function of querying AICORE operator type infomation.""" expect_result = { - 'col_name': ['op_type', 'execution_time', 'execution_frequency', 'percent'], + 'col_name': ['op_type', 'execution_time (ms)', 'execution_frequency', 'percent'], 'object': [ ['UnsortedSegmentSum', 44.607826, 2, 35.28], ['GatherV2', 43.155441, 2, 34.13], @@ -176,7 +177,7 @@ class TestOpAnalyser: def test_query_aicore_type_2(self): """Test the function of querying AICORE operator type infomation.""" expect_result = { - 'col_name': ['op_type', 'execution_time', 'execution_frequency', 'percent'], + 'col_name': ['op_type', 'execution_time (ms)', 'execution_frequency', 'percent'], 'object': [ ['MatMul', 1.936681, 15, 1.53], ['Mul', 1.902949, 32, 1.51] diff --git a/tests/ut/profiler/analyser/test_analyser_aicore_detail.py b/tests/ut/profiler/analyser/test_analyser_aicore_detail.py index d4750bd60d4d89c2e6854b07bdd520b3686ba9d1..9a796e0122bda3904e001a832c1228fa042bfe10 100644 --- a/tests/ut/profiler/analyser/test_analyser_aicore_detail.py +++ b/tests/ut/profiler/analyser/test_analyser_aicore_detail.py @@ -23,6 +23,8 @@ from tests.ut.profiler import PROFILER_DIR COL_NAMES = ['op_name', 'op_type', 'avg_execution_time', 'subgraph', 'full_op_name', 'op_info'] +COL_NAMES_IN_RESULT = ['op_name', 'op_type', 'avg_execution_time (ms)', + 'subgraph', 'full_op_name', 'op_info'] def get_detail_infos(indexes=None, sort_name=None, sort_type=True): @@ -75,7 +77,7 @@ class TestAicoreDetailAnalyser(TestCase): def test_query_success_1(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos(), 'size': 10 } @@ -88,7 +90,7 @@ class TestAicoreDetailAnalyser(TestCase): def test_query_success_2(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos(indexes=[9]), 'size': 1 } @@ -125,7 +127,7 @@ class TestAicoreDetailAnalyser(TestCase): def test_query_success_3(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos(sort_name='avg_execution_time', sort_type=True), 'size': 10 } @@ -139,7 +141,7 @@ class TestAicoreDetailAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos(sort_name='op_name', sort_type=False), 'size': 10 } @@ -155,7 +157,7 @@ class TestAicoreDetailAnalyser(TestCase): def test_query_success_4(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos(indexes=[2, 3]), 'size': 10 } @@ -169,7 +171,7 @@ class TestAicoreDetailAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': [], 'size': 10 } @@ -185,7 +187,7 @@ class TestAicoreDetailAnalyser(TestCase): def test_query_success_5(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos( indexes=[1, 2], sort_name='avg_execution_time', sort_type=True ), @@ -209,7 +211,7 @@ class TestAicoreDetailAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_detail_infos( indexes=[0, 1, 2, 8], sort_name='avg_execution_time', sort_type=True ), @@ -236,7 +238,7 @@ class TestAicoreDetailAnalyser(TestCase): detail_infos = get_detail_infos(indexes=[9]) expect_result = { - 'col_name': COL_NAMES[0:5], + 'col_name': COL_NAMES_IN_RESULT[0:5], 'object': [item[0:5] for item in detail_infos], 'size': 1 } @@ -252,7 +254,7 @@ class TestAicoreDetailAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES[0:4], + 'col_name': COL_NAMES_IN_RESULT[0:4], 'object': [item[0:4] for item in detail_infos], 'size': 1 } @@ -272,7 +274,7 @@ class TestAicoreDetailAnalyser(TestCase): """Test the success of the querying and sorting function by operator type.""" detail_infos = get_detail_infos(indexes=[9, 0, 2, 1, 5, 3, 4]) expect_result = { - 'col_name': COL_NAMES[0:4], + 'col_name': COL_NAMES_IN_RESULT[0:4], 'object': [item[0:4] for item in detail_infos] } @@ -294,7 +296,7 @@ class TestAicoreDetailAnalyser(TestCase): """Test the success of the querying and sorting function by operator type.""" detail_infos = get_detail_infos(indexes=[9, 0, 2, 1, 3, 4, 8, 6]) expect_result = { - 'col_name': COL_NAMES[0:4], + 'col_name': COL_NAMES_IN_RESULT[0:4], 'object': [item[0:4] for item in detail_infos] } diff --git a/tests/ut/profiler/analyser/test_analyser_aicore_type.py b/tests/ut/profiler/analyser/test_analyser_aicore_type.py index 76caa12e5d7f582663c0dedcefa84e9a716dfc7a..78618cff2d40497adc0f8c4af4181843c17fa568 100644 --- a/tests/ut/profiler/analyser/test_analyser_aicore_type.py +++ b/tests/ut/profiler/analyser/test_analyser_aicore_type.py @@ -21,6 +21,8 @@ from mindinsight.profiler.analyser.analyser_factory import AnalyserFactory from tests.ut.profiler import PROFILER_DIR COL_NAMES = ['op_type', 'execution_time', 'execution_frequency', 'percent'] +COL_NAMES_IN_RESULT = ['op_type', 'execution_time (ms)', 'execution_frequency', + 'percent'] def get_type_infos(indexes=None, sort_name=None, sort_type=True): @@ -72,7 +74,7 @@ class TestAicoreTypeAnalyser(TestCase): def test_query_success_1(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(), 'size': 5 } @@ -86,7 +88,7 @@ class TestAicoreTypeAnalyser(TestCase): def test_query_success_2(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[1]), 'size': 1 } @@ -101,7 +103,7 @@ class TestAicoreTypeAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[0, 2, 3, 4]), 'size': 4 } @@ -116,7 +118,7 @@ class TestAicoreTypeAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[0, 1, 3]), 'size': 3 } @@ -133,7 +135,7 @@ class TestAicoreTypeAnalyser(TestCase): def test_query_success_3(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[1, 3]), 'size': 2 } @@ -148,7 +150,7 @@ class TestAicoreTypeAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[0, 2, 4]), 'size': 3 } @@ -163,7 +165,7 @@ class TestAicoreTypeAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[2, 3]), 'size': 2 } @@ -180,7 +182,7 @@ class TestAicoreTypeAnalyser(TestCase): def test_query_success_4(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(sort_name='op_type', sort_type=True), 'size': 5} condition = { @@ -193,7 +195,7 @@ class TestAicoreTypeAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(sort_name='execution_time', sort_type=False), 'size': 5 } @@ -209,7 +211,7 @@ class TestAicoreTypeAnalyser(TestCase): def test_query_success_5(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[0, 1]), 'size': 5 } @@ -223,7 +225,7 @@ class TestAicoreTypeAnalyser(TestCase): self.assertDictEqual(expect_result, result) expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos(indexes=[3, 4]), 'size': 5 } @@ -239,7 +241,7 @@ class TestAicoreTypeAnalyser(TestCase): def test_query_success_6(self): """Test the success of the querying function.""" expect_result = { - 'col_name': COL_NAMES, + 'col_name': COL_NAMES_IN_RESULT, 'object': get_type_infos( indexes=[1, 3], sort_name='execution_time', sort_type=True ),