mindstudio-probe 8.3.3__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.3.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.3.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 +28 -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.3.dist-info/LICENSE +0 -201
- mindstudio_probe-8.3.3.dist-info/RECORD +0 -491
- mindstudio_probe-8.3.3.dist-info/entry_points.txt +0 -2
- mindstudio_probe-8.3.3.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,82 +0,0 @@
|
|
|
1
|
-
# **PyTorch场景下的溢出检测**
|
|
2
|
-
|
|
3
|
-
msprobe 工具在 PyTorch 场景下提供溢出数据采集功能和溢出数据解析功能,详细介绍见下方章节。
|
|
4
|
-
|
|
5
|
-
## 1、溢出数据采集
|
|
6
|
-
|
|
7
|
-
溢出数据采集能 dump 所有溢出的 API 或者 Module 的信息,包括前反向输入输出的统计值和实际运行数据信息。
|
|
8
|
-
|
|
9
|
-
### 1.1 工具安装
|
|
10
|
-
|
|
11
|
-
工具安装详见《[msprobe 使用手册](../README.md)》的“安装”章节
|
|
12
|
-
|
|
13
|
-
### 1.2 接口介绍
|
|
14
|
-
|
|
15
|
-
溢出检测功能提供的接口与数据采集任务一致,详见[ PyTorch 场景的精度数据采集](./05.data_dump_PyTorch.md)中的"**接口介绍**"章节。
|
|
16
|
-
其中 PrecisionDebugger 中的 task 或是 config.json 中的 task 需要指定为 **overflow_check**,详见[配置文件介绍](./02.config_introduction.md)中的
|
|
17
|
-
"**1.1 通用配置介绍**"和"**1.5 task 配置为 overflow_check**"章节。
|
|
18
|
-
|
|
19
|
-
### 1.3 示例代码
|
|
20
|
-
|
|
21
|
-
溢出检测功能使用方式与数据采集任务一致,详见[ PyTorch 场景的精度数据采集](./05.data_dump_PyTorch.md)中的"**示例代码**"章节。
|
|
22
|
-
|
|
23
|
-
### 1.4 结果文件介绍
|
|
24
|
-
|
|
25
|
-
溢出检测结果文件目录结构与含义与数据采集任务一致,详见[ PyTorch 场景的精度数据采集](./05.data_dump_PyTorch.md)中的"**3 dump 结果文件介绍**"章节。
|
|
26
|
-
|
|
27
|
-
### 1.5 其他说明
|
|
28
|
-
|
|
29
|
-
溢出数据采集功能在昇腾 NPU 上支持饱和模式(仅支持 Atlas 训练系列产品)和 INF/NAN 模式。
|
|
30
|
-
|
|
31
|
-
INF/NAN 模式遵循 IEEE 754 标准,根据定义输出 INF/NAN 的计算结果。与之对应的饱和模式在计算出现溢出时,饱和为浮点数极值(+-MAX)。对于 CANN 侧配置,Atlas 训练系列产品,默认为饱和模式,且不支持使用 INF/NAN 模式;Atlas A2 训练系列产品,默认为 INF/NAN 模式,且不建议使用饱和模式。
|
|
32
|
-
|
|
33
|
-
INF/NAN 模式的使能方式如下:
|
|
34
|
-
|
|
35
|
-
```Shell
|
|
36
|
-
# 使能 CANN 侧 INF/NAN 模式
|
|
37
|
-
export INF_NAN_MODE_ENABLE=1
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## 2、溢出数据解析
|
|
41
|
-
|
|
42
|
-
注:溢出数据解析目前只支持分析前向 API 输入未溢出,但输出溢出的场景。
|
|
43
|
-
|
|
44
|
-
在第一步中采集到溢出数据后,可以使用溢出解析功能快速判断输入未溢出而输出溢出的 API 是正常溢出还是非正常溢出,从而帮您快速分析是否由 API 执行异常导致的溢出问题。
|
|
45
|
-
同一个 API 用相同的输入数据在 CPU 设备和昇腾 NPU 设备上执行,若 CPU 和 NPU 均出现溢出,则认为该溢出是**正常溢出**;若 NPU 有溢出, 而 CPU 没有溢出则认为该溢出是**非正常溢出**。
|
|
46
|
-
|
|
47
|
-
工具支持的 PyTorch 版本:1.11/2.0/2.1/2.2。
|
|
48
|
-
|
|
49
|
-
操作步骤如下:
|
|
50
|
-
|
|
51
|
-
1. 安装工具。
|
|
52
|
-
|
|
53
|
-
详见《[msprobe 使用手册](../README.md)》的“安装”章节。
|
|
54
|
-
|
|
55
|
-
2. 执行溢出 API 解析操作。
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
msprobe -f pytorch run_overflow_check -api_info ./dump_path/step{step_number}/rank{rank_number}/dump.json
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
62
|
-
|---------------------------|------------------------------------| -------- |
|
|
63
|
-
| -f 或 --framework | 指定训练框架。pytorch。 | 是 |
|
|
64
|
-
| -api_info或--api_info_file | 指定采集下来的 API 信息文件 dump.json。 | 是 |
|
|
65
|
-
| -j或--jit_compile | 开启 jit 编译。 | 否 |
|
|
66
|
-
| -d或--device | 指定 Device ID,选择 UT 代码运行所在的卡,默认值为0。 | 否 |
|
|
67
|
-
|
|
68
|
-
3. 结果说明。
|
|
69
|
-
|
|
70
|
-
如果 API 是**正常溢出**,会打印以下信息:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
The {api_name} overflow is a normal overflow.
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
**非正常溢出**则会打印以下信息:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
The {api_name} overflow is an abnormal overflow.
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
其中 {api_name} 是对应溢出的 API 名称。
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# MindSpore 场景的溢出检测
|
|
2
|
-
|
|
3
|
-
msprobe 工具提供静态图O2编译等级下与动态图场景下的溢出检测功能。其中前者检测对象为 **kernel** 级别,对应 config.json 配置中的 **"L2"** level,后者检测对象为 **API** 级别(支持的API类型为ops、Tensor、mint和mint.nn.functional,不支持Primitive和Jit类API)或 **cell** 级别,分别对应 config.json 配置中的 **"L1"** 、**"L0"** level。
|
|
4
|
-
|
|
5
|
-
需要注意,本工具仅支持在 INF/NAN 模式<sup>a</sup>下进行溢出检测。INF/NAN 模式的使能方式如下:
|
|
6
|
-
|
|
7
|
-
```Shell
|
|
8
|
-
# 使能 CANN 侧 INF/NAN 模式
|
|
9
|
-
export INF_NAN_MODE_ENABLE=1
|
|
10
|
-
# 使能 MindSpore 框架侧 INF/NAN 模式
|
|
11
|
-
export MS_ASCEND_CHECK_OVERFLOW_MODE="INFNAN_MODE"
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
**a**:在处理浮点数计算溢出问题时,NPU 当前支持两种溢出模式:INF/NAN 模式与饱和模式。INF/NAN 模式遵循 IEEE 754 标准,根据定义输出 INF/NAN 的计算结果。与之对应的饱和模式在计算出现溢出时,饱和为浮点数极值(+-MAX)。对于 CANN 侧配置,Atlas 训练系列产品,默认为饱和模式,且不支持使用 INF/NAN 模式;Atlas A2训练系列产品,默认为 INF/NAN 模式,且不建议使用饱和模式。对于 MindSpore 框架侧配置,仅支持对 Atlas A2 训练系列产品进行设置,默认为 INF/NAN 模式。CANN 侧 与 MindSpore 框架侧配置须一致。
|
|
15
|
-
|
|
16
|
-
溢出检测任务的配置示例见[MindSpore 静态图场景下 task 配置为 overflow_check](03.config_examples.md#23-task-配置为-overflow_check)、[MindSpore 动态图场景下 task 配置为 overflow_check](03.config_examples.md#33-task-配置为-overflow_check)。
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## 1 接口介绍
|
|
20
|
-
|
|
21
|
-
溢出检测功能提供的接口与数据采集任务一致,详见MindSpore 场景的精度数据采集中的["**接口介绍**"](./06.data_dump_MindSpore.md#6-接口介绍)章节。
|
|
22
|
-
|
|
23
|
-
需要注意,目前暂不支持动态图 "L1" level 下 primitive op 的溢出检测。
|
|
24
|
-
|
|
25
|
-
## 2 示例代码
|
|
26
|
-
|
|
27
|
-
溢出检测功能使用方式与数据采集任务一致,详见MindSpore 场景的精度数据采集中的["**示例代码**"](./06.data_dump_MindSpore.md#7-示例代码)节。
|
|
28
|
-
|
|
29
|
-
## 3 溢出检测结果文件介绍
|
|
30
|
-
|
|
31
|
-
溢出检测结果文件目录结构与含义与数据采集任务一致,但仅保存溢出 API 或 kernel 的真实数据或统计信息。详见MindSpore 场景的精度数据采集中的["**8. dump 结果文件介绍**"](./06.data_dump_MindSpore.md#8-dump-结果文件介绍)章节。
|
|
32
|
-
|
|
33
|
-
**说明**:在静态图 O2 编译等级下,若 MindSpore 版本为 2.4,或者 MindSpore 版本为 2.5,且未使用编包时添加了`--include-mod=adump`选项的 mindstudio-probe whl 包,则会产生 kernel_graph_overflow_check.json 中间文件,一般情况下无需关注。
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
# PyTorch 场景的数据解析
|
|
2
|
-
|
|
3
|
-
## 1 简介
|
|
4
|
-
|
|
5
|
-
数据解析功能提供命令行交互式界面,提供了更多的结果展示。
|
|
6
|
-
|
|
7
|
-
使用场景:本工具主要用于精度比对前后两次 NPU kernel 层级 dump 数据的一致性。
|
|
8
|
-
|
|
9
|
-
依赖:CANN 包中的 msaccucmp 工具,需要安装 Ascend-CANN-toolkit,详见《[CANN 软件安装指南](https://www.hiascend.com/document/detail/zh/canncommercial/700/envdeployment/instg/instg_0001.html)》。
|
|
10
|
-
|
|
11
|
-
**安全注意事项**: 工具使用时传入的msaccucmp.py文件路径参数请务必确保为CANN中自带的msaccucmp.py原始路径且文件内容未被篡改,工具会在解析数据时直接执行该文件,用户需自行保证该文件内容安全性。
|
|
12
|
-
|
|
13
|
-
## 2 数据解析操作指导
|
|
14
|
-
|
|
15
|
-
### 2.1 进入 parse 交互式界面
|
|
16
|
-
|
|
17
|
-
安装 msprobe 工具后,可以通过使用命令 `msprobe -f pytorch parse` 进入交互式界面,如下所示:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
msprobe -f pytorch parse
|
|
21
|
-
Parse >>>
|
|
22
|
-
```
|
|
23
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
24
|
-
|---------------------------|------------------------------------| -------- |
|
|
25
|
-
| -f 或 --framework | 指定训练框架。pytorch。 | 是 |
|
|
26
|
-
|
|
27
|
-
可在 parse 的界面中执行 Shell 命令,以及如下场景的相关解析命令(详细介绍请参见以下章节。):
|
|
28
|
-
|
|
29
|
-
- 支持指定 kernel 层级算子数据比对。
|
|
30
|
-
- 支持指定 kernel 层级算子数据转换及展示。
|
|
31
|
-
- 支持交互式指定 pkl 文件中 API 对应 dump 数据查看。
|
|
32
|
-
- 支持 API 进行可选层级比对和打印(统计级和像素级)。
|
|
33
|
-
|
|
34
|
-
Ctrl+C 可以退出 parse 交互式界面。
|
|
35
|
-
|
|
36
|
-
### 2.2 kernel 层级算子数据批量转换
|
|
37
|
-
|
|
38
|
-
本功能会将原有待比对 dump 数据目录下的 dump 数据按照算子名和时间戳进行梳理并分类,之后再将 dump 数据转为 npy 文件。
|
|
39
|
-
|
|
40
|
-
输入以下比对命令进行数据转换。
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
cad -m my_dump_path [-out output_path] [-asc msaccucmp_path]
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
47
|
-
|-------------------------| ------------------------------------------------------------ | -------- |
|
|
48
|
-
| -m 或 --my_dump_path | 待转换 kernel dump 数据目录。需要指定到 kernel dump 数据的 deviceid 级目录。 | 是 |
|
|
49
|
-
| -out 或 --output_path | 结果输出目录,须指定已存在的目录,默认为 ./parse_data/acl_batch_convert。未指定时保存在默认路径下,比对结束后会打印 log 提示输出结果存放路径。 | 否 |
|
|
50
|
-
| -asc 或 --msaccucmp_path | 指定 msaccucmp 路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py。 | 否 |
|
|
51
|
-
|
|
52
|
-
**示例代码**:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# 传入待比对数据目录
|
|
56
|
-
Parse >>> cad -m /home/xxx/my_dump_path/20000124003856/0
|
|
57
|
-
# 转换结果打印
|
|
58
|
-
......
|
|
59
|
-
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
60
|
-
# 转换前的dump文件
|
|
61
|
-
│ SrcFile: /home/xxx/my_dump_path/20000124003856/0/272/TransData.trans_TransData_22.112.21.948645536672764 │
|
|
62
|
-
# 转换后的npy文件
|
|
63
|
-
│ - TransData.trans_TransData_22.112.21.948645536672764.output.0.npy │
|
|
64
|
-
│ - TransData.trans_TransData_22.112.21.948645536672764.input.0.npy │
|
|
65
|
-
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
66
|
-
......
|
|
67
|
-
[INFO] The comparison result have been written to "./parse_data/acl_batch_convert".
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**输出结果**:
|
|
71
|
-
|
|
72
|
-
原 dump 数据目录:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
├── /home/xxx/my_dump_path/20000124003856/0/
|
|
76
|
-
│ ├── 272
|
|
77
|
-
│ │ ├── {op_type}.{op_name}.{task_id}.{stream_id}.{timestamp}
|
|
78
|
-
│ │ ...
|
|
79
|
-
│ ├── 512
|
|
80
|
-
│ ...
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
转换后:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
├── ./parse_data/acl_batch_convert/{timestamp}
|
|
87
|
-
│ ├── {op_name1}
|
|
88
|
-
│ │ ├── {timestamp1}
|
|
89
|
-
│ │ | ├── {op_type}.{op_name}.{task_id}.{stream_id}.{timestamp}.{input/output}.{参数序号}.npy
|
|
90
|
-
│ │ | │ ...
|
|
91
|
-
│ │ ├── {timestamp2}
|
|
92
|
-
│ │ | ...
|
|
93
|
-
│ ├── {op_name2}
|
|
94
|
-
│ ├── ...
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### 2.3 kernel 层级算子数据比对
|
|
98
|
-
|
|
99
|
-
本功能主要用于比对前后两次 NPU kernel 层级 dump 数据的一致性,并支持批量比对,比对时需要先将两份待比对的 NPU kernel 层级 dump 数据进行 [kernel 层级算子数据批量转换](#22-kernel-层级算子数据批量转换),可以使两份数据更好的匹配;若直接进行 dump 数据的比对,建议只比对单个 dump 数据文件。
|
|
100
|
-
|
|
101
|
-
输入以下比对命令进行数据比对。
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
vc -m my_dump_path -g golden_dump_path [-out output_path] [-cmp_path msaccucmp_path]
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
108
|
-
|------------------------------| ------------------------------------------------------------ | -------- |
|
|
109
|
-
| -m 或 --my_dump_path | 待比对 kernel dump 数据目录。如果比对单个算子,需要指定到 kernel dump 数据的 model_id 级目录;如果批量比对,则指定到 cad 转换后的 timestamp 级目录。 | 是 |
|
|
110
|
-
| -g 或 --golden_dump_path | 标杆 kernel dump 数据目录。如果比对单个算子,需要指定到 kernel dump 数据的 model_id 级目录;如果批量比对,则指定到 cad 转换后的 timestamp 级目录。 | 是 |
|
|
111
|
-
| -out 或 --output_path | 结果输出目录,须指定已存在的目录,默认为 ./parse_data/acl_batch_compare。未指定时保存在默认路径下,比对结束后会打印 log 提示输出结果存放路径。 | 否 |
|
|
112
|
-
| -cmp_path 或 --msaccucmp_path | 指定 msaccucmp 路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py | 否 |
|
|
113
|
-
|
|
114
|
-
输出结果:`batch_compare_{timestamp}.csv` 文件。
|
|
115
|
-
|
|
116
|
-
**示例代码**:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
# 传入待比对数据目录以及标杆数据目录
|
|
120
|
-
Parse >>> vc -m ./my_dump_path -g ./golden_data_path
|
|
121
|
-
[INFO]Compare result is saved in : parse_data/acl_batch_compare/batch_compare_1707271118.csv
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### 2.3 kernel 算子数据的 npy 转换
|
|
125
|
-
|
|
126
|
-
输入以下转换命令进行数据转换, 将 kernel 级别 dump 数据转为 npy 文件。
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
dc -n file_name/file_path [-f format] [-out output_path]
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
133
|
-
|-------------------------| ------------------------------------------------------------ | -------- |
|
|
134
|
-
| -n 或 --name | 需转换的 dump 数据文件或 dump 数据文件目录。 | 是 |
|
|
135
|
-
| -f 或 --format | 开启 format 转换,指定该参数时需要配置 format 格式。当前内置的 Format 转换支持如下类型:<br/> FRACTAL_NZ 转换 NCHW; <br/>FRACTAL_NZ 转换成 NHWC; <br/>FRACTAL_NZ 转换 ND; <br/>HWCN 转换 FRACTAL_Z; <br/>HWCN 转换成 NCHW; <br/>HWCN 转换成 NHWC; <br/>NC1HWC0 转换成 HWCN; <br/>NC1HWC0 转换成 NCHW; <br/>NC1HWC0 转换成 NHWC; <br/>NCHW 转换成 FRACTAL_Z; <br/>NCHW转换成NHWC; <br/>NHWC转换成FRACTAL_Z;<br/> NHWC转换成HWCN; <br/>NHWC转换成NCHW;<br/>NDC1HWC0转换成NCDHW。 | 否 |
|
|
136
|
-
| -out 或 --output_path | 结果输出目录。 | 否 |
|
|
137
|
-
| -cmp_path 或 --msaccucmp | 指定 msaccucmp 路径,默认路径为:/usr/local/Ascend/ascend-toolkit/latest/tools/operator_cmp/compare/msaccucmp.py | 否 |
|
|
138
|
-
|
|
139
|
-
- 输出结果:npy 文件。
|
|
140
|
-
|
|
141
|
-
- 若指定 -out 参数需要用户传入输出路径,并且路径需要已存在。
|
|
142
|
-
|
|
143
|
-
- 若未指定输出目录, 则比对结束后将结果保存在默认目录 “./parse_data/convert_result” 中,比对结束后会打印 log 提示输出结果存放路径及转换结果。
|
|
144
|
-
|
|
145
|
-
- 输入以下命令,展示 npy 数据统计信息。
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
pt -n file_path
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
152
|
-
|-------------| ------------- | -------- |
|
|
153
|
-
| -n 或 --name | npy 文件路径。 | 是 |
|
|
154
|
-
|
|
155
|
-
打印统计信息:shape, dtype, max, min 和 mean。默认在 npy 文件路径下将该数据保存为 txt 文件。
|
|
156
|
-
|
|
157
|
-
**示例代码1**:
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
# 传入需转换的dump文件目录
|
|
161
|
-
Parse >>> dc -n ./dump_data/
|
|
162
|
-
......
|
|
163
|
-
# 转换结果
|
|
164
|
-
╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
165
|
-
│ SrcFile: ./dump_data/
|
|
166
|
-
│ - Add.fp32_vars_add_2fp32_vars_Relu_9.31.5.1636595794731103.input.0.npy │
|
|
167
|
-
│ - Add.fp32_vars_add_1fp32_vars_Relu_6.24.5.1636595794631347.output.0.npy │
|
|
168
|
-
│ - Add.fp32_vars_add_2fp32_vars_Relu_9.31.5.1636595794731103.input.1.npy │
|
|
169
|
-
│ - Add.fp32_vars_add_1fp32_vars_Relu_6.24.5.1636595794631347.input.1.npy │
|
|
170
|
-
│ - Add.fp32_vars_add_3fp32_vars_Relu_12.40.5.1636595794846124.input.1.npy │
|
|
171
|
-
│ - Add.fp32_vars_add_1fp32_vars_Relu_6.24.5.1636595794631347.input.0.npy │
|
|
172
|
-
│ - Add.fp32_vars_add_3fp32_vars_Relu_12.40.5.1636595794846124.input.0.npy │
|
|
173
|
-
│ - Add.fp32_vars_add_2fp32_vars_Relu_9.31.5.1636595794731103.output.0.npy │
|
|
174
|
-
│ - Add.fp32_vars_add_3fp32_vars_Relu_12.40.5.1636595794846124.output.0.npy │
|
|
175
|
-
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**示例代码2**:
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
# 查看某个dump数据块的数据信息
|
|
182
|
-
# 默认会将数据中的tensor保存成 txt
|
|
183
|
-
Parse >>> pt -n ./parse_data/dump_convert/Add.fp32_vars_add_1fp32_vars_Relu_6.24.5.1636595794631347.output.0.npy
|
|
184
|
-
......
|
|
185
|
-
# 打印统计信息
|
|
186
|
-
[Shape: (1, 16, 56, 56, 16)] [Dtype: float16] [Max: 452.0] [Min: -408.5] [Mean: -3.809]
|
|
187
|
-
Path: ./parse_data/dump_convert/Add.fp32_vars_add_1fp32_vars_Relu_6.24.5.1636595794631347.input.0.npy
|
|
188
|
-
TextFile:./parse_data/dump_convert/Add.fp32_vars_add_1fp32_vars_Relu_6.24.5.1636595794631347.input.0.npy.txt
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### 2.4 dump.json 文件中指定 API 的 dump 数据信息查看(暂不支持)
|
|
192
|
-
|
|
193
|
-
输入以下命令,解析并输出 dump.json 文件中指定 API 的统计信息。
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
pk -f pkl_path -n api_name
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
200
|
-
|-------------| ----------------------- | -------- |
|
|
201
|
-
| -f 或 --file | 指定 dump.json 文件路径。 | 是 |
|
|
202
|
-
| -n 或 --name | 指定 API 名称。 | 是 |
|
|
203
|
-
|
|
204
|
-
- 输出结果:打印统计信息(shape, dtype, max和min mean)。
|
|
205
|
-
- 若 pkl 文件中存在相应的堆栈信息,则会打印堆栈信息。
|
|
206
|
-
|
|
207
|
-
**示例代码**:
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
# 传入pkl文件及api名称
|
|
211
|
-
Parse >>> pk -f ./torch_dump/xxx/rank0/dump.json -n Functional_conv2d_0_forward
|
|
212
|
-
......
|
|
213
|
-
# 打印统计信息及堆栈(pkl文件不包含堆栈则不会打印堆栈)
|
|
214
|
-
|
|
215
|
-
Statistic Info:
|
|
216
|
-
[Functional_conv2d_0_forward_input.0][dtype: torch.float32][shape: [2, 1, 2, 2]][max: 1.576936960220337][min: -0.9757485389709473][mean: 0.4961632490158081]
|
|
217
|
-
[Functional_conv2d_0_forward_input.1][dtype: torch.float32][shape: [2, 1, 2, 2]][max: 0.20064473152160645][min: -0.47102075815200806][mean: -0.20796933770179749]
|
|
218
|
-
[Functional_conv2d_0_forward_input.2][dtype: torch.float32][shape: [2]][max: 0.17380613088607788][min: -0.16853803396224976][mean: 0.0026340484619140625]
|
|
219
|
-
[Functional_conv2d_0_forward_output][dtype: torch.float32][shape: [2, 2, 1, 1]][max: 0.02364911139011383][min: -1.762906551361084][mean: -0.6710853576660156]
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### 2.5 API 可选层级比对
|
|
223
|
-
|
|
224
|
-
输入以下命令, 进行统计级和像素级比对。
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
cn -m my_data*.npy -g golden*.npy [-p num] [-al atol] [-rl rtol]
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
- 统计级比对:对 tensor 整体进行余弦值及相对误差的计算。
|
|
231
|
-
- 像素级比对:对输入的两个 npy 文件进行逐元素比对。若两个 tensor 对应元素的相对误差或绝对误差大于**误差阈值**(-al 和 -rl 配置)则被标记为错误数据。
|
|
232
|
-
|
|
233
|
-
| 参数名称 | 说明 | 是否必选 |
|
|
234
|
-
|-------------------------| ----------------------------------------------- | -------- |
|
|
235
|
-
| -m 或 --my_dump_path | 待比对数据。 | 是 |
|
|
236
|
-
| -g 或 --golden_dump_path | 标杆数据。 | 是 |
|
|
237
|
-
| -p 或 --print | 设置比对结束后打印错误元素的个数,默认值 20。 | 否 |
|
|
238
|
-
| -al 或 --atol | 判定数据存在精度问题的绝对误差阈值,默认 0.001。 | 否 |
|
|
239
|
-
| -rl 或 --rtol | 判定数据存在精度问题的相对误差阈值,默认 0.001。 | 否 |
|
|
240
|
-
| -s 或 --save | 将 npy 文件保存成 txt 文件,用于查看,默认开启。 | 否 |
|
|
241
|
-
|
|
242
|
-
输出结果:
|
|
243
|
-
|
|
244
|
-
- 统计级比对结果。
|
|
245
|
-
- 两个文件的统计信息(shape, dtype, max, min和mean)。
|
|
246
|
-
- 错误数据打印表格。
|
|
247
|
-
|
|
248
|
-
**示例代码**:
|
|
249
|
-
|
|
250
|
-
```bash
|
|
251
|
-
# 对比两个tensor的数据
|
|
252
|
-
Parse >>> cn -m Add.InceptionV3_InceptionV3_Mixed_7a_Branch_0_add_3.323.1619494134703053.output.0.npy -g InceptionV3_InceptionV3_Mixed_7a_Branch_0_add_3.0.1619492699305998.npy -p 10 -s -al 0.002 -rl 0.005
|
|
253
|
-
Error Item Table Top Item Table
|
|
254
|
-
┏━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓ ┏━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
|
|
255
|
-
┃ Index ┃ Left ┃ Right ┃ Diff ┃ ┃ Index ┃ Left ┃ Right ┃ Diff ┃
|
|
256
|
-
┡━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩ ┡━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
|
|
257
|
-
│ 155 │ 0.024600908 │ 0.022271132 │ 0.002329776 │ │ 0 │ -0.9206961 │ -0.9222216 │ 0.0015255213 │
|
|
258
|
-
│ 247 │ 0.015752593 │ 0.017937578 │ 0.0021849852 │ │ 1 │ -0.6416973 │ -0.64051837 │ 0.0011789203 │
|
|
259
|
-
│ 282 │ -0.0101207765 │ -0.007852031 │ 0.0022687456 │ │ 2 │ -0.35383835 │ -0.35433492 │ 0.0004965663 │
|
|
260
|
-
│ 292 │ 0.019581757 │ 0.02240482 │ 0.0028230622 │ │ 3 │ -0.18851271 │ -0.18883198 │ 0.00031927228 │
|
|
261
|
-
│ 640 │ -0.06593232 │ -0.06874806 │ 0.0028157383 │ │ 4 │ -0.43508735 │ -0.43534422 │ 0.00025686622 │
|
|
262
|
-
│ 1420 │ 0.09293677 │ 0.09586689 │ 0.0029301196 │ │ 5 │ 1.4447614 │ 1.4466647 │ 0.0019032955 │
|
|
263
|
-
│ 1462 │ -0.085207745 │ -0.088047795 │ 0.0028400496 │ │ 6 │ -0.3455438 │ -0.3444429 │ 0.0011008978 │
|
|
264
|
-
│ 1891 │ -0.03433288 │ -0.036525503 │ 0.002192624 │ │ 7 │ -0.6560242 │ -0.6564579 │ 0.0004336834 │
|
|
265
|
-
│ 2033 │ 0.06828873 │ 0.07139922 │ 0.0031104907 │ │ 8 │ -2.6964858 │ -2.6975214 │ 0.0010356903 │
|
|
266
|
-
│ 2246 │ -0.06376442 │ -0.06121233 │ 0.002552092 │ │ 9 │ -0.73746175 │ -0.73650354 │ 0.00095820427 │
|
|
267
|
-
└───────┴───────────────┴──────────────┴──────────────┘ └───────┴─────────────┴─────────────┴───────────────┘
|
|
268
|
-
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
269
|
-
│ Left: |
|
|
270
|
-
│ |- NpyFile: ./dump/temp/decode/Add.InceptionV3_InceptionV3_Mixed_7a_Branch_0_add_3.323.1619494134703053.output.0.npy |
|
|
271
|
-
│ |- TxtFile: ./dump/temp/decode/Add.InceptionV3_InceptionV3_Mixed_7a_Branch_0_add_3.323.1619494134703053.output.0.npy.txt |
|
|
272
|
-
│ |- NpySpec: [Shape: (32, 8, 8, 320)] [Dtype: float32] [Max: 5.846897] [Min: -8.368301] [Mean: -0.72565556] |
|
|
273
|
-
│ DstFile: │
|
|
274
|
-
│ |- NpyFile: ./dump/cpu/InceptionV3_InceptionV3_Mixed_7a_Branch_0_add_3.0.1619492699305998.npy |
|
|
275
|
-
│ |- TxtFile: ./dump/cpu/InceptionV3_InceptionV3_Mixed_7a_Branch_0_add_3.0.1619492699305998.npy.txt |
|
|
276
|
-
│ |- NpySpec: [Shape: (32, 8, 8, 320)] [Dtype: float32] [Max: 5.8425903] [Min: -8.374472] [Mean: -0.7256237] │
|
|
277
|
-
│ NumCnt: 655360 │
|
|
278
|
-
│ AllClose: False │
|
|
279
|
-
│ CosSim: 0.99999493 │
|
|
280
|
-
│ ErrorPer: 0.023504638671875 (rl= 0.005, al= 0.002) │
|
|
281
|
-
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
282
|
-
```
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# PyTorch 场景的无标杆比对
|
|
2
|
-
|
|
3
|
-
## 1 简介
|
|
4
|
-
* 本工具的目标是在不依赖标杆数据的情况下,检测模型训练中可能存在的精度问题API级别算子,并提供升精度和tocpu接口快速验证。
|
|
5
|
-
* 工具基于**数值病态分析理论**:对算子的输入增加很小的扰动,从而放大输出值异常现象;检测算子原始输出和扰动后输出间误差是否符合精度标准。
|
|
6
|
-
|
|
7
|
-
* 该工具的**特点**有:
|
|
8
|
-
* 不依赖标杆模型,不需要离线对比;
|
|
9
|
-
* 提供接口,对可疑算子升精度,tocpu进行快速验证。
|
|
10
|
-
* 推荐使用场景(针对**算子精度问题**):
|
|
11
|
-
* **暂无标杆数据**,模型Loss异常,要做精度问题算子排查;
|
|
12
|
-
* **验证可疑算子**,要做进一步确认,验证是否对模型Loss有影响;
|
|
13
|
-
* 低精度模型效果不如高精度,要做精度问题算子排查。
|
|
14
|
-
* 该工具的约束
|
|
15
|
-
* 仅支持Pytorch2.x场景;
|
|
16
|
-
* 推荐限定算子范围使用(白名单,或脚本中工具启用范围),算子范围越大,性能和显存损耗越大;详情见[无标杆比对功能在 PyTorch 场景的性能基线报告](./S02.report_free_benchmarking_validation_performance_baseline.md)
|
|
17
|
-
|
|
18
|
-
## 2 工具实现原理
|
|
19
|
-
1. **扰动算子白名单**:根据算子名识别需要插桩算子范围。
|
|
20
|
-
2. **扰动因子**:基于torch.nn.Module的hook机制,在注册的hook函数中对算子输入进行特定类型扰动。
|
|
21
|
-
3. **误差分析**:
|
|
22
|
-
* **check**: 在hook函数中二次执行算子得到扰动后的算子输出,计算扰动后输出与原始输出的相对误差,查看是否符合精度标准;
|
|
23
|
-
* **fix**: 需要做验证时,可以选择将特定扰动类型(升精度,to cpu)的输出替换原始输出,观察对模型Loss是否有影响。
|
|
24
|
-
4. **精度风险算子**:不达标精度标准的,最终会在输出件中展示
|
|
25
|
-
|
|
26
|
-

|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## 3 操作指导
|
|
30
|
-
|
|
31
|
-
```mermaid
|
|
32
|
-
flowchart LR
|
|
33
|
-
A0[安装msprobe工具]
|
|
34
|
-
subgraph config.json配置
|
|
35
|
-
A1[确定插桩范围]
|
|
36
|
-
A2[选择扰动因子]
|
|
37
|
-
A3[选择处理方式]
|
|
38
|
-
A1-->A2
|
|
39
|
-
A2-->A3
|
|
40
|
-
end
|
|
41
|
-
B(在模型脚本中开启工具)
|
|
42
|
-
C(启动模型训练)
|
|
43
|
-
D(查看精度风险算子\n观察模型loss曲线)
|
|
44
|
-
|
|
45
|
-
A0-->
|
|
46
|
-
config.json配置-->B
|
|
47
|
-
B-->C
|
|
48
|
-
C-->D
|
|
49
|
-
D-->config.json配置
|
|
50
|
-
```
|
|
51
|
-
工具的推荐使用思路是:
|
|
52
|
-
|
|
53
|
-
1. 配置config.json开启精度风险算子的排查;
|
|
54
|
-
2. 根据精度风险算子输出件,修改config.json开启验证功能,观察模型loss曲线是否改善。
|
|
55
|
-
|
|
56
|
-
### 3.1 安装msprobe工具
|
|
57
|
-
参照[msprobe安装](./01.installation.md)
|
|
58
|
-
### 3.2 config.json配置
|
|
59
|
-
修改[config.json](../config.json) 的task类型为"**free_benchmark**"开启无标杆功能。支持的配置项详见[配置文件介绍](./02.config_introduction.md),默认配置如下:
|
|
60
|
-
```json
|
|
61
|
-
{
|
|
62
|
-
"task": "free_benchmark",
|
|
63
|
-
"dump_path": "./dump_path",
|
|
64
|
-
"rank": [],
|
|
65
|
-
"step": [],
|
|
66
|
-
"level": "L1",
|
|
67
|
-
|
|
68
|
-
"free_benchmark": {
|
|
69
|
-
"scope": [],
|
|
70
|
-
"list": [],
|
|
71
|
-
"fuzz_device": "npu",
|
|
72
|
-
"pert_mode": "improve_precision",
|
|
73
|
-
"handler_type": "check",
|
|
74
|
-
"fuzz_level": "L1",
|
|
75
|
-
"fuzz_stage": "forward",
|
|
76
|
-
"if_preheat": false,
|
|
77
|
-
"preheat_step": 15,
|
|
78
|
-
"max_sample": 20
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
用户需根据自己的使用场景,对[工具实现原理](#2-工具实现原理)中几个关键步骤进行配置。
|
|
83
|
-
#### 3.2.1 扰动算子白名单(确定插桩范围)
|
|
84
|
-
|
|
85
|
-
<table>
|
|
86
|
-
<tr><th>参数</th><th>是否必选</th><th>可配置项</th><th>适用场景</th></tr>
|
|
87
|
-
<tr><td>scope</td><td>否</td><td>自定义</td><td>需要通过指定算子名来限制算子插桩范围 如:["Torch.matmul.0.forward", "Tensor.pow.4.forward"]。</td></tr>
|
|
88
|
-
<tr><td>list</td><td>否</td><td>自定义</td><td>需要通过指定算子类型来限制算子插桩范围 如:["relu"] 会匹配所有算子名中包含relu的算子。</td></tr>
|
|
89
|
-
<tr><td rowspan="2">fuzz_stage</td><td rowspan="2">否</td><td>"forward"(默认)</td><td>需要进行算子<b>前向</b>计算的精度问题排查或<b>验证可疑算子。</b></td></tr>
|
|
90
|
-
<tr><td>"backward"</td><td>需要进行算子<b>反向</b>计算的精度问题排查,不支持仅反向验证,前向验证包括反向。必须设置list参数指定需要检测的算子(详见3.2 config.json配置章节), 指定的算子会暂存前向激活值,增加内存的占用。</td><td></td></tr>
|
|
91
|
-
</table>
|
|
92
|
-
|
|
93
|
-
#### 3.2.2 选择扰动因子
|
|
94
|
-
|
|
95
|
-
<table>
|
|
96
|
-
<tr><th>参数</th><th>是否必选</th><th>可配置项</th><th>适用场景</th></tr>
|
|
97
|
-
<tr><td rowspan="6">pert_mode</td><td rowspan="6">否</td><td>"improve_precision" (默认)</td><td>(常用)(可做验证) 插桩算子可能在<b>低精度</b>下有精度问题,扰动因子会将输入的低精度向量升精度。</td></tr>
|
|
98
|
-
<tr><td>"bit_noise"</td><td>(常用)插桩算子可能在<b>轻微扰动</b>下暴露精度问题,扰动因子会将输入向量最后一个比特位翻转。</td></tr>
|
|
99
|
-
<tr><td>"add_noise"</td><td>插桩算子可能在<b>轻微扰动</b>下暴露精度问题,扰动因子会为输入向量增加一个极小值。</td></tr>
|
|
100
|
-
<tr><td>"change_value"</td><td>插桩算子可能存在<b>大数吃小数</b>问题,扰动因子会交换输入向量的首尾值。</td></tr>
|
|
101
|
-
<tr><td>"no_change"</td><td>插桩算子可能存在<b>数值稳定性</b>精度问题,扰动因子会复制原始输入。</td></tr>
|
|
102
|
-
<tr><td>"to_cpu"</td><td>(可做验证) 插桩算子可能在<b>同 CPU </b>精度表现不一致,扰动因子会将输入转至 CPU,需要配合 fuzz_device="cpu"使用。</td></tr>
|
|
103
|
-
<tr><td rowspan="2">fuzz_device</td><td rowspan="2">否</td><td>"npu" (默认)</td><td>pert_mode 不需要to cpu操作。</td></tr>
|
|
104
|
-
<tr><td>"cpu"</td><td>pert_mode 须配置为"to_cpu",目前仅支持"to cpu"扰动因子。</td></tr>
|
|
105
|
-
</table>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
#### 3.2.3 选择处理方式
|
|
109
|
-
|
|
110
|
-
<table>
|
|
111
|
-
<tr><th>参数</th><th>是否必选</th><th>可配置项</th><th>适用场景</th></tr>
|
|
112
|
-
<tr><td rowspan="2">handler_type</td><td rowspan="2">否</td><td>"check"(默认)</td><td>要做精度问题算子排查,输出扰动前后不符合精度标准的算子,支持所有扰动因子。</td></tr>
|
|
113
|
-
<tr><td>"fix"</td><td>要做可疑算子验证,用扰动后输出替换原始输出,支持"improve_precision","to_cpu"两种扰动因子。</td></tr>
|
|
114
|
-
</table>
|
|
115
|
-
|
|
116
|
-
### 3.3 在模型脚本中开启工具
|
|
117
|
-
|
|
118
|
-
通过PrecisionDebugger统一入口开启工具,示例如下:
|
|
119
|
-
|
|
120
|
-
```python
|
|
121
|
-
from msprobe.pytorch import PrecisionDebugger
|
|
122
|
-
|
|
123
|
-
debugger = PrecisionDebugger(config_path='./config.json')
|
|
124
|
-
...
|
|
125
|
-
debugger.start() # 一般在训练循环开头启动工具
|
|
126
|
-
... # 循环体
|
|
127
|
-
debugger.stop() # 一般在训练循环末尾结束工具
|
|
128
|
-
debugger.step() # 在训练循环的最后需要重置工具,非循环场景不需要
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### 3.4 启动模型训练
|
|
132
|
-
训练过程中出现以下日志,可以检查工具是否正常使用。
|
|
133
|
-
|
|
134
|
-
<table>
|
|
135
|
-
<tr><th>日志级别</th><th>日志内容</th><th>检查说明</th></tr>
|
|
136
|
-
<tr><td rowspan="3">INFO</td><td>[msprobe] Free Benchmark: Perturbation is {扰动因子} of {算子名}.</td><td>扰动因子与配置相符,算子名在插桩范围内。</td></tr>
|
|
137
|
-
<tr><td>[msprobe] Free Benchmark: For {算子名},{原因}. Cancel perturbation.</td><td>算子名在插桩范围内,但当前算子由于{原因}不支持添加扰动。</td></tr>
|
|
138
|
-
<tr><td>[msprobe] Free benchmark: preheat sample in step {step} api_name {算子名} curr_called_seq: {当前采样数}/{总采样数}"</td><td>仅开启预热,算子名在插桩范围内,在当前step的采样情况。</td></tr>
|
|
139
|
-
<tr><td>WARNING</td><td>[msprobe] Free benchmark: 无标杆工具不支持当前算子的输入类型 {算子名}.</td><td>算子名在插桩范围内,但当前算子没有可操作的输入(不存在Tensor,list类型等)。</td></tr>
|
|
140
|
-
</table>
|
|
141
|
-
|
|
142
|
-
其余日志均说明当前算子未能正常添加扰动,请检查日志信息判断是否更换扰动因子或不考虑当前算子结果。
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
### 3.5 查看精度风险算子
|
|
146
|
-
|
|
147
|
-
check模式下,无标杆比对在dump_path目录下将扰动前后不符合精度标准的结果输出在文件 free_benchmark.csv,如下示例:
|
|
148
|
-
|
|
149
|
-

|
|
150
|
-
|
|
151
|
-
| 字段 | 说明 |
|
|
152
|
-
| ------------ | ---------------------------------------------------------------------------------------- |
|
|
153
|
-
| rank | Rank ID,int 类型。 |
|
|
154
|
-
| pert_mode | 扰动因子的类型,string 类型。 |
|
|
155
|
-
| stage | 前向或反向,string 类型。 |
|
|
156
|
-
| step | 迭代数,int 类型。 |
|
|
157
|
-
| api_name | API 名称,string 类型。 |
|
|
158
|
-
| max_rel | 输出对比最大相对误差,float 类型。 |
|
|
159
|
-
| dtype | 输入的 dtype,string 类型。 |
|
|
160
|
-
| shape | 输入的 shape,tuple 类型。 |
|
|
161
|
-
| output_index | 如果输出为列表或元组,其中一个元素检测不一致,则会有该元素的 index,否则为空,int 类型。 |
|
|
162
|
-
|
|
163
|
-
无标杆根据参照的精度标准如下:
|
|
164
|
-
| 输出dtype | 相对误差阈值 |
|
|
165
|
-
| -------------- | ------------ |
|
|
166
|
-
| torch.float16 | 0.002 |
|
|
167
|
-
| torch.bfloat16 | 0.004 |
|
|
168
|
-
| torch.float32 | 0.0002 |
|
|
169
|
-
| 其他 | 0.0002 |
|