diff --git a/debug/accuracy_tools/msprobe/mindspore/dump/kernel_kbyk_dump.py b/debug/accuracy_tools/msprobe/mindspore/dump/kernel_kbyk_dump.py index 3f8826cf729d00828545814681c64c52d1c1850e..2c46b0c73e7789ea41afb991bb985e089b2349cd 100644 --- a/debug/accuracy_tools/msprobe/mindspore/dump/kernel_kbyk_dump.py +++ b/debug/accuracy_tools/msprobe/mindspore/dump/kernel_kbyk_dump.py @@ -13,11 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json import os from msprobe.core.common.const import Const -from msprobe.core.common.file_utils import FileOpen, create_directory +from msprobe.core.common.file_utils import create_directory, save_json from msprobe.mindspore.common.log import logger from msprobe.mindspore.debugger.debugger_config import DebuggerConfig @@ -70,8 +69,7 @@ class KernelKbykDump: json_path = self.dump_json[KernelKbykDump.COMMON_SETTINGS]["path"] create_directory(json_path) json_path = os.path.join(json_path, "kernel_kbyk_dump.json") - with FileOpen(json_path, 'w') as f: - json.dump(self.dump_json, f) + save_json(json_path, self.dump_json, indent=4) logger.info(json_path + " has been created.") os.environ["MINDSPORE_DUMP_CONFIG"] = json_path diff --git a/debug/accuracy_tools/msprobe/test/mindspore_ut/test_kernel_kbyk_dump.py b/debug/accuracy_tools/msprobe/test/mindspore_ut/test_kernel_kbyk_dump.py index b24b7e29cb6962acc64d9f68500d5c4ec6ae8a58..120419da66395d083c02e05c9a676d2b3eb068a8 100644 --- a/debug/accuracy_tools/msprobe/test/mindspore_ut/test_kernel_kbyk_dump.py +++ b/debug/accuracy_tools/msprobe/test/mindspore_ut/test_kernel_kbyk_dump.py @@ -49,3 +49,204 @@ class TestKernelKbykDump(TestCase): dumper.handle() mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "rank": [], + "step": [0, 2], + "level": "L2" + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor_input(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "rank": [], + "step": [0, 2], + "data_mode": [ + "input" + ], + "level": "L2" + + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor_output(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "rank": [], + "step": [0, 2], + "data_mode": [ + "output" + ], + "level": "L2" + + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor_output_rank_0(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "rank": [0], + "step": [0, 2], + "data_mode": [ + "output" + ], + "level": "L2" + + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor_output_rank_0(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "rank": [0], + "step": [0, 2], + "data_mode": [ + "output" + ], + "level": "L2" + + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor_list_output(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "list": ['add'], + "rank": [0], + "step": [0, 2], + "data_mode": [ + "output" + ], + "level": "L2" + + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) + + @patch("msprobe.mindspore.debugger.debugger_config.create_directory") + def test_handle_tensor_list_input(self, _): + json_config = { + "task": "tensor", + "dump_path": "/absolute_path", + "list": ['add'], + "rank": [0], + "step": [0, 2], + "data_mode": [ + "input" + ], + "level": "L2" + + } + + common_config = CommonConfig(json_config) + task_config = BaseConfig(json_config) + config = DebuggerConfig(common_config, task_config) + dumper = KernelKbykDump(config) + self.assertEqual(dumper.dump_json["common_dump_settings"]["iteration"], "0|2") + + os.environ["MS_ACL_DUMP_CFG_PATH"] = "path" + with patch("msprobe.mindspore.dump.kernel_kbyk_dump.create_directory"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.FileOpen"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.json.dump"), \ + patch("msprobe.mindspore.dump.kernel_kbyk_dump.logger.info") as mock_info: + dumper.handle() + mock_info.assert_called_with("/absolute_path/kernel_kbyk_dump.json has been created.") + self.assertEqual(os.environ.get("MS_ACL_DUMP_CFG_PATH"), None) \ No newline at end of file