diff --git a/debug/accuracy_tools/msprobe/mindspore/__init__.py b/debug/accuracy_tools/msprobe/mindspore/__init__.py index 5005d6921e6f56d7c869932c7f8a0ccdb019cb67..c36ea84caace7de247ba97f2c8b504627786f9de 100644 --- a/debug/accuracy_tools/msprobe/mindspore/__init__.py +++ b/debug/accuracy_tools/msprobe/mindspore/__init__.py @@ -25,4 +25,4 @@ except ImportError: from msprobe.mindspore.debugger.precision_debugger import PrecisionDebugger from msprobe.mindspore.common.utils import seed_all, MsprobeStep, MsprobeInitStep from msprobe.mindspore.monitor.module_hook import TrainerMon -from msprobe.mindspore.dump.graph_tensor_dump import save, save_grad \ No newline at end of file +from msprobe.mindspore.dump.graph_tensor_dump import save, save_grad, step \ No newline at end of file diff --git a/debug/accuracy_tools/msprobe/mindspore/compare/common_dir_compare.py b/debug/accuracy_tools/msprobe/mindspore/compare/common_dir_compare.py index ca7b383cd2478f1b970b07a7e59c5642af1eefe6..8d32a03ccc45919c4f6ee50dfac7d31cc39bac7a 100644 --- a/debug/accuracy_tools/msprobe/mindspore/compare/common_dir_compare.py +++ b/debug/accuracy_tools/msprobe/mindspore/compare/common_dir_compare.py @@ -152,21 +152,31 @@ def find_npy_files(directory): dirs.clear() for file in files: if file.endswith(".npy"): - # 分割文件名并去掉最后两个元素 - file_name = file.split('_') - if len(file_name) < 2: - continue - key = '_'.join(file_name[:-2]) - # 文件的完整路径 - value = os.path.join(root, file) - # 添加到字典中 - if not npy_files_dict.get(key): - npy_files_dict[key] = [] - npy_files_dict[key].append(value) + file_name = file.split('.npy') + key = None + if '_' in file_name: + # 分割文件名并去掉最后两个元素 + file_name = file.split('_') + if len(file_name) < 2: + continue + key = '_'.join(file_name[:-2]) + elif '.' in file_name: + file_ele = file_name.split('.') + if len(file_ele) < 2: + continue + key = '_'.join(file_ele[0], file_ele[1]) + # 文件的完整路径 + if key: + value = os.path.join(root, file) + # 添加到字典中 + if not npy_files_dict.get(key): + npy_files_dict[key] = [] + npy_files_dict[key].append(value) return npy_files_dict def generate_map_dict(npu_file_dict, bench_file_dict, name_map_dict=None): + result_dict = {} for k, npu_file_list in npu_file_dict.items(): bench_file_list = bench_file_dict.get(k) if not bench_file_list and k in name_map_dict: @@ -174,7 +184,6 @@ def generate_map_dict(npu_file_dict, bench_file_dict, name_map_dict=None): bench_length = len(bench_file_list) if not (bench_file_list and bench_length): continue - result_dict = {} for i, npu_file in enumerate(npu_file_list): if i >= bench_length: break diff --git a/debug/accuracy_tools/msprobe/mindspore/dump/graph_tensor_dump.py b/debug/accuracy_tools/msprobe/mindspore/dump/graph_tensor_dump.py index 7b3f249e7e7065d52046aa6991a9d8553bb230d6..58746c63ebdf6545a92770b16bbee6a2c2f7944f 100644 --- a/debug/accuracy_tools/msprobe/mindspore/dump/graph_tensor_dump.py +++ b/debug/accuracy_tools/msprobe/mindspore/dump/graph_tensor_dump.py @@ -16,6 +16,8 @@ import os from collections import OrderedDict import mindspore as ms +from mindspore import hal, ops, Tensor +from mindspore.ops.primitive import _run_op def _iterate_items(data): @@ -121,3 +123,10 @@ def save_grad(save_dir, name, data): dump_dir = generate_dump_dir(save_dir) suffix_name = name + '_grad' return _SaveGradCell(dump_dir, suffix_name)(data) + + +def step(): + hal.synchronize() + temp_tensor = Tensor([1], dtype=ms.float32) + step_flag = "" + _run_op(ops.TensorDump(), "TensorDump", (step_flag, temp_tensor)) \ No newline at end of file