mindstudio-probe 8.1.0__tar.gz → 8.1.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-8.1.0 → mindstudio_probe-8.1.2}/PKG-INFO +3 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/PKG-INFO +3 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/SOURCES.txt +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/requires.txt +2 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/const.py +4 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/file_utils.py +81 -23
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/utils.py +136 -21
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common_config.py +15 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/acc_compare.py +35 -14
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/compare_cli.py +10 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/merge_result/merge_result.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/utils.py +15 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/base_checker.py +2 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/hyperparameter_checker.py +5 -4
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/ckpt_compare/ckpt_comparator.py +4 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/config_check_cli.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/config_checker.py +1 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/data_collector.py +148 -91
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/data_processor/mindspore_processor.py +23 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/data_processor/pytorch_processor.py +3 -25
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/json_writer.py +31 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/debugger/precision_debugger.py +32 -26
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/hook_manager.py +112 -82
- {mindstudio_probe-8.1.0/msprobe/pytorch → mindstudio_probe-8.1.2/msprobe/core}/monitor/utils.py +11 -39
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/service.py +3 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/single_save/single_comparator.py +28 -26
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/single_save/single_saver.py +5 -16
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/01.installation.md +2 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/05.data_dump_PyTorch.md +7 -4
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/06.data_dump_MindSpore.md +3 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/07.accuracy_checker_PyTorch.md +14 -11
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/08.accuracy_checker_online_PyTorch.md +2 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/09.accuracy_checker_MindSpore.md +13 -11
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/10.accuracy_compare_PyTorch.md +3 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/11.accuracy_compare_MindSpore.md +4 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/12.overflow_check_PyTorch.md +3 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/13.overflow_check_MindSpore.md +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/14.data_parse_PyTorch.md +35 -32
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/21.visualization_PyTorch.md +9 -8
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/22.visualization_MindSpore.md +1 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/23.generate_operator_PyTorch.md +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/24.code_mapping_Mindspore.md +6 -5
- mindstudio_probe-8.1.2/msprobe/docs/25.tool_function_introduction.md +30 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/31.config_check.md +15 -5
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/33.generate_operator_MindSpore.md +12 -21
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/34.RL_collect.md +18 -9
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/35.nan_analyze.md +4 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/FAQ.md +3 -0
- mindstudio_probe-8.1.2/msprobe/docs/img/ms_layer.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +1 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/api_runner.py +29 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/compute_element.py +0 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/generate_op_script/op_generator.py +10 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py +2 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/cell_processor.py +35 -14
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/bind.py +23 -4
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/graph_parser.py +6 -4
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/common/utils.py +4 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/compare/common_dir_compare.py +32 -12
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/compare/ms_graph_compare.py +7 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/compare/utils.py +9 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/debugger/debugger_config.py +13 -11
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/debugger/precision_debugger.py +71 -49
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/cell_dump_process.py +13 -38
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/cell_dump_with_insert_gradient.py +1 -26
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/dump_tool_factory.py +2 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/hook_cell/api_register.py +3 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/hook_cell/hook_cell.py +14 -9
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/hook_cell/ms_hook_manager.py +12 -7
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/hook_cell/primitive_hooks.py +27 -13
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/jit_dump.py +6 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/kernel_kbyk_dump.py +13 -6
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dym_loader/hook_dynamic_loader.cpp +10 -9
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dym_loader/hook_dynamic_loader.h +2 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/grad_analyzer.py +2 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/mindspore_service.py +5 -2
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/common_func.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/features.py +10 -9
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/module_hook.py +3 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/optimizer_collect.py +4 -1
- mindstudio_probe-8.1.2/msprobe/mindspore/monitor/utils.py +77 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/ms_config.py +0 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/overflow_check/overflow_check_tool_factory.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/nan_analyze/graph.py +4 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py +20 -20
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py +22 -13
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/device_dispatch.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/utils.py +4 -4
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/common/utils.py +1 -17
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/compare/pt_compare.py +5 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/debugger/debugger_config.py +12 -5
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/debugger/precision_debugger.py +36 -26
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/dump/module_dump/hook_wrapper.py +1 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/dump/module_dump/module_processer.py +44 -13
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/result_handlers/base_handler.py +2 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/api_register.py +3 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/hook_module.py +9 -9
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/pt_hook_manager.py +7 -7
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/csv2tb.py +3 -10
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/features.py +5 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/module_hook.py +6 -7
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/module_metric.py +0 -3
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/optimizer_collect.py +5 -2
- mindstudio_probe-8.1.2/msprobe/pytorch/monitor/utils.py +50 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/dispatch.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/dump_compare.py +7 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/utils.py +2 -4
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/pytorch_service.py +3 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/compare/mode_adapter.py +9 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph_service.py +1 -1
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/utils.py +3 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/setup.py +4 -3
- mindstudio_probe-8.1.0/msprobe/docs/25.tool_function_introduction.md +0 -30
- mindstudio_probe-8.1.0/msprobe/docs/img/ms_layer.png +0 -0
- mindstudio_probe-8.1.0/msprobe/mindspore/api_accuracy_checker/generate_op_script/config_op.json +0 -9
- mindstudio_probe-8.1.0/msprobe/mindspore/monitor/utils.py +0 -329
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/LICENSE +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/MANIFEST.in +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/dependency_links.txt +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/entry_points.txt +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/not-zip-safe +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/mindstudio_probe.egg-info/top_level.txt +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/CMakeLists.txt +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/README.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/config.json +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/advisor/advisor.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/advisor/advisor_const.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/advisor/advisor_result.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/decorator.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/exceptions.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/framework_adapter.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/global_lock.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/inplace_op_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/inplace_ops.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/log.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/common/runtime.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/check.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/highlight.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/layer_mapping/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/layer_mapping/data_scope_parser.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/layer_mapping/layer_mapping.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/layer_mapping/postprocess_pass.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/merge_result/merge_result_cli.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/merge_result/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/ms_to_pt_api.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/multiprocessing_compute.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/compare/npy_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/dataset_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/env_args_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/pip_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/random_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/checkers/weights_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/ckpt_compare/megatron_loader.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/ckpt_compare/metrics.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/ckpt_compare/name_mapping.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/resource/dependency.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/resource/env.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/resource/hyperparameter.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/utils/hyperparameter_parser.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/config_check/utils/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/api_registry.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/data_processor/base.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/data_processor/factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/data_dump/scope.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/grad_probe/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/grad_probe/constant.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/grad_probe/grad_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/grad_probe/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/kernel_dump/kernel_config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/monitor/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/monitor/anomaly_processor.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/abnormal_scene.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/api_info.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/filter.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/ignore_rules.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/level.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/overflow_check/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/core/single_save/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/02.config_introduction.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/03.config_examples.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/04.kernel_dump_PyTorch.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/15.free_benchmarking_PyTorch.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/16.free_benchmarking_MindSpore.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/17.grad_probe.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/18.online_dispatch.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/19.monitor.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/20.monitor_performance_baseline.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/26.data_dump_PyTorch_baseline.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/27.dump_json_instruction.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/28.debugger_save_instruction.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/28.kernel_dump_MindSpore.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/29.data_dump_MSAdapter.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/30.overflow_check_MSAdapter.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/32.ckpt_compare.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/data_dump_MindSpore/data_dump_MindSpore_baseline.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/data_dump_MindSpore/dynamic_graph_quick_start_example.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/BLOOM-7B_1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/BLOOM-7B_2.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/BLOOM-7B_3.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/BLOOM-7B_4.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_2.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_3.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_4.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_5.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_6.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_7.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/GPT-3_8.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/YOLOV5S_1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/YOLOV5S_2.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/accuracy_checking_details.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/accuracy_checking_result.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/api_precision_compare_details.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/api_precision_compare_result.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/auto_analyze_log.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/compare_result.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/compare_result_pkl.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/compare_result_pkl_md5.png.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/cpu_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/free_benchmark.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/free_benchmark_framework.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/grad_probe_image-1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/grad_probe_image-2.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/grad_probe_image-3.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/grad_probe_image-4.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/grad_probe_image.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/merge_result.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/module_compare.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/monitor/cpu_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/monitor/step_count_per_record.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/ms_dump.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/pt_dump.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/save_compare_result_sample.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/fuzzy_match_ms.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/fuzzy_match_pt.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/proxy.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/tensorboard_1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/tensorboard_2.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_browser_1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_browser_2.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_match_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_precision_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_search_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_show_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_showcase.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/img/visualization/vis_unmatch_info.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/GPTModel.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/ParallelMLP.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/layer_mapping_example.md +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/mapping.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/mapping1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/module_name.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/module_name1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/no_mapping.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/no_mapping1.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/no_mapping_analyze.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/docs/visualization/top_layer.png +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/api_info.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/bench_functions/flash_attention_score.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/bench_functions/fusion_operator.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/checker_support_api.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/cmd_parser.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/data_manager.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/generate_op_script/operator_replication.template +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/main.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/multi_data_manager.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/type_mapping.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/api_accuracy_checker/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/cmd_parser.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/graph.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/main.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/code_mapping/processor.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/common/const.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/common/log.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/compare/distributed_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/compare/ms_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/debugger/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/graph_mode_cell_dump.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/graph_tensor_dump.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/hook_cell/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/dump/kernel_graph_dump.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/api_pynative_self_check.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/common/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/common/config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/common/handler_params.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/common/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/data/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/handler/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/handler/base_handler.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/handler/check_handler.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/handler/fix_handler.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/handler/handler_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/add_noise.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/base_perturbation.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/bit_noise.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/exchange_value.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/improve_precision.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/no_change.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/perturbation/perturbation_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/free_benchmark/self_check_tool_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/global_context.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/grad_monitor.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/grad_stat_csv.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/hook.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/grad_probe/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/mindtorch/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/mindtorch/mindtorch_adaptor.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/data_writers.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/distributed/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/distributed/distributed_ops.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/distributed/stack_blacklist.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/monitor/distributed/wrap_distributed.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/overflow_check/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/overflow_check/kernel_graph_overflow_check.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/mindspore/task_handler_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/msprobe.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/nan_analyze/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/nan_analyze/analyzer.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/nan_analyze/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/.keep +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/common/.keep +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/common/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/common/config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/common/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/algorithm.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_standard.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_threshold.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/compare_column.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/compare/compare_input.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/config.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/generate_op_script/config_op.json +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/generate_op_script/operator_replication.template +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/absolute_threshold.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/accumulative_error_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/base_standard.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/benchmark_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/binary_consistency.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/standard_config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/standard_register.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/thousandth_standard.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/precision_standard/ulp_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/.keep +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/data_generate.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/run_overflow_check.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/run_ut_utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/run_ut/torch_ut_setting.json +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/attl.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/client.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/dump_dispatch.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/torch_ops_config.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/attl_manager.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/apply_adam.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/apply_adam_w.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/confusion_transpose.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/fast_gelu.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/group_norm_silu.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/layer_norm_eval.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/linear.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/matmul_backward.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/mish.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/npu_fusion_attention.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/rms_norm.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/rotary_mul.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/scaled_mask_softmax.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/sort_v2.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/bench_functions/swiglu.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/common/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/common/compare_script.template +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/common/log.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/common/parse_json.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/compare/distributed_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/compare/mapping.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/compare/match.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/compare/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/debugger/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/dump/module_dump/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/dump/module_dump/module_dump.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/common/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/common/constant.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/common/counter.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/common/enums.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/common/params.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/common/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/compare/grad_saver.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/compare/single_benchmark.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/main.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/base_layer.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/layer_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/add_noise.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/bit_noise.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/change_value.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/improve_precision.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/no_change.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/npu_base_layser.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/perturbed_layers/run_cpu.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/result_handlers/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/result_handlers/check_handler.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/result_handlers/fix_handler.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/result_handlers/handler_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/free_benchmark/result_handlers/preheat_handler.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/function_factory.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/grad_probe/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/grad_probe/grad_monitor.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/grad_probe/grad_stat_csv.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/jit_script_wrapper.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/register_optimizer_hook.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/hook_module/wrap_aten.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/data_writers.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/distributed/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/distributed/distributed_ops.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/distributed/stack_blacklist.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/distributed/wrap_distributed.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/monitor/visualizer.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/single_compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/torch_ops_config.yaml +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/online_dispatch/utils.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/cli.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/compare.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/file_desc.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/interactive_cli.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/parse_exception.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/parse_tool.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/parse_tool/lib/visualization.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/pytorch/pt_config.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/builder/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/builder/graph_builder.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/builder/msprobe_adapter.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/compare/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/compare/graph_comparator.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph/__init__.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph/base_node.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph/distributed_analyzer.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph/graph.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph/node_colors.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/msprobe/visualization/graph/node_op.py +0 -0
- {mindstudio_probe-8.1.0 → mindstudio_probe-8.1.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mindstudio-probe
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.2
|
|
4
4
|
Summary: Ascend Probe Utils
|
|
5
5
|
Home-page: https://gitee.com/ascend/mstt/tree/master/debug/accuracy_tools/msprobe
|
|
6
6
|
Author: Ascend Team
|
|
@@ -28,11 +28,12 @@ Requires-Dist: pyyaml
|
|
|
28
28
|
Requires-Dist: rich
|
|
29
29
|
Requires-Dist: tqdm
|
|
30
30
|
Requires-Dist: openpyxl>=3.0.6
|
|
31
|
-
Requires-Dist: pyopenssl
|
|
31
|
+
Requires-Dist: pyopenssl==24.2.1
|
|
32
32
|
Requires-Dist: twisted
|
|
33
33
|
Requires-Dist: matplotlib
|
|
34
34
|
Requires-Dist: tensorboard
|
|
35
35
|
Requires-Dist: tabulate
|
|
36
36
|
Requires-Dist: pwinput
|
|
37
|
+
Requires-Dist: psutil
|
|
37
38
|
|
|
38
39
|
MindStudio-Probe is a set of tools for diagnosing and improving model accuracy on Ascend NPU, including API acc checker, ptdbg, grad tool etc.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mindstudio-probe
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.2
|
|
4
4
|
Summary: Ascend Probe Utils
|
|
5
5
|
Home-page: https://gitee.com/ascend/mstt/tree/master/debug/accuracy_tools/msprobe
|
|
6
6
|
Author: Ascend Team
|
|
@@ -28,11 +28,12 @@ Requires-Dist: pyyaml
|
|
|
28
28
|
Requires-Dist: rich
|
|
29
29
|
Requires-Dist: tqdm
|
|
30
30
|
Requires-Dist: openpyxl>=3.0.6
|
|
31
|
-
Requires-Dist: pyopenssl
|
|
31
|
+
Requires-Dist: pyopenssl==24.2.1
|
|
32
32
|
Requires-Dist: twisted
|
|
33
33
|
Requires-Dist: matplotlib
|
|
34
34
|
Requires-Dist: tensorboard
|
|
35
35
|
Requires-Dist: tabulate
|
|
36
36
|
Requires-Dist: pwinput
|
|
37
|
+
Requires-Dist: psutil
|
|
37
38
|
|
|
38
39
|
MindStudio-Probe is a set of tools for diagnosing and improving model accuracy on Ascend NPU, including API acc checker, ptdbg, grad tool etc.
|
|
@@ -83,6 +83,7 @@ msprobe/core/grad_probe/utils.py
|
|
|
83
83
|
msprobe/core/kernel_dump/kernel_config.py
|
|
84
84
|
msprobe/core/monitor/__init__.py
|
|
85
85
|
msprobe/core/monitor/anomaly_processor.py
|
|
86
|
+
msprobe/core/monitor/utils.py
|
|
86
87
|
msprobe/core/overflow_check/abnormal_scene.py
|
|
87
88
|
msprobe/core/overflow_check/api_info.py
|
|
88
89
|
msprobe/core/overflow_check/checker.py
|
|
@@ -218,7 +219,6 @@ msprobe/mindspore/api_accuracy_checker/type_mapping.py
|
|
|
218
219
|
msprobe/mindspore/api_accuracy_checker/utils.py
|
|
219
220
|
msprobe/mindspore/api_accuracy_checker/bench_functions/flash_attention_score.py
|
|
220
221
|
msprobe/mindspore/api_accuracy_checker/bench_functions/fusion_operator.py
|
|
221
|
-
msprobe/mindspore/api_accuracy_checker/generate_op_script/config_op.json
|
|
222
222
|
msprobe/mindspore/api_accuracy_checker/generate_op_script/op_generator.py
|
|
223
223
|
msprobe/mindspore/api_accuracy_checker/generate_op_script/operator_replication.template
|
|
224
224
|
msprobe/mindspore/code_mapping/__init__.py
|
|
@@ -56,6 +56,9 @@ class Const:
|
|
|
56
56
|
CPU_QUARTER = 4
|
|
57
57
|
DUMP_MAX_DEPTH = 50
|
|
58
58
|
|
|
59
|
+
EXTERN_INPUT_LIST_MAX_LEN = 100
|
|
60
|
+
MAX_PROCESS_NUM = 128
|
|
61
|
+
|
|
59
62
|
# dump mode
|
|
60
63
|
ALL = "all"
|
|
61
64
|
LIST = "list"
|
|
@@ -681,6 +684,7 @@ class FileCheckConst:
|
|
|
681
684
|
MAX_IR_SIZE = 1073741824 # 1 * 1024 * 1024 * 1024
|
|
682
685
|
MAX_ZIP_SIZE = 10737418240 # 10 * 1024 * 1024 * 1024
|
|
683
686
|
MAX_FILE_IN_ZIP_SIZE = 1073741824 # 1 * 1024 * 1024 * 1024
|
|
687
|
+
MAX_FILE_SIZE = 1073741824 # 1 * 1024 * 1024 * 1024
|
|
684
688
|
COMMOM_FILE_SIZE = 1048576 # 1 * 1024 * 1024
|
|
685
689
|
DIR = "dir"
|
|
686
690
|
FILE = "file"
|
|
@@ -33,7 +33,7 @@ import pandas as pd
|
|
|
33
33
|
from msprobe.core.common.decorator import recursion_depth_decorator
|
|
34
34
|
from msprobe.core.common.log import logger
|
|
35
35
|
from msprobe.core.common.exceptions import FileCheckException
|
|
36
|
-
from msprobe.core.common.const import FileCheckConst
|
|
36
|
+
from msprobe.core.common.const import FileCheckConst, CompareConst
|
|
37
37
|
from msprobe.core.common.global_lock import global_lock, is_main_process
|
|
38
38
|
|
|
39
39
|
proc_lock = multiprocessing.Lock()
|
|
@@ -384,7 +384,7 @@ def check_file_type(path):
|
|
|
384
384
|
elif os.path.isfile(path):
|
|
385
385
|
return FileCheckConst.FILE
|
|
386
386
|
else:
|
|
387
|
-
logger.error(f'
|
|
387
|
+
logger.error(f'path does not exist, please check!')
|
|
388
388
|
raise FileCheckException(FileCheckException.INVALID_FILE_ERROR)
|
|
389
389
|
|
|
390
390
|
|
|
@@ -460,6 +460,43 @@ def save_excel(path, data):
|
|
|
460
460
|
return "list"
|
|
461
461
|
raise ValueError("Data must be a DataFrame or a list of (DataFrame, sheet_name) pairs.")
|
|
462
462
|
|
|
463
|
+
def check_value_is_valid(value: str) -> bool:
|
|
464
|
+
if not isinstance(value, str):
|
|
465
|
+
return True
|
|
466
|
+
try:
|
|
467
|
+
# -1.00 or +1.00 should be considered as digit numbers
|
|
468
|
+
float(value)
|
|
469
|
+
except ValueError:
|
|
470
|
+
# otherwise, they will be considered as formular injections
|
|
471
|
+
return not bool(re.compile(FileCheckConst.CSV_BLACK_LIST).search(value))
|
|
472
|
+
return True
|
|
473
|
+
|
|
474
|
+
def malicious_check(df):
|
|
475
|
+
for row_name in df.index:
|
|
476
|
+
if not check_value_is_valid(row_name):
|
|
477
|
+
raise RuntimeError(f"Malicious value [{row_name}] not allowed to be written into the excel: {path}.")
|
|
478
|
+
|
|
479
|
+
for col_name in df.columns:
|
|
480
|
+
if not check_value_is_valid(col_name):
|
|
481
|
+
raise RuntimeError(f"Malicious value [{col_name}] not allowed to be written into the excel: {path}.")
|
|
482
|
+
|
|
483
|
+
for _, row in df.iterrows():
|
|
484
|
+
for _, value in row.items():
|
|
485
|
+
if not check_value_is_valid(value):
|
|
486
|
+
raise RuntimeError(f"Malicious value [{value}] not allowed to be written into the excel: {path}.")
|
|
487
|
+
|
|
488
|
+
def save_in_slice(df, base_name):
|
|
489
|
+
malicious_check(df)
|
|
490
|
+
df_length = len(df)
|
|
491
|
+
if df_length < CompareConst.MAX_EXCEL_LENGTH:
|
|
492
|
+
df.to_excel(writer, sheet_name=base_name if base_name else 'Sheet1', index=False)
|
|
493
|
+
else:
|
|
494
|
+
slice_num = (df_length + CompareConst.MAX_EXCEL_LENGTH - 1) // CompareConst.MAX_EXCEL_LENGTH
|
|
495
|
+
slice_size = (df_length + slice_num - 1) // slice_num
|
|
496
|
+
for i in range(slice_num):
|
|
497
|
+
df.iloc[i * slice_size: min((i + 1) * slice_size, df_length)] \
|
|
498
|
+
.to_excel(writer, sheet_name=f'{base_name}_part_{i}' if base_name else f'part_{i}', index=False)
|
|
499
|
+
|
|
463
500
|
check_path_before_create(path)
|
|
464
501
|
path = os.path.realpath(path)
|
|
465
502
|
|
|
@@ -467,12 +504,12 @@ def save_excel(path, data):
|
|
|
467
504
|
data_type = validate_data(data)
|
|
468
505
|
|
|
469
506
|
try:
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
507
|
+
with pd.ExcelWriter(path) as writer:
|
|
508
|
+
if data_type == "single":
|
|
509
|
+
save_in_slice(data, None)
|
|
510
|
+
elif data_type == "list":
|
|
474
511
|
for data_df, sheet_name in data:
|
|
475
|
-
data_df
|
|
512
|
+
save_in_slice(data_df, sheet_name)
|
|
476
513
|
except Exception as e:
|
|
477
514
|
logger.error(f'Save excel file "{os.path.basename(path)}" failed.')
|
|
478
515
|
raise RuntimeError(f"Save excel file {path} failed.") from e
|
|
@@ -677,8 +714,23 @@ def os_walk_for_files(path, depth):
|
|
|
677
714
|
return res
|
|
678
715
|
|
|
679
716
|
|
|
717
|
+
def check_zip_file(zip_file_path):
|
|
718
|
+
with zipfile.ZipFile(zip_file_path, 'r') as zip_file:
|
|
719
|
+
total_size = 0
|
|
720
|
+
if len(zip_file.infolist()) > FileCheckConst.MAX_FILE_IN_ZIP_SIZE:
|
|
721
|
+
raise ValueError(f"Too many files in {os.path.basename(zip_file_path)}")
|
|
722
|
+
for file_info in zip_file.infolist():
|
|
723
|
+
if file_info.file_size > FileCheckConst.MAX_FILE_SIZE:
|
|
724
|
+
raise ValueError(f"File {file_info.filename} is too large to extract")
|
|
725
|
+
|
|
726
|
+
total_size += file_info.file_size
|
|
727
|
+
if total_size > FileCheckConst.MAX_ZIP_SIZE:
|
|
728
|
+
raise ValueError(f"Total extracted size exceeds the limit of {FileCheckConst.MAX_ZIP_SIZE} bytes")
|
|
729
|
+
|
|
730
|
+
|
|
680
731
|
def read_xlsx(file_path, sheet_name=None):
|
|
681
732
|
check_file_or_directory_path(file_path)
|
|
733
|
+
check_zip_file(file_path)
|
|
682
734
|
try:
|
|
683
735
|
if sheet_name:
|
|
684
736
|
result_df = pd.read_excel(file_path, keep_default_na=False, sheet_name=sheet_name)
|
|
@@ -719,6 +771,13 @@ def create_file_with_content(data, filepath):
|
|
|
719
771
|
change_mode(filepath, FileCheckConst.DATA_FILE_AUTHORITY)
|
|
720
772
|
|
|
721
773
|
|
|
774
|
+
def check_file_whether_exist_or_not(filepath):
|
|
775
|
+
if os.path.exists(filepath):
|
|
776
|
+
check_file_or_directory_path(filepath)
|
|
777
|
+
else:
|
|
778
|
+
check_path_before_create(filepath)
|
|
779
|
+
|
|
780
|
+
|
|
722
781
|
def add_file_to_zip(zip_file_path, file_path, arc_path=None):
|
|
723
782
|
"""
|
|
724
783
|
Add a file to a ZIP archive, if zip does not exist, create one.
|
|
@@ -727,12 +786,13 @@ def add_file_to_zip(zip_file_path, file_path, arc_path=None):
|
|
|
727
786
|
:param file_path: Path to the file to add
|
|
728
787
|
:param arc_path: Optional path inside the ZIP archive where the file should be added
|
|
729
788
|
"""
|
|
789
|
+
check_file_or_directory_path(file_path)
|
|
730
790
|
check_file_suffix(zip_file_path, FileCheckConst.ZIP_SUFFIX)
|
|
791
|
+
check_file_whether_exist_or_not(zip_file_path)
|
|
731
792
|
check_file_size(file_path, FileCheckConst.MAX_FILE_IN_ZIP_SIZE)
|
|
732
793
|
zip_size = os.path.getsize(zip_file_path) if os.path.exists(zip_file_path) else 0
|
|
733
794
|
if zip_size + os.path.getsize(file_path) > FileCheckConst.MAX_ZIP_SIZE:
|
|
734
795
|
raise RuntimeError(f"ZIP file size exceeds the limit of {FileCheckConst.MAX_ZIP_SIZE} bytes")
|
|
735
|
-
check_path_before_create(zip_file_path)
|
|
736
796
|
try:
|
|
737
797
|
proc_lock.acquire()
|
|
738
798
|
with zipfile.ZipFile(zip_file_path, 'a') as zip_file:
|
|
@@ -754,7 +814,7 @@ def create_file_in_zip(zip_file_path, file_name, content):
|
|
|
754
814
|
:param content: Content to write to the file
|
|
755
815
|
"""
|
|
756
816
|
check_file_suffix(zip_file_path, FileCheckConst.ZIP_SUFFIX)
|
|
757
|
-
|
|
817
|
+
check_file_whether_exist_or_not(zip_file_path)
|
|
758
818
|
zip_size = os.path.getsize(zip_file_path) if os.path.exists(zip_file_path) else 0
|
|
759
819
|
if zip_size + sys.getsizeof(content) > FileCheckConst.MAX_ZIP_SIZE:
|
|
760
820
|
raise RuntimeError(f"ZIP file size exceeds the limit of {FileCheckConst.MAX_ZIP_SIZE} bytes")
|
|
@@ -781,26 +841,22 @@ def extract_zip(zip_file_path, extract_dir):
|
|
|
781
841
|
:param extract_dir: Directory to extract the contents to
|
|
782
842
|
"""
|
|
783
843
|
check_file_suffix(zip_file_path, FileCheckConst.ZIP_SUFFIX)
|
|
844
|
+
check_file_or_directory_path(zip_file_path)
|
|
845
|
+
create_directory(extract_dir)
|
|
784
846
|
try:
|
|
785
847
|
proc_lock.acquire()
|
|
786
|
-
|
|
787
|
-
total_size = 0
|
|
788
|
-
if len(zip_file.infolist()) > FileCheckConst.MAX_FILE_IN_ZIP_SIZE:
|
|
789
|
-
raise ValueError(f"Too many files in {os.path.basename(zip_file_path)}")
|
|
790
|
-
for file_info in zip_file.infolist():
|
|
791
|
-
if file_info.file_size > FileCheckConst.MAX_FILE_IN_ZIP_SIZE:
|
|
792
|
-
raise ValueError(f"File {file_info.filename} is too large to extract")
|
|
793
|
-
|
|
794
|
-
total_size += file_info.file_size
|
|
795
|
-
if total_size > FileCheckConst.MAX_ZIP_SIZE:
|
|
796
|
-
raise ValueError(f"Total extracted size exceeds the limit of {FileCheckConst.MAX_ZIP_SIZE} bytes")
|
|
848
|
+
check_zip_file(zip_file_path)
|
|
797
849
|
except Exception as e:
|
|
798
850
|
logger.error(f'Save content to file "{os.path.basename(zip_file_path)}" failed.')
|
|
799
851
|
raise RuntimeError(f"Save content to file {os.path.basename(zip_file_path)} failed.") from e
|
|
800
852
|
finally:
|
|
801
853
|
proc_lock.release()
|
|
802
|
-
|
|
803
|
-
|
|
854
|
+
try:
|
|
855
|
+
with zipfile.ZipFile(zip_file_path, 'r') as zip_file:
|
|
856
|
+
zip_file.extractall(extract_dir)
|
|
857
|
+
except Exception as e:
|
|
858
|
+
raise RuntimeError(f"extract zip file {os.path.basename(zip_file_path)} failed") from e
|
|
859
|
+
recursive_chmod(extract_dir)
|
|
804
860
|
|
|
805
861
|
|
|
806
862
|
def split_zip_file_path(zip_file_path):
|
|
@@ -877,7 +933,8 @@ class SharedDict:
|
|
|
877
933
|
self._shm = shared_memory.SharedMemory(create=False, name=name)
|
|
878
934
|
except FileNotFoundError:
|
|
879
935
|
try:
|
|
880
|
-
|
|
936
|
+
# 共享内存空间增加至5M
|
|
937
|
+
self._shm = shared_memory.SharedMemory(create=True, name=name, size=1024 * 1024 * 5)
|
|
881
938
|
data = pickle.dumps({})
|
|
882
939
|
self._shm.buf[0:len(data)] = bytearray(data)
|
|
883
940
|
logger.debug(f'create shared memory, name: {name}')
|
|
@@ -892,6 +949,7 @@ class SharedDict:
|
|
|
892
949
|
except Exception as e:
|
|
893
950
|
logger.debug(f'shared dict is unreadable, reason: {e}, create new dict.')
|
|
894
951
|
self._dict = {}
|
|
952
|
+
self._shm.buf[:] = bytearray(b'\x00' * len(self._shm.buf)) # 清空内存
|
|
895
953
|
self._changed = True
|
|
896
954
|
|
|
897
955
|
|
|
@@ -14,21 +14,22 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
|
|
16
16
|
import collections
|
|
17
|
+
import functools
|
|
18
|
+
import inspect
|
|
17
19
|
import os
|
|
18
20
|
import re
|
|
19
|
-
import
|
|
21
|
+
import threading
|
|
20
22
|
import time
|
|
21
|
-
import
|
|
23
|
+
from collections import OrderedDict
|
|
22
24
|
from datetime import datetime, timezone
|
|
23
25
|
|
|
24
26
|
import numpy as np
|
|
25
27
|
|
|
26
|
-
from msprobe.core.common.file_utils import (FileOpen, check_file_or_directory_path, load_json)
|
|
27
28
|
from msprobe.core.common.const import Const, CompareConst
|
|
28
|
-
from msprobe.core.common.log import logger
|
|
29
|
-
from msprobe.core.common.exceptions import MsprobeException
|
|
30
29
|
from msprobe.core.common.decorator import recursion_depth_decorator
|
|
31
|
-
|
|
30
|
+
from msprobe.core.common.exceptions import MsprobeException
|
|
31
|
+
from msprobe.core.common.file_utils import (FileOpen, check_file_or_directory_path, load_json)
|
|
32
|
+
from msprobe.core.common.log import logger
|
|
32
33
|
|
|
33
34
|
device = collections.namedtuple('device', ['type', 'index'])
|
|
34
35
|
prefixes = ['api_stack', 'list', 'range', 'acl']
|
|
@@ -112,6 +113,82 @@ class DumpException(MsprobeBaseException):
|
|
|
112
113
|
return f"Dump Error Code {self.code}: {self.error_info}"
|
|
113
114
|
|
|
114
115
|
|
|
116
|
+
class ThreadSafe:
|
|
117
|
+
"""
|
|
118
|
+
线程安全控制工具类,提供三种使用方式:
|
|
119
|
+
1.上下文管理器:with ThreadSafe()
|
|
120
|
+
2.主动加锁与释放锁:ThreadSafe.acquire()/ThreadSafe.release()
|
|
121
|
+
3.方法装饰器:@ThreadSafe.synchronized
|
|
122
|
+
"""
|
|
123
|
+
_lock = threading.RLock()
|
|
124
|
+
|
|
125
|
+
def __enter__(self):
|
|
126
|
+
self.__class__._lock.acquire()
|
|
127
|
+
|
|
128
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
129
|
+
self.__class__._lock.release()
|
|
130
|
+
|
|
131
|
+
@classmethod
|
|
132
|
+
def acquire(cls):
|
|
133
|
+
cls._lock.acquire()
|
|
134
|
+
|
|
135
|
+
@classmethod
|
|
136
|
+
def release(cls):
|
|
137
|
+
cls._lock.release()
|
|
138
|
+
|
|
139
|
+
@classmethod
|
|
140
|
+
def synchronized(cls, func):
|
|
141
|
+
@functools.wraps(func)
|
|
142
|
+
def wrapper(*args, **kwargs):
|
|
143
|
+
with cls._lock:
|
|
144
|
+
return func(*args, **kwargs)
|
|
145
|
+
|
|
146
|
+
return wrapper
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
class ModuleQueue:
|
|
150
|
+
def __init__(self):
|
|
151
|
+
self.queue = OrderedDict()
|
|
152
|
+
|
|
153
|
+
def add_name(self, name):
|
|
154
|
+
self.queue[name] = True
|
|
155
|
+
|
|
156
|
+
def remove_name(self, name):
|
|
157
|
+
if name in self.queue:
|
|
158
|
+
del self.queue[name]
|
|
159
|
+
|
|
160
|
+
def find_last(self, name):
|
|
161
|
+
"""
|
|
162
|
+
在队列中找到当前 Module/Cell 的父节点名称并返回,若找不到则返回None
|
|
163
|
+
|
|
164
|
+
Args:
|
|
165
|
+
name: 需要寻找父节点的 Module/Cell 的名称
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
返回父节点名称,找不到则返回None
|
|
169
|
+
|
|
170
|
+
Examples:
|
|
171
|
+
父节点名称格式: Module.module1.module1.forward.0
|
|
172
|
+
子节点名称格式: Module.module1.module2.Module2.forward.0
|
|
173
|
+
匹配关系: Module/Cell 的名称总能被点(.)分割符分成5个部分及以上,子节点截断后4个点和父节点截断后3个点的前缀名称是匹配的
|
|
174
|
+
"""
|
|
175
|
+
child_parts = name.split('.')
|
|
176
|
+
if len(child_parts) < 5:
|
|
177
|
+
return None
|
|
178
|
+
child_name_prefix = '.'.join(child_parts[:-4])
|
|
179
|
+
if child_name_prefix in Const.MODULE_PREFIX:
|
|
180
|
+
return None
|
|
181
|
+
|
|
182
|
+
for parent_name in reversed(self.queue):
|
|
183
|
+
parent_parts = parent_name.split('.')
|
|
184
|
+
if len(parent_parts) < 5:
|
|
185
|
+
return None
|
|
186
|
+
parent_name_prefix = '.'.join(parent_parts[:-3])
|
|
187
|
+
if parent_name_prefix == child_name_prefix:
|
|
188
|
+
return parent_name
|
|
189
|
+
return None
|
|
190
|
+
|
|
191
|
+
|
|
115
192
|
def is_json_file(file_path):
|
|
116
193
|
if isinstance(file_path, str) and file_path.lower().endswith('.json'):
|
|
117
194
|
return True
|
|
@@ -156,9 +233,10 @@ def check_compare_param(input_param, output_path, dump_mode, stack_mode):
|
|
|
156
233
|
|
|
157
234
|
def check_configuration_param(stack_mode=False, auto_analyze=True, fuzzy_match=False, is_print_compare_log=True):
|
|
158
235
|
arg_list = [stack_mode, auto_analyze, fuzzy_match, is_print_compare_log]
|
|
159
|
-
|
|
236
|
+
arg_names = ['stack_mode', 'auto_analyze', 'fuzzy_match', 'is_print_compare_log']
|
|
237
|
+
for arg, name in zip(arg_list, arg_names):
|
|
160
238
|
if not isinstance(arg, bool):
|
|
161
|
-
logger.error(f"Invalid input parameter, {
|
|
239
|
+
logger.error(f"Invalid input parameter, {name} which should be only bool type.")
|
|
162
240
|
raise CompareException(CompareException.INVALID_PARAM_ERROR)
|
|
163
241
|
|
|
164
242
|
|
|
@@ -282,9 +360,9 @@ def set_dump_path(input_param):
|
|
|
282
360
|
npu_path = input_param.get("npu_json_path", None)
|
|
283
361
|
bench_path = input_param.get("bench_json_path", None)
|
|
284
362
|
dump_json_path_valid = npu_path is not None and npu_path.endswith("dump.json") and \
|
|
285
|
-
|
|
363
|
+
bench_path is not None and bench_path.endswith("dump.json")
|
|
286
364
|
debug_json_path_valid = npu_path is not None and npu_path.endswith("debug.json") and \
|
|
287
|
-
|
|
365
|
+
bench_path is not None and bench_path.endswith("debug.json")
|
|
288
366
|
if not dump_json_path_valid and not debug_json_path_valid:
|
|
289
367
|
logger.error(f"Please check the json path is valid and ensure that neither npu_path nor bench_path is None.")
|
|
290
368
|
raise CompareException(CompareException.INVALID_PATH_ERROR)
|
|
@@ -303,6 +381,21 @@ def get_file_type(file_path):
|
|
|
303
381
|
return file_type
|
|
304
382
|
|
|
305
383
|
|
|
384
|
+
def check_dump_json_key(json_data, device_type):
|
|
385
|
+
task = json_data.get('task', None)
|
|
386
|
+
if not task:
|
|
387
|
+
logger.error(f"Task for {device_type} is empty, please check.")
|
|
388
|
+
raise CompareException(CompareException.INVALID_TASK_ERROR)
|
|
389
|
+
if 'data' not in json_data:
|
|
390
|
+
logger.error(f"Missing 'data' in dump.json, please check dump.json of {device_type}.")
|
|
391
|
+
raise CompareException(CompareException.INVALID_DATA_ERROR)
|
|
392
|
+
api_data = json_data.get('data')
|
|
393
|
+
if not isinstance(api_data, dict):
|
|
394
|
+
logger.error(f"Invalid type for 'data': expected a dict. Please check dump.json of {device_type}.")
|
|
395
|
+
raise CompareException(CompareException.INVALID_DATA_ERROR)
|
|
396
|
+
return task, api_data
|
|
397
|
+
|
|
398
|
+
|
|
306
399
|
def get_dump_mode(input_param):
|
|
307
400
|
npu_path = input_param.get("npu_json_path", None)
|
|
308
401
|
bench_path = input_param.get("bench_json_path", None)
|
|
@@ -310,12 +403,8 @@ def get_dump_mode(input_param):
|
|
|
310
403
|
bench_json_data = load_json(bench_path)
|
|
311
404
|
json_type = get_file_type(file_path=npu_path)
|
|
312
405
|
|
|
313
|
-
npu_task = npu_json_data
|
|
314
|
-
bench_task = bench_json_data
|
|
315
|
-
|
|
316
|
-
if not npu_task or not bench_task:
|
|
317
|
-
logger.error(f"Please check the dump task is correct, npu's task is {npu_task}, bench's task is {bench_task}.")
|
|
318
|
-
raise CompareException(CompareException.INVALID_TASK_ERROR)
|
|
406
|
+
npu_task, npu_api_data = check_dump_json_key(npu_json_data, 'npu')
|
|
407
|
+
bench_task, bench_api_data = check_dump_json_key(bench_json_data, 'bench')
|
|
319
408
|
|
|
320
409
|
if npu_task != bench_task:
|
|
321
410
|
logger.error(f"Please check the dump task is consistent.")
|
|
@@ -328,8 +417,8 @@ def get_dump_mode(input_param):
|
|
|
328
417
|
return Const.STRUCTURE
|
|
329
418
|
|
|
330
419
|
if npu_task == Const.STATISTICS:
|
|
331
|
-
npu_md5_compare = md5_find(
|
|
332
|
-
bench_md5_compare = md5_find(
|
|
420
|
+
npu_md5_compare = md5_find(npu_api_data, json_type)
|
|
421
|
+
bench_md5_compare = md5_find(bench_api_data, json_type)
|
|
333
422
|
if npu_md5_compare == bench_md5_compare:
|
|
334
423
|
return Const.MD5 if npu_md5_compare else Const.SUMMARY
|
|
335
424
|
else:
|
|
@@ -446,10 +535,10 @@ def get_real_step_or_rank(step_or_rank_input, obj):
|
|
|
446
535
|
def check_init_step(step):
|
|
447
536
|
if not is_int(step):
|
|
448
537
|
raise MsprobeException(MsprobeException.INVALID_PARAM_ERROR,
|
|
449
|
-
|
|
538
|
+
f"{step} must be an integer")
|
|
450
539
|
if not step >= 0:
|
|
451
540
|
raise MsprobeException(MsprobeException.INVALID_PARAM_ERROR,
|
|
452
|
-
|
|
541
|
+
f"{step} must be greater than or equal to 0")
|
|
453
542
|
|
|
454
543
|
|
|
455
544
|
def check_token_range(token_range):
|
|
@@ -557,14 +646,25 @@ def replace_last_occurrence(text, old, new):
|
|
|
557
646
|
|
|
558
647
|
def load_stack_json(stack_path):
|
|
559
648
|
stack_dict = load_json(stack_path)
|
|
649
|
+
|
|
650
|
+
if not isinstance(stack_dict, dict):
|
|
651
|
+
raise MsprobeException(
|
|
652
|
+
MsprobeException.INVALID_PARAM_ERROR,
|
|
653
|
+
"The format of the stack.json is incorrect, the outermost layer of stack.json should be a dict type."
|
|
654
|
+
)
|
|
655
|
+
|
|
560
656
|
if not stack_dict.get(Const.NEW_STACK_FLAG):
|
|
561
657
|
return stack_dict
|
|
562
658
|
|
|
563
659
|
new_stack_dict = {}
|
|
564
660
|
for stack_info in stack_dict.values():
|
|
565
|
-
if len(stack_info) != 2:
|
|
661
|
+
if not isinstance(stack_info, list) or len(stack_info) != 2:
|
|
566
662
|
continue
|
|
663
|
+
|
|
567
664
|
api_list, stack_str = stack_info
|
|
665
|
+
if not isinstance(api_list, list):
|
|
666
|
+
continue
|
|
667
|
+
|
|
568
668
|
for api_name in api_list:
|
|
569
669
|
new_stack_dict.update({api_name: stack_str})
|
|
570
670
|
return new_stack_dict
|
|
@@ -586,3 +686,18 @@ def analyze_api_call_stack(name):
|
|
|
586
686
|
else:
|
|
587
687
|
stack_str.append(Const.WITHOUT_CALL_STACK)
|
|
588
688
|
return "".join(stack_str)
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
def check_extern_input_list(input_list):
|
|
692
|
+
if not isinstance(input_list, list):
|
|
693
|
+
raise Exception("input is not a list")
|
|
694
|
+
if len(input_list) > Const.EXTERN_INPUT_LIST_MAX_LEN:
|
|
695
|
+
raise Exception(f"input list exceed max length {Const.EXTERN_INPUT_LIST_MAX_LEN}")
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
def check_process_num(process_num):
|
|
699
|
+
if not is_int(process_num) or process_num <= 0:
|
|
700
|
+
raise ValueError(f"process_num({process_num}) is not a positive integer")
|
|
701
|
+
if process_num > Const.MAX_PROCESS_NUM:
|
|
702
|
+
raise ValueError(f"The maximum supported process_num is {Const.MAX_PROCESS_NUM}, current value: {process_num}.")
|
|
703
|
+
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
import re
|
|
17
|
+
|
|
18
|
+
from msprobe.core.common.const import Const
|
|
17
19
|
from msprobe.core.common.log import logger
|
|
18
20
|
from msprobe.core.common.exceptions import MsprobeException
|
|
19
21
|
from msprobe.core.common.utils import get_real_step_or_rank
|
|
@@ -67,6 +69,7 @@ class BaseConfig:
|
|
|
67
69
|
self.if_preheat = json_config.get("if_preheat")
|
|
68
70
|
self.preheat_step = json_config.get("preheat_step")
|
|
69
71
|
self.max_sample = json_config.get("max_sample")
|
|
72
|
+
self.is_regex_valid = True
|
|
70
73
|
|
|
71
74
|
@staticmethod
|
|
72
75
|
def _check_str_list_config(config_item, config_name):
|
|
@@ -83,6 +86,7 @@ class BaseConfig:
|
|
|
83
86
|
self._check_str_list_config(self.scope, "scope")
|
|
84
87
|
self._check_str_list_config(self.list, "list")
|
|
85
88
|
self._check_data_mode()
|
|
89
|
+
self._check_regex_in_list()
|
|
86
90
|
|
|
87
91
|
def _check_data_mode(self):
|
|
88
92
|
if self.data_mode is not None:
|
|
@@ -118,3 +122,13 @@ class BaseConfig:
|
|
|
118
122
|
f"summary_mode is invalid, summary_mode is not in {Const.SUMMARY_MODE}.",
|
|
119
123
|
MsprobeException(MsprobeException.INVALID_PARAM_ERROR)
|
|
120
124
|
)
|
|
125
|
+
|
|
126
|
+
def _check_regex_in_list(self):
|
|
127
|
+
if self.list:
|
|
128
|
+
for name in self.list:
|
|
129
|
+
if name.startswith('name-regex(') and name.endswith(')'):
|
|
130
|
+
try:
|
|
131
|
+
re.compile(name[len('name-regex('):-1])
|
|
132
|
+
except re.error:
|
|
133
|
+
self.is_regex_valid = False
|
|
134
|
+
break
|
|
@@ -31,7 +31,7 @@ from msprobe.core.common.utils import CompareException, add_time_with_xlsx, chec
|
|
|
31
31
|
set_dump_path, get_dump_mode, check_compare_param, check_configuration_param, load_stack_json, get_file_type
|
|
32
32
|
from msprobe.core.compare.check import check_dump_json_str, check_stack_json_str, cross_dtype_mapping
|
|
33
33
|
from msprobe.core.compare.utils import merge_tensor, print_compare_ends_info, read_op, \
|
|
34
|
-
reorder_op_x_list, set_stack_json_path
|
|
34
|
+
reorder_op_x_list, set_stack_json_path, check_api_info_len
|
|
35
35
|
from msprobe.core.compare.config import ModeConfig, MappingConfig, MappingDict
|
|
36
36
|
from msprobe.core.compare.multiprocessing_compute import CompareRealData
|
|
37
37
|
from msprobe.core.compare.highlight import HighLight
|
|
@@ -105,7 +105,7 @@ class Comparator:
|
|
|
105
105
|
stack_json = input_param.get("stack_json_path")
|
|
106
106
|
result_df = self.compare_statistics([npu_json, bench_json, stack_json])
|
|
107
107
|
if not result_df.values.tolist():
|
|
108
|
-
logger.warning("Can`t match any op.")
|
|
108
|
+
logger.warning("Can`t match any op. No compare result file generated.")
|
|
109
109
|
return
|
|
110
110
|
|
|
111
111
|
# compare real data
|
|
@@ -186,11 +186,16 @@ class ParseData:
|
|
|
186
186
|
elif self.mode_config.dump_mode == Const.MD5:
|
|
187
187
|
result[Const.MD5] = []
|
|
188
188
|
|
|
189
|
-
|
|
189
|
+
apis_data = data_json.get('data', None)
|
|
190
|
+
if not apis_data:
|
|
191
|
+
logger.warning('No APIs found in dump.json.')
|
|
192
|
+
return pd.DataFrame(result)
|
|
193
|
+
|
|
194
|
+
api_nums = len(apis_data)
|
|
190
195
|
progress_bar = tqdm(total=api_nums, desc="API/Module Read Progress", unit="api/module", ncols=100)
|
|
191
196
|
|
|
192
197
|
# 从json中循环解析API数据,遍历所有API
|
|
193
|
-
for data_name in
|
|
198
|
+
for data_name in apis_data:
|
|
194
199
|
check_op_str_pattern_valid(data_name)
|
|
195
200
|
merge_list = self.gen_merge_list(data_json, data_name, stack_json_data)
|
|
196
201
|
if not merge_list:
|
|
@@ -206,25 +211,37 @@ class ParseData:
|
|
|
206
211
|
for index, op_name in enumerate(op_name_reorder):
|
|
207
212
|
result[CompareConst.OP_NAME].append(op_name)
|
|
208
213
|
if (CompareConst.INPUT_PATTERN in op_name) or (CompareConst.KWARGS_PATTERN in op_name):
|
|
209
|
-
|
|
214
|
+
info_list = merge_list[CompareConst.INPUT_STRUCT]
|
|
210
215
|
elif CompareConst.OUTPUT_PATTERN in op_name:
|
|
211
|
-
|
|
216
|
+
info_list = merge_list[CompareConst.OUTPUT_STRUCT]
|
|
212
217
|
elif CompareConst.PARAMS_PATTERN in op_name:
|
|
213
|
-
|
|
218
|
+
info_list = merge_list[CompareConst.PARAMS_STRUCT]
|
|
214
219
|
elif CompareConst.PARAMS_GRAD_PATTERN in op_name:
|
|
215
|
-
|
|
220
|
+
info_list = merge_list[CompareConst.PARAMS_GRAD_STRUCT]
|
|
216
221
|
else:
|
|
217
|
-
|
|
222
|
+
info_list = merge_list[CompareConst.DEBUG_STRUCT]
|
|
223
|
+
check_api_info_len(op_name, info_list, 1)
|
|
224
|
+
struct = info_list.pop(0)
|
|
225
|
+
|
|
226
|
+
check_api_info_len(op_name, struct, 2)
|
|
218
227
|
result[Const.DTYPE].append(struct[0])
|
|
219
228
|
result[Const.SHAPE].append(struct[1])
|
|
220
229
|
if self.mode_config.dump_mode == Const.MD5:
|
|
230
|
+
check_api_info_len(op_name, struct, 3)
|
|
221
231
|
result[Const.MD5].append(struct[2])
|
|
232
|
+
|
|
233
|
+
check_api_info_len(op_name, summary_reorder, 1)
|
|
222
234
|
result[Const.SUMMARY].append(summary_reorder.pop(0))
|
|
223
|
-
|
|
224
|
-
|
|
235
|
+
|
|
236
|
+
if index == 0 and self.mode_config.stack_mode:
|
|
237
|
+
check_api_info_len(op_name, merge_list[Const.STACK_INFO], 1)
|
|
238
|
+
result[Const.STACK_INFO].append(merge_list[Const.STACK_INFO][0])
|
|
239
|
+
else:
|
|
240
|
+
result[Const.STACK_INFO].append(None)
|
|
241
|
+
|
|
225
242
|
if self.mode_config.dump_mode == Const.ALL:
|
|
243
|
+
check_api_info_len(op_name, data_name_reorder, 1)
|
|
226
244
|
result['data_name'].append(data_name_reorder.pop(0))
|
|
227
|
-
|
|
228
245
|
progress_bar.update(1)
|
|
229
246
|
progress_bar.close()
|
|
230
247
|
return pd.DataFrame(result)
|
|
@@ -599,8 +616,12 @@ class CreateTable:
|
|
|
599
616
|
npu_summary = [CompareConst.NPU_MAX, CompareConst.NPU_MIN, CompareConst.NPU_MEAN, CompareConst.NPU_NORM]
|
|
600
617
|
bench_summary = [CompareConst.BENCH_MAX, CompareConst.BENCH_MIN, CompareConst.BENCH_MEAN,
|
|
601
618
|
CompareConst.BENCH_NORM]
|
|
602
|
-
|
|
603
|
-
|
|
619
|
+
if result.empty:
|
|
620
|
+
result[npu_summary] = pd.DataFrame(columns=npu_summary)
|
|
621
|
+
result[bench_summary] = pd.DataFrame(columns=bench_summary)
|
|
622
|
+
else:
|
|
623
|
+
result[npu_summary] = result['summary_x'].apply(self.set_summary).tolist()
|
|
624
|
+
result[bench_summary] = result['summary_y'].apply(self.set_summary).tolist()
|
|
604
625
|
|
|
605
626
|
result_df = pd.DataFrame(columns=header)
|
|
606
627
|
for h in header:
|