mindstudio-probe 8.2.1__tar.gz → 8.3.3__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.2.1 → mindstudio_probe-8.3.3}/PKG-INFO +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/PKG-INFO +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/SOURCES.txt +0 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/README.md +7 -2
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/const.py +17 -3
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/file_utils.py +138 -32
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/framework_adapter.py +16 -6
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/utils.py +17 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/diff_analyze/first_diff_analyze.py +4 -16
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/find_first/utils.py +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/utils.py +26 -6
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/ckpt_compare/ckpt_comparator.py +6 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/hook_manager.py +0 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/01.installation.md +2 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/02.config_introduction.md +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/05.data_dump_PyTorch.md +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/07.accuracy_checker_PyTorch.md +13 -13
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/10.accuracy_compare_PyTorch.md +6 -6
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/14.data_parse_PyTorch.md +2 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/15.free_benchmarking_PyTorch.md +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/19.monitor.md +4 -4
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/21.visualization_PyTorch.md +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/26.data_dump_PyTorch_baseline.md +3 -3
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/32.ckpt_compare.md +5 -5
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/generate_op_script/op_generator.py +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/compare/utils.py +1 -2
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/module_hook.py +17 -20
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/msprobe.py +6 -4
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/nan_analyze/graph.py +2 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py +1 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py +34 -5
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/common/utils.py +2 -52
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/compare/utils.py +1 -2
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/dump/module_dump/hook_wrapper.py +24 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/dump/module_dump/module_processer.py +27 -6
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/api_register.py +20 -4
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/module_hook.py +16 -34
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/pt_config.py +6 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/pytorch_service.py +8 -3
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/builder/graph_builder.py +3 -2
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/builder/graph_merger.py +13 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/db_utils.py +42 -18
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph/graph.py +13 -9
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph_service.py +20 -10
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/utils.py +11 -1
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/setup.py +1 -1
- mindstudio_probe-8.2.1/msprobe/core/compare/diff_analyze/ignore_op_list.yaml +0 -3
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/LICENSE +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/MANIFEST.in +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/dependency_links.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/entry_points.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/not-zip-safe +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/requires.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/mindstudio_probe.egg-info/top_level.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/CMakeLists.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/config.json +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/advisor/advisor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/advisor/advisor_const.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/advisor/advisor_result.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/db_manager.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/decorator.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/exceptions.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/global_lock.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/inplace_op_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/inplace_ops.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/log.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/megatron_utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/parallel_state.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common/runtime.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/common_config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/acc_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/check.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/compare_cli.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/diff_analyze/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/diff_analyze/diff_analyze_threshold.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/find_first/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/find_first/analyzer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/find_first/data_processor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/find_first/graph.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/highlight.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/layer_mapping/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/layer_mapping/data_scope_parser.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/layer_mapping/layer_mapping.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/layer_mapping/postprocess_pass.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/merge_result/merge_result.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/merge_result/merge_result_cli.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/merge_result/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/ms_to_pt_api.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/multiprocessing_compute.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/compare/npy_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/base_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/dataset_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/env_args_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/hyperparameter_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/pip_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/random_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/checkers/weights_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/ckpt_compare/megatron_loader.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/ckpt_compare/metrics.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/ckpt_compare/name_mapping.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/config_check_cli.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/config_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/resource/dependency.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/resource/env.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/resource/hyperparameter.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/utils/hyperparameter_parser.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/config_check/utils/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/api_registry.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/data_collector.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/data_processor/base.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/data_processor/factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/data_processor/mindspore_processor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/data_processor/pytorch_processor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/json_writer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/data_dump/scope.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/debugger/precision_debugger.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/grad_probe/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/grad_probe/constant.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/grad_probe/grad_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/grad_probe/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/kernel_dump/kernel_config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/monitor/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/monitor/anomaly_processor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/monitor/csv2db.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/monitor/db_utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/monitor/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/abnormal_scene.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/api_info.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/filter.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/ignore_rules.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/level.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/overflow_check/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/service.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/single_save/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/single_save/single_comparator.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/core/single_save/single_saver.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/03.config_examples.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/04.kernel_dump_PyTorch.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/06.data_dump_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/09.accuracy_checker_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/11.accuracy_compare_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/12.overflow_check_PyTorch.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/13.overflow_check_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/16.free_benchmarking_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/17.grad_probe.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/18.online_dispatch.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/20.monitor_performance_baseline.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/22.visualization_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/23.generate_operator_PyTorch.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/24.code_mapping_Mindspore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/25.tool_function_introduction.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/27.dump_json_instruction.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/28.debugger_save_instruction.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/28.kernel_dump_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/29.data_dump_MSAdapter.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/30.overflow_check_MSAdapter.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/31.config_check.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/33.generate_operator_MindSpore.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/34.RL_collect.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/35.nan_analyze.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/36.calculation_result_change.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/FAQ.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/data_dump_MindSpore/data_dump_MindSpore_baseline.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/data_dump_MindSpore/dynamic_graph_quick_start_example.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/BLOOM-7B_1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/BLOOM-7B_2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/BLOOM-7B_3.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/BLOOM-7B_4.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_3.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_4.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_5.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_6.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_7.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/GPT-3_8.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/YOLOV5S_1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/YOLOV5S_2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/accuracy_checking_details.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/accuracy_checking_result.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/api_precision_compare_details.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/api_precision_compare_result.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/auto_analyze_log.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/compare_result.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/compare_result_pkl.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/compare_result_pkl_md5.png.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/cpu_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/free_benchmark.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/free_benchmark_framework.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/grad_probe_image-1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/grad_probe_image-2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/grad_probe_image-3.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/grad_probe_image-4.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/grad_probe_image.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/merge_result.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/module_compare.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/monitor/cpu_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/monitor/step_count_per_record.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/ms_dump.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/ms_layer.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/pt_dump.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/save_compare_result_sample.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/fuzzy_match_ms.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/fuzzy_match_pt.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/proxy.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/tensorboard_1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/tensorboard_2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_browser_1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_browser_2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_match_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_precision_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_search_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_show_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_showcase.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/img/visualization/vis_unmatch_info.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/GPTModel.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/ParallelMLP.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/layer_mapping_example.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mapping.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mapping1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/3.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/4.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/5.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/6.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/7.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory-qwen25vl.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed-mm-qwen25vl.txt +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed2.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/mindspeed_llamafactory_mapping.md +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/module_name.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/module_name1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/no_mapping.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/no_mapping1.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/no_mapping_analyze.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/docs/visualization/top_layer.png +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/api_info.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/api_runner.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/bench_functions/flash_attention_score.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/bench_functions/fusion_operator.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/checker_support_api.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/cmd_parser.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/compute_element.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/data_manager.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/generate_op_script/operator_replication.template +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/main.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/multi_data_manager.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/type_mapping.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/api_accuracy_checker/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/cell_processor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/bind.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/cmd_parser.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/graph.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/graph_parser.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/main.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/code_mapping/processor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/common/const.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/common/log.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/common/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/compare/common_dir_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/compare/distributed_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/compare/ms_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/compare/ms_graph_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/debugger/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/debugger/debugger_config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/debugger/precision_debugger.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/cell_dump_process.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/cell_dump_with_insert_gradient.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/dump_tool_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/graph_mode_cell_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/graph_tensor_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/hook_cell/api_register.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/hook_cell/hook_cell.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/hook_cell/ms_hook_manager.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/hook_cell/primitive_hooks.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/hook_cell/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/jit_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/kernel_graph_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dump/kernel_kbyk_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dym_loader/hook_dynamic_loader.cpp +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/dym_loader/hook_dynamic_loader.h +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/exception_dump/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/exception_dump/exception_dump_tool_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/exception_dump/kernel_graph_exception_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/api_pynative_self_check.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/common/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/common/config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/common/handler_params.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/common/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/data/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/handler/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/handler/base_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/handler/check_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/handler/fix_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/handler/handler_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/add_noise.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/base_perturbation.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/bit_noise.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/exchange_value.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/improve_precision.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/no_change.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/perturbation/perturbation_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/free_benchmark/self_check_tool_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/global_context.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/grad_analyzer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/grad_monitor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/grad_stat_csv.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/hook.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/grad_probe/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/mindspore_service.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/mindtorch/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/mindtorch/mindtorch_adaptor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/common_func.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/data_writers.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/distributed/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/distributed/distributed_ops.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/distributed/stack_blacklist.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/distributed/wrap_distributed.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/features.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/optimizer_collect.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/monitor/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/ms_config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/overflow_check/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/overflow_check/kernel_graph_overflow_check.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/overflow_check/overflow_check_tool_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/mindspore/task_handler_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/nan_analyze/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/nan_analyze/analyzer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/nan_analyze/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/.keep +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/common/.keep +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/common/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/common/config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/common/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/algorithm.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_standard.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/api_precision_threshold.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/compare_column.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/compare_input.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/config.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/generate_op_script/config_op.json +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/generate_op_script/operator_replication.template +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/absolute_threshold.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/accumulative_error_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/base_standard.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/benchmark_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/binary_consistency.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/standard_config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/standard_register.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/thousandth_standard.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/precision_standard/ulp_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/.keep +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/data_generate.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/run_overflow_check.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/run_ut_utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/api_accuracy_checker/run_ut/torch_ut_setting.json +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/apply_adam.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/apply_adam_w.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/confusion_transpose.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/fast_gelu.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/group_norm_silu.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/layer_norm_eval.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/linear.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/matmul_backward.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/mish.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/npu_fusion_attention.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/rms_norm.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/rotary_mul.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/scaled_mask_softmax.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/sort_v2.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/bench_functions/swiglu.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/common/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/common/compare_script.template +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/common/log.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/common/parse_json.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/compare/distributed_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/compare/mapping.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/compare/match.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/compare/pt_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/compare/pt_diff_analyze.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/debugger/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/debugger/debugger_config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/debugger/precision_debugger.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/dump/module_dump/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/dump/module_dump/module_dump.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/common/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/common/constant.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/common/counter.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/common/enums.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/common/params.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/common/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/compare/grad_saver.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/compare/single_benchmark.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/main.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/base_layer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/layer_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/add_noise.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/bit_noise.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/change_value.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/improve_precision.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/no_change.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/npu/npu_base_layser.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/perturbed_layers/run_cpu.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/result_handlers/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/result_handlers/base_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/result_handlers/check_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/result_handlers/fix_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/result_handlers/handler_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/free_benchmark/result_handlers/preheat_handler.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/function_factory.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/grad_probe/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/grad_probe/grad_monitor.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/grad_probe/grad_stat_csv.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/hook_module.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/pt_hook_manager.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/register_optimizer_hook.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/script_wrapper.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/support_wrap_ops.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/hook_module/wrap_aten.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/csv2tb.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/data_writers.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/distributed/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/distributed/distributed_ops.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/distributed/stack_blacklist.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/distributed/wrap_distributed.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/features.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/module_metric.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/optimizer_collect.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/monitor/visualizer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/dispatch.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/dump_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/single_compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/torch_ops_config.yaml +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/online_dispatch/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/cli.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/compare.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/config.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/file_desc.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/interactive_cli.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/parse_exception.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/parse_tool.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/utils.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/pytorch/parse_tool/lib/visualization.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/builder/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/builder/msprobe_adapter.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/compare/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/compare/graph_comparator.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/compare/mode_adapter.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph/__init__.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph/base_node.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph/distributed_analyzer.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph/node_colors.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/msprobe/visualization/graph/node_op.py +0 -0
- {mindstudio_probe-8.2.1 → mindstudio_probe-8.3.3}/setup.cfg +0 -0
|
@@ -46,7 +46,6 @@ msprobe/core/compare/utils.py
|
|
|
46
46
|
msprobe/core/compare/diff_analyze/__init__.py
|
|
47
47
|
msprobe/core/compare/diff_analyze/diff_analyze_threshold.yaml
|
|
48
48
|
msprobe/core/compare/diff_analyze/first_diff_analyze.py
|
|
49
|
-
msprobe/core/compare/diff_analyze/ignore_op_list.yaml
|
|
50
49
|
msprobe/core/compare/find_first/__init__.py
|
|
51
50
|
msprobe/core/compare/find_first/analyzer.py
|
|
52
51
|
msprobe/core/compare/find_first/data_processor.py
|
|
@@ -50,9 +50,14 @@ export MSPROBE_LOG_LEVEL={x}
|
|
|
50
50
|
|
|
51
51
|
## 🚨 工具限制与注意事项
|
|
52
52
|
|
|
53
|
-
**1.
|
|
53
|
+
**1. 工具读写的所有路径,如config_path、dump_path等,只允许包含大小写字母、数字、下划线、斜杠、点和短横线。**
|
|
54
|
+
|
|
55
|
+
**2. 出于安全性及权限最小化角度考虑,msprobe工具不应使用root等高权限账户使用,建议使用普通用户权限安装执行。**
|
|
56
|
+
|
|
57
|
+
**3. 使用msprobe工具前请确保执行用户的umask值大于等于0027,否则可能会导致工具生成的精度数据文件和目录权限过大。**
|
|
58
|
+
|
|
59
|
+
**4. 用户须自行保证使用最小权限原则,如给工具输入的文件要求other用户不可写,在一些对安全要求更严格的功能场景下还需确保输入的文件group用户不可写。**
|
|
54
60
|
|
|
55
|
-
**2. 工具读写的所有路径,如config_path、dump_path等,只允许包含大小写字母、数字、下划线、斜杠、点和短横线。**
|
|
56
61
|
|
|
57
62
|
## ⚙️ 安装
|
|
58
63
|
|
|
@@ -691,9 +691,23 @@ class FileCheckConst:
|
|
|
691
691
|
"""
|
|
692
692
|
Class for file check const
|
|
693
693
|
"""
|
|
694
|
-
READ_ABLE = "
|
|
695
|
-
WRITE_ABLE = "
|
|
696
|
-
|
|
694
|
+
READ_ABLE = "r"
|
|
695
|
+
WRITE_ABLE = "w"
|
|
696
|
+
EXECUTE_ABLE = "x"
|
|
697
|
+
READ_WRITE_ABLE = "rw"
|
|
698
|
+
READ_EXECUTE_ABLE = "rx"
|
|
699
|
+
WRITE_EXECUTE_ABLE = "wx"
|
|
700
|
+
READ_WRITE_EXECUTE_ABLE = "rwx"
|
|
701
|
+
PERM_OPTIONS = [
|
|
702
|
+
READ_ABLE,
|
|
703
|
+
WRITE_ABLE,
|
|
704
|
+
EXECUTE_ABLE,
|
|
705
|
+
READ_WRITE_ABLE,
|
|
706
|
+
READ_EXECUTE_ABLE,
|
|
707
|
+
WRITE_EXECUTE_ABLE,
|
|
708
|
+
READ_WRITE_EXECUTE_ABLE
|
|
709
|
+
]
|
|
710
|
+
|
|
697
711
|
DIRECTORY_LENGTH = 4096
|
|
698
712
|
FILE_NAME_LENGTH = 255
|
|
699
713
|
FILE_VALID_PATTERN = r"^[a-zA-Z0-9_.:/-]+$"
|
|
@@ -12,29 +12,31 @@
|
|
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
|
+
|
|
15
16
|
import atexit
|
|
16
17
|
import csv
|
|
17
18
|
import fcntl
|
|
18
19
|
import io
|
|
20
|
+
import json
|
|
21
|
+
import multiprocessing
|
|
19
22
|
import os
|
|
20
23
|
import pickle
|
|
21
|
-
from multiprocessing import shared_memory
|
|
22
|
-
import stat
|
|
23
|
-
import json
|
|
24
24
|
import re
|
|
25
25
|
import shutil
|
|
26
|
+
import stat
|
|
26
27
|
import sys
|
|
27
28
|
import zipfile
|
|
28
|
-
import
|
|
29
|
-
|
|
29
|
+
from multiprocessing import shared_memory
|
|
30
|
+
|
|
30
31
|
import numpy as np
|
|
31
32
|
import pandas as pd
|
|
33
|
+
import yaml
|
|
32
34
|
|
|
35
|
+
from msprobe.core.common.const import FileCheckConst, CompareConst, Const
|
|
33
36
|
from msprobe.core.common.decorator import recursion_depth_decorator
|
|
34
|
-
from msprobe.core.common.log import logger
|
|
35
37
|
from msprobe.core.common.exceptions import FileCheckException
|
|
36
|
-
from msprobe.core.common.const import FileCheckConst, CompareConst, Const
|
|
37
38
|
from msprobe.core.common.global_lock import global_lock, is_main_process
|
|
39
|
+
from msprobe.core.common.log import logger
|
|
38
40
|
|
|
39
41
|
proc_lock = multiprocessing.Lock()
|
|
40
42
|
|
|
@@ -44,18 +46,23 @@ class FileChecker:
|
|
|
44
46
|
The class for check file.
|
|
45
47
|
|
|
46
48
|
Attributes:
|
|
47
|
-
file_path: The file or dictionary path to be verified
|
|
48
|
-
path_type: file or dictionary
|
|
49
|
-
ability(str):
|
|
49
|
+
file_path: The file or dictionary path to be verified
|
|
50
|
+
path_type: file or dictionary type
|
|
51
|
+
ability(str): one of ["r", "w", "x", "rw", "rx", "wx", "rwx"], r: read, w: write, x: execute
|
|
50
52
|
file_type(str): The correct file type for file
|
|
51
53
|
"""
|
|
52
54
|
|
|
53
|
-
def __init__(
|
|
55
|
+
def __init__(
|
|
56
|
+
self,
|
|
57
|
+
file_path,
|
|
58
|
+
path_type,
|
|
59
|
+
ability=None,
|
|
60
|
+
file_type=None
|
|
61
|
+
):
|
|
54
62
|
self.file_path = file_path
|
|
55
63
|
self.path_type = self._check_path_type(path_type)
|
|
56
|
-
self.ability = ability
|
|
64
|
+
self.ability = self._check_ability_type(ability)
|
|
57
65
|
self.file_type = file_type
|
|
58
|
-
self.is_script = is_script
|
|
59
66
|
|
|
60
67
|
@staticmethod
|
|
61
68
|
def _check_path_type(path_type):
|
|
@@ -64,9 +71,16 @@ class FileChecker:
|
|
|
64
71
|
raise FileCheckException(FileCheckException.ILLEGAL_PARAM_ERROR)
|
|
65
72
|
return path_type
|
|
66
73
|
|
|
74
|
+
@staticmethod
|
|
75
|
+
def _check_ability_type(ability):
|
|
76
|
+
if ability and ability not in FileCheckConst.PERM_OPTIONS:
|
|
77
|
+
logger.error(f'The ability must be one of {FileCheckConst.PERM_OPTIONS}.')
|
|
78
|
+
raise FileCheckException(FileCheckException.ILLEGAL_PARAM_ERROR)
|
|
79
|
+
return ability
|
|
80
|
+
|
|
67
81
|
def common_check(self):
|
|
68
82
|
"""
|
|
69
|
-
|
|
83
|
+
功能:基本文件权限校验,包括文件存在性、软连接、文件长度、文件类型、文件读写权限、文件属组、文件路径特殊字符、文件后缀名等
|
|
70
84
|
注意:文件后缀的合法性,非通用操作,可使用其他独立接口实现
|
|
71
85
|
"""
|
|
72
86
|
check_path_exists(self.file_path)
|
|
@@ -75,23 +89,25 @@ class FileChecker:
|
|
|
75
89
|
check_path_length(self.file_path)
|
|
76
90
|
check_path_type(self.file_path, self.path_type)
|
|
77
91
|
self.check_path_ability()
|
|
78
|
-
|
|
79
|
-
check_path_owner_consistent(self.file_path)
|
|
92
|
+
check_path_owner_consistent(self.file_path)
|
|
80
93
|
check_path_pattern_valid(self.file_path)
|
|
81
94
|
check_common_file_size(self.file_path)
|
|
82
95
|
check_file_suffix(self.file_path, self.file_type)
|
|
96
|
+
check_path_no_others_write(self.file_path)
|
|
83
97
|
if self.path_type == FileCheckConst.FILE:
|
|
84
|
-
|
|
98
|
+
check_dirpath_permission(self.file_path)
|
|
85
99
|
return self.file_path
|
|
86
100
|
|
|
87
101
|
def check_path_ability(self):
|
|
88
|
-
if self.ability
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if self.ability == FileCheckConst.READ_WRITE_ABLE:
|
|
102
|
+
if not self.ability:
|
|
103
|
+
return
|
|
104
|
+
|
|
105
|
+
if FileCheckConst.READ_ABLE in self.ability:
|
|
93
106
|
check_path_readability(self.file_path)
|
|
107
|
+
if FileCheckConst.WRITE_ABLE in self.ability:
|
|
94
108
|
check_path_writability(self.file_path)
|
|
109
|
+
if FileCheckConst.EXECUTE_ABLE in self.ability:
|
|
110
|
+
check_path_executable(self.file_path)
|
|
95
111
|
|
|
96
112
|
|
|
97
113
|
class FileOpen:
|
|
@@ -137,7 +153,8 @@ class FileOpen:
|
|
|
137
153
|
check_path_pattern_valid(self.file_path)
|
|
138
154
|
if os.path.exists(self.file_path):
|
|
139
155
|
check_common_file_size(self.file_path)
|
|
140
|
-
|
|
156
|
+
check_path_no_others_write(self.file_path)
|
|
157
|
+
check_dirpath_permission(self.file_path)
|
|
141
158
|
|
|
142
159
|
def check_ability_and_owner(self):
|
|
143
160
|
if self.mode in self.SUPPORT_READ_MODE:
|
|
@@ -256,12 +273,15 @@ def check_path_type(file_path, file_type):
|
|
|
256
273
|
raise FileCheckException(FileCheckException.INVALID_FILE_ERROR)
|
|
257
274
|
|
|
258
275
|
|
|
259
|
-
def
|
|
260
|
-
|
|
261
|
-
is_writable = (
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
276
|
+
def check_group_writable(file_path):
|
|
277
|
+
path_stat = os.stat(file_path)
|
|
278
|
+
is_writable = bool(path_stat.st_mode & stat.S_IWGRP)
|
|
279
|
+
return is_writable
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
def check_others_writable(file_path):
|
|
283
|
+
path_stat = os.stat(file_path)
|
|
284
|
+
is_writable = bool(path_stat.st_mode & stat.S_IWOTH)
|
|
265
285
|
return is_writable
|
|
266
286
|
|
|
267
287
|
|
|
@@ -309,7 +329,7 @@ def check_path_before_create(path):
|
|
|
309
329
|
'The file path {} contains special characters.'.format(path))
|
|
310
330
|
|
|
311
331
|
|
|
312
|
-
def
|
|
332
|
+
def check_dirpath_permission(path):
|
|
313
333
|
path = os.path.realpath(path)
|
|
314
334
|
dirpath = os.path.dirname(path)
|
|
315
335
|
if dedup_log('check_dirpath_before_read', dirpath):
|
|
@@ -321,13 +341,14 @@ def check_dirpath_before_read(path):
|
|
|
321
341
|
logger.warning(f"The directory {dirpath} is not yours.")
|
|
322
342
|
|
|
323
343
|
|
|
324
|
-
def check_file_or_directory_path(path, isdir=False):
|
|
344
|
+
def check_file_or_directory_path(path, isdir=False, is_strict=False):
|
|
325
345
|
"""
|
|
326
346
|
Function Description:
|
|
327
347
|
check whether the path is valid
|
|
328
348
|
Parameter:
|
|
329
349
|
path: the path to check
|
|
330
350
|
isdir: the path is dir or file
|
|
351
|
+
is_strict: whether to perform stricter validation (e.g., verify group cannot write to path)
|
|
331
352
|
Exception Description:
|
|
332
353
|
when invalid data throw exception
|
|
333
354
|
"""
|
|
@@ -337,6 +358,33 @@ def check_file_or_directory_path(path, isdir=False):
|
|
|
337
358
|
path_checker = FileChecker(path, FileCheckConst.FILE, FileCheckConst.READ_ABLE)
|
|
338
359
|
path_checker.common_check()
|
|
339
360
|
|
|
361
|
+
if is_strict:
|
|
362
|
+
if check_group_writable(path):
|
|
363
|
+
raise FileCheckException(
|
|
364
|
+
FileCheckException.FILE_PERMISSION_ERROR,
|
|
365
|
+
f"The directory/file must not allow write access to group. Directory/File path: {path}"
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
def check_path_no_others_write(file_path):
|
|
370
|
+
if dedup_log('check_path_no_others_write', file_path):
|
|
371
|
+
if check_group_writable(file_path):
|
|
372
|
+
logger.warning(f"The directory/file path is writable by group: {file_path}.")
|
|
373
|
+
|
|
374
|
+
if check_others_writable(file_path):
|
|
375
|
+
raise FileCheckException(
|
|
376
|
+
FileCheckException.FILE_PERMISSION_ERROR,
|
|
377
|
+
f"The directory/file must not allow write access to others. Directory/File path: {file_path}"
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
def check_path_no_group_others_write(file_path):
|
|
382
|
+
if check_group_writable(file_path) or check_others_writable(file_path):
|
|
383
|
+
raise FileCheckException(
|
|
384
|
+
FileCheckException.FILE_PERMISSION_ERROR,
|
|
385
|
+
f"The directory/file must not allow write access to group or others. Directory/File path: {file_path}"
|
|
386
|
+
)
|
|
387
|
+
|
|
340
388
|
|
|
341
389
|
def change_mode(path, mode):
|
|
342
390
|
if not os.path.exists(path) or os.path.islink(path):
|
|
@@ -388,6 +436,14 @@ def check_file_type(path):
|
|
|
388
436
|
raise FileCheckException(FileCheckException.INVALID_FILE_ERROR)
|
|
389
437
|
|
|
390
438
|
|
|
439
|
+
def root_privilege_warning():
|
|
440
|
+
if os.getuid() == 0:
|
|
441
|
+
logger.warning(
|
|
442
|
+
"msprobe is being run as root. "
|
|
443
|
+
"To avoid security risks, it is recommended to switch to a regular user to run it."
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
|
|
391
447
|
def load_yaml(yaml_path):
|
|
392
448
|
path_checker = FileChecker(yaml_path, FileCheckConst.FILE, FileCheckConst.READ_ABLE, FileCheckConst.YAML_SUFFIX)
|
|
393
449
|
checked_path = path_checker.common_check()
|
|
@@ -968,7 +1024,13 @@ class SharedDict:
|
|
|
968
1024
|
def _safe_load(self):
|
|
969
1025
|
with io.BytesIO(self._shm.buf[:]) as buff:
|
|
970
1026
|
try:
|
|
971
|
-
|
|
1027
|
+
data = SafeUnpickler(buff).load()
|
|
1028
|
+
if not isinstance(data, dict):
|
|
1029
|
+
logger.debug(f"Data from shared memory is '{type(data)}' type, expected 'dict'.")
|
|
1030
|
+
self._dict = {}
|
|
1031
|
+
self._changed = True
|
|
1032
|
+
else:
|
|
1033
|
+
self._dict = data
|
|
972
1034
|
except Exception as e:
|
|
973
1035
|
logger.debug(f'shared dict is unreadable, reason: {e}, create new dict.')
|
|
974
1036
|
self._dict = {}
|
|
@@ -985,4 +1047,48 @@ class SafeUnpickler(pickle.Unpickler):
|
|
|
985
1047
|
raise pickle.PicklingError(f'Unpickling {module}.{name} is illegal!')
|
|
986
1048
|
|
|
987
1049
|
|
|
1050
|
+
class DeserializationScanner:
|
|
1051
|
+
"""反序列化风险扫描器"""
|
|
1052
|
+
|
|
1053
|
+
DANGEROUS_METHODS = {
|
|
1054
|
+
'__reduce__', '__reduce_ex__', '__setstate__', '__getstate__',
|
|
1055
|
+
'__new__', '__init__', '__del__',
|
|
1056
|
+
'__call__', '__enter__', '__exit__',
|
|
1057
|
+
'eval', 'exec', 'compile', '__import__', 'open'
|
|
1058
|
+
'os.system', 'os.popen', 'subprocess.call', 'subprocess.Popen',
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
DANGEROUS_MODULES = {
|
|
1062
|
+
'os', 'sys', 'subprocess', 'shutil', 'socket',
|
|
1063
|
+
'requests', 'urllib', 'ftplib', 'smtplib',
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
@classmethod
|
|
1067
|
+
def scan_pickle_content(cls, filepath: str) -> bool:
|
|
1068
|
+
with FileOpen(filepath, 'rb') as f:
|
|
1069
|
+
content = f.read()
|
|
1070
|
+
|
|
1071
|
+
try:
|
|
1072
|
+
text_content = content.decode('latin-1')
|
|
1073
|
+
except Exception as e:
|
|
1074
|
+
text_content = str(content)
|
|
1075
|
+
|
|
1076
|
+
for method in cls.DANGEROUS_METHODS:
|
|
1077
|
+
if re.fullmatch(method, text_content):
|
|
1078
|
+
logger.warning(f"Insecure method found: {method}")
|
|
1079
|
+
return False
|
|
1080
|
+
|
|
1081
|
+
for module in cls.DANGEROUS_MODULES:
|
|
1082
|
+
patterns = [
|
|
1083
|
+
f"import {module}",
|
|
1084
|
+
f"from {module} import",
|
|
1085
|
+
f"{module}.",
|
|
1086
|
+
]
|
|
1087
|
+
for pattern in patterns:
|
|
1088
|
+
if pattern in text_content:
|
|
1089
|
+
logger.warning(f"Insecure module found: {module}")
|
|
1090
|
+
return False
|
|
1091
|
+
return True
|
|
1092
|
+
|
|
1093
|
+
|
|
988
1094
|
atexit.register(SharedDict.destroy_shared_memory)
|
|
@@ -12,10 +12,13 @@
|
|
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.import functools
|
|
15
|
+
|
|
15
16
|
import functools
|
|
17
|
+
|
|
16
18
|
from msprobe.core.common.const import Const
|
|
17
|
-
from msprobe.core.common.file_utils import check_file_or_directory_path
|
|
18
|
-
from msprobe.core.common.
|
|
19
|
+
from msprobe.core.common.file_utils import check_file_or_directory_path, save_npy, DeserializationScanner
|
|
20
|
+
from msprobe.core.common.log import logger
|
|
21
|
+
from msprobe.core.common.utils import confirm
|
|
19
22
|
|
|
20
23
|
|
|
21
24
|
class FrameworkDescriptor:
|
|
@@ -103,7 +106,7 @@ class FmkAdp:
|
|
|
103
106
|
@classmethod
|
|
104
107
|
def tensor_norm(cls, tensor):
|
|
105
108
|
return cls.process_tensor(tensor, lambda x: x.norm())
|
|
106
|
-
|
|
109
|
+
|
|
107
110
|
@classmethod
|
|
108
111
|
def save_tensor(cls, tensor, filepath):
|
|
109
112
|
if cls.fmk == Const.PT_FRAMEWORK:
|
|
@@ -151,9 +154,16 @@ class FmkAdp:
|
|
|
151
154
|
|
|
152
155
|
@classmethod
|
|
153
156
|
def load_checkpoint(cls, path, to_cpu=True, weights_only=True):
|
|
154
|
-
check_file_or_directory_path(path)
|
|
157
|
+
check_file_or_directory_path(path, is_strict=not weights_only)
|
|
155
158
|
if cls.fmk == Const.PT_FRAMEWORK:
|
|
156
159
|
try:
|
|
160
|
+
if not weights_only:
|
|
161
|
+
if not DeserializationScanner.scan_pickle_content(path):
|
|
162
|
+
if not confirm(
|
|
163
|
+
f"Some insecure methods or modules are detected in {path}, "
|
|
164
|
+
f"input yes to ignore and continue, otherwise exit", False):
|
|
165
|
+
logger.error("Insecure risks found and exit!")
|
|
166
|
+
raise Exception("Insecure risks found and exit!")
|
|
157
167
|
if to_cpu:
|
|
158
168
|
return cls.framework.load(path, map_location=cls.framework.device("cpu"), weights_only=weights_only)
|
|
159
169
|
else:
|
|
@@ -161,9 +171,9 @@ class FmkAdp:
|
|
|
161
171
|
except Exception as e:
|
|
162
172
|
raise RuntimeError(f"load pt file {path} failed: {e}") from e
|
|
163
173
|
return mindspore.load_checkpoint(path)
|
|
164
|
-
|
|
174
|
+
|
|
165
175
|
@classmethod
|
|
166
176
|
def asnumpy(cls, tensor):
|
|
167
177
|
if cls.fmk == Const.PT_FRAMEWORK:
|
|
168
178
|
return tensor.float().numpy()
|
|
169
|
-
return tensor.float().asnumpy()
|
|
179
|
+
return tensor.float().asnumpy()
|
|
@@ -708,3 +708,20 @@ def check_process_num(process_num):
|
|
|
708
708
|
raise ValueError(f"process_num({process_num}) is not a positive integer")
|
|
709
709
|
if process_num > Const.MAX_PROCESS_NUM:
|
|
710
710
|
raise ValueError(f"The maximum supported process_num is {Const.MAX_PROCESS_NUM}, current value: {process_num}.")
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
def confirm(prompt, default=False):
|
|
714
|
+
if default is True:
|
|
715
|
+
prompt_suffix = " [Y/n] "
|
|
716
|
+
elif default is False:
|
|
717
|
+
prompt_suffix = " [y/N] "
|
|
718
|
+
else:
|
|
719
|
+
prompt_suffix = " [y/n] "
|
|
720
|
+
|
|
721
|
+
full_prompt = prompt + prompt_suffix
|
|
722
|
+
|
|
723
|
+
user_input = input(full_prompt).strip().lower()
|
|
724
|
+
if user_input in ['y', 'yes']:
|
|
725
|
+
return True
|
|
726
|
+
else:
|
|
727
|
+
return default
|
|
@@ -26,8 +26,6 @@ from msprobe.core.compare.utils import gen_api_batches
|
|
|
26
26
|
|
|
27
27
|
cur_dir = os.path.dirname(os.path.realpath(__file__))
|
|
28
28
|
diff_threshold_yaml_path = os.path.join(cur_dir, 'diff_analyze_threshold.yaml')
|
|
29
|
-
ignore_op_list_yaml_path = os.path.join(cur_dir, 'ignore_op_list.yaml')
|
|
30
|
-
ignore_list = load_yaml(ignore_op_list_yaml_path)
|
|
31
29
|
thresholds = load_yaml(diff_threshold_yaml_path)
|
|
32
30
|
cmp_metrics = thresholds.get('compare_metrics')
|
|
33
31
|
|
|
@@ -53,7 +51,7 @@ class FirstDiffAnalyze:
|
|
|
53
51
|
return True
|
|
54
52
|
return False
|
|
55
53
|
|
|
56
|
-
def single_api_check(self, result_slice, header
|
|
54
|
+
def single_api_check(self, result_slice, header):
|
|
57
55
|
"""
|
|
58
56
|
单个api差异检查
|
|
59
57
|
|
|
@@ -67,18 +65,14 @@ class FirstDiffAnalyze:
|
|
|
67
65
|
}
|
|
68
66
|
|
|
69
67
|
column_indices = {name: idx for idx, name in enumerate(header)}
|
|
70
|
-
|
|
68
|
+
|
|
71
69
|
for line in result_slice:
|
|
72
70
|
op_item = {
|
|
73
71
|
column_name: line[column_indices[column_name]]
|
|
74
72
|
for column_name in header
|
|
75
73
|
}
|
|
76
74
|
single_check_result['op_items'].append(op_item)
|
|
77
|
-
|
|
78
|
-
continue
|
|
79
|
-
output_idx += 1
|
|
80
|
-
if output_idx in ignore_list.get(api_name, []):
|
|
81
|
-
continue
|
|
75
|
+
|
|
82
76
|
# set is_same
|
|
83
77
|
if self.mode_config.dump_mode == Const.MD5:
|
|
84
78
|
if line[column_indices[CompareConst.RESULT]] == CompareConst.DIFF:
|
|
@@ -123,13 +117,7 @@ class FirstDiffAnalyze:
|
|
|
123
117
|
with tqdm(total=len(api_batches), desc=bar_desc_add_rank, unit="api/module", ncols=100) as progress_bar:
|
|
124
118
|
for api_batch in api_batches:
|
|
125
119
|
result_slice = result[api_batch.start: api_batch.params_grad_end_index]
|
|
126
|
-
|
|
127
|
-
# suppose name is Tensor.MatMul.0.forward
|
|
128
|
-
if len(api_compo) < 4:
|
|
129
|
-
continue
|
|
130
|
-
# get MatMul as api_name
|
|
131
|
-
api_name = api_compo[-3]
|
|
132
|
-
check_result[api_batch.api_name] = self.single_api_check(result_slice, header, api_name)
|
|
120
|
+
check_result[api_batch.api_name] = self.single_api_check(result_slice, header)
|
|
133
121
|
progress_bar.update(1)
|
|
134
122
|
|
|
135
123
|
return check_result
|
|
@@ -182,7 +182,7 @@ def analyze_diff_in_group(nodes_group):
|
|
|
182
182
|
input_diff_nodes = list(filter(lambda node: node.is_diff, src_list))
|
|
183
183
|
# 如果有异常回溯计算节点找到异常来源
|
|
184
184
|
# 使用cpu模拟节点进行计算,查看结果是否有问题。需要对所有计算节点录入/映射,暂不实现。
|
|
185
|
-
get_compute_ops_from_comm_nodes(
|
|
185
|
+
get_compute_ops_from_comm_nodes(input_diff_nodes)
|
|
186
186
|
# 筛选入参没问题但出参有问题的通信节点
|
|
187
187
|
output_diff_nodes = list(filter(lambda node: node.data.is_diff, nodes_group))
|
|
188
188
|
get_comm_ops(output_diff_nodes)
|
|
@@ -789,23 +789,43 @@ def compare_distributed_inner(npu_dump_dir, bench_dump_dir, output_path, compare
|
|
|
789
789
|
|
|
790
790
|
npu_ranks, bench_ranks = get_sorted_ranks(npu_dump_dir, bench_dump_dir)
|
|
791
791
|
|
|
792
|
-
#
|
|
793
|
-
|
|
792
|
+
# ------------------预载rank0的json用于判断是什么类型dump数据------------------
|
|
793
|
+
# 判断是否存在dump.json或debug.json
|
|
794
|
+
if npu_ranks:
|
|
795
|
+
dir_path = os.path.join(npu_dump_dir, npu_ranks[0])
|
|
796
|
+
dump_file = os.path.join(dir_path, 'dump.json')
|
|
797
|
+
debug_file = os.path.join(dir_path, 'debug.json')
|
|
798
|
+
|
|
799
|
+
# 确定pre_check_dump_path
|
|
800
|
+
if os.path.exists(dump_file):
|
|
801
|
+
pre_check_dump_path = dump_file
|
|
802
|
+
elif os.path.exists(debug_file):
|
|
803
|
+
pre_check_dump_path = debug_file
|
|
804
|
+
else:
|
|
805
|
+
pre_check_dump_path = ''
|
|
806
|
+
else:
|
|
807
|
+
pre_check_dump_path = ''
|
|
808
|
+
|
|
809
|
+
# 如果pre_check_dump_path为空,直接返回
|
|
794
810
|
if not pre_check_dump_path:
|
|
795
811
|
return
|
|
812
|
+
|
|
796
813
|
dump_data = load_json(pre_check_dump_path)
|
|
814
|
+
|
|
815
|
+
# ------------------统计量、md5比对------------------
|
|
797
816
|
if dump_data.get('task') == Const.STATISTICS:
|
|
798
817
|
# dump数据为统计量或md5时,多进程加速比对
|
|
799
818
|
input_param_nr_list = []
|
|
800
819
|
for nr, br in zip(npu_ranks, bench_ranks):
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
820
|
+
for file_type in [Const.DUMP_JSON_FILE, Const.DEBUG_JSON_FILE]:
|
|
821
|
+
input_param, skip = extract_compare_param(file_type)
|
|
822
|
+
if not skip:
|
|
823
|
+
input_param_nr_list.append((input_param, nr))
|
|
804
824
|
func_args = (compare_func, input_param_nr_list, output_path, kwargs)
|
|
805
825
|
multi_statistics_compare(multi_ranks_compare, func_args)
|
|
806
826
|
return
|
|
807
827
|
|
|
808
|
-
#
|
|
828
|
+
# ------------------真实数据比对------------------
|
|
809
829
|
for nr, br in zip(npu_ranks, bench_ranks):
|
|
810
830
|
for file_type in [Const.DUMP_JSON_FILE, Const.DEBUG_JSON_FILE]:
|
|
811
831
|
input_param, skip = extract_compare_param(file_type)
|
|
@@ -19,11 +19,11 @@ from tqdm import tqdm
|
|
|
19
19
|
from msprobe.core.common.file_utils import save_json, check_path_before_create, check_path_not_exists, \
|
|
20
20
|
check_file_or_directory_path
|
|
21
21
|
from msprobe.core.common.log import logger
|
|
22
|
+
from msprobe.core.common.utils import confirm
|
|
22
23
|
from msprobe.core.config_check.ckpt_compare.megatron_loader import load_megatron_weights
|
|
23
24
|
from msprobe.core.config_check.ckpt_compare.metrics import METRIC_FUNC
|
|
24
25
|
|
|
25
26
|
|
|
26
|
-
|
|
27
27
|
def compare_checkpoints(ckpt_path1, ckpt_path2, output_path) -> Dict:
|
|
28
28
|
"""Compare weights between two checkpoints using cosine similarity and L2 distance.
|
|
29
29
|
|
|
@@ -45,6 +45,11 @@ def compare_checkpoints(ckpt_path1, ckpt_path2, output_path) -> Dict:
|
|
|
45
45
|
"""
|
|
46
46
|
|
|
47
47
|
# Load both checkpoints
|
|
48
|
+
if not confirm("You are using torch.load with weights_only is False, it may cause arbitrary code "
|
|
49
|
+
"execution. Do it only if you get the file from a trusted source. Input yes to continue, "
|
|
50
|
+
"otherwise exit", False):
|
|
51
|
+
logger.error("Insecure risks found and exit!")
|
|
52
|
+
raise Exception("Insecure risks found and exit!")
|
|
48
53
|
check_file_or_directory_path(ckpt_path1, isdir=True)
|
|
49
54
|
check_file_or_directory_path(ckpt_path2, isdir=True)
|
|
50
55
|
check_path_before_create(output_path)
|
|
@@ -63,7 +63,6 @@ class BaseHookManager(ABC):
|
|
|
63
63
|
def reset_status():
|
|
64
64
|
BaseHookManager.inner_switch = defaultdict(bool)
|
|
65
65
|
BaseHookManager.inner_api_count = defaultdict(int)
|
|
66
|
-
BaseHookManager.hook_handle_dict.clear()
|
|
67
66
|
BaseHookManager.params_grad_info.clear()
|
|
68
67
|
|
|
69
68
|
@staticmethod
|
|
@@ -16,6 +16,8 @@ pip install mindstudio-probe
|
|
|
16
16
|
|
|
17
17
|
| 版本 | 发布日期 |支持 PyTorch 版本|支持 MindSpore 版本| 下载链接 |校验码|
|
|
18
18
|
|:-----:|:----------:|:--:|:--:|:----------------------------------------------------------------------------------------------------------------------------------:|:--:|
|
|
19
|
+
| 8.3.0 | 2025.10.30 |1.11/2.0/2.1/2.2/2.5/2.6/2.7|2.4.0/2.5.0/2.6.0| [mindstudio_probe-8.3.0-py3-none-any.whl](https://ptdbg.obs.myhuaweicloud.com/msprobe/8.3/mindstudio_probe-8.3.0-py3-none-any.whl) |e933657b8ceb20774f924865d1f47978bd49cd1d9cec5fb60dec4f18802afbcc|
|
|
20
|
+
| 8.2.1 | 2025.9.29 |1.11/2.0/2.1/2.2|2.4.0/2.5.0/2.6.0| [mindstudio_probe-8.2.1-py3-none-any.whl](https://ptdbg.obs.myhuaweicloud.com/msprobe/8.2/mindstudio_probe-8.2.1-py3-none-any.whl) |2152fadefec3d70148a910a54f2cfb6fccfa60b5ccd59f835f20289a7a5f4764|
|
|
19
21
|
| 8.2.0 | 2025.9.03 |1.11/2.0/2.1/2.2|2.4.0/2.5.0/2.6.0| [mindstudio_probe-8.2.0-py3-none-any.whl](https://ptdbg.obs.myhuaweicloud.com/msprobe/8.2/mindstudio_probe-8.2.0-py3-none-any.whl) |bbc1577d76754adf987069308177d3e0a04e36de9c7f22e75c34cf4ad0ce1af2|
|
|
20
22
|
| 8.1.2 | 2025.8.01 |1.11/2.0/2.1/2.2|2.4.0/2.5.0/2.6.0| [mindstudio_probe-8.1.2-py3-none-any.whl](https://ptdbg.obs.myhuaweicloud.com/msprobe/8.1/mindstudio_probe-8.1.2-py3-none-any.whl) |ff07bb81fddd3b8f3096d119ca1481bde8fdb24f10644def5250caad727448ab|
|
|
21
23
|
| 8.1.1 | 2025.6.20 |1.11/2.0/2.1/2.2|2.4.0/2.5.0/2.6.0| [mindstudio_probe-8.1.1-py3-none-any.whl](https://ptdbg.obs.myhuaweicloud.com/msprobe/8.1/mindstudio_probe-8.1.1-py3-none-any.whl) |2aad10a243575544d7feef552caf4d06aa93028488ebd0bbc9aa350379da859d|
|
|
@@ -145,7 +145,7 @@ PyTorch、MSAdapter 以及 MindSpore 动态图场景下,"level"须为"L0"或"L
|
|
|
145
145
|
<tr><td>pert_mode</td><td>无标杆扰动因子,str 类型。可选参数:<br/> "improve_precision":对输入做升精度,默认值;<br/> "add_noise":对输入增加噪声;<br/> "no_change":不加扰动直接二次执行;<br/> "bit_noise":输入的末位比特翻转,MindSpore 场景不支持 BF16 类型的向量;<br/> "change_value":输入的张量首尾值调换;<br/> "to_cpu":在 CPU 等价执行(仅 PyTorch 场景支持)。<br/><b>配置示例</b>:"pert_mode": "improve_precision"。</td><td>否</td></tr>
|
|
146
146
|
<tr><td>handler_type</td><td>处理类型,可选参数:<br/> "check":进行无标杆比对检查,默认值;<br/> "fix":将扰动后的 API 输出结果覆盖原始 API 输出结果,尝试将 Loss 曲线恢复正常,该模式下不支持预热功能与反向过程,且仅支持"improve_precision"、"to_cpu"( PyTorch 场景)两种扰动因子。<br/> <b>配置示例</b>:"handler_type": "check"。</td><td>否</td></tr>
|
|
147
147
|
<tr><td>fuzz_level</td><td>无标杆数据 dump 级别,即选择比对结果文件应输出的表头属性,当前仅支持取值为:"L1"。输出结果详见 <a href="#161-无标杆比对数据存盘格式">1.6.1 无标杆比对数据存盘格式</a>。</td><td>否</td></tr>
|
|
148
|
-
<tr><td>fuzz_stage</td><td>比对过程,选择对 API 前向或反向进行无标杆比对,可选参数:<br/> "forward":前向,默认值;<br/> "backward":反向。当 fuzz_stage 为 "backward" 时,handler_type 只能为 "check"
|
|
148
|
+
<tr><td>fuzz_stage</td><td>比对过程,选择对 API 前向或反向进行无标杆比对,可选参数:<br/> "forward":前向,默认值;<br/> "backward":反向。当 fuzz_stage 为 "backward" 时,handler_type 只能为 "check"。pytorch场景下,当 fuzz_stage 为 "backward" 时, list 参数不能为空。<br/> <b>配置示例</b>:"fuzz_stage": "backward"。</td><td>否</td></tr>
|
|
149
149
|
<tr><td>if_preheat</td><td>预热功能(仅 PyTorch 场景支持),bool 类型。开启功能后工具可以根据每次迭代的输出调整精度算法的阈值,从而更准确地找出存在精度问题的 API。当"handler_type": "fix"时,不支持预热。可选参数:<br/> true(开启)或 false(关闭),默认关闭。<br/> <b>配置示例</b>:"if_preheat": "true"。</td><td>否</td></tr>
|
|
150
150
|
<tr><td>preheat_step</td><td>开启预热的迭代数量(仅 PyTorch 场景支持),int 类型,默认值为 15。须配置 "if_preheat": "true"。</td><td>否</td></tr>
|
|
151
151
|
<tr><td>max_sample</td><td>每个算子预热的采样次数的最大阈值(仅 PyTorch 场景支持),int 类型,默认值为 20。须配置 "if_preheat": "true"。</td><td>否</td></tr>
|
|
@@ -445,7 +445,7 @@ seed_all()
|
|
|
445
445
|
debugger = PrecisionDebugger(config_path="./config.json", dump_path="./dump_path")
|
|
446
446
|
# 模型定义及初始化等操作
|
|
447
447
|
prompts = ["Hello, my name is"]
|
|
448
|
-
sampling_params = SamplingParams(
|
|
448
|
+
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
|
|
449
449
|
llm = LLM(model='...')
|
|
450
450
|
model = llm.llm_engine.model_executor.driver_worker.worker.model_runner.get_model()
|
|
451
451
|
# 开启数据dump, 指定采集推理模型逐字符循环推理中的第1~3次
|