mindstudio-probe 8.3.2__py3-none-any.whl → 26.0.0a1__py3-none-any.whl
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.3.2.dist-info → mindstudio_probe-26.0.0a1.dist-info}/METADATA +26 -14
- mindstudio_probe-26.0.0a1.dist-info/RECORD +498 -0
- {mindstudio_probe-8.3.2.dist-info → mindstudio_probe-26.0.0a1.dist-info}/WHEEL +1 -1
- mindstudio_probe-26.0.0a1.dist-info/entry_points.txt +5 -0
- mindstudio_probe-26.0.0a1.dist-info/licenses/LICENSE +124 -0
- mindstudio_probe-26.0.0a1.dist-info/top_level.txt +2 -0
- msprobe/__init__.py +12 -13
- msprobe/config.json +9 -31
- msprobe/core/__init__.py +12 -11
- msprobe/core/acc_check/acc_check_cli.py +145 -0
- msprobe/core/common/const.py +97 -38
- msprobe/core/common/db_manager.py +133 -12
- msprobe/core/common/decorator.py +12 -11
- msprobe/core/common/exceptions.py +12 -11
- msprobe/core/common/file_utils.py +101 -25
- msprobe/core/common/framework_adapter.py +36 -25
- msprobe/core/common/global_lock.py +12 -11
- msprobe/core/common/inplace_op_checker.py +12 -11
- msprobe/core/common/log.py +22 -11
- msprobe/core/common/megatron_utils.py +566 -11
- msprobe/core/common/parallel_state.py +12 -11
- msprobe/core/common/runtime.py +12 -11
- msprobe/core/common/utils.py +41 -41
- msprobe/core/compare/acc_compare.py +361 -104
- msprobe/core/compare/atb_data_compare.py +422 -0
- msprobe/core/compare/auto_compare.py +134 -0
- msprobe/core/compare/check.py +14 -17
- msprobe/core/compare/compare_cli.py +72 -149
- msprobe/core/compare/config.py +12 -13
- msprobe/core/compare/diff_analyze/first_diff_analyze.py +28 -15
- msprobe/core/compare/diff_analyze/ignore_op_list.yaml +3 -0
- msprobe/core/compare/find_first/analyzer.py +18 -18
- msprobe/core/compare/find_first/graph.py +12 -11
- msprobe/core/compare/find_first/utils.py +13 -12
- msprobe/core/compare/indicator_analysis/__init__.py +15 -0
- msprobe/core/compare/indicator_analysis/algorithm.py +363 -0
- msprobe/core/compare/indicator_analysis/api_data.py +141 -0
- msprobe/core/compare/indicator_analysis/calculator.py +181 -0
- msprobe/core/compare/indicator_analysis/utils.py +116 -0
- msprobe/core/compare/layer_mapping/__init__.py +12 -11
- msprobe/core/compare/layer_mapping/data_scope_parser.py +20 -11
- msprobe/core/compare/layer_mapping/layer_mapping.py +14 -13
- msprobe/core/compare/layer_mapping/postprocess_pass.py +13 -11
- msprobe/core/compare/merge_result/merge_result.py +12 -11
- msprobe/core/compare/merge_result/merge_result_cli.py +12 -11
- msprobe/core/compare/merge_result/utils.py +12 -11
- msprobe/core/compare/multiprocessing_compute.py +13 -14
- msprobe/core/compare/npy_compare.py +13 -11
- msprobe/core/compare/offline_data_compare.py +160 -0
- msprobe/core/compare/stats_diff_calc.py +39 -0
- msprobe/core/compare/torchair_acc_cmp.py +764 -0
- msprobe/core/compare/torchair_cmp_utils.py +338 -0
- msprobe/core/compare/utils.py +140 -49
- msprobe/core/config_check/__init__.py +12 -11
- msprobe/core/config_check/checkers/__init__.py +12 -11
- msprobe/core/config_check/checkers/base_checker.py +15 -14
- msprobe/core/config_check/checkers/dataset_checker.py +13 -12
- msprobe/core/config_check/checkers/env_args_checker.py +13 -12
- msprobe/core/config_check/checkers/hyperparameter_checker.py +16 -15
- msprobe/core/config_check/checkers/pip_checker.py +15 -15
- msprobe/core/config_check/checkers/random_checker.py +13 -12
- msprobe/core/config_check/checkers/weights_checker.py +14 -12
- msprobe/core/config_check/ckpt_compare/ckpt_comparator.py +13 -17
- msprobe/core/config_check/ckpt_compare/megatron_loader.py +13 -12
- msprobe/core/config_check/ckpt_compare/metrics.py +12 -11
- msprobe/core/config_check/config_check_cli.py +18 -17
- msprobe/core/config_check/config_checker.py +16 -14
- msprobe/core/config_check/resource/dependency.yaml +15 -12
- msprobe/core/config_check/resource/env.yaml +12 -11
- msprobe/core/config_check/utils/hyperparameter_parser.py +12 -11
- msprobe/core/config_check/utils/utils.py +12 -11
- msprobe/core/{data_dump → dump/api_dump}/api_registry.py +12 -11
- msprobe/core/{common_config.py → dump/common_config.py} +13 -24
- msprobe/core/dump/data_dump/data_collector.py +257 -0
- msprobe/core/{data_dump → dump/data_dump}/data_processor/base.py +45 -36
- msprobe/core/{data_dump → dump/data_dump}/data_processor/factory.py +33 -25
- msprobe/core/{data_dump → dump/data_dump}/data_processor/mindspore_processor.py +37 -113
- msprobe/core/{data_dump → dump/data_dump}/data_processor/pytorch_processor.py +364 -131
- msprobe/core/{data_dump → dump/data_dump}/json_writer.py +24 -31
- msprobe/core/{data_dump → dump/data_dump}/scope.py +12 -13
- msprobe/core/{debugger → dump/debugger}/precision_debugger.py +15 -23
- msprobe/core/dump/dump2db/db_utils.py +215 -0
- msprobe/core/dump/dump2db/dump2db.py +409 -0
- msprobe/core/{hook_manager.py → dump/hook_manager.py} +38 -87
- msprobe/core/dump/kernel_dump/kernel_config.py +34 -0
- msprobe/core/{service.py → dump/service.py} +43 -27
- msprobe/core/install_deps/install_deps.py +51 -0
- msprobe/core/monitor/anomaly_processor.py +13 -11
- msprobe/core/monitor/csv2db.py +73 -93
- msprobe/core/monitor/db_utils.py +140 -205
- msprobe/core/monitor/utils.py +18 -17
- msprobe/core/monitor_v2/__init__.py +20 -0
- msprobe/core/monitor_v2/base.py +83 -0
- msprobe/core/monitor_v2/cc.py +287 -0
- msprobe/core/monitor_v2/factory.py +81 -0
- msprobe/core/monitor_v2/module.py +201 -0
- msprobe/core/monitor_v2/optimizer.py +245 -0
- msprobe/core/monitor_v2/param.py +154 -0
- msprobe/core/monitor_v2/trainer.py +326 -0
- msprobe/core/monitor_v2/utils.py +122 -0
- msprobe/core/monitor_v2/weight_grad.py +419 -0
- msprobe/core/monitor_v2/writer.py +162 -0
- msprobe/core/overflow_check/abnormal_scene.py +12 -11
- msprobe/core/overflow_check/api_info.py +12 -11
- msprobe/core/overflow_check/checker.py +12 -11
- msprobe/core/overflow_check/filter.py +13 -11
- msprobe/core/overflow_check/level.py +12 -11
- msprobe/core/overflow_check/utils.py +12 -11
- msprobe/core/single_save/single_comparator.py +12 -11
- msprobe/core/single_save/single_saver.py +12 -11
- msprobe/infer/__init__.py +16 -0
- msprobe/infer/offline/__init__.py +16 -0
- msprobe/infer/offline/compare/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/adapter_cli/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/adapter_cli/args_adapter.py +46 -0
- msprobe/infer/offline/compare/msquickcmp/atc/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/atc/atc_utils.py +98 -0
- msprobe/infer/offline/compare/msquickcmp/cmp_process.py +328 -0
- msprobe/infer/offline/compare/msquickcmp/common/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/common/args_check.py +112 -0
- msprobe/infer/offline/compare/msquickcmp/common/convert.py +74 -0
- msprobe/infer/offline/compare/msquickcmp/common/dump_data.py +121 -0
- msprobe/infer/offline/compare/msquickcmp/common/dynamic_argument_bean.py +39 -0
- msprobe/infer/offline/compare/msquickcmp/common/utils.py +669 -0
- msprobe/infer/offline/compare/msquickcmp/config.ini +6 -0
- msprobe/infer/offline/compare/msquickcmp/dump/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/dump/args_adapter.py +50 -0
- msprobe/infer/offline/compare/msquickcmp/dump/dump_process.py +91 -0
- msprobe/infer/offline/compare/msquickcmp/install_aclruntime_aisbench.sh +180 -0
- msprobe/infer/offline/compare/msquickcmp/main.py +199 -0
- msprobe/infer/offline/compare/msquickcmp/net_compare/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/net_compare/net_compare.py +277 -0
- msprobe/infer/offline/compare/msquickcmp/npu/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/npu/npu_dump_data.py +558 -0
- msprobe/infer/offline/compare/msquickcmp/npu/om_parser.py +416 -0
- msprobe/infer/offline/compare/msquickcmp/onnx_model/__init__.py +16 -0
- msprobe/infer/offline/compare/msquickcmp/onnx_model/onnx_dump_data.py +374 -0
- msprobe/infer/utils/__init__.py +15 -0
- msprobe/infer/utils/acc_cmp.py +94 -0
- msprobe/infer/utils/check/__init__.py +37 -0
- msprobe/infer/utils/check/args_checker.py +35 -0
- msprobe/infer/utils/check/checker.py +227 -0
- msprobe/infer/utils/check/dict_checker.py +78 -0
- msprobe/infer/utils/check/func_wrapper.py +96 -0
- msprobe/infer/utils/check/list_checker.py +56 -0
- msprobe/infer/utils/check/number_checker.py +64 -0
- msprobe/infer/utils/check/obj_checker.py +41 -0
- msprobe/infer/utils/check/path_checker.py +249 -0
- msprobe/infer/utils/check/rule.py +126 -0
- msprobe/infer/utils/check/string_checker.py +66 -0
- msprobe/infer/utils/cmp_algorithm.py +261 -0
- msprobe/infer/utils/constants.py +112 -0
- msprobe/infer/utils/file_open_check.py +337 -0
- msprobe/infer/utils/util.py +177 -0
- msprobe/mindspore/__init__.py +14 -13
- msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +14 -13
- msprobe/mindspore/api_accuracy_checker/api_info.py +12 -11
- msprobe/mindspore/api_accuracy_checker/api_runner.py +12 -11
- msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py +12 -11
- msprobe/mindspore/api_accuracy_checker/bench_functions/flash_attention_score.py +12 -11
- msprobe/mindspore/api_accuracy_checker/bench_functions/fusion_operator.py +12 -11
- msprobe/mindspore/api_accuracy_checker/checker_support_api.yaml +12 -11
- msprobe/mindspore/api_accuracy_checker/cmd_parser.py +15 -14
- msprobe/mindspore/api_accuracy_checker/compute_element.py +12 -11
- msprobe/mindspore/api_accuracy_checker/data_manager.py +13 -11
- msprobe/mindspore/api_accuracy_checker/main.py +12 -11
- msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py +14 -12
- msprobe/mindspore/api_accuracy_checker/multi_data_manager.py +13 -11
- msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py +12 -11
- msprobe/mindspore/api_accuracy_checker/type_mapping.py +12 -11
- msprobe/mindspore/api_accuracy_checker/utils.py +12 -11
- msprobe/mindspore/common/const.py +15 -74
- msprobe/mindspore/common/log.py +12 -11
- msprobe/mindspore/common/utils.py +30 -15
- msprobe/mindspore/compare/common_dir_compare.py +21 -23
- msprobe/mindspore/compare/distributed_compare.py +18 -16
- msprobe/mindspore/compare/ms_compare.py +14 -14
- msprobe/mindspore/compare/ms_graph_compare.py +26 -20
- msprobe/mindspore/compare/utils.py +14 -12
- msprobe/mindspore/{cell_processor.py → dump/cell_processor.py} +15 -14
- msprobe/mindspore/{debugger → dump/debugger}/debugger_config.py +12 -30
- msprobe/mindspore/{debugger → dump/debugger}/precision_debugger.py +43 -45
- msprobe/mindspore/dump/{cell_dump_process.py → dump_processor/cell_dump_process.py} +31 -17
- msprobe/mindspore/dump/{cell_dump_with_insert_gradient.py → dump_processor/cell_dump_with_insert_gradient.py} +18 -14
- msprobe/mindspore/dump/{dump_tool_factory.py → dump_processor/dump_tool_factory.py} +16 -15
- msprobe/mindspore/dump/{graph_mode_cell_dump.py → dump_processor/graph_mode_cell_dump.py} +16 -15
- msprobe/mindspore/dump/{graph_tensor_dump.py → dump_processor/graph_tensor_dump.py} +134 -133
- msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/api_register.py +15 -14
- msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/hook_cell.py +12 -11
- msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/ms_hook_manager.py +47 -20
- msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/primitive_hooks.py +14 -13
- msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/support_wrap_ops.yaml +13 -11
- msprobe/mindspore/dump/{jit_dump.py → dump_processor/jit_dump.py} +14 -13
- msprobe/mindspore/dump/{kernel_graph_dump.py → dump_processor/kernel_graph_dump.py} +13 -12
- msprobe/mindspore/dump/{kernel_kbyk_dump.py → dump_processor/kernel_kbyk_dump.py} +13 -12
- msprobe/mindspore/{exception_dump → dump/exception_dump}/exception_dump_tool_factory.py +14 -13
- msprobe/mindspore/{exception_dump → dump/exception_dump}/kernel_graph_exception_dump.py +13 -12
- msprobe/mindspore/{mindspore_service.py → dump/mindspore_service.py} +18 -17
- msprobe/mindspore/dump/mindtorch/__init__.py +19 -0
- msprobe/mindspore/dump/ms_config.py +105 -0
- msprobe/mindspore/{overflow_check → dump/overflow_check}/kernel_graph_overflow_check.py +13 -12
- msprobe/mindspore/{overflow_check → dump/overflow_check}/overflow_check_tool_factory.py +14 -13
- msprobe/mindspore/dump/task_handler_factory.py +43 -0
- msprobe/mindspore/monitor/common_func.py +12 -11
- msprobe/mindspore/monitor/data_writers.py +12 -11
- msprobe/mindspore/monitor/distributed/wrap_distributed.py +93 -39
- msprobe/mindspore/monitor/features.py +12 -11
- msprobe/mindspore/monitor/module_hook.py +19 -22
- msprobe/mindspore/monitor/optimizer_collect.py +29 -25
- msprobe/mindspore/monitor/utils.py +13 -11
- msprobe/msaccucmp/advisor/__init__.py +16 -0
- msprobe/msaccucmp/advisor/advisor_const.py +65 -0
- msprobe/msaccucmp/advisor/advisor_result.py +73 -0
- msprobe/msaccucmp/advisor/compare_advisor.py +99 -0
- msprobe/msaccucmp/advisor/input_advisor.py +66 -0
- msprobe/msaccucmp/advisor/node_advisor.py +68 -0
- msprobe/msaccucmp/advisor/overflow_advisor.py +58 -0
- msprobe/msaccucmp/algorithm_manager/__init__.py +16 -0
- msprobe/msaccucmp/algorithm_manager/algorithm_manager.py +464 -0
- msprobe/msaccucmp/algorithm_manager/algorithm_parameter.py +42 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_AccumulatedRelativeError.py +46 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_CosineSimilarity.py +58 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_KullbackLeiblerDivergence.py +84 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MaxAbsoluteError.py +41 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MaxRelativeError.py +46 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MeanAbsoluteError.py +41 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MeanRelativeError.py +46 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_RelativeEuclideanDistance.py +46 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_RootMeanSquareError.py +40 -0
- msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_StandardDeviation.py +47 -0
- msprobe/msaccucmp/cmp_utils/__init__.py +16 -0
- msprobe/msaccucmp/cmp_utils/common.py +113 -0
- msprobe/msaccucmp/cmp_utils/constant/__init__.py +16 -0
- msprobe/msaccucmp/cmp_utils/constant/compare_error.py +81 -0
- msprobe/msaccucmp/cmp_utils/constant/const_manager.py +530 -0
- msprobe/msaccucmp/cmp_utils/file_utils.py +497 -0
- msprobe/msaccucmp/cmp_utils/log.py +257 -0
- msprobe/msaccucmp/cmp_utils/multi_process/__init__.py +16 -0
- msprobe/msaccucmp/cmp_utils/multi_process/multi_convert_process.py +140 -0
- msprobe/msaccucmp/cmp_utils/multi_process/progress.py +78 -0
- msprobe/msaccucmp/cmp_utils/path_check.py +274 -0
- msprobe/msaccucmp/cmp_utils/reg_manager.py +98 -0
- msprobe/msaccucmp/cmp_utils/tlv_parse.py +279 -0
- msprobe/msaccucmp/cmp_utils/utils.py +356 -0
- msprobe/msaccucmp/cmp_utils/utils_type.py +63 -0
- msprobe/msaccucmp/compare_vector.py +48 -0
- msprobe/msaccucmp/conversion/__init__.py +16 -0
- msprobe/msaccucmp/conversion/data_conversion.py +277 -0
- msprobe/msaccucmp/conversion/dtype_conversion.py +99 -0
- msprobe/msaccucmp/conversion/shape_format_conversion.py +477 -0
- msprobe/msaccucmp/conversion/tensor_conversion.py +369 -0
- msprobe/msaccucmp/dump_data_conversion.py +46 -0
- msprobe/msaccucmp/dump_parse/__init__.py +16 -0
- msprobe/msaccucmp/dump_parse/big_dump_data.py +317 -0
- msprobe/msaccucmp/dump_parse/dump.py +423 -0
- msprobe/msaccucmp/dump_parse/dump_data_object.py +322 -0
- msprobe/msaccucmp/dump_parse/dump_data_parser.py +436 -0
- msprobe/msaccucmp/dump_parse/dump_utils.py +246 -0
- msprobe/msaccucmp/dump_parse/ffts_parser.py +137 -0
- msprobe/msaccucmp/dump_parse/mapping.py +62 -0
- msprobe/msaccucmp/dump_parse/nano_dump_data.py +392 -0
- msprobe/msaccucmp/dump_parse/proto_dump_data.py +308 -0
- msprobe/msaccucmp/dump_parser.py +90 -0
- msprobe/msaccucmp/format_manager/__init__.py +16 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_NZ_to_NCHW.py +53 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_NZ_to_ND.py +52 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_NZ_to_NHWC.py +53 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_Z_to_HWCN.py +47 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_Z_to_NCHW.py +47 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_HWCN_to_FRACTAL_Z.py +89 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_HWCN_to_NCHW.py +37 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_HWCN_to_NHWC.py +37 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NC1HWC0_to_HWCN.py +43 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NC1HWC0_to_NCHW.py +48 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NC1HWC0_to_NHWC.py +43 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NCHW_to_FRACTAL_Z.py +87 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NCHW_to_NHWC.py +37 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NDC1HWC0_to_NCDHW.py +48 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NDC1HWC0_to_ND.py +44 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NHWC_to_FRACTAL_Z.py +87 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NHWC_to_HWCN.py +37 -0
- msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NHWC_to_NCHW.py +37 -0
- msprobe/msaccucmp/format_manager/format_manager.py +307 -0
- msprobe/msaccucmp/inplace_layer_process.py +186 -0
- msprobe/msaccucmp/msaccucmp.py +532 -0
- msprobe/msaccucmp/mscmp_advisor.py +128 -0
- msprobe/msaccucmp/overflow/__init__.py +16 -0
- msprobe/msaccucmp/overflow/overflow_analyse.py +305 -0
- msprobe/msaccucmp/overflow/overflow_detection.py +143 -0
- msprobe/msaccucmp/pytorch_cmp/__init__.py +16 -0
- msprobe/msaccucmp/pytorch_cmp/compare_pytorch.py +389 -0
- msprobe/msaccucmp/pytorch_cmp/hdf5_parser.py +377 -0
- msprobe/msaccucmp/pytorch_cmp/pytorch_dump_data.py +461 -0
- msprobe/msaccucmp/shape_conversion.py +41 -0
- msprobe/msaccucmp/vector_cmp/__init__.py +16 -0
- msprobe/msaccucmp/vector_cmp/batch_compare.py +197 -0
- msprobe/msaccucmp/vector_cmp/compare_detail/__init__.py +16 -0
- msprobe/msaccucmp/vector_cmp/compare_detail/compare_detail.py +245 -0
- msprobe/msaccucmp/vector_cmp/compare_detail/detail.py +182 -0
- msprobe/msaccucmp/vector_cmp/compare_detail/detail_writer.py +580 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/__init__.py +16 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/compare_fusion_op.py +588 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/compare_npu_vs_npu.py +339 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/compare_result.py +326 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/compare_rule.py +156 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/fusion_op.py +204 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/fusion_rule_parser.py +635 -0
- msprobe/msaccucmp/vector_cmp/fusion_manager/quant_filter.py +187 -0
- msprobe/msaccucmp/vector_cmp/range_manager/__init__.py +16 -0
- msprobe/msaccucmp/vector_cmp/range_manager/range_manager.py +100 -0
- msprobe/msaccucmp/vector_cmp/range_manager/range_mode.py +94 -0
- msprobe/msaccucmp/vector_cmp/range_manager/select_mode.py +86 -0
- msprobe/msaccucmp/vector_cmp/vector_comparison.py +535 -0
- msprobe/msprobe.py +101 -130
- msprobe/overflow_check/__init__.py +15 -0
- msprobe/{nan_analyze → overflow_check}/analyzer.py +38 -27
- msprobe/{nan_analyze → overflow_check}/graph.py +30 -27
- msprobe/{nan_analyze → overflow_check}/utils.py +15 -14
- msprobe/pytorch/__init__.py +20 -14
- msprobe/pytorch/aclgraph_dump/__init__.py +45 -0
- msprobe/pytorch/aclgraph_dump/_meta.py +26 -0
- msprobe/pytorch/api_accuracy_checker/{run_ut/run_ut.py → acc_check/acc_check.py} +50 -45
- msprobe/pytorch/api_accuracy_checker/{run_ut/run_ut_utils.py → acc_check/acc_check_utils.py} +201 -30
- msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/data_generate.py +56 -16
- msprobe/pytorch/api_accuracy_checker/{run_ut/multi_run_ut.py → acc_check/multi_acc_check.py} +32 -47
- msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/run_overflow_check.py +19 -18
- msprobe/pytorch/api_accuracy_checker/common/config.py +22 -20
- msprobe/pytorch/api_accuracy_checker/common/utils.py +72 -13
- msprobe/pytorch/api_accuracy_checker/compare/algorithm.py +41 -11
- msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +23 -14
- msprobe/pytorch/api_accuracy_checker/compare/compare.py +45 -32
- msprobe/pytorch/api_accuracy_checker/compare/compare_column.py +12 -11
- msprobe/pytorch/api_accuracy_checker/compare/compare_input.py +14 -12
- msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py +14 -12
- msprobe/pytorch/api_accuracy_checker/precision_standard/absolute_threshold.py +12 -11
- msprobe/pytorch/api_accuracy_checker/precision_standard/accumulative_error_compare.py +12 -11
- msprobe/pytorch/api_accuracy_checker/precision_standard/base_standard.py +21 -19
- msprobe/pytorch/api_accuracy_checker/precision_standard/benchmark_compare.py +14 -13
- msprobe/pytorch/api_accuracy_checker/precision_standard/binary_consistency.py +12 -11
- msprobe/pytorch/api_accuracy_checker/precision_standard/standard_config.py +60 -11
- msprobe/pytorch/api_accuracy_checker/precision_standard/standard_register.py +27 -16
- msprobe/pytorch/api_accuracy_checker/precision_standard/thousandth_standard.py +13 -11
- msprobe/pytorch/api_accuracy_checker/precision_standard/ulp_compare.py +39 -18
- msprobe/pytorch/bench_functions/__init__.py +12 -11
- msprobe/pytorch/bench_functions/apply_adam.py +12 -11
- msprobe/pytorch/bench_functions/apply_adam_w.py +12 -11
- msprobe/pytorch/bench_functions/confusion_transpose.py +12 -11
- msprobe/pytorch/bench_functions/fast_gelu.py +12 -11
- msprobe/pytorch/bench_functions/group_norm_silu.py +12 -11
- msprobe/pytorch/bench_functions/layer_norm_eval.py +12 -11
- msprobe/pytorch/bench_functions/linear.py +12 -11
- msprobe/pytorch/bench_functions/matmul_backward.py +12 -11
- msprobe/pytorch/bench_functions/mish.py +12 -11
- msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py +12 -11
- msprobe/pytorch/bench_functions/npu_fusion_attention.py +12 -11
- msprobe/pytorch/bench_functions/rms_norm.py +12 -11
- msprobe/pytorch/bench_functions/rotary_mul.py +12 -11
- msprobe/pytorch/bench_functions/scaled_mask_softmax.py +12 -11
- msprobe/pytorch/bench_functions/sort_v2.py +12 -11
- msprobe/pytorch/bench_functions/swiglu.py +12 -11
- msprobe/pytorch/common/__init__.py +12 -11
- msprobe/pytorch/common/log.py +12 -11
- msprobe/pytorch/common/parse_json.py +12 -11
- msprobe/pytorch/common/utils.py +52 -19
- msprobe/pytorch/compare/distributed_compare.py +13 -13
- msprobe/pytorch/compare/match.py +12 -11
- msprobe/pytorch/compare/pt_compare.py +14 -20
- msprobe/pytorch/compare/pt_diff_analyze.py +12 -11
- msprobe/pytorch/compare/utils.py +12 -11
- msprobe/pytorch/{hook_module → dump/api_dump}/api_register.py +18 -16
- msprobe/pytorch/{hook_module → dump/api_dump}/hook_module.py +14 -13
- msprobe/pytorch/{hook_module → dump/api_dump}/pt_hook_manager.py +68 -23
- msprobe/pytorch/{hook_module → dump/api_dump}/register_optimizer_hook.py +13 -11
- msprobe/pytorch/{hook_module → dump/api_dump}/script_wrapper.py +17 -14
- msprobe/pytorch/{hook_module → dump/api_dump}/utils.py +12 -11
- msprobe/pytorch/{debugger → dump/debugger}/debugger_config.py +23 -38
- msprobe/pytorch/dump/debugger/precision_debugger.py +130 -0
- msprobe/pytorch/{function_factory.py → dump/function_factory.py} +12 -11
- msprobe/pytorch/dump/module_dump/hook_wrapper.py +17 -13
- msprobe/pytorch/dump/module_dump/module_dump.py +16 -15
- msprobe/pytorch/dump/module_dump/{module_processer.py → module_processor.py} +54 -42
- msprobe/pytorch/dump/pt_config.py +128 -0
- msprobe/pytorch/{pytorch_service.py → dump/pytorch_service.py} +22 -21
- msprobe/pytorch/monitor/csv2tb.py +13 -11
- msprobe/pytorch/monitor/data_writers.py +13 -11
- msprobe/pytorch/monitor/distributed/wrap_distributed.py +13 -11
- msprobe/pytorch/monitor/features.py +12 -11
- msprobe/pytorch/monitor/module_hook.py +67 -59
- msprobe/pytorch/monitor/module_metric.py +13 -11
- msprobe/pytorch/monitor/optimizer_collect.py +37 -35
- msprobe/pytorch/monitor/utils.py +13 -11
- msprobe/pytorch/monitor/visualizer.py +12 -11
- msprobe/pytorch/torchair_dump/__init__.py +17 -0
- msprobe/pytorch/torchair_dump/torchair_dump.py +114 -0
- msprobe/scripts/atb/config_example.json +10 -0
- msprobe/scripts/atb/load_atb_probe.sh +101 -0
- msprobe/scripts/atb/unload_atb_probe.sh +27 -0
- msprobe/scripts/build_msaccucmp.sh +186 -0
- msprobe/scripts/conf/help.info +6 -0
- msprobe/scripts/conf/version.info +3 -0
- msprobe/scripts/run_script/common.sh +538 -0
- msprobe/scripts/run_script/main_msaccucmp.sh +232 -0
- msprobe/visualization/__init__.py +12 -11
- msprobe/visualization/builder/__init__.py +12 -11
- msprobe/visualization/builder/graph_builder.py +45 -30
- msprobe/visualization/builder/graph_merger.py +53 -32
- msprobe/visualization/builder/msprobe_adapter.py +34 -44
- msprobe/visualization/compare/__init__.py +12 -11
- msprobe/visualization/compare/graph_comparator.py +63 -51
- msprobe/visualization/compare/mode_adapter.py +28 -113
- msprobe/visualization/db_utils.py +133 -22
- msprobe/visualization/graph/__init__.py +12 -11
- msprobe/visualization/graph/base_node.py +15 -27
- msprobe/visualization/graph/distributed_analyzer.py +97 -40
- msprobe/visualization/graph/graph.py +14 -16
- msprobe/visualization/graph/node_colors.py +34 -31
- msprobe/visualization/graph/node_op.py +12 -11
- msprobe/visualization/graph_service.py +580 -205
- msprobe/visualization/utils.py +278 -31
- tb_graph_ascend/secure_build.py +175 -0
- tb_graph_ascend/server/__init__.py +15 -0
- tb_graph_ascend/server/app/__init__.py +15 -0
- tb_graph_ascend/server/app/model/__init__.py +15 -0
- tb_graph_ascend/server/app/model/hierarchy.py +348 -0
- tb_graph_ascend/server/app/model/layout_hierarchy_model.py +69 -0
- tb_graph_ascend/server/app/model/match_nodes_model.py +573 -0
- tb_graph_ascend/server/app/repositories/__init__.py +15 -0
- tb_graph_ascend/server/app/repositories/graph_repo_base.py +32 -0
- tb_graph_ascend/server/app/repositories/graph_repo_db.py +879 -0
- tb_graph_ascend/server/app/repositories/graph_repo_vis.py +83 -0
- tb_graph_ascend/server/app/service/__init__.py +18 -0
- tb_graph_ascend/server/app/service/graph_service_base.py +158 -0
- tb_graph_ascend/server/app/service/graph_service_db.py +438 -0
- tb_graph_ascend/server/app/service/graph_service_factory.py +54 -0
- tb_graph_ascend/server/app/service/graph_service_vis.py +480 -0
- tb_graph_ascend/server/app/utils/__init__.py +15 -0
- tb_graph_ascend/server/app/utils/constant.py +80 -0
- tb_graph_ascend/server/app/utils/file_check_wrapper.py +46 -0
- tb_graph_ascend/server/app/utils/global_state.py +95 -0
- tb_graph_ascend/server/app/utils/graph_utils.py +661 -0
- tb_graph_ascend/server/app/utils/i18n.py +153 -0
- tb_graph_ascend/server/app/utils/request_method.py +46 -0
- tb_graph_ascend/server/app/views/__init__.py +15 -0
- tb_graph_ascend/server/app/views/graph_views.py +304 -0
- tb_graph_ascend/server/plugin.py +108 -0
- tb_graph_ascend/server/static/index.html +9250 -0
- tb_graph_ascend/server/static/index.js +21 -0
- tb_graph_ascend/setup.py +57 -0
- mindstudio_probe-8.3.2.dist-info/LICENSE +0 -201
- mindstudio_probe-8.3.2.dist-info/RECORD +0 -491
- mindstudio_probe-8.3.2.dist-info/entry_points.txt +0 -2
- mindstudio_probe-8.3.2.dist-info/top_level.txt +0 -1
- msprobe/CMakeLists.txt +0 -5
- msprobe/README.md +0 -203
- msprobe/core/advisor/advisor.py +0 -129
- msprobe/core/advisor/advisor_const.py +0 -58
- msprobe/core/advisor/advisor_result.py +0 -58
- msprobe/core/compare/find_first/data_processor.py +0 -35
- msprobe/core/compare/highlight.py +0 -390
- msprobe/core/data_dump/data_collector.py +0 -356
- msprobe/core/grad_probe/constant.py +0 -90
- msprobe/core/grad_probe/grad_compare.py +0 -187
- msprobe/core/grad_probe/utils.py +0 -105
- msprobe/core/kernel_dump/kernel_config.py +0 -33
- msprobe/docs/01.installation.md +0 -250
- msprobe/docs/02.config_introduction.md +0 -221
- msprobe/docs/03.config_examples.md +0 -281
- msprobe/docs/04.kernel_dump_PyTorch.md +0 -73
- msprobe/docs/05.data_dump_PyTorch.md +0 -518
- msprobe/docs/06.data_dump_MindSpore.md +0 -618
- msprobe/docs/07.accuracy_checker_PyTorch.md +0 -310
- msprobe/docs/09.accuracy_checker_MindSpore.md +0 -120
- msprobe/docs/10.accuracy_compare_PyTorch.md +0 -637
- msprobe/docs/11.accuracy_compare_MindSpore.md +0 -769
- msprobe/docs/12.overflow_check_PyTorch.md +0 -82
- msprobe/docs/13.overflow_check_MindSpore.md +0 -33
- msprobe/docs/14.data_parse_PyTorch.md +0 -282
- msprobe/docs/15.free_benchmarking_PyTorch.md +0 -169
- msprobe/docs/16.free_benchmarking_MindSpore.md +0 -159
- msprobe/docs/17.grad_probe.md +0 -205
- msprobe/docs/18.online_dispatch.md +0 -89
- msprobe/docs/19.monitor.md +0 -753
- msprobe/docs/20.monitor_performance_baseline.md +0 -52
- msprobe/docs/21.visualization_PyTorch.md +0 -519
- msprobe/docs/22.visualization_MindSpore.md +0 -515
- msprobe/docs/23.generate_operator_PyTorch.md +0 -107
- msprobe/docs/24.code_mapping_Mindspore.md +0 -29
- msprobe/docs/25.tool_function_introduction.md +0 -29
- msprobe/docs/26.data_dump_PyTorch_baseline.md +0 -48
- msprobe/docs/27.dump_json_instruction.md +0 -795
- msprobe/docs/28.debugger_save_instruction.md +0 -288
- msprobe/docs/28.kernel_dump_MindSpore.md +0 -69
- msprobe/docs/29.data_dump_MSAdapter.md +0 -235
- msprobe/docs/30.overflow_check_MSAdapter.md +0 -31
- msprobe/docs/31.config_check.md +0 -107
- msprobe/docs/32.ckpt_compare.md +0 -69
- msprobe/docs/33.generate_operator_MindSpore.md +0 -181
- msprobe/docs/34.RL_collect.md +0 -101
- msprobe/docs/35.nan_analyze.md +0 -73
- msprobe/docs/36.calculation_result_change.md +0 -75
- msprobe/docs/FAQ.md +0 -232
- msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md +0 -146
- msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md +0 -14
- msprobe/docs/data_dump_MindSpore/data_dump_MindSpore_baseline.md +0 -33
- msprobe/docs/data_dump_MindSpore/dynamic_graph_quick_start_example.md +0 -217
- msprobe/docs/img/BLOOM-7B_1.png +0 -0
- msprobe/docs/img/BLOOM-7B_2.png +0 -0
- msprobe/docs/img/BLOOM-7B_3.png +0 -0
- msprobe/docs/img/BLOOM-7B_4.png +0 -0
- msprobe/docs/img/GPT-3_1.png +0 -0
- msprobe/docs/img/GPT-3_2.png +0 -0
- msprobe/docs/img/GPT-3_3.png +0 -0
- msprobe/docs/img/GPT-3_4.png +0 -0
- msprobe/docs/img/GPT-3_5.png +0 -0
- msprobe/docs/img/GPT-3_6.png +0 -0
- msprobe/docs/img/GPT-3_7.png +0 -0
- msprobe/docs/img/GPT-3_8.png +0 -0
- msprobe/docs/img/YOLOV5S_1.png +0 -0
- msprobe/docs/img/YOLOV5S_2.png +0 -0
- msprobe/docs/img/accuracy_checking_details.png +0 -0
- msprobe/docs/img/accuracy_checking_result.png +0 -0
- msprobe/docs/img/api_precision_compare_details.png +0 -0
- msprobe/docs/img/api_precision_compare_result.png +0 -0
- msprobe/docs/img/auto_analyze_log.png +0 -0
- msprobe/docs/img/compare_result.png +0 -0
- msprobe/docs/img/compare_result_pkl.png +0 -0
- msprobe/docs/img/compare_result_pkl_md5.png.png +0 -0
- msprobe/docs/img/cpu_info.png +0 -0
- msprobe/docs/img/free_benchmark.png +0 -0
- msprobe/docs/img/free_benchmark_framework.png +0 -0
- msprobe/docs/img/grad_probe_image-1.png +0 -0
- msprobe/docs/img/grad_probe_image-2.png +0 -0
- msprobe/docs/img/grad_probe_image-3.png +0 -0
- msprobe/docs/img/grad_probe_image-4.png +0 -0
- msprobe/docs/img/grad_probe_image.png +0 -0
- msprobe/docs/img/merge_result.png +0 -0
- msprobe/docs/img/module_compare.png +0 -0
- msprobe/docs/img/monitor/cpu_info.png +0 -0
- msprobe/docs/img/monitor/step_count_per_record.png +0 -0
- msprobe/docs/img/ms_dump.png +0 -0
- msprobe/docs/img/ms_layer.png +0 -0
- msprobe/docs/img/pt_dump.png +0 -0
- msprobe/docs/img/save_compare_result_sample.png +0 -0
- msprobe/docs/img/visualization/fuzzy_match_ms.png +0 -0
- msprobe/docs/img/visualization/fuzzy_match_pt.png +0 -0
- msprobe/docs/img/visualization/proxy.png +0 -0
- msprobe/docs/img/visualization/tensorboard_1.png +0 -0
- msprobe/docs/img/visualization/tensorboard_2.png +0 -0
- msprobe/docs/img/visualization/vis_browser_1.png +0 -0
- msprobe/docs/img/visualization/vis_browser_2.png +0 -0
- msprobe/docs/img/visualization/vis_match_info.png +0 -0
- msprobe/docs/img/visualization/vis_precision_info.png +0 -0
- msprobe/docs/img/visualization/vis_search_info.png +0 -0
- msprobe/docs/img/visualization/vis_show_info.png +0 -0
- msprobe/docs/img/visualization/vis_showcase.png +0 -0
- msprobe/docs/img/visualization/vis_unmatch_info.png +0 -0
- msprobe/docs/visualization/GPTModel.png +0 -0
- msprobe/docs/visualization/ParallelMLP.png +0 -0
- msprobe/docs/visualization/layer_mapping_example.md +0 -132
- msprobe/docs/visualization/mapping.png +0 -0
- msprobe/docs/visualization/mapping1.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/1.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/2.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/3.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/4.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/5.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/6.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/7.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory-qwen25vl.txt +0 -59
- msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory1.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory2.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed-mm-qwen25vl.txt +0 -80
- msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed1.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed2.png +0 -0
- msprobe/docs/visualization/mindspeed_llamafactory_mapping.md +0 -330
- msprobe/docs/visualization/module_name.png +0 -0
- msprobe/docs/visualization/module_name1.png +0 -0
- msprobe/docs/visualization/no_mapping.png +0 -0
- msprobe/docs/visualization/no_mapping1.png +0 -0
- msprobe/docs/visualization/no_mapping_analyze.png +0 -0
- msprobe/docs/visualization/top_layer.png +0 -0
- msprobe/mindspore/api_accuracy_checker/generate_op_script/op_generator.py +0 -460
- msprobe/mindspore/api_accuracy_checker/generate_op_script/operator_replication.template +0 -2081
- msprobe/mindspore/code_mapping/bind.py +0 -283
- msprobe/mindspore/code_mapping/cmd_parser.py +0 -40
- msprobe/mindspore/code_mapping/graph.py +0 -49
- msprobe/mindspore/code_mapping/graph_parser.py +0 -211
- msprobe/mindspore/code_mapping/main.py +0 -24
- msprobe/mindspore/code_mapping/processor.py +0 -34
- msprobe/mindspore/dym_loader/hook_dynamic_loader.cpp +0 -111
- msprobe/mindspore/dym_loader/hook_dynamic_loader.h +0 -52
- msprobe/mindspore/free_benchmark/api_pynative_self_check.py +0 -257
- msprobe/mindspore/free_benchmark/common/config.py +0 -27
- msprobe/mindspore/free_benchmark/common/handler_params.py +0 -31
- msprobe/mindspore/free_benchmark/common/utils.py +0 -100
- msprobe/mindspore/free_benchmark/data/support_wrap_ops.yaml +0 -638
- msprobe/mindspore/free_benchmark/handler/base_handler.py +0 -105
- msprobe/mindspore/free_benchmark/handler/check_handler.py +0 -55
- msprobe/mindspore/free_benchmark/handler/fix_handler.py +0 -51
- msprobe/mindspore/free_benchmark/handler/handler_factory.py +0 -36
- msprobe/mindspore/free_benchmark/perturbation/add_noise.py +0 -82
- msprobe/mindspore/free_benchmark/perturbation/base_perturbation.py +0 -45
- msprobe/mindspore/free_benchmark/perturbation/bit_noise.py +0 -78
- msprobe/mindspore/free_benchmark/perturbation/exchange_value.py +0 -77
- msprobe/mindspore/free_benchmark/perturbation/improve_precision.py +0 -56
- msprobe/mindspore/free_benchmark/perturbation/no_change.py +0 -27
- msprobe/mindspore/free_benchmark/perturbation/perturbation_factory.py +0 -46
- msprobe/mindspore/free_benchmark/self_check_tool_factory.py +0 -51
- msprobe/mindspore/grad_probe/global_context.py +0 -127
- msprobe/mindspore/grad_probe/grad_analyzer.py +0 -260
- msprobe/mindspore/grad_probe/grad_monitor.py +0 -42
- msprobe/mindspore/grad_probe/grad_stat_csv.py +0 -161
- msprobe/mindspore/grad_probe/hook.py +0 -115
- msprobe/mindspore/grad_probe/utils.py +0 -43
- msprobe/mindspore/mindtorch/__init__.py +0 -18
- msprobe/mindspore/ms_config.py +0 -153
- msprobe/mindspore/task_handler_factory.py +0 -44
- msprobe/nan_analyze/__init__.py +0 -14
- msprobe/pytorch/api_accuracy_checker/generate_op_script/config_op.json +0 -9
- msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py +0 -480
- msprobe/pytorch/api_accuracy_checker/generate_op_script/operator_replication.template +0 -567
- msprobe/pytorch/debugger/precision_debugger.py +0 -181
- msprobe/pytorch/free_benchmark/__init__.py +0 -23
- msprobe/pytorch/free_benchmark/common/constant.py +0 -85
- msprobe/pytorch/free_benchmark/common/counter.py +0 -87
- msprobe/pytorch/free_benchmark/common/enums.py +0 -80
- msprobe/pytorch/free_benchmark/common/params.py +0 -152
- msprobe/pytorch/free_benchmark/common/utils.py +0 -143
- msprobe/pytorch/free_benchmark/compare/grad_saver.py +0 -215
- msprobe/pytorch/free_benchmark/compare/single_benchmark.py +0 -121
- msprobe/pytorch/free_benchmark/main.py +0 -123
- msprobe/pytorch/free_benchmark/perturbed_layers/base_layer.py +0 -28
- msprobe/pytorch/free_benchmark/perturbed_layers/layer_factory.py +0 -56
- msprobe/pytorch/free_benchmark/perturbed_layers/npu/add_noise.py +0 -107
- msprobe/pytorch/free_benchmark/perturbed_layers/npu/bit_noise.py +0 -121
- msprobe/pytorch/free_benchmark/perturbed_layers/npu/change_value.py +0 -89
- msprobe/pytorch/free_benchmark/perturbed_layers/npu/improve_precision.py +0 -87
- msprobe/pytorch/free_benchmark/perturbed_layers/npu/no_change.py +0 -43
- msprobe/pytorch/free_benchmark/perturbed_layers/npu/npu_base_layser.py +0 -60
- msprobe/pytorch/free_benchmark/perturbed_layers/run_cpu.py +0 -34
- msprobe/pytorch/free_benchmark/result_handlers/base_handler.py +0 -252
- msprobe/pytorch/free_benchmark/result_handlers/check_handler.py +0 -54
- msprobe/pytorch/free_benchmark/result_handlers/fix_handler.py +0 -40
- msprobe/pytorch/free_benchmark/result_handlers/handler_factory.py +0 -45
- msprobe/pytorch/free_benchmark/result_handlers/preheat_handler.py +0 -181
- msprobe/pytorch/grad_probe/__init__.py +0 -0
- msprobe/pytorch/grad_probe/grad_monitor.py +0 -108
- msprobe/pytorch/grad_probe/grad_stat_csv.py +0 -160
- msprobe/pytorch/hook_module/__init__.py +0 -16
- msprobe/pytorch/hook_module/wrap_aten.py +0 -111
- msprobe/pytorch/online_dispatch/__init__.py +0 -19
- msprobe/pytorch/online_dispatch/compare.py +0 -224
- msprobe/pytorch/online_dispatch/dispatch.py +0 -332
- msprobe/pytorch/online_dispatch/dump_compare.py +0 -179
- msprobe/pytorch/online_dispatch/single_compare.py +0 -412
- msprobe/pytorch/online_dispatch/torch_ops_config.yaml +0 -58
- msprobe/pytorch/online_dispatch/utils.py +0 -158
- msprobe/pytorch/parse_tool/__init__.py +0 -0
- msprobe/pytorch/parse_tool/cli.py +0 -31
- msprobe/pytorch/parse_tool/lib/__init__.py +0 -0
- msprobe/pytorch/parse_tool/lib/compare.py +0 -253
- msprobe/pytorch/parse_tool/lib/config.py +0 -50
- msprobe/pytorch/parse_tool/lib/file_desc.py +0 -45
- msprobe/pytorch/parse_tool/lib/interactive_cli.py +0 -97
- msprobe/pytorch/parse_tool/lib/parse_exception.py +0 -54
- msprobe/pytorch/parse_tool/lib/parse_tool.py +0 -161
- msprobe/pytorch/parse_tool/lib/utils.py +0 -299
- msprobe/pytorch/parse_tool/lib/visualization.py +0 -85
- msprobe/pytorch/pt_config.py +0 -299
- /msprobe/core/{grad_probe → dump}/__init__.py +0 -0
- /msprobe/{mindspore/code_mapping → core/dump/api_dump}/__init__.py +0 -0
- /msprobe/{mindspore/debugger → core/dump/data_dump}/__init__.py +0 -0
- /msprobe/{mindspore/exception_dump → core/dump/data_dump/data_processor}/__init__.py +0 -0
- /msprobe/{mindspore/free_benchmark → core/dump/debugger}/__init__.py +0 -0
- /msprobe/{mindspore/free_benchmark/common → core/dump/kernel_dump}/__init__.py +0 -0
- /msprobe/mindspore/{free_benchmark/handler → dump/debugger}/__init__.py +0 -0
- /msprobe/mindspore/{grad_probe → dump/dump_processor}/__init__.py +0 -0
- /msprobe/mindspore/{overflow_check → dump/exception_dump}/__init__.py +0 -0
- /msprobe/mindspore/{mindtorch → dump/mindtorch}/mindtorch_adaptor.py +0 -0
- /msprobe/{pytorch/api_accuracy_checker/run_ut → mindspore/dump/overflow_check}/__init__.py +0 -0
- /msprobe/{pytorch/debugger → mindspore/monitor}/__init__.py +0 -0
- /msprobe/{pytorch/free_benchmark/common → msaccucmp}/__init__.py +0 -0
- /msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/.keep +0 -0
- /msprobe/pytorch/{free_benchmark/perturbed_layers → api_accuracy_checker/acc_check}/__init__.py +0 -0
- /msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/torch_ut_setting.json +0 -0
- /msprobe/pytorch/{free_benchmark/perturbed_layers/npu → dump/api_dump}/__init__.py +0 -0
- /msprobe/pytorch/{hook_module → dump/api_dump}/support_wrap_ops.yaml +0 -0
- /msprobe/pytorch/{free_benchmark/result_handlers → dump/debugger}/__init__.py +0 -0
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
import argparse
|
|
19
20
|
import math
|
|
@@ -36,7 +37,7 @@ from msprobe.pytorch.api_accuracy_checker.precision_standard.ulp_compare import
|
|
|
36
37
|
from msprobe.pytorch.api_accuracy_checker.precision_standard.benchmark_compare import BenchmarkPrecisionCompare
|
|
37
38
|
from msprobe.pytorch.api_accuracy_checker.precision_standard.standard_config import StandardConfig
|
|
38
39
|
from msprobe.pytorch.api_accuracy_checker.compare.compare_column import ApiPrecisionOutputColumn
|
|
39
|
-
from msprobe.pytorch.api_accuracy_checker.
|
|
40
|
+
from msprobe.pytorch.api_accuracy_checker.acc_check.acc_check_utils import get_validated_result_csv_path
|
|
40
41
|
from msprobe.pytorch.api_accuracy_checker.common.utils import extract_detailed_api_segments, extract_basic_api_segments
|
|
41
42
|
from msprobe.core.common.file_utils import FileChecker, change_mode, create_directory
|
|
42
43
|
from msprobe.pytorch.common.log import logger
|
|
@@ -224,12 +225,20 @@ def get_api_status(row_npu, row_gpu, api_name, compare_column, registry):
|
|
|
224
225
|
else:
|
|
225
226
|
compare_column.api_name = full_api_name_with_direction_status
|
|
226
227
|
dtype = row_npu[ApiPrecisionCompareColumn.DEVICE_DTYPE]
|
|
227
|
-
input_data = PrecisionCompareInput(row_npu, row_gpu, dtype, compare_column)
|
|
228
|
-
|
|
228
|
+
input_data = PrecisionCompareInput(row_npu, row_gpu, dtype, compare_column, api_name=api_name)
|
|
229
|
+
in_dtype = get_in_dtype(row_npu)
|
|
230
|
+
comparison_func = registry.get_comparison_function(api_name, dtype, in_dtype)
|
|
229
231
|
new_status = comparison_func(input_data)
|
|
230
232
|
return new_status
|
|
231
233
|
|
|
232
234
|
|
|
235
|
+
def get_in_dtype(row_npu):
|
|
236
|
+
if row_npu[ApiPrecisionCompareColumn.REL_ERR_RATIO].isspace():
|
|
237
|
+
return "torch.float32"
|
|
238
|
+
else:
|
|
239
|
+
return "torch.float8_e4m3fn"
|
|
240
|
+
|
|
241
|
+
|
|
233
242
|
def print_test_success(api_full_name, forward_result, backward_result):
|
|
234
243
|
is_fwd_success = (forward_result == CompareConst.PASS)
|
|
235
244
|
is_bwd_success = (backward_result == CompareConst.PASS or backward_result == CompareConst.SPACE)
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
# 进行比对及结果展示
|
|
19
20
|
import os
|
|
@@ -60,7 +61,8 @@ class Comparator:
|
|
|
60
61
|
COLUMN_BACKWARD_SUCCESS = "Backward Test Success"
|
|
61
62
|
COLUMN_STACK_INFO = "Traceback callstack info"
|
|
62
63
|
|
|
63
|
-
def __init__(self, result_csv_path, details_csv_path,
|
|
64
|
+
def __init__(self, result_csv_path, details_csv_path, is_continue_acc_check,
|
|
65
|
+
stack_info_json_path=None, config=None):
|
|
64
66
|
self.save_path_str = result_csv_path
|
|
65
67
|
self.detail_save_path_str = details_csv_path
|
|
66
68
|
self.save_path_list = [result_csv_path]
|
|
@@ -68,7 +70,7 @@ class Comparator:
|
|
|
68
70
|
|
|
69
71
|
self.registry = self._register_compare_func()
|
|
70
72
|
|
|
71
|
-
if not
|
|
73
|
+
if not is_continue_acc_check:
|
|
72
74
|
self.write_csv_title()
|
|
73
75
|
if stack_info_json_path:
|
|
74
76
|
self.stack_info = get_json_contents(stack_info_json_path)
|
|
@@ -81,7 +83,7 @@ class Comparator:
|
|
|
81
83
|
|
|
82
84
|
@staticmethod
|
|
83
85
|
def print_pretest_result():
|
|
84
|
-
logger.info("Successfully completed
|
|
86
|
+
logger.info("Successfully completed acc_check/multi_acc_check.")
|
|
85
87
|
|
|
86
88
|
@staticmethod
|
|
87
89
|
def _compare_dropout(bench_output, device_output):
|
|
@@ -104,8 +106,8 @@ class Comparator:
|
|
|
104
106
|
return CompareConst.PASS, compare_column, ""
|
|
105
107
|
|
|
106
108
|
@staticmethod
|
|
107
|
-
def
|
|
108
|
-
"""get
|
|
109
|
+
def _get_acc_check_detail(test_result):
|
|
110
|
+
"""get acc_check detail before write to csv, called by online acc_check"""
|
|
109
111
|
test_rows = []
|
|
110
112
|
try:
|
|
111
113
|
subject_prefix = test_result[0]
|
|
@@ -173,7 +175,7 @@ class Comparator:
|
|
|
173
175
|
write_csv(DETAIL_TEST_ROWS, detail_save_path)
|
|
174
176
|
|
|
175
177
|
@recursion_depth_decorator("compare_core")
|
|
176
|
-
def _compare_core(self, api_name, bench_output, device_output):
|
|
178
|
+
def _compare_core(self, api_name, bench_output, device_output, is_fp8):
|
|
177
179
|
compare_column = CompareColumn()
|
|
178
180
|
if not isinstance(bench_output, type(device_output)):
|
|
179
181
|
status = CompareConst.ERROR
|
|
@@ -185,7 +187,7 @@ class Comparator:
|
|
|
185
187
|
message = "bench and npu output dict keys are different."
|
|
186
188
|
else:
|
|
187
189
|
status, compare_column, message = self._compare_core(api_name, list(bench_output.values()),
|
|
188
|
-
list(device_output.values()))
|
|
190
|
+
list(device_output.values()), is_fp8)
|
|
189
191
|
elif isinstance(bench_output, torch.Tensor):
|
|
190
192
|
copy_bench_out = bench_output.detach().clone()
|
|
191
193
|
copy_device_output = device_output.detach().clone()
|
|
@@ -193,7 +195,7 @@ class Comparator:
|
|
|
193
195
|
compare_column.npu_type = str(copy_device_output.dtype)
|
|
194
196
|
compare_column.shape = tuple(device_output.shape)
|
|
195
197
|
status, compare_column, message = self._compare_torch_tensor(api_name, copy_bench_out, copy_device_output,
|
|
196
|
-
compare_column)
|
|
198
|
+
compare_column, is_fp8)
|
|
197
199
|
elif isinstance(bench_output, (bool, int, float, str)):
|
|
198
200
|
compare_column.bench_type = str(type(bench_output))
|
|
199
201
|
compare_column.npu_type = str(type(device_output))
|
|
@@ -227,7 +229,7 @@ class Comparator:
|
|
|
227
229
|
write_csv(test_rows, save_path)
|
|
228
230
|
|
|
229
231
|
def write_detail_csv(self, test_result):
|
|
230
|
-
test_rows = self.
|
|
232
|
+
test_rows = self._get_acc_check_detail(test_result)
|
|
231
233
|
detail_save_path = self.get_path_from_rank(test_result[-1],
|
|
232
234
|
self.detail_save_path_list,
|
|
233
235
|
self.detail_save_path_str)
|
|
@@ -247,11 +249,12 @@ class Comparator:
|
|
|
247
249
|
bench_output, device_output = data_info.bench_output, data_info.device_output
|
|
248
250
|
bench_grad, device_grad = data_info.bench_grad, data_info.device_grad
|
|
249
251
|
backward_message = data_info.backward_message
|
|
252
|
+
is_fp8 = data_info.is_fp8
|
|
250
253
|
if "dropout" in full_api_name:
|
|
251
254
|
fwd_success_status, fwd_compare_alg_results = self._compare_dropout(bench_output, device_output)
|
|
252
255
|
else:
|
|
253
256
|
fwd_success_status, fwd_compare_alg_results = self._compare_core_wrapper(api_name, bench_output,
|
|
254
|
-
device_output)
|
|
257
|
+
device_output, is_fp8)
|
|
255
258
|
if not (bench_grad and device_grad):
|
|
256
259
|
bwd_success_status, bwd_compare_alg_results = (CompareConst.SPACE, [])
|
|
257
260
|
else:
|
|
@@ -259,7 +262,7 @@ class Comparator:
|
|
|
259
262
|
bwd_success_status, bwd_compare_alg_results = self._compare_dropout(bench_grad[0], device_grad[0])
|
|
260
263
|
else:
|
|
261
264
|
bwd_success_status, bwd_compare_alg_results = self._compare_core_wrapper(api_name, bench_grad,
|
|
262
|
-
device_grad)
|
|
265
|
+
device_grad, is_fp8)
|
|
263
266
|
if backward_message:
|
|
264
267
|
backward_column = CompareColumn()
|
|
265
268
|
bwd_compare_alg_results = [backward_column.to_column_value(CompareConst.SKIP, backward_message)]
|
|
@@ -272,7 +275,6 @@ class Comparator:
|
|
|
272
275
|
fwd_compare_alg_results,
|
|
273
276
|
bwd_compare_alg_results,
|
|
274
277
|
data_info.rank)
|
|
275
|
-
|
|
276
278
|
self.record_results(result_info)
|
|
277
279
|
return fwd_success_status == CompareConst.PASS, bwd_success_status == CompareConst.PASS \
|
|
278
280
|
or bwd_success_status == CompareConst.SPACE
|
|
@@ -287,7 +289,7 @@ class Comparator:
|
|
|
287
289
|
registry.register(CompareConst.ACCUMULATIVE_ERROR_COMPARE, self._accumulative_error_compare)
|
|
288
290
|
return registry
|
|
289
291
|
|
|
290
|
-
def _compare_core_wrapper(self, api_name, bench_output, device_output):
|
|
292
|
+
def _compare_core_wrapper(self, api_name, bench_output, device_output, is_fp8):
|
|
291
293
|
detailed_result_total = []
|
|
292
294
|
test_final_success = CompareConst.PASS
|
|
293
295
|
if isinstance(bench_output, (list, tuple)):
|
|
@@ -298,12 +300,12 @@ class Comparator:
|
|
|
298
300
|
else:
|
|
299
301
|
device_output = device_output[:len(bench_output)]
|
|
300
302
|
for b_out_i, n_out_i in zip(bench_output, device_output):
|
|
301
|
-
status_i, compare_result_i, message_i = self._compare_core(api_name, b_out_i, n_out_i)
|
|
303
|
+
status_i, compare_result_i, message_i = self._compare_core(api_name, b_out_i, n_out_i, is_fp8)
|
|
302
304
|
status.append(status_i)
|
|
303
305
|
compare_result.append(compare_result_i)
|
|
304
306
|
message.append(message_i)
|
|
305
307
|
else:
|
|
306
|
-
status, compare_result, message = self._compare_core(api_name, bench_output, device_output)
|
|
308
|
+
status, compare_result, message = self._compare_core(api_name, bench_output, device_output, is_fp8)
|
|
307
309
|
if not isinstance(status, list):
|
|
308
310
|
detailed_result_total.append(compare_result.to_column_value(status, message))
|
|
309
311
|
if status == CompareConst.ERROR:
|
|
@@ -319,10 +321,15 @@ class Comparator:
|
|
|
319
321
|
test_final_success = CompareConst.WARNING
|
|
320
322
|
return test_final_success, detailed_result_total
|
|
321
323
|
|
|
322
|
-
def _compare_torch_tensor(self, api_name, bench_output, device_output, compare_column):
|
|
324
|
+
def _compare_torch_tensor(self, api_name, bench_output, device_output, compare_column, is_fp8):
|
|
323
325
|
cpu_shape = bench_output.shape
|
|
324
326
|
npu_shape = device_output.shape
|
|
327
|
+
|
|
325
328
|
npu_dtype = device_output.dtype
|
|
329
|
+
if is_fp8:
|
|
330
|
+
in_dtype = torch.float8_e4m3fn
|
|
331
|
+
else:
|
|
332
|
+
in_dtype = torch.float32
|
|
326
333
|
if npu_dtype == torch.bfloat16:
|
|
327
334
|
bench_output = bench_output.to(torch.float32)
|
|
328
335
|
device_output = device_output.to(torch.float32)
|
|
@@ -346,22 +353,28 @@ class Comparator:
|
|
|
346
353
|
compare_column.error_rate = err_rate
|
|
347
354
|
return status, compare_column, message
|
|
348
355
|
else:
|
|
356
|
+
in_and_out_dtype = {
|
|
357
|
+
'dtype': npu_dtype,
|
|
358
|
+
'in_dtype': in_dtype
|
|
359
|
+
}
|
|
349
360
|
status, compare_column, message = self._compare_float_tensor(api_name, bench_output, device_output,
|
|
350
|
-
compare_column,
|
|
361
|
+
compare_column, in_and_out_dtype)
|
|
351
362
|
return status, compare_column, message
|
|
352
363
|
|
|
353
|
-
def _perform_comparison(self, api_name, input_data):
|
|
354
|
-
comparison_func = self.registry.get_comparison_function(api_name,
|
|
364
|
+
def _perform_comparison(self, api_name, input_data, dtype, in_dtype):
|
|
365
|
+
comparison_func = self.registry.get_comparison_function(api_name, dtype, in_dtype)
|
|
355
366
|
comparison_func(input_data)
|
|
356
367
|
|
|
357
|
-
def _compare_float_tensor(self, api_name, bench_output, device_output, compare_column,
|
|
368
|
+
def _compare_float_tensor(self, api_name, bench_output, device_output, compare_column, in_and_out_dtype):
|
|
369
|
+
dtype = in_and_out_dtype.get('dtype')
|
|
370
|
+
in_dtype = in_and_out_dtype.get('in_dtype')
|
|
358
371
|
message = ""
|
|
359
372
|
_, abs_bench_with_eps = get_abs_bench_with_eps(bench_output, dtype)
|
|
360
373
|
abs_err = get_abs_err(bench_output, device_output)
|
|
361
374
|
rel_err_orign = get_rel_err_origin(abs_err, abs_bench_with_eps)
|
|
362
375
|
input_data = CompareInput(bench_output, device_output, compare_column, dtype, rel_err_orign)
|
|
363
376
|
if str(dtype) in BENCHMARK_COMPARE_SUPPORT_LIST:
|
|
364
|
-
self._perform_comparison(api_name, input_data)
|
|
377
|
+
self._perform_comparison(api_name, input_data, dtype, in_dtype)
|
|
365
378
|
else:
|
|
366
379
|
message += f"The data type {dtype} is not supported for new precision standard."
|
|
367
380
|
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
from msprobe.core.common.const import CompareConst
|
|
19
20
|
from msprobe.pytorch.common.log import logger
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
import numpy as np
|
|
19
20
|
|
|
@@ -44,8 +45,9 @@ class CompareInput:
|
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
class PrecisionCompareInput:
|
|
47
|
-
def __init__(self, row_npu, row_gpu, dtype, compare_column):
|
|
48
|
+
def __init__(self, row_npu, row_gpu, dtype, compare_column, api_name=None):
|
|
48
49
|
self.row_npu = row_npu
|
|
49
50
|
self.row_gpu = row_gpu
|
|
50
51
|
self.dtype = dtype
|
|
51
52
|
self.compare_column = compare_column
|
|
53
|
+
self.api_name = api_name
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
import time
|
|
19
20
|
import os
|
|
@@ -30,7 +31,8 @@ from msprobe.pytorch.common.log import logger
|
|
|
30
31
|
current_time = time.strftime("%Y%m%d%H%M%S")
|
|
31
32
|
API_PRECISION_COMPARE_RESULT_FILE_NAME = "api_precision_compare_result_" + current_time + ".csv"
|
|
32
33
|
API_PRECISION_COMPARE_DETAILS_FILE_NAME = "api_precision_compare_details_" + current_time + ".csv"
|
|
33
|
-
BENCHMARK_COMPARE_SUPPORT_LIST = ['torch.float16', 'torch.bfloat16', 'torch.float32'
|
|
34
|
+
BENCHMARK_COMPARE_SUPPORT_LIST = ['torch.float16', 'torch.bfloat16', 'torch.float32', "torch.float8_e4m3fn",
|
|
35
|
+
"torch.float8_e5m2"]
|
|
34
36
|
API_PRECISION_COMPARE_UNSUPPORT_LIST = ['torch.float64', 'torch.complex64', 'torch.complex128']
|
|
35
37
|
ULP_COMPARE_SUPPORT_LIST = ['torch.float16', 'torch.bfloat16', 'torch.float32']
|
|
36
38
|
BINARY_COMPARE_UNSUPPORT_LIST = BENCHMARK_COMPARE_SUPPORT_LIST + API_PRECISION_COMPARE_UNSUPPORT_LIST
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
import numpy as np
|
|
19
20
|
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
import numpy as np
|
|
19
20
|
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
from abc import ABC, abstractmethod
|
|
19
20
|
import numpy as np
|
|
@@ -119,6 +120,13 @@ class BasePrecisionCompare:
|
|
|
119
120
|
self.compare_column = input_data.compare_column
|
|
120
121
|
self.compare_algorithm = None
|
|
121
122
|
|
|
123
|
+
@staticmethod
|
|
124
|
+
def _get_and_convert_value(row_data, column_name, device_type):
|
|
125
|
+
value = row_data.get(column_name)
|
|
126
|
+
if value is None:
|
|
127
|
+
raise ValueError(f"{device_type} value for column '{column_name}' is None.")
|
|
128
|
+
return convert_str_to_float(value)
|
|
129
|
+
|
|
122
130
|
@abstractmethod
|
|
123
131
|
def _get_status(self, metrics, inf_nan_consistency):
|
|
124
132
|
pass
|
|
@@ -133,14 +141,8 @@ class BasePrecisionCompare:
|
|
|
133
141
|
return compare_result
|
|
134
142
|
|
|
135
143
|
def _get_and_convert_values(self, column_name):
|
|
136
|
-
npu_value = self.row_npu
|
|
137
|
-
gpu_value = self.row_gpu
|
|
138
|
-
if npu_value is None:
|
|
139
|
-
raise ValueError(f"NPU value for column '{column_name}' is None.")
|
|
140
|
-
if gpu_value is None:
|
|
141
|
-
raise ValueError(f"GPU value for column '{column_name}' is None.")
|
|
142
|
-
npu_value = convert_str_to_float(npu_value)
|
|
143
|
-
gpu_value = convert_str_to_float(gpu_value)
|
|
144
|
+
npu_value = self._get_and_convert_value(self.row_npu, column_name, "NPU")
|
|
145
|
+
gpu_value = self._get_and_convert_value(self.row_gpu, column_name, "GPU")
|
|
144
146
|
return npu_value, gpu_value
|
|
145
147
|
|
|
146
148
|
def _post_compare(self, metrics, inf_nan_consistency):
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
import math
|
|
19
20
|
from collections import namedtuple
|
|
@@ -136,6 +137,7 @@ class BenchmarkPrecisionCompare(BasePrecisionCompare):
|
|
|
136
137
|
def __init__(self, input_data):
|
|
137
138
|
super().__init__(input_data)
|
|
138
139
|
self.compare_algorithm = CompareConst.BENCHMARK_COMPARE_ALGORITHM_NAME
|
|
140
|
+
self.api_name = getattr(input_data, "api_name", None)
|
|
139
141
|
|
|
140
142
|
@staticmethod
|
|
141
143
|
def get_final_status(status_list):
|
|
@@ -184,8 +186,7 @@ class BenchmarkPrecisionCompare(BasePrecisionCompare):
|
|
|
184
186
|
eb_inf_nan_consistency)
|
|
185
187
|
|
|
186
188
|
def _get_threshold(self, metric):
|
|
187
|
-
|
|
188
|
-
return error_threshold
|
|
189
|
+
return StandardConfig.get_benchmark_ratio_threshold(metric, api_name=self.api_name)
|
|
189
190
|
|
|
190
191
|
def _get_single_metric_status(self, ratio, metric):
|
|
191
192
|
if is_inf_or_nan(ratio):
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
#
|
|
4
|
-
#
|
|
3
|
+
# -------------------------------------------------------------------------
|
|
4
|
+
# This file is part of the MindStudio project.
|
|
5
|
+
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
|
|
5
6
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
# You may obtain a copy of
|
|
7
|
+
# MindStudio is licensed under Mulan PSL v2.
|
|
8
|
+
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
9
|
+
# You may obtain a copy of Mulan PSL v2 at:
|
|
9
10
|
#
|
|
10
|
-
#
|
|
11
|
+
# http://license.coscl.org.cn/MulanPSL2
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
# See the
|
|
16
|
-
#
|
|
13
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
14
|
+
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
15
|
+
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
16
|
+
# See the Mulan PSL v2 for more details.
|
|
17
|
+
# -------------------------------------------------------------------------
|
|
17
18
|
|
|
18
19
|
from msprobe.pytorch.api_accuracy_checker.compare.algorithm import compare_bool_tensor
|
|
19
20
|
from msprobe.pytorch.api_accuracy_checker.precision_standard.base_standard import BaseCompare
|