mindstudio-probe 1.2.1__tar.gz → 1.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/PKG-INFO +1 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/PKG-INFO +1 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/SOURCES.txt +19 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/README.md +2 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/const.py +34 -9
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/inplace_ops.yaml +1 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/utils.py +14 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/layer_mapping/data_scope_parser.py +1 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/merge_result/merge_result.py +8 -7
- mindstudio_probe-1.2.2/msprobe/core/compare/merge_result/utils.py +81 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/utils.py +10 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/data_collector.py +58 -13
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/data_processor/base.py +92 -8
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/data_processor/factory.py +3 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/data_processor/mindspore_processor.py +17 -4
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/data_processor/pytorch_processor.py +58 -7
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/json_writer.py +26 -8
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/01.installation.md +25 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/02.config_introduction.md +14 -12
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/03.config_examples.md +24 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/05.data_dump_PyTorch.md +34 -15
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/06.data_dump_MindSpore.md +45 -22
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/09.accuracy_checker_MindSpore.md +4 -2
- mindstudio_probe-1.2.2/msprobe/docs/19.monitor.md +558 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/21.visualization_PyTorch.md +10 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/22.visualization_MindSpore.md +11 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/27.dump_json_instruction.md +24 -20
- mindstudio_probe-1.2.2/msprobe/docs/28.debugger_save_instruction.md +94 -0
- mindstudio_probe-1.2.2/msprobe/docs/28.kernel_dump_MindSpore.md +69 -0
- mindstudio_probe-1.2.2/msprobe/docs/img/monitor/step_count_per_record.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/__init__.py +1 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +26 -6
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/api_runner.py +54 -16
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/compute_element.py +47 -1
- mindstudio_probe-1.2.2/msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py +129 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/type_mapping.py +24 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/utils.py +6 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/common/utils.py +20 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/debugger/debugger_config.py +25 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/debugger/precision_debugger.py +25 -6
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/hook_cell/api_registry.py +2 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/jit_dump.py +7 -6
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/anomaly_detect.py +404 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/distributed/distributed_ops.yaml +15 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/distributed/stack_blacklist.yaml +5 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/distributed/wrap_distributed.py +300 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/features.py +63 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/module_hook.py +821 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/module_spec_verifier.py +94 -0
- mindstudio_probe-1.2.2/msprobe/mindspore/monitor/utils.py +267 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/ms_config.py +8 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/service.py +95 -21
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/__init__.py +0 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py +1 -1
- mindstudio_probe-1.2.2/msprobe/pytorch/bench_functions/apply_adam.py +215 -0
- mindstudio_probe-1.2.2/msprobe/pytorch/bench_functions/group_norm_silu.py +27 -0
- mindstudio_probe-1.2.2/msprobe/pytorch/bench_functions/mish.py +21 -0
- mindstudio_probe-1.2.2/msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py +44 -0
- mindstudio_probe-1.2.2/msprobe/pytorch/bench_functions/sort_v2.py +21 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/common/utils.py +71 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/debugger/debugger_config.py +19 -9
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/debugger/precision_debugger.py +14 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/dump/module_dump/module_processer.py +10 -30
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/function_factory.py +7 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/support_wrap_ops.yaml +2 -1
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_distributed.py +4 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/anomaly_detect.py +14 -29
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/csv2tb.py +10 -12
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/module_hook.py +123 -104
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/module_metric.py +6 -6
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/optimizer_collect.py +45 -63
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/utils.py +8 -43
- mindstudio_probe-1.2.2/msprobe/pytorch/parse_tool/lib/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/pt_config.py +19 -22
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/service.py +103 -24
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/builder/graph_builder.py +31 -5
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/builder/msprobe_adapter.py +7 -5
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph/base_node.py +3 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph/distributed_analyzer.py +80 -3
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph/node_op.py +4 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph_service.py +3 -4
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/utils.py +10 -2
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/setup.py +1 -1
- mindstudio_probe-1.2.1/msprobe/docs/19.monitor.md +0 -561
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/LICENSE +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/MANIFEST.in +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/dependency_links.txt +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/entry_points.txt +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/not-zip-safe +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/requires.txt +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/mindstudio_probe.egg-info/top_level.txt +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/CMakeLists.txt +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/config.json +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/advisor/advisor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/advisor/advisor_const.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/advisor/advisor_result.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/exceptions.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/file_utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/inplace_op_checker.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common/log.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/common_config.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/acc_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/check.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/compare_cli.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/highlight.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/layer_mapping/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/layer_mapping/layer_mapping.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/layer_mapping/postprocess_pass.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/merge_result/merge_result_cli.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/multiprocessing_compute.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/npy_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/data_dump/scope.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/grad_probe/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/grad_probe/constant.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/grad_probe/grad_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/grad_probe/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/abnormal_scene.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/api_info.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/checker.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/filter.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/ignore_rules.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/level.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/overflow_check/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/04.kernel_dump_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/07.accuracy_checker_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/08.accuracy_checker_online_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/10.accuracy_compare_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/11.accuracy_compare_MindSpore.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/12.overflow_check_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/13.overflow_check_MindSpore.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/14.data_parse_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/15.free_benchmarking_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/16.free_benchmarking_MindSpore.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/17.grad_probe.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/18.online_dispatch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/20.monitor_performance_baseline.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/23.generate_operator_PyTorch.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/24.code_mapping_Mindspore.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/25.tool_function_introduction.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/26.data_dump_PyTorch_baseline.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/FAQ.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/data_dump_MindSpore/data_dump_MindSpore_baseline.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/data_dump_MindSpore/dynamic_graph_quick_start_example.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/BLOOM-7B_1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/BLOOM-7B_2.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/BLOOM-7B_3.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/BLOOM-7B_4.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_2.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_3.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_4.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_5.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_6.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_7.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/GPT-3_8.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/YOLOV5S_1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/YOLOV5S_2.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/accuracy_checking_details.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/accuracy_checking_result.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/api_precision_compare_details.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/api_precision_compare_result.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/auto_analyze_log.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/compare_result.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/compare_result_pkl.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/compare_result_pkl_md5.png.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/cpu_info.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/free_benchmark.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/free_benchmark_framework.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/grad_probe_image-1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/grad_probe_image-2.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/grad_probe_image-3.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/grad_probe_image-4.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/grad_probe_image.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/merge_result.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/module_compare.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/monitor/cpu_info.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/ms_dump.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/ms_layer.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/pt_dump.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/fuzzy_match_ms.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/fuzzy_match_pt.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/tensorboard_1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/tensorboard_2.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_browser_1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_browser_2.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_precision_info.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_search_info.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_show_info.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_showcase.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/img/visualization/vis_unmatch_info.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/GPTModel.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/ParallelMLP.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/layer_mapping_example.md +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/mapping.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/mapping1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/module_name.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/module_name1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/no_mapping.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/no_mapping1.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/no_mapping_analyze.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/docs/visualization/top_layer.png +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/api_info.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/checker_support_api.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/cmd_parser.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/data_manager.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/main.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/api_accuracy_checker/multi_data_manager.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/cell_processor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/bind.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/cmd_parser.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/graph.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/graph_parser.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/main.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/code_mapping/processor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/common/const.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/common/log.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/compare/distributed_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/compare/ms_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/compare/ms_graph_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/compare/ms_to_pt_api.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/debugger/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/dump_tool_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/hook_cell/hook_cell.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/hook_cell/primitive_hooks.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/hook_cell/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/hook_cell/wrap_api.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/kernel_dump/kernel_config.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/kernel_graph_dump.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dump/kernel_kbyk_dump.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dym_loader/hook_dynamic_loader.cc +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/dym_loader/hook_dynamic_loader.h +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/api_pynative_self_check.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/common/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/common/config.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/common/handler_params.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/common/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/data/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/handler/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/handler/base_handler.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/handler/check_handler.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/handler/fix_handler.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/handler/handler_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/add_noise.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/base_perturbation.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/bit_noise.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/exchange_value.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/improve_precision.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/no_change.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/perturbation/perturbation_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/free_benchmark/self_check_tool_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/global_context.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/grad_analyzer.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/grad_monitor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/grad_stat_csv.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/hook.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/grad_probe/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/mindtorch/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/mindtorch/mindtorch_adaptor.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/mindspore/overflow_check → mindstudio_probe-1.2.2/msprobe/mindspore/monitor/distributed}/__init__.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/api_accuracy_checker → mindstudio_probe-1.2.2/msprobe/mindspore/overflow_check}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/overflow_check/kernel_graph_overflow_check.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/overflow_check/overflow_check_tool_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/runtime.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/mindspore/task_handler_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/msprobe.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/.keep +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/api_accuracy_checker/common → mindstudio_probe-1.2.2/msprobe/pytorch/api_accuracy_checker}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/common/.keep +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/api_accuracy_checker/compare → mindstudio_probe-1.2.2/msprobe/pytorch/api_accuracy_checker/common}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/common/config.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/common/utils.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/api_accuracy_checker/run_ut → mindstudio_probe-1.2.2/msprobe/pytorch/api_accuracy_checker/compare}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/algorithm.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_standard.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_threshold.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/compare_column.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/compare_input.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/config.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/generate_op_script/config_op.json +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/generate_op_script/operator_replication.template +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/absolute_threshold.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/accumulative_error_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/base_standard.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/benchmark_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/binary_consistency.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/standard_config.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/standard_register.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/thousandth_standard.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/ulp_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/.keep +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer → mindstudio_probe-1.2.2/msprobe/pytorch/api_accuracy_checker/run_ut}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/data_generate.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/run_overflow_check.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/run_ut_utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/run_ut/torch_ut_setting.json +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/debugger → mindstudio_probe-1.2.2/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/attl.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/client.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/device_dispatch.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/dump_dispatch.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/torch_ops_config.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/apply_adam_w.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/confusion_transpose.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/fast_gelu.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/layer_norm_eval.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/linear.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/matmul_backward.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/npu_fusion_attention.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/rms_norm.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/rotary_mul.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/scaled_mask_softmax.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/bench_functions/swiglu.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/common/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/common/compare_script.template +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/common/log.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/common/parse_json.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/compare/distributed_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/compare/mapping.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/compare/match.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/compare/pt_compare.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/dump/module_dump → mindstudio_probe-1.2.2/msprobe/pytorch/debugger}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/dump/kernel_dump/kernel_config.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/free_benchmark/common → mindstudio_probe-1.2.2/msprobe/pytorch/dump/module_dump}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/dump/module_dump/module_dump.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/__init__.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/free_benchmark/perturbed_layers → mindstudio_probe-1.2.2/msprobe/pytorch/free_benchmark/common}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/common/constant.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/common/counter.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/common/enums.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/common/params.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/common/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/compare/grad_saver.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/compare/single_benchmark.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/main.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/free_benchmark/perturbed_layers/npu → mindstudio_probe-1.2.2/msprobe/pytorch/free_benchmark/perturbed_layers}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/base_layer.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/layer_factory.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/free_benchmark/result_handlers → mindstudio_probe-1.2.2/msprobe/pytorch/free_benchmark/perturbed_layers/npu}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/add_noise.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/bit_noise.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/change_value.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/improve_precision.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/no_change.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/npu_base_layser.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/perturbed_layers/run_cpu.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/grad_probe → mindstudio_probe-1.2.2/msprobe/pytorch/free_benchmark/result_handlers}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/result_handlers/base_handler.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/result_handlers/check_handler.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/result_handlers/fix_handler.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/result_handlers/handler_factory.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/free_benchmark/result_handlers/preheat_handler.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/monitor → mindstudio_probe-1.2.2/msprobe/pytorch/grad_probe}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/grad_probe/grad_monitor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/grad_probe/grad_stat_csv.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/api_registry.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/hook_module.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/register_optimizer_hook.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_aten.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_functional.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_npu_custom.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_tensor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_torch.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/hook_module/wrap_vf.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/monitor/distributed → mindstudio_probe-1.2.2/msprobe/pytorch/monitor}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/anomaly_analyse.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/monitor/unittest → mindstudio_probe-1.2.2/msprobe/pytorch/monitor/distributed}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/distributed/distributed_ops.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/distributed/stack_blacklist.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/distributed/wrap_distributed.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/features.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/module_spec_verifier.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/parse_tool → mindstudio_probe-1.2.2/msprobe/pytorch/monitor/unittest}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/unittest/test_monitor.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/monitor/visualizer.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/dispatch.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/dump_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/single_compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/torch_ops_config.yaml +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/online_dispatch/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse.py +0 -0
- {mindstudio_probe-1.2.1/msprobe/pytorch/parse_tool/lib → mindstudio_probe-1.2.2/msprobe/pytorch/parse_tool}/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/cli.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/compare.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/config.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/file_desc.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/interactive_cli.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/parse_exception.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/parse_tool.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/utils.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/pytorch/parse_tool/lib/visualization.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/builder/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/compare/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/compare/graph_comparator.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/compare/mode_adapter.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph/__init__.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph/graph.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/visualization/graph/node_colors.py +0 -0
- {mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/setup.cfg +0 -0
|
@@ -38,6 +38,7 @@ msprobe/core/compare/layer_mapping/layer_mapping.py
|
|
|
38
38
|
msprobe/core/compare/layer_mapping/postprocess_pass.py
|
|
39
39
|
msprobe/core/compare/merge_result/merge_result.py
|
|
40
40
|
msprobe/core/compare/merge_result/merge_result_cli.py
|
|
41
|
+
msprobe/core/compare/merge_result/utils.py
|
|
41
42
|
msprobe/core/data_dump/data_collector.py
|
|
42
43
|
msprobe/core/data_dump/json_writer.py
|
|
43
44
|
msprobe/core/data_dump/scope.py
|
|
@@ -83,6 +84,8 @@ msprobe/docs/24.code_mapping_Mindspore.md
|
|
|
83
84
|
msprobe/docs/25.tool_function_introduction.md
|
|
84
85
|
msprobe/docs/26.data_dump_PyTorch_baseline.md
|
|
85
86
|
msprobe/docs/27.dump_json_instruction.md
|
|
87
|
+
msprobe/docs/28.debugger_save_instruction.md
|
|
88
|
+
msprobe/docs/28.kernel_dump_MindSpore.md
|
|
86
89
|
msprobe/docs/FAQ.md
|
|
87
90
|
msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md
|
|
88
91
|
msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md
|
|
@@ -124,6 +127,7 @@ msprobe/docs/img/ms_dump.png
|
|
|
124
127
|
msprobe/docs/img/ms_layer.png
|
|
125
128
|
msprobe/docs/img/pt_dump.png
|
|
126
129
|
msprobe/docs/img/monitor/cpu_info.png
|
|
130
|
+
msprobe/docs/img/monitor/step_count_per_record.png
|
|
127
131
|
msprobe/docs/img/visualization/fuzzy_match_ms.png
|
|
128
132
|
msprobe/docs/img/visualization/fuzzy_match_pt.png
|
|
129
133
|
msprobe/docs/img/visualization/tensorboard_1.png
|
|
@@ -164,6 +168,7 @@ msprobe/mindspore/api_accuracy_checker/data_manager.py
|
|
|
164
168
|
msprobe/mindspore/api_accuracy_checker/main.py
|
|
165
169
|
msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py
|
|
166
170
|
msprobe/mindspore/api_accuracy_checker/multi_data_manager.py
|
|
171
|
+
msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py
|
|
167
172
|
msprobe/mindspore/api_accuracy_checker/type_mapping.py
|
|
168
173
|
msprobe/mindspore/api_accuracy_checker/utils.py
|
|
169
174
|
msprobe/mindspore/code_mapping/__init__.py
|
|
@@ -225,6 +230,15 @@ msprobe/mindspore/grad_probe/hook.py
|
|
|
225
230
|
msprobe/mindspore/grad_probe/utils.py
|
|
226
231
|
msprobe/mindspore/mindtorch/__init__.py
|
|
227
232
|
msprobe/mindspore/mindtorch/mindtorch_adaptor.py
|
|
233
|
+
msprobe/mindspore/monitor/anomaly_detect.py
|
|
234
|
+
msprobe/mindspore/monitor/features.py
|
|
235
|
+
msprobe/mindspore/monitor/module_hook.py
|
|
236
|
+
msprobe/mindspore/monitor/module_spec_verifier.py
|
|
237
|
+
msprobe/mindspore/monitor/utils.py
|
|
238
|
+
msprobe/mindspore/monitor/distributed/__init__.py
|
|
239
|
+
msprobe/mindspore/monitor/distributed/distributed_ops.yaml
|
|
240
|
+
msprobe/mindspore/monitor/distributed/stack_blacklist.yaml
|
|
241
|
+
msprobe/mindspore/monitor/distributed/wrap_distributed.py
|
|
228
242
|
msprobe/mindspore/overflow_check/__init__.py
|
|
229
243
|
msprobe/mindspore/overflow_check/kernel_graph_overflow_check.py
|
|
230
244
|
msprobe/mindspore/overflow_check/overflow_check_tool_factory.py
|
|
@@ -278,16 +292,21 @@ msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py
|
|
|
278
292
|
msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/torch_ops_config.yaml
|
|
279
293
|
msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/utils.py
|
|
280
294
|
msprobe/pytorch/bench_functions/__init__.py
|
|
295
|
+
msprobe/pytorch/bench_functions/apply_adam.py
|
|
281
296
|
msprobe/pytorch/bench_functions/apply_adam_w.py
|
|
282
297
|
msprobe/pytorch/bench_functions/confusion_transpose.py
|
|
283
298
|
msprobe/pytorch/bench_functions/fast_gelu.py
|
|
299
|
+
msprobe/pytorch/bench_functions/group_norm_silu.py
|
|
284
300
|
msprobe/pytorch/bench_functions/layer_norm_eval.py
|
|
285
301
|
msprobe/pytorch/bench_functions/linear.py
|
|
286
302
|
msprobe/pytorch/bench_functions/matmul_backward.py
|
|
303
|
+
msprobe/pytorch/bench_functions/mish.py
|
|
304
|
+
msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py
|
|
287
305
|
msprobe/pytorch/bench_functions/npu_fusion_attention.py
|
|
288
306
|
msprobe/pytorch/bench_functions/rms_norm.py
|
|
289
307
|
msprobe/pytorch/bench_functions/rotary_mul.py
|
|
290
308
|
msprobe/pytorch/bench_functions/scaled_mask_softmax.py
|
|
309
|
+
msprobe/pytorch/bench_functions/sort_v2.py
|
|
291
310
|
msprobe/pytorch/bench_functions/swiglu.py
|
|
292
311
|
msprobe/pytorch/common/__init__.py
|
|
293
312
|
msprobe/pytorch/common/compare_script.template
|
|
@@ -15,7 +15,7 @@ debugger = PrecisionDebugger(config_path='./config.json')
|
|
|
15
15
|
...
|
|
16
16
|
debugger.start() # 一般在训练循环开头启动工具
|
|
17
17
|
... # 循环体
|
|
18
|
-
debugger.stop() #
|
|
18
|
+
debugger.stop() # 一般在训练循环末尾结束工具。必须调用,否则可能导致精度数据落盘不全
|
|
19
19
|
debugger.step() # 在训练循环的最后需要重置工具,非循环场景不需要
|
|
20
20
|
```
|
|
21
21
|
|
|
@@ -127,7 +127,7 @@ MindSpore 动态图场景的[离线预检](./docs/09.accuracy_checker_MindSpore.
|
|
|
127
127
|
|
|
128
128
|
该功能收集和聚合模型训练过程中的网络层,优化器, 通信算子的中间值,帮助诊断模型训练过程中计算, 通信,优化器各部分出现的异常情况。
|
|
129
129
|
|
|
130
|
-
[PyTorch
|
|
130
|
+
[兼容 PyTorch 和 MindSpore 框架的训练状态监控](./docs/19.monitor.md)
|
|
131
131
|
|
|
132
132
|
### 10 分级可视化构图比对
|
|
133
133
|
|
|
@@ -103,14 +103,16 @@ class Const:
|
|
|
103
103
|
FREE_BENCHMARK = "free_benchmark"
|
|
104
104
|
RUN_UT = "run_ut"
|
|
105
105
|
GRAD_PROBE = "grad_probe"
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
STRUCTURE = "structure"
|
|
107
|
+
TASK_LIST = [TENSOR, STATISTICS, OVERFLOW_CHECK, FREE_BENCHMARK, RUN_UT, GRAD_PROBE, STRUCTURE]
|
|
108
|
+
DUMP_DATA_COLLECTION_LIST = [STATISTICS, TENSOR, STRUCTURE]
|
|
108
109
|
DUMP_DATA_MODE_LIST = [ALL, INPUT, OUTPUT, FORWARD, BACKWARD]
|
|
109
110
|
LEVEL_L0 = "L0"
|
|
110
111
|
LEVEL_L1 = "L1"
|
|
111
112
|
LEVEL_L2 = "L2"
|
|
112
113
|
LEVEL_MIX = "mix"
|
|
113
|
-
|
|
114
|
+
LEVEL_DEBUG = "debug"
|
|
115
|
+
LEVEL_LIST = [LEVEL_L0, LEVEL_L1, LEVEL_L2, LEVEL_MIX, LEVEL_DEBUG]
|
|
114
116
|
ATTR_NAME_PREFIX = "wrap_"
|
|
115
117
|
ATTR_NAME_PREFIX_LEN = len(ATTR_NAME_PREFIX)
|
|
116
118
|
KERNEL_DUMP = "kernel_dump"
|
|
@@ -543,9 +545,24 @@ class MsCompareConst:
|
|
|
543
545
|
TENSOR_API = "Tensor"
|
|
544
546
|
|
|
545
547
|
API_NAME_STR_LENGTH = 4
|
|
548
|
+
MAX_RECURSION_DEPTH = 20
|
|
549
|
+
|
|
550
|
+
# Mindtorch api_info field
|
|
551
|
+
MINDTORCH_TENSOR = "Tensor"
|
|
552
|
+
MINDTORCH = "Torch"
|
|
553
|
+
MINDTORCH_FUNC = "Functional"
|
|
554
|
+
MINDTORCH_NPU = "NPU"
|
|
555
|
+
MINDTORCH_DIST = "Distributed"
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
MT_VALID_API_TYPES = [
|
|
560
|
+
MINDTORCH, MINDTORCH_FUNC, MINDTORCH_TENSOR
|
|
561
|
+
]
|
|
546
562
|
|
|
547
563
|
TASK_FIELD = "task"
|
|
548
564
|
STATISTICS_TASK = "statistics"
|
|
565
|
+
FRAMEWORK = "framework"
|
|
549
566
|
TENSOR_TASK = "tensor"
|
|
550
567
|
DUMP_DATA_DIR_FIELD = "dump_data_dir"
|
|
551
568
|
DATA_FIELD = "data"
|
|
@@ -623,29 +640,37 @@ class MonitorConst:
|
|
|
623
640
|
"DeepSpeedZeroOptimizer_Stage1_or_2",
|
|
624
641
|
"DeepSpeedZeroOptimizer_Stage3"
|
|
625
642
|
)
|
|
643
|
+
DEEPSPEED_ZERO_OPT_FILTER = "DeepSpeedZeroOptimizer"
|
|
626
644
|
RULE_NAME = ['AnomalyTurbulence']
|
|
627
645
|
|
|
628
646
|
SLICE_SIZE = 20480
|
|
647
|
+
# used for name
|
|
629
648
|
DOT = "."
|
|
630
|
-
|
|
649
|
+
NAME_SEP = ":"
|
|
650
|
+
INPUT_GRAD = "input_grad"
|
|
651
|
+
OUTPUT_GRAD = "output_grad"
|
|
631
652
|
ACTV_IN = "input"
|
|
632
653
|
ACTV_OUT = "output"
|
|
633
654
|
ACTVGRAD_IN = "input_grad"
|
|
634
655
|
ACTVGRAD_OUT = "output_grad"
|
|
656
|
+
# used for tasks
|
|
657
|
+
ACTV = "actv"
|
|
658
|
+
ACTVGRAD = "actv_grad"
|
|
635
659
|
POST_GRAD = "post_grad"
|
|
636
660
|
PRE_GRAD = "pre_grad"
|
|
637
661
|
ACC_GRAD = "acc_grad"
|
|
638
662
|
PREFIX_POST = "post"
|
|
639
663
|
PREFIX_PRE = "pre"
|
|
640
|
-
OUTPUT_DIR_PATTERN = r"([\w-]{0,20})-rank(\d{1,5})-"
|
|
641
|
-
|
|
642
664
|
EXP_AVG = "exp_avg"
|
|
643
|
-
|
|
665
|
+
EXP_AVG_SQ = "exp_avg_sq"
|
|
666
|
+
PARAM = "param"
|
|
644
667
|
|
|
668
|
+
CSV_HEADER = ["vpp_stage", "name", "step"]
|
|
669
|
+
CSV_HEADER_XY = ["vpp_stage", "name", "step", "micro_step"]
|
|
670
|
+
OUTPUT_DIR_PATTERN = r"([\w-]{0,20})-rank(\d{1,5})-"
|
|
645
671
|
ANOMALY_JSON = "anomaly.json"
|
|
646
672
|
ANALYSE_JSON = "anomaly_analyse.json"
|
|
647
673
|
TENSORBOARD = "tensorboard"
|
|
648
674
|
CSV = "csv"
|
|
649
675
|
API = "api"
|
|
650
|
-
|
|
651
|
-
HEADER_NAME_INDEX = 1
|
|
676
|
+
HEADER_NAME = 'name'
|
|
@@ -239,6 +239,8 @@ def md5_find(data):
|
|
|
239
239
|
for data_detail in data[key_op][api_info]:
|
|
240
240
|
if data_detail and 'md5' in data_detail:
|
|
241
241
|
return True
|
|
242
|
+
if isinstance(data[key_op][api_info], bool):
|
|
243
|
+
continue
|
|
242
244
|
elif data[key_op][api_info] and 'md5' in data[key_op][api_info]:
|
|
243
245
|
return True
|
|
244
246
|
return False
|
|
@@ -303,6 +305,9 @@ def get_dump_mode(input_param):
|
|
|
303
305
|
if npu_task == Const.TENSOR:
|
|
304
306
|
return Const.ALL
|
|
305
307
|
|
|
308
|
+
if npu_task == Const.STRUCTURE:
|
|
309
|
+
return Const.STRUCTURE
|
|
310
|
+
|
|
306
311
|
if npu_task == Const.STATISTICS:
|
|
307
312
|
npu_md5_compare = md5_find(npu_json_data['data'])
|
|
308
313
|
bench_md5_compare = md5_find(bench_json_data['data'])
|
|
@@ -496,3 +501,12 @@ def check_str_param(param):
|
|
|
496
501
|
if not re.match(Const.REGEX_PREFIX_PATTERN, param):
|
|
497
502
|
logger.error('The parameter {} contains special characters.'.format(param))
|
|
498
503
|
raise MsprobeBaseException(MsprobeBaseException.INVALID_CHAR_ERROR)
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
class DumpPathAggregation:
|
|
507
|
+
dump_file_path = None
|
|
508
|
+
stack_file_path = None
|
|
509
|
+
construct_file_path = None
|
|
510
|
+
dump_tensor_data_dir = None
|
|
511
|
+
free_benchmark_file_path = None
|
|
512
|
+
debug_file_path = None
|
|
@@ -112,7 +112,7 @@ class DumpDataItem:
|
|
|
112
112
|
self.layer_scope = Const.SEP.join(data_list[:Const.TYPE_NAME_INDEX])
|
|
113
113
|
else:
|
|
114
114
|
self.layer_scope = Const.TOP_LAYER
|
|
115
|
-
if construct_info:
|
|
115
|
+
if construct_info and Const.SEP in construct_info:
|
|
116
116
|
construct_list = construct_info.split(Const.SEP)
|
|
117
117
|
if len(construct_list) < abs(Const.LAYER_NAME_INDEX):
|
|
118
118
|
logger.error(
|
{mindstudio_probe-1.2.1 → mindstudio_probe-1.2.2}/msprobe/core/compare/merge_result/merge_result.py
RENAMED
|
@@ -25,6 +25,7 @@ from msprobe.core.common.file_utils import load_yaml, logger, FileChecker, save_
|
|
|
25
25
|
from msprobe.core.common.const import FileCheckConst, Const, CompareConst
|
|
26
26
|
from msprobe.core.common.utils import CompareException, add_time_with_xlsx
|
|
27
27
|
from msprobe.core.compare.utils import table_value_is_valid
|
|
28
|
+
from msprobe.core.compare.merge_result.utils import replace_compare_index_dict, check_config
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
def check_compare_result_name(file_name):
|
|
@@ -170,6 +171,8 @@ def search_api_index_result(api_list, compare_index_list, result_df, rank_num, c
|
|
|
170
171
|
table_value_check(index_value)
|
|
171
172
|
api_index_dict.setdefault(api_full_name, {})[rank_num] = index_value # update api_index_dict
|
|
172
173
|
compare_index_dict[compare_index] = api_index_dict
|
|
174
|
+
|
|
175
|
+
compare_index_dict = replace_compare_index_dict(compare_index_dict, compare_index_list, rank_num)
|
|
173
176
|
return compare_index_dict
|
|
174
177
|
|
|
175
178
|
|
|
@@ -203,10 +206,13 @@ def result_process(compare_result_path_list, api_list):
|
|
|
203
206
|
compare_index_list = check_index_dump_mode_consistent(dump_mode, rank_num)
|
|
204
207
|
if len(compare_index_list) == 0:
|
|
205
208
|
return [], [], []
|
|
206
|
-
|
|
209
|
+
compare_index_list.extend([CompareConst.NPU_MAX, CompareConst.BENCH_MAX])
|
|
210
|
+
compare_index_dict = search_api_index_result(api_list, compare_index_list,
|
|
207
211
|
result_df, rank_num, compare_index_dict)
|
|
208
212
|
compare_index_dict_list.append(compare_index_dict)
|
|
209
213
|
rank_num_list.append(rank_num)
|
|
214
|
+
compare_index_list.pop()
|
|
215
|
+
compare_index_list.pop()
|
|
210
216
|
else:
|
|
211
217
|
logger.warning(f"Rank{rank_num} compare result is empty and will not shown in merged result.")
|
|
212
218
|
|
|
@@ -362,13 +368,8 @@ def merge_result(input_dir, output_dir, config_path):
|
|
|
362
368
|
compare_result_path_list = get_result_path(input_dir) # 获得的input_dir中所有比对结果件的全路径,数量少于2,便提示退出
|
|
363
369
|
|
|
364
370
|
config = load_yaml(config_path)
|
|
365
|
-
|
|
366
|
-
logger.error('config.yaml is empty, please check.')
|
|
367
|
-
raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
|
|
371
|
+
config = check_config(config)
|
|
368
372
|
api_list = config.get('api')
|
|
369
|
-
if not api_list:
|
|
370
|
-
logger.error('The APIs required to merge data were not found')
|
|
371
|
-
raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
|
|
372
373
|
|
|
373
374
|
# 初始化共享全局变量share_compare_index_list
|
|
374
375
|
initialize_compare_index(config)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Copyright (c) 2025-2025, Huawei Technologies Co., Ltd.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
from msprobe.core.common.const import CompareConst
|
|
17
|
+
from msprobe.core.common.file_utils import logger
|
|
18
|
+
from msprobe.core.common.utils import CompareException
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def replace_compare_index_dict(compare_index_dict, compare_index_list, rank_num):
|
|
22
|
+
"""
|
|
23
|
+
比对指标值为N/A、unsupported、Nan,将比对指标值替换成NPU max 和 Bench max(几个统计量相同)
|
|
24
|
+
|
|
25
|
+
示例:
|
|
26
|
+
Distributed.all_reduce.0.forward.output.group的比对指标值是N/A
|
|
27
|
+
替换后:
|
|
28
|
+
比对指标值为:
|
|
29
|
+
NPU: tp-0-1-2-3
|
|
30
|
+
Bench: tp-0-1-2-3
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
if CompareConst.NPU_MAX not in compare_index_dict or CompareConst.BENCH_MAX not in compare_index_dict:
|
|
34
|
+
compare_index_dict.pop(CompareConst.NPU_MAX, None)
|
|
35
|
+
compare_index_dict.pop(CompareConst.BENCH_MAX, None)
|
|
36
|
+
return compare_index_dict
|
|
37
|
+
|
|
38
|
+
# 遍历比对指标列表,排除最后两个指标NPU max, Bench max
|
|
39
|
+
for compare_index in compare_index_list[:-2]:
|
|
40
|
+
op_name_index_dict = compare_index_dict[compare_index]
|
|
41
|
+
# 遍历op_item名称和对应的比对指标值
|
|
42
|
+
for op_name, index_value in op_name_index_dict.items():
|
|
43
|
+
npu_max = compare_index_dict[CompareConst.NPU_MAX][op_name][rank_num]
|
|
44
|
+
bench_max = compare_index_dict[CompareConst.BENCH_MAX][op_name][rank_num]
|
|
45
|
+
# 如果当前比对指标值是N/A、unsupported、Nan,并且NPU和Bench的最大值是类型相同,进行替换
|
|
46
|
+
if index_value[rank_num] in [CompareConst.N_A, CompareConst.UNSUPPORTED, CompareConst.NAN]:
|
|
47
|
+
compare_index_dict[compare_index][op_name][rank_num] = f'NPU:{str(npu_max)} Bench:{str(bench_max)}'
|
|
48
|
+
|
|
49
|
+
# 删除NPU_MAX和BENCH_MAX
|
|
50
|
+
compare_index_dict.pop(CompareConst.NPU_MAX, None)
|
|
51
|
+
compare_index_dict.pop(CompareConst.BENCH_MAX, None)
|
|
52
|
+
return compare_index_dict
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def check_config(config):
|
|
56
|
+
"""
|
|
57
|
+
config.yaml 内容检查
|
|
58
|
+
Args: config:
|
|
59
|
+
Returns: config
|
|
60
|
+
"""
|
|
61
|
+
if not config:
|
|
62
|
+
logger.error('config.yaml is empty, please check.')
|
|
63
|
+
raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
|
|
64
|
+
|
|
65
|
+
api_list = config.get('api')
|
|
66
|
+
if not api_list:
|
|
67
|
+
logger.error('The APIs required to merge data were not found.')
|
|
68
|
+
raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
|
|
69
|
+
if not isinstance(api_list, list):
|
|
70
|
+
logger.error("The config format of 'api' is incorrect, please check.")
|
|
71
|
+
raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
|
|
72
|
+
|
|
73
|
+
compare_index_list = config.get('compare_index', [])
|
|
74
|
+
if compare_index_list is None:
|
|
75
|
+
compare_index_list = []
|
|
76
|
+
config['compare_index'] = compare_index_list
|
|
77
|
+
if not isinstance(compare_index_list, list):
|
|
78
|
+
logger.error("The config format of 'compare_index' is incorrect, please check.")
|
|
79
|
+
raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
|
|
80
|
+
|
|
81
|
+
return config
|
|
@@ -170,6 +170,16 @@ def gen_op_item(op_data, op_name):
|
|
|
170
170
|
elif op_item.get('type') == 'slice':
|
|
171
171
|
op_item['dtype'] = op_data.get('type')
|
|
172
172
|
op_item['shape'] = str(np.shape(np.array(op_data.get('value'))))
|
|
173
|
+
elif op_item.get('type') == 'ellipsis':
|
|
174
|
+
op_item['dtype'] = op_data.get('type')
|
|
175
|
+
op_item['shape'] = '[]'
|
|
176
|
+
for i in params:
|
|
177
|
+
op_item[i] = op_data.get('value')
|
|
178
|
+
elif op_item.get('type') == 'torch.ProcessGroup':
|
|
179
|
+
op_item['dtype'] = op_data.get('type')
|
|
180
|
+
op_item['shape'] = '[]'
|
|
181
|
+
for i in params:
|
|
182
|
+
op_item[i] = str(op_data.get('group_ranks'))
|
|
173
183
|
else:
|
|
174
184
|
op_item['dtype'] = str(type(op_data.get('value')))
|
|
175
185
|
op_item['shape'] = '[]'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2024-
|
|
1
|
+
# Copyright (c) 2024-2025, Huawei Technologies Co., Ltd.
|
|
2
2
|
# All rights reserved.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -40,6 +40,7 @@ class DataCollector:
|
|
|
40
40
|
self.scope = ScopeFactory(self.config).build_scope()
|
|
41
41
|
self.backward_module_names = {}
|
|
42
42
|
self.optimizer_status = ""
|
|
43
|
+
self.optimizer_status_first_start = {Const.OPTIMIZER: True, Const.CLIP_GRAD: True}
|
|
43
44
|
atexit.register(self.write_json)
|
|
44
45
|
|
|
45
46
|
@property
|
|
@@ -54,6 +55,17 @@ class DataCollector:
|
|
|
54
55
|
def check_scope_and_pid(scope, name, pid):
|
|
55
56
|
return (not scope or scope.check(name)) and pid == os.getpid()
|
|
56
57
|
|
|
58
|
+
@staticmethod
|
|
59
|
+
def set_is_recomputable(data_info, is_recompute):
|
|
60
|
+
if data_info and len(data_info) == 1 and is_recompute is not None: # 正常情况下data_info的长度应改为1
|
|
61
|
+
data_info[list(data_info.keys())[0]]["is_recompute"] = is_recompute
|
|
62
|
+
|
|
63
|
+
def reset_status(self):
|
|
64
|
+
self.optimizer_status = ""
|
|
65
|
+
self.optimizer_status_first_start = {Const.OPTIMIZER: True, Const.CLIP_GRAD: True}
|
|
66
|
+
self.data_writer.reset_cache()
|
|
67
|
+
self.backward_module_names.clear()
|
|
68
|
+
|
|
57
69
|
def if_return_forward_new_output(self):
|
|
58
70
|
return self.data_processor.if_return_forward_new_output()
|
|
59
71
|
|
|
@@ -77,7 +89,7 @@ class DataCollector:
|
|
|
77
89
|
logger.debug(msg)
|
|
78
90
|
self.data_writer.update_data(data_info)
|
|
79
91
|
|
|
80
|
-
def forward_input_data_collect(self, name, module, pid, module_input_output):
|
|
92
|
+
def forward_input_data_collect(self, name, module, pid, module_input_output, is_recompute=None):
|
|
81
93
|
if self.config.task == Const.FREE_BENCHMARK:
|
|
82
94
|
backward_name = name.replace(Const.FORWARD, Const.BACKWARD)
|
|
83
95
|
if self.check_scope_and_pid(self.scope, backward_name, pid):
|
|
@@ -87,37 +99,48 @@ class DataCollector:
|
|
|
87
99
|
if not self.check_scope_and_pid(self.scope, name, pid):
|
|
88
100
|
return
|
|
89
101
|
|
|
90
|
-
data_info =
|
|
102
|
+
data_info = {}
|
|
103
|
+
if self.config.task != Const.STRUCTURE:
|
|
104
|
+
data_info = self.data_processor.analyze_forward_input(name, module, module_input_output)
|
|
105
|
+
self.set_is_recomputable(data_info, is_recompute)
|
|
91
106
|
if self.config.level == Const.LEVEL_L2:
|
|
92
107
|
return
|
|
93
108
|
self.handle_data(name, data_info, flush=self.data_processor.is_terminated)
|
|
94
109
|
|
|
95
|
-
def forward_output_data_collect(self, name, module, pid, module_input_output):
|
|
110
|
+
def forward_output_data_collect(self, name, module, pid, module_input_output, is_recompute=None):
|
|
96
111
|
self.update_construct(name)
|
|
97
112
|
if not self.check_scope_and_pid(self.scope, name, pid):
|
|
98
113
|
return
|
|
99
114
|
|
|
100
|
-
data_info =
|
|
115
|
+
data_info = {}
|
|
116
|
+
if self.config.task != Const.STRUCTURE:
|
|
117
|
+
data_info = self.data_processor.analyze_forward_output(name, module, module_input_output)
|
|
118
|
+
self.set_is_recomputable(data_info, is_recompute)
|
|
101
119
|
if self.config.level == Const.LEVEL_L2:
|
|
102
120
|
return
|
|
103
121
|
self.data_writer.update_stack(self.data_processor.analyze_api_call_stack(name))
|
|
104
122
|
self.handle_data(name, data_info, flush=self.data_processor.is_terminated)
|
|
105
123
|
|
|
106
|
-
def forward_data_collect(self, name, module, pid, module_input_output):
|
|
124
|
+
def forward_data_collect(self, name, module, pid, module_input_output, is_recompute=None):
|
|
107
125
|
self.update_construct(name)
|
|
108
126
|
if not self.check_scope_and_pid(self.scope, name, pid):
|
|
109
127
|
return
|
|
110
128
|
|
|
111
|
-
data_info =
|
|
129
|
+
data_info = {}
|
|
130
|
+
if self.config.task != Const.STRUCTURE:
|
|
131
|
+
data_info = self.data_processor.analyze_forward(name, module, module_input_output)
|
|
132
|
+
self.set_is_recomputable(data_info, is_recompute)
|
|
112
133
|
self.data_writer.update_stack(self.data_processor.analyze_api_call_stack(name))
|
|
113
134
|
self.handle_data(name, data_info, flush=self.data_processor.is_terminated)
|
|
114
135
|
|
|
115
|
-
def backward_data_collect(self, name, module, pid, module_input_output):
|
|
136
|
+
def backward_data_collect(self, name, module, pid, module_input_output, is_recompute=None):
|
|
116
137
|
self.update_construct(name)
|
|
117
138
|
if not self.check_scope_and_pid(self.scope, name, pid):
|
|
118
139
|
return
|
|
119
140
|
|
|
120
|
-
data_info =
|
|
141
|
+
data_info = {}
|
|
142
|
+
if self.config.task != Const.STRUCTURE:
|
|
143
|
+
data_info = self.data_processor.analyze_backward(name, module, module_input_output)
|
|
121
144
|
if self.config.level == Const.LEVEL_L2:
|
|
122
145
|
return
|
|
123
146
|
# 获取执行反向的模块名称
|
|
@@ -127,25 +150,34 @@ class DataCollector:
|
|
|
127
150
|
self.backward_module_names[module_name] = True
|
|
128
151
|
self.handle_data(name, data_info, flush=self.data_processor.is_terminated)
|
|
129
152
|
|
|
130
|
-
def backward_input_data_collect(self, name, module, pid, module_input_output):
|
|
153
|
+
def backward_input_data_collect(self, name, module, pid, module_input_output, is_recompute=None):
|
|
131
154
|
self.update_construct(name)
|
|
132
155
|
if not self.check_scope_and_pid(self.scope, name, pid):
|
|
133
156
|
return
|
|
134
157
|
|
|
135
|
-
data_info =
|
|
158
|
+
data_info = {}
|
|
159
|
+
if self.config.task != Const.STRUCTURE:
|
|
160
|
+
data_info = self.data_processor.analyze_backward_input(name, module, module_input_output)
|
|
161
|
+
self.set_is_recomputable(data_info, is_recompute)
|
|
136
162
|
self.handle_data(name, data_info)
|
|
137
163
|
|
|
138
|
-
def backward_output_data_collect(self, name, module, pid, module_input_output):
|
|
164
|
+
def backward_output_data_collect(self, name, module, pid, module_input_output, is_recompute=None):
|
|
139
165
|
self.update_construct(name)
|
|
140
166
|
if not self.check_scope_and_pid(self.scope, name, pid):
|
|
141
167
|
return
|
|
142
168
|
|
|
143
|
-
data_info =
|
|
169
|
+
data_info = {}
|
|
170
|
+
if self.config.task != Const.STRUCTURE:
|
|
171
|
+
data_info = self.data_processor.analyze_backward_output(name, module, module_input_output)
|
|
172
|
+
self.set_is_recomputable(data_info, is_recompute)
|
|
144
173
|
self.handle_data(name, data_info)
|
|
145
174
|
|
|
146
175
|
def update_construct(self, name):
|
|
147
176
|
if self.config.level not in DataCollector.level_without_construct:
|
|
148
177
|
if self.optimizer_status in [Const.OPTIMIZER, Const.CLIP_GRAD]:
|
|
178
|
+
if self.optimizer_status_first_start[self.optimizer_status]:
|
|
179
|
+
self.data_writer.update_construct({self.optimizer_status: None})
|
|
180
|
+
self.optimizer_status_first_start[self.optimizer_status] = False
|
|
149
181
|
self.data_writer.update_construct({name: self.optimizer_status})
|
|
150
182
|
else:
|
|
151
183
|
self.data_writer.update_construct({name: self.module_processor.api_parent_node})
|
|
@@ -183,3 +215,16 @@ class DataCollector:
|
|
|
183
215
|
|
|
184
216
|
def fill_stack_tensor_data(self):
|
|
185
217
|
self.data_writer.fill_stack_tensor_data()
|
|
218
|
+
|
|
219
|
+
def debug_data_collect_forward(self, variable, name_with_count):
|
|
220
|
+
|
|
221
|
+
data_info = self.data_processor.analyze_debug_forward(variable, name_with_count)
|
|
222
|
+
self.data_writer.update_debug({name_with_count: data_info})
|
|
223
|
+
|
|
224
|
+
def debug_data_collect_backward(self, variable, grad_name_with_count):
|
|
225
|
+
# prepare all None nested data structure
|
|
226
|
+
all_none_data_info = self.data_processor.analyze_element_to_all_none(variable)
|
|
227
|
+
self.data_writer.update_debug({grad_name_with_count: all_none_data_info})
|
|
228
|
+
|
|
229
|
+
# register tensor backward hook
|
|
230
|
+
self.data_processor.analyze_debug_backward(variable, grad_name_with_count, self.data_writer.cache_debug['data'])
|