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.
Files changed (689) hide show
  1. {mindstudio_probe-8.3.2.dist-info → mindstudio_probe-26.0.0a1.dist-info}/METADATA +26 -14
  2. mindstudio_probe-26.0.0a1.dist-info/RECORD +498 -0
  3. {mindstudio_probe-8.3.2.dist-info → mindstudio_probe-26.0.0a1.dist-info}/WHEEL +1 -1
  4. mindstudio_probe-26.0.0a1.dist-info/entry_points.txt +5 -0
  5. mindstudio_probe-26.0.0a1.dist-info/licenses/LICENSE +124 -0
  6. mindstudio_probe-26.0.0a1.dist-info/top_level.txt +2 -0
  7. msprobe/__init__.py +12 -13
  8. msprobe/config.json +9 -31
  9. msprobe/core/__init__.py +12 -11
  10. msprobe/core/acc_check/acc_check_cli.py +145 -0
  11. msprobe/core/common/const.py +97 -38
  12. msprobe/core/common/db_manager.py +133 -12
  13. msprobe/core/common/decorator.py +12 -11
  14. msprobe/core/common/exceptions.py +12 -11
  15. msprobe/core/common/file_utils.py +101 -25
  16. msprobe/core/common/framework_adapter.py +36 -25
  17. msprobe/core/common/global_lock.py +12 -11
  18. msprobe/core/common/inplace_op_checker.py +12 -11
  19. msprobe/core/common/log.py +22 -11
  20. msprobe/core/common/megatron_utils.py +566 -11
  21. msprobe/core/common/parallel_state.py +12 -11
  22. msprobe/core/common/runtime.py +12 -11
  23. msprobe/core/common/utils.py +41 -41
  24. msprobe/core/compare/acc_compare.py +361 -104
  25. msprobe/core/compare/atb_data_compare.py +422 -0
  26. msprobe/core/compare/auto_compare.py +134 -0
  27. msprobe/core/compare/check.py +14 -17
  28. msprobe/core/compare/compare_cli.py +72 -149
  29. msprobe/core/compare/config.py +12 -13
  30. msprobe/core/compare/diff_analyze/first_diff_analyze.py +28 -15
  31. msprobe/core/compare/diff_analyze/ignore_op_list.yaml +3 -0
  32. msprobe/core/compare/find_first/analyzer.py +18 -18
  33. msprobe/core/compare/find_first/graph.py +12 -11
  34. msprobe/core/compare/find_first/utils.py +13 -12
  35. msprobe/core/compare/indicator_analysis/__init__.py +15 -0
  36. msprobe/core/compare/indicator_analysis/algorithm.py +363 -0
  37. msprobe/core/compare/indicator_analysis/api_data.py +141 -0
  38. msprobe/core/compare/indicator_analysis/calculator.py +181 -0
  39. msprobe/core/compare/indicator_analysis/utils.py +116 -0
  40. msprobe/core/compare/layer_mapping/__init__.py +12 -11
  41. msprobe/core/compare/layer_mapping/data_scope_parser.py +20 -11
  42. msprobe/core/compare/layer_mapping/layer_mapping.py +14 -13
  43. msprobe/core/compare/layer_mapping/postprocess_pass.py +13 -11
  44. msprobe/core/compare/merge_result/merge_result.py +12 -11
  45. msprobe/core/compare/merge_result/merge_result_cli.py +12 -11
  46. msprobe/core/compare/merge_result/utils.py +12 -11
  47. msprobe/core/compare/multiprocessing_compute.py +13 -14
  48. msprobe/core/compare/npy_compare.py +13 -11
  49. msprobe/core/compare/offline_data_compare.py +160 -0
  50. msprobe/core/compare/stats_diff_calc.py +39 -0
  51. msprobe/core/compare/torchair_acc_cmp.py +764 -0
  52. msprobe/core/compare/torchair_cmp_utils.py +338 -0
  53. msprobe/core/compare/utils.py +140 -49
  54. msprobe/core/config_check/__init__.py +12 -11
  55. msprobe/core/config_check/checkers/__init__.py +12 -11
  56. msprobe/core/config_check/checkers/base_checker.py +15 -14
  57. msprobe/core/config_check/checkers/dataset_checker.py +13 -12
  58. msprobe/core/config_check/checkers/env_args_checker.py +13 -12
  59. msprobe/core/config_check/checkers/hyperparameter_checker.py +16 -15
  60. msprobe/core/config_check/checkers/pip_checker.py +15 -15
  61. msprobe/core/config_check/checkers/random_checker.py +13 -12
  62. msprobe/core/config_check/checkers/weights_checker.py +14 -12
  63. msprobe/core/config_check/ckpt_compare/ckpt_comparator.py +13 -17
  64. msprobe/core/config_check/ckpt_compare/megatron_loader.py +13 -12
  65. msprobe/core/config_check/ckpt_compare/metrics.py +12 -11
  66. msprobe/core/config_check/config_check_cli.py +18 -17
  67. msprobe/core/config_check/config_checker.py +16 -14
  68. msprobe/core/config_check/resource/dependency.yaml +15 -12
  69. msprobe/core/config_check/resource/env.yaml +12 -11
  70. msprobe/core/config_check/utils/hyperparameter_parser.py +12 -11
  71. msprobe/core/config_check/utils/utils.py +12 -11
  72. msprobe/core/{data_dump → dump/api_dump}/api_registry.py +12 -11
  73. msprobe/core/{common_config.py → dump/common_config.py} +13 -24
  74. msprobe/core/dump/data_dump/data_collector.py +257 -0
  75. msprobe/core/{data_dump → dump/data_dump}/data_processor/base.py +45 -36
  76. msprobe/core/{data_dump → dump/data_dump}/data_processor/factory.py +33 -25
  77. msprobe/core/{data_dump → dump/data_dump}/data_processor/mindspore_processor.py +37 -113
  78. msprobe/core/{data_dump → dump/data_dump}/data_processor/pytorch_processor.py +364 -131
  79. msprobe/core/{data_dump → dump/data_dump}/json_writer.py +24 -31
  80. msprobe/core/{data_dump → dump/data_dump}/scope.py +12 -13
  81. msprobe/core/{debugger → dump/debugger}/precision_debugger.py +15 -23
  82. msprobe/core/dump/dump2db/db_utils.py +215 -0
  83. msprobe/core/dump/dump2db/dump2db.py +409 -0
  84. msprobe/core/{hook_manager.py → dump/hook_manager.py} +38 -87
  85. msprobe/core/dump/kernel_dump/kernel_config.py +34 -0
  86. msprobe/core/{service.py → dump/service.py} +43 -27
  87. msprobe/core/install_deps/install_deps.py +51 -0
  88. msprobe/core/monitor/anomaly_processor.py +13 -11
  89. msprobe/core/monitor/csv2db.py +73 -93
  90. msprobe/core/monitor/db_utils.py +140 -205
  91. msprobe/core/monitor/utils.py +18 -17
  92. msprobe/core/monitor_v2/__init__.py +20 -0
  93. msprobe/core/monitor_v2/base.py +83 -0
  94. msprobe/core/monitor_v2/cc.py +287 -0
  95. msprobe/core/monitor_v2/factory.py +81 -0
  96. msprobe/core/monitor_v2/module.py +201 -0
  97. msprobe/core/monitor_v2/optimizer.py +245 -0
  98. msprobe/core/monitor_v2/param.py +154 -0
  99. msprobe/core/monitor_v2/trainer.py +326 -0
  100. msprobe/core/monitor_v2/utils.py +122 -0
  101. msprobe/core/monitor_v2/weight_grad.py +419 -0
  102. msprobe/core/monitor_v2/writer.py +162 -0
  103. msprobe/core/overflow_check/abnormal_scene.py +12 -11
  104. msprobe/core/overflow_check/api_info.py +12 -11
  105. msprobe/core/overflow_check/checker.py +12 -11
  106. msprobe/core/overflow_check/filter.py +13 -11
  107. msprobe/core/overflow_check/level.py +12 -11
  108. msprobe/core/overflow_check/utils.py +12 -11
  109. msprobe/core/single_save/single_comparator.py +12 -11
  110. msprobe/core/single_save/single_saver.py +12 -11
  111. msprobe/infer/__init__.py +16 -0
  112. msprobe/infer/offline/__init__.py +16 -0
  113. msprobe/infer/offline/compare/__init__.py +16 -0
  114. msprobe/infer/offline/compare/msquickcmp/__init__.py +16 -0
  115. msprobe/infer/offline/compare/msquickcmp/adapter_cli/__init__.py +16 -0
  116. msprobe/infer/offline/compare/msquickcmp/adapter_cli/args_adapter.py +46 -0
  117. msprobe/infer/offline/compare/msquickcmp/atc/__init__.py +16 -0
  118. msprobe/infer/offline/compare/msquickcmp/atc/atc_utils.py +98 -0
  119. msprobe/infer/offline/compare/msquickcmp/cmp_process.py +328 -0
  120. msprobe/infer/offline/compare/msquickcmp/common/__init__.py +16 -0
  121. msprobe/infer/offline/compare/msquickcmp/common/args_check.py +112 -0
  122. msprobe/infer/offline/compare/msquickcmp/common/convert.py +74 -0
  123. msprobe/infer/offline/compare/msquickcmp/common/dump_data.py +121 -0
  124. msprobe/infer/offline/compare/msquickcmp/common/dynamic_argument_bean.py +39 -0
  125. msprobe/infer/offline/compare/msquickcmp/common/utils.py +669 -0
  126. msprobe/infer/offline/compare/msquickcmp/config.ini +6 -0
  127. msprobe/infer/offline/compare/msquickcmp/dump/__init__.py +16 -0
  128. msprobe/infer/offline/compare/msquickcmp/dump/args_adapter.py +50 -0
  129. msprobe/infer/offline/compare/msquickcmp/dump/dump_process.py +91 -0
  130. msprobe/infer/offline/compare/msquickcmp/install_aclruntime_aisbench.sh +180 -0
  131. msprobe/infer/offline/compare/msquickcmp/main.py +199 -0
  132. msprobe/infer/offline/compare/msquickcmp/net_compare/__init__.py +16 -0
  133. msprobe/infer/offline/compare/msquickcmp/net_compare/net_compare.py +277 -0
  134. msprobe/infer/offline/compare/msquickcmp/npu/__init__.py +16 -0
  135. msprobe/infer/offline/compare/msquickcmp/npu/npu_dump_data.py +558 -0
  136. msprobe/infer/offline/compare/msquickcmp/npu/om_parser.py +416 -0
  137. msprobe/infer/offline/compare/msquickcmp/onnx_model/__init__.py +16 -0
  138. msprobe/infer/offline/compare/msquickcmp/onnx_model/onnx_dump_data.py +374 -0
  139. msprobe/infer/utils/__init__.py +15 -0
  140. msprobe/infer/utils/acc_cmp.py +94 -0
  141. msprobe/infer/utils/check/__init__.py +37 -0
  142. msprobe/infer/utils/check/args_checker.py +35 -0
  143. msprobe/infer/utils/check/checker.py +227 -0
  144. msprobe/infer/utils/check/dict_checker.py +78 -0
  145. msprobe/infer/utils/check/func_wrapper.py +96 -0
  146. msprobe/infer/utils/check/list_checker.py +56 -0
  147. msprobe/infer/utils/check/number_checker.py +64 -0
  148. msprobe/infer/utils/check/obj_checker.py +41 -0
  149. msprobe/infer/utils/check/path_checker.py +249 -0
  150. msprobe/infer/utils/check/rule.py +126 -0
  151. msprobe/infer/utils/check/string_checker.py +66 -0
  152. msprobe/infer/utils/cmp_algorithm.py +261 -0
  153. msprobe/infer/utils/constants.py +112 -0
  154. msprobe/infer/utils/file_open_check.py +337 -0
  155. msprobe/infer/utils/util.py +177 -0
  156. msprobe/mindspore/__init__.py +14 -13
  157. msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +14 -13
  158. msprobe/mindspore/api_accuracy_checker/api_info.py +12 -11
  159. msprobe/mindspore/api_accuracy_checker/api_runner.py +12 -11
  160. msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py +12 -11
  161. msprobe/mindspore/api_accuracy_checker/bench_functions/flash_attention_score.py +12 -11
  162. msprobe/mindspore/api_accuracy_checker/bench_functions/fusion_operator.py +12 -11
  163. msprobe/mindspore/api_accuracy_checker/checker_support_api.yaml +12 -11
  164. msprobe/mindspore/api_accuracy_checker/cmd_parser.py +15 -14
  165. msprobe/mindspore/api_accuracy_checker/compute_element.py +12 -11
  166. msprobe/mindspore/api_accuracy_checker/data_manager.py +13 -11
  167. msprobe/mindspore/api_accuracy_checker/main.py +12 -11
  168. msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py +14 -12
  169. msprobe/mindspore/api_accuracy_checker/multi_data_manager.py +13 -11
  170. msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py +12 -11
  171. msprobe/mindspore/api_accuracy_checker/type_mapping.py +12 -11
  172. msprobe/mindspore/api_accuracy_checker/utils.py +12 -11
  173. msprobe/mindspore/common/const.py +15 -74
  174. msprobe/mindspore/common/log.py +12 -11
  175. msprobe/mindspore/common/utils.py +30 -15
  176. msprobe/mindspore/compare/common_dir_compare.py +21 -23
  177. msprobe/mindspore/compare/distributed_compare.py +18 -16
  178. msprobe/mindspore/compare/ms_compare.py +14 -14
  179. msprobe/mindspore/compare/ms_graph_compare.py +26 -20
  180. msprobe/mindspore/compare/utils.py +14 -12
  181. msprobe/mindspore/{cell_processor.py → dump/cell_processor.py} +15 -14
  182. msprobe/mindspore/{debugger → dump/debugger}/debugger_config.py +12 -30
  183. msprobe/mindspore/{debugger → dump/debugger}/precision_debugger.py +43 -45
  184. msprobe/mindspore/dump/{cell_dump_process.py → dump_processor/cell_dump_process.py} +31 -17
  185. msprobe/mindspore/dump/{cell_dump_with_insert_gradient.py → dump_processor/cell_dump_with_insert_gradient.py} +18 -14
  186. msprobe/mindspore/dump/{dump_tool_factory.py → dump_processor/dump_tool_factory.py} +16 -15
  187. msprobe/mindspore/dump/{graph_mode_cell_dump.py → dump_processor/graph_mode_cell_dump.py} +16 -15
  188. msprobe/mindspore/dump/{graph_tensor_dump.py → dump_processor/graph_tensor_dump.py} +134 -133
  189. msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/api_register.py +15 -14
  190. msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/hook_cell.py +12 -11
  191. msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/ms_hook_manager.py +47 -20
  192. msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/primitive_hooks.py +14 -13
  193. msprobe/mindspore/dump/{hook_cell → dump_processor/hook_cell}/support_wrap_ops.yaml +13 -11
  194. msprobe/mindspore/dump/{jit_dump.py → dump_processor/jit_dump.py} +14 -13
  195. msprobe/mindspore/dump/{kernel_graph_dump.py → dump_processor/kernel_graph_dump.py} +13 -12
  196. msprobe/mindspore/dump/{kernel_kbyk_dump.py → dump_processor/kernel_kbyk_dump.py} +13 -12
  197. msprobe/mindspore/{exception_dump → dump/exception_dump}/exception_dump_tool_factory.py +14 -13
  198. msprobe/mindspore/{exception_dump → dump/exception_dump}/kernel_graph_exception_dump.py +13 -12
  199. msprobe/mindspore/{mindspore_service.py → dump/mindspore_service.py} +18 -17
  200. msprobe/mindspore/dump/mindtorch/__init__.py +19 -0
  201. msprobe/mindspore/dump/ms_config.py +105 -0
  202. msprobe/mindspore/{overflow_check → dump/overflow_check}/kernel_graph_overflow_check.py +13 -12
  203. msprobe/mindspore/{overflow_check → dump/overflow_check}/overflow_check_tool_factory.py +14 -13
  204. msprobe/mindspore/dump/task_handler_factory.py +43 -0
  205. msprobe/mindspore/monitor/common_func.py +12 -11
  206. msprobe/mindspore/monitor/data_writers.py +12 -11
  207. msprobe/mindspore/monitor/distributed/wrap_distributed.py +93 -39
  208. msprobe/mindspore/monitor/features.py +12 -11
  209. msprobe/mindspore/monitor/module_hook.py +19 -22
  210. msprobe/mindspore/monitor/optimizer_collect.py +29 -25
  211. msprobe/mindspore/monitor/utils.py +13 -11
  212. msprobe/msaccucmp/advisor/__init__.py +16 -0
  213. msprobe/msaccucmp/advisor/advisor_const.py +65 -0
  214. msprobe/msaccucmp/advisor/advisor_result.py +73 -0
  215. msprobe/msaccucmp/advisor/compare_advisor.py +99 -0
  216. msprobe/msaccucmp/advisor/input_advisor.py +66 -0
  217. msprobe/msaccucmp/advisor/node_advisor.py +68 -0
  218. msprobe/msaccucmp/advisor/overflow_advisor.py +58 -0
  219. msprobe/msaccucmp/algorithm_manager/__init__.py +16 -0
  220. msprobe/msaccucmp/algorithm_manager/algorithm_manager.py +464 -0
  221. msprobe/msaccucmp/algorithm_manager/algorithm_parameter.py +42 -0
  222. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_AccumulatedRelativeError.py +46 -0
  223. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_CosineSimilarity.py +58 -0
  224. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_KullbackLeiblerDivergence.py +84 -0
  225. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MaxAbsoluteError.py +41 -0
  226. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MaxRelativeError.py +46 -0
  227. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MeanAbsoluteError.py +41 -0
  228. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_MeanRelativeError.py +46 -0
  229. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_RelativeEuclideanDistance.py +46 -0
  230. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_RootMeanSquareError.py +40 -0
  231. msprobe/msaccucmp/algorithm_manager/builtin_algorithm/alg_StandardDeviation.py +47 -0
  232. msprobe/msaccucmp/cmp_utils/__init__.py +16 -0
  233. msprobe/msaccucmp/cmp_utils/common.py +113 -0
  234. msprobe/msaccucmp/cmp_utils/constant/__init__.py +16 -0
  235. msprobe/msaccucmp/cmp_utils/constant/compare_error.py +81 -0
  236. msprobe/msaccucmp/cmp_utils/constant/const_manager.py +530 -0
  237. msprobe/msaccucmp/cmp_utils/file_utils.py +497 -0
  238. msprobe/msaccucmp/cmp_utils/log.py +257 -0
  239. msprobe/msaccucmp/cmp_utils/multi_process/__init__.py +16 -0
  240. msprobe/msaccucmp/cmp_utils/multi_process/multi_convert_process.py +140 -0
  241. msprobe/msaccucmp/cmp_utils/multi_process/progress.py +78 -0
  242. msprobe/msaccucmp/cmp_utils/path_check.py +274 -0
  243. msprobe/msaccucmp/cmp_utils/reg_manager.py +98 -0
  244. msprobe/msaccucmp/cmp_utils/tlv_parse.py +279 -0
  245. msprobe/msaccucmp/cmp_utils/utils.py +356 -0
  246. msprobe/msaccucmp/cmp_utils/utils_type.py +63 -0
  247. msprobe/msaccucmp/compare_vector.py +48 -0
  248. msprobe/msaccucmp/conversion/__init__.py +16 -0
  249. msprobe/msaccucmp/conversion/data_conversion.py +277 -0
  250. msprobe/msaccucmp/conversion/dtype_conversion.py +99 -0
  251. msprobe/msaccucmp/conversion/shape_format_conversion.py +477 -0
  252. msprobe/msaccucmp/conversion/tensor_conversion.py +369 -0
  253. msprobe/msaccucmp/dump_data_conversion.py +46 -0
  254. msprobe/msaccucmp/dump_parse/__init__.py +16 -0
  255. msprobe/msaccucmp/dump_parse/big_dump_data.py +317 -0
  256. msprobe/msaccucmp/dump_parse/dump.py +423 -0
  257. msprobe/msaccucmp/dump_parse/dump_data_object.py +322 -0
  258. msprobe/msaccucmp/dump_parse/dump_data_parser.py +436 -0
  259. msprobe/msaccucmp/dump_parse/dump_utils.py +246 -0
  260. msprobe/msaccucmp/dump_parse/ffts_parser.py +137 -0
  261. msprobe/msaccucmp/dump_parse/mapping.py +62 -0
  262. msprobe/msaccucmp/dump_parse/nano_dump_data.py +392 -0
  263. msprobe/msaccucmp/dump_parse/proto_dump_data.py +308 -0
  264. msprobe/msaccucmp/dump_parser.py +90 -0
  265. msprobe/msaccucmp/format_manager/__init__.py +16 -0
  266. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_NZ_to_NCHW.py +53 -0
  267. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_NZ_to_ND.py +52 -0
  268. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_NZ_to_NHWC.py +53 -0
  269. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_Z_to_HWCN.py +47 -0
  270. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_FRACTAL_Z_to_NCHW.py +47 -0
  271. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_HWCN_to_FRACTAL_Z.py +89 -0
  272. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_HWCN_to_NCHW.py +37 -0
  273. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_HWCN_to_NHWC.py +37 -0
  274. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NC1HWC0_to_HWCN.py +43 -0
  275. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NC1HWC0_to_NCHW.py +48 -0
  276. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NC1HWC0_to_NHWC.py +43 -0
  277. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NCHW_to_FRACTAL_Z.py +87 -0
  278. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NCHW_to_NHWC.py +37 -0
  279. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NDC1HWC0_to_NCDHW.py +48 -0
  280. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NDC1HWC0_to_ND.py +44 -0
  281. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NHWC_to_FRACTAL_Z.py +87 -0
  282. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NHWC_to_HWCN.py +37 -0
  283. msprobe/msaccucmp/format_manager/builtin_format_convert/convert_NHWC_to_NCHW.py +37 -0
  284. msprobe/msaccucmp/format_manager/format_manager.py +307 -0
  285. msprobe/msaccucmp/inplace_layer_process.py +186 -0
  286. msprobe/msaccucmp/msaccucmp.py +532 -0
  287. msprobe/msaccucmp/mscmp_advisor.py +128 -0
  288. msprobe/msaccucmp/overflow/__init__.py +16 -0
  289. msprobe/msaccucmp/overflow/overflow_analyse.py +305 -0
  290. msprobe/msaccucmp/overflow/overflow_detection.py +143 -0
  291. msprobe/msaccucmp/pytorch_cmp/__init__.py +16 -0
  292. msprobe/msaccucmp/pytorch_cmp/compare_pytorch.py +389 -0
  293. msprobe/msaccucmp/pytorch_cmp/hdf5_parser.py +377 -0
  294. msprobe/msaccucmp/pytorch_cmp/pytorch_dump_data.py +461 -0
  295. msprobe/msaccucmp/shape_conversion.py +41 -0
  296. msprobe/msaccucmp/vector_cmp/__init__.py +16 -0
  297. msprobe/msaccucmp/vector_cmp/batch_compare.py +197 -0
  298. msprobe/msaccucmp/vector_cmp/compare_detail/__init__.py +16 -0
  299. msprobe/msaccucmp/vector_cmp/compare_detail/compare_detail.py +245 -0
  300. msprobe/msaccucmp/vector_cmp/compare_detail/detail.py +182 -0
  301. msprobe/msaccucmp/vector_cmp/compare_detail/detail_writer.py +580 -0
  302. msprobe/msaccucmp/vector_cmp/fusion_manager/__init__.py +16 -0
  303. msprobe/msaccucmp/vector_cmp/fusion_manager/compare_fusion_op.py +588 -0
  304. msprobe/msaccucmp/vector_cmp/fusion_manager/compare_npu_vs_npu.py +339 -0
  305. msprobe/msaccucmp/vector_cmp/fusion_manager/compare_result.py +326 -0
  306. msprobe/msaccucmp/vector_cmp/fusion_manager/compare_rule.py +156 -0
  307. msprobe/msaccucmp/vector_cmp/fusion_manager/fusion_op.py +204 -0
  308. msprobe/msaccucmp/vector_cmp/fusion_manager/fusion_rule_parser.py +635 -0
  309. msprobe/msaccucmp/vector_cmp/fusion_manager/quant_filter.py +187 -0
  310. msprobe/msaccucmp/vector_cmp/range_manager/__init__.py +16 -0
  311. msprobe/msaccucmp/vector_cmp/range_manager/range_manager.py +100 -0
  312. msprobe/msaccucmp/vector_cmp/range_manager/range_mode.py +94 -0
  313. msprobe/msaccucmp/vector_cmp/range_manager/select_mode.py +86 -0
  314. msprobe/msaccucmp/vector_cmp/vector_comparison.py +535 -0
  315. msprobe/msprobe.py +101 -130
  316. msprobe/overflow_check/__init__.py +15 -0
  317. msprobe/{nan_analyze → overflow_check}/analyzer.py +38 -27
  318. msprobe/{nan_analyze → overflow_check}/graph.py +30 -27
  319. msprobe/{nan_analyze → overflow_check}/utils.py +15 -14
  320. msprobe/pytorch/__init__.py +20 -14
  321. msprobe/pytorch/aclgraph_dump/__init__.py +45 -0
  322. msprobe/pytorch/aclgraph_dump/_meta.py +26 -0
  323. msprobe/pytorch/api_accuracy_checker/{run_ut/run_ut.py → acc_check/acc_check.py} +50 -45
  324. msprobe/pytorch/api_accuracy_checker/{run_ut/run_ut_utils.py → acc_check/acc_check_utils.py} +201 -30
  325. msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/data_generate.py +56 -16
  326. msprobe/pytorch/api_accuracy_checker/{run_ut/multi_run_ut.py → acc_check/multi_acc_check.py} +32 -47
  327. msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/run_overflow_check.py +19 -18
  328. msprobe/pytorch/api_accuracy_checker/common/config.py +22 -20
  329. msprobe/pytorch/api_accuracy_checker/common/utils.py +72 -13
  330. msprobe/pytorch/api_accuracy_checker/compare/algorithm.py +41 -11
  331. msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +23 -14
  332. msprobe/pytorch/api_accuracy_checker/compare/compare.py +45 -32
  333. msprobe/pytorch/api_accuracy_checker/compare/compare_column.py +12 -11
  334. msprobe/pytorch/api_accuracy_checker/compare/compare_input.py +14 -12
  335. msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py +14 -12
  336. msprobe/pytorch/api_accuracy_checker/precision_standard/absolute_threshold.py +12 -11
  337. msprobe/pytorch/api_accuracy_checker/precision_standard/accumulative_error_compare.py +12 -11
  338. msprobe/pytorch/api_accuracy_checker/precision_standard/base_standard.py +21 -19
  339. msprobe/pytorch/api_accuracy_checker/precision_standard/benchmark_compare.py +14 -13
  340. msprobe/pytorch/api_accuracy_checker/precision_standard/binary_consistency.py +12 -11
  341. msprobe/pytorch/api_accuracy_checker/precision_standard/standard_config.py +60 -11
  342. msprobe/pytorch/api_accuracy_checker/precision_standard/standard_register.py +27 -16
  343. msprobe/pytorch/api_accuracy_checker/precision_standard/thousandth_standard.py +13 -11
  344. msprobe/pytorch/api_accuracy_checker/precision_standard/ulp_compare.py +39 -18
  345. msprobe/pytorch/bench_functions/__init__.py +12 -11
  346. msprobe/pytorch/bench_functions/apply_adam.py +12 -11
  347. msprobe/pytorch/bench_functions/apply_adam_w.py +12 -11
  348. msprobe/pytorch/bench_functions/confusion_transpose.py +12 -11
  349. msprobe/pytorch/bench_functions/fast_gelu.py +12 -11
  350. msprobe/pytorch/bench_functions/group_norm_silu.py +12 -11
  351. msprobe/pytorch/bench_functions/layer_norm_eval.py +12 -11
  352. msprobe/pytorch/bench_functions/linear.py +12 -11
  353. msprobe/pytorch/bench_functions/matmul_backward.py +12 -11
  354. msprobe/pytorch/bench_functions/mish.py +12 -11
  355. msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py +12 -11
  356. msprobe/pytorch/bench_functions/npu_fusion_attention.py +12 -11
  357. msprobe/pytorch/bench_functions/rms_norm.py +12 -11
  358. msprobe/pytorch/bench_functions/rotary_mul.py +12 -11
  359. msprobe/pytorch/bench_functions/scaled_mask_softmax.py +12 -11
  360. msprobe/pytorch/bench_functions/sort_v2.py +12 -11
  361. msprobe/pytorch/bench_functions/swiglu.py +12 -11
  362. msprobe/pytorch/common/__init__.py +12 -11
  363. msprobe/pytorch/common/log.py +12 -11
  364. msprobe/pytorch/common/parse_json.py +12 -11
  365. msprobe/pytorch/common/utils.py +52 -19
  366. msprobe/pytorch/compare/distributed_compare.py +13 -13
  367. msprobe/pytorch/compare/match.py +12 -11
  368. msprobe/pytorch/compare/pt_compare.py +14 -20
  369. msprobe/pytorch/compare/pt_diff_analyze.py +12 -11
  370. msprobe/pytorch/compare/utils.py +12 -11
  371. msprobe/pytorch/{hook_module → dump/api_dump}/api_register.py +18 -16
  372. msprobe/pytorch/{hook_module → dump/api_dump}/hook_module.py +14 -13
  373. msprobe/pytorch/{hook_module → dump/api_dump}/pt_hook_manager.py +68 -23
  374. msprobe/pytorch/{hook_module → dump/api_dump}/register_optimizer_hook.py +13 -11
  375. msprobe/pytorch/{hook_module → dump/api_dump}/script_wrapper.py +17 -14
  376. msprobe/pytorch/{hook_module → dump/api_dump}/utils.py +12 -11
  377. msprobe/pytorch/{debugger → dump/debugger}/debugger_config.py +23 -38
  378. msprobe/pytorch/dump/debugger/precision_debugger.py +130 -0
  379. msprobe/pytorch/{function_factory.py → dump/function_factory.py} +12 -11
  380. msprobe/pytorch/dump/module_dump/hook_wrapper.py +17 -13
  381. msprobe/pytorch/dump/module_dump/module_dump.py +16 -15
  382. msprobe/pytorch/dump/module_dump/{module_processer.py → module_processor.py} +54 -42
  383. msprobe/pytorch/dump/pt_config.py +128 -0
  384. msprobe/pytorch/{pytorch_service.py → dump/pytorch_service.py} +22 -21
  385. msprobe/pytorch/monitor/csv2tb.py +13 -11
  386. msprobe/pytorch/monitor/data_writers.py +13 -11
  387. msprobe/pytorch/monitor/distributed/wrap_distributed.py +13 -11
  388. msprobe/pytorch/monitor/features.py +12 -11
  389. msprobe/pytorch/monitor/module_hook.py +67 -59
  390. msprobe/pytorch/monitor/module_metric.py +13 -11
  391. msprobe/pytorch/monitor/optimizer_collect.py +37 -35
  392. msprobe/pytorch/monitor/utils.py +13 -11
  393. msprobe/pytorch/monitor/visualizer.py +12 -11
  394. msprobe/pytorch/torchair_dump/__init__.py +17 -0
  395. msprobe/pytorch/torchair_dump/torchair_dump.py +114 -0
  396. msprobe/scripts/atb/config_example.json +10 -0
  397. msprobe/scripts/atb/load_atb_probe.sh +101 -0
  398. msprobe/scripts/atb/unload_atb_probe.sh +27 -0
  399. msprobe/scripts/build_msaccucmp.sh +186 -0
  400. msprobe/scripts/conf/help.info +6 -0
  401. msprobe/scripts/conf/version.info +3 -0
  402. msprobe/scripts/run_script/common.sh +538 -0
  403. msprobe/scripts/run_script/main_msaccucmp.sh +232 -0
  404. msprobe/visualization/__init__.py +12 -11
  405. msprobe/visualization/builder/__init__.py +12 -11
  406. msprobe/visualization/builder/graph_builder.py +45 -30
  407. msprobe/visualization/builder/graph_merger.py +53 -32
  408. msprobe/visualization/builder/msprobe_adapter.py +34 -44
  409. msprobe/visualization/compare/__init__.py +12 -11
  410. msprobe/visualization/compare/graph_comparator.py +63 -51
  411. msprobe/visualization/compare/mode_adapter.py +28 -113
  412. msprobe/visualization/db_utils.py +133 -22
  413. msprobe/visualization/graph/__init__.py +12 -11
  414. msprobe/visualization/graph/base_node.py +15 -27
  415. msprobe/visualization/graph/distributed_analyzer.py +97 -40
  416. msprobe/visualization/graph/graph.py +14 -16
  417. msprobe/visualization/graph/node_colors.py +34 -31
  418. msprobe/visualization/graph/node_op.py +12 -11
  419. msprobe/visualization/graph_service.py +580 -205
  420. msprobe/visualization/utils.py +278 -31
  421. tb_graph_ascend/secure_build.py +175 -0
  422. tb_graph_ascend/server/__init__.py +15 -0
  423. tb_graph_ascend/server/app/__init__.py +15 -0
  424. tb_graph_ascend/server/app/model/__init__.py +15 -0
  425. tb_graph_ascend/server/app/model/hierarchy.py +348 -0
  426. tb_graph_ascend/server/app/model/layout_hierarchy_model.py +69 -0
  427. tb_graph_ascend/server/app/model/match_nodes_model.py +573 -0
  428. tb_graph_ascend/server/app/repositories/__init__.py +15 -0
  429. tb_graph_ascend/server/app/repositories/graph_repo_base.py +32 -0
  430. tb_graph_ascend/server/app/repositories/graph_repo_db.py +879 -0
  431. tb_graph_ascend/server/app/repositories/graph_repo_vis.py +83 -0
  432. tb_graph_ascend/server/app/service/__init__.py +18 -0
  433. tb_graph_ascend/server/app/service/graph_service_base.py +158 -0
  434. tb_graph_ascend/server/app/service/graph_service_db.py +438 -0
  435. tb_graph_ascend/server/app/service/graph_service_factory.py +54 -0
  436. tb_graph_ascend/server/app/service/graph_service_vis.py +480 -0
  437. tb_graph_ascend/server/app/utils/__init__.py +15 -0
  438. tb_graph_ascend/server/app/utils/constant.py +80 -0
  439. tb_graph_ascend/server/app/utils/file_check_wrapper.py +46 -0
  440. tb_graph_ascend/server/app/utils/global_state.py +95 -0
  441. tb_graph_ascend/server/app/utils/graph_utils.py +661 -0
  442. tb_graph_ascend/server/app/utils/i18n.py +153 -0
  443. tb_graph_ascend/server/app/utils/request_method.py +46 -0
  444. tb_graph_ascend/server/app/views/__init__.py +15 -0
  445. tb_graph_ascend/server/app/views/graph_views.py +304 -0
  446. tb_graph_ascend/server/plugin.py +108 -0
  447. tb_graph_ascend/server/static/index.html +9250 -0
  448. tb_graph_ascend/server/static/index.js +21 -0
  449. tb_graph_ascend/setup.py +57 -0
  450. mindstudio_probe-8.3.2.dist-info/LICENSE +0 -201
  451. mindstudio_probe-8.3.2.dist-info/RECORD +0 -491
  452. mindstudio_probe-8.3.2.dist-info/entry_points.txt +0 -2
  453. mindstudio_probe-8.3.2.dist-info/top_level.txt +0 -1
  454. msprobe/CMakeLists.txt +0 -5
  455. msprobe/README.md +0 -203
  456. msprobe/core/advisor/advisor.py +0 -129
  457. msprobe/core/advisor/advisor_const.py +0 -58
  458. msprobe/core/advisor/advisor_result.py +0 -58
  459. msprobe/core/compare/find_first/data_processor.py +0 -35
  460. msprobe/core/compare/highlight.py +0 -390
  461. msprobe/core/data_dump/data_collector.py +0 -356
  462. msprobe/core/grad_probe/constant.py +0 -90
  463. msprobe/core/grad_probe/grad_compare.py +0 -187
  464. msprobe/core/grad_probe/utils.py +0 -105
  465. msprobe/core/kernel_dump/kernel_config.py +0 -33
  466. msprobe/docs/01.installation.md +0 -250
  467. msprobe/docs/02.config_introduction.md +0 -221
  468. msprobe/docs/03.config_examples.md +0 -281
  469. msprobe/docs/04.kernel_dump_PyTorch.md +0 -73
  470. msprobe/docs/05.data_dump_PyTorch.md +0 -518
  471. msprobe/docs/06.data_dump_MindSpore.md +0 -618
  472. msprobe/docs/07.accuracy_checker_PyTorch.md +0 -310
  473. msprobe/docs/09.accuracy_checker_MindSpore.md +0 -120
  474. msprobe/docs/10.accuracy_compare_PyTorch.md +0 -637
  475. msprobe/docs/11.accuracy_compare_MindSpore.md +0 -769
  476. msprobe/docs/12.overflow_check_PyTorch.md +0 -82
  477. msprobe/docs/13.overflow_check_MindSpore.md +0 -33
  478. msprobe/docs/14.data_parse_PyTorch.md +0 -282
  479. msprobe/docs/15.free_benchmarking_PyTorch.md +0 -169
  480. msprobe/docs/16.free_benchmarking_MindSpore.md +0 -159
  481. msprobe/docs/17.grad_probe.md +0 -205
  482. msprobe/docs/18.online_dispatch.md +0 -89
  483. msprobe/docs/19.monitor.md +0 -753
  484. msprobe/docs/20.monitor_performance_baseline.md +0 -52
  485. msprobe/docs/21.visualization_PyTorch.md +0 -519
  486. msprobe/docs/22.visualization_MindSpore.md +0 -515
  487. msprobe/docs/23.generate_operator_PyTorch.md +0 -107
  488. msprobe/docs/24.code_mapping_Mindspore.md +0 -29
  489. msprobe/docs/25.tool_function_introduction.md +0 -29
  490. msprobe/docs/26.data_dump_PyTorch_baseline.md +0 -48
  491. msprobe/docs/27.dump_json_instruction.md +0 -795
  492. msprobe/docs/28.debugger_save_instruction.md +0 -288
  493. msprobe/docs/28.kernel_dump_MindSpore.md +0 -69
  494. msprobe/docs/29.data_dump_MSAdapter.md +0 -235
  495. msprobe/docs/30.overflow_check_MSAdapter.md +0 -31
  496. msprobe/docs/31.config_check.md +0 -107
  497. msprobe/docs/32.ckpt_compare.md +0 -69
  498. msprobe/docs/33.generate_operator_MindSpore.md +0 -181
  499. msprobe/docs/34.RL_collect.md +0 -101
  500. msprobe/docs/35.nan_analyze.md +0 -73
  501. msprobe/docs/36.calculation_result_change.md +0 -75
  502. msprobe/docs/FAQ.md +0 -232
  503. msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md +0 -146
  504. msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md +0 -14
  505. msprobe/docs/data_dump_MindSpore/data_dump_MindSpore_baseline.md +0 -33
  506. msprobe/docs/data_dump_MindSpore/dynamic_graph_quick_start_example.md +0 -217
  507. msprobe/docs/img/BLOOM-7B_1.png +0 -0
  508. msprobe/docs/img/BLOOM-7B_2.png +0 -0
  509. msprobe/docs/img/BLOOM-7B_3.png +0 -0
  510. msprobe/docs/img/BLOOM-7B_4.png +0 -0
  511. msprobe/docs/img/GPT-3_1.png +0 -0
  512. msprobe/docs/img/GPT-3_2.png +0 -0
  513. msprobe/docs/img/GPT-3_3.png +0 -0
  514. msprobe/docs/img/GPT-3_4.png +0 -0
  515. msprobe/docs/img/GPT-3_5.png +0 -0
  516. msprobe/docs/img/GPT-3_6.png +0 -0
  517. msprobe/docs/img/GPT-3_7.png +0 -0
  518. msprobe/docs/img/GPT-3_8.png +0 -0
  519. msprobe/docs/img/YOLOV5S_1.png +0 -0
  520. msprobe/docs/img/YOLOV5S_2.png +0 -0
  521. msprobe/docs/img/accuracy_checking_details.png +0 -0
  522. msprobe/docs/img/accuracy_checking_result.png +0 -0
  523. msprobe/docs/img/api_precision_compare_details.png +0 -0
  524. msprobe/docs/img/api_precision_compare_result.png +0 -0
  525. msprobe/docs/img/auto_analyze_log.png +0 -0
  526. msprobe/docs/img/compare_result.png +0 -0
  527. msprobe/docs/img/compare_result_pkl.png +0 -0
  528. msprobe/docs/img/compare_result_pkl_md5.png.png +0 -0
  529. msprobe/docs/img/cpu_info.png +0 -0
  530. msprobe/docs/img/free_benchmark.png +0 -0
  531. msprobe/docs/img/free_benchmark_framework.png +0 -0
  532. msprobe/docs/img/grad_probe_image-1.png +0 -0
  533. msprobe/docs/img/grad_probe_image-2.png +0 -0
  534. msprobe/docs/img/grad_probe_image-3.png +0 -0
  535. msprobe/docs/img/grad_probe_image-4.png +0 -0
  536. msprobe/docs/img/grad_probe_image.png +0 -0
  537. msprobe/docs/img/merge_result.png +0 -0
  538. msprobe/docs/img/module_compare.png +0 -0
  539. msprobe/docs/img/monitor/cpu_info.png +0 -0
  540. msprobe/docs/img/monitor/step_count_per_record.png +0 -0
  541. msprobe/docs/img/ms_dump.png +0 -0
  542. msprobe/docs/img/ms_layer.png +0 -0
  543. msprobe/docs/img/pt_dump.png +0 -0
  544. msprobe/docs/img/save_compare_result_sample.png +0 -0
  545. msprobe/docs/img/visualization/fuzzy_match_ms.png +0 -0
  546. msprobe/docs/img/visualization/fuzzy_match_pt.png +0 -0
  547. msprobe/docs/img/visualization/proxy.png +0 -0
  548. msprobe/docs/img/visualization/tensorboard_1.png +0 -0
  549. msprobe/docs/img/visualization/tensorboard_2.png +0 -0
  550. msprobe/docs/img/visualization/vis_browser_1.png +0 -0
  551. msprobe/docs/img/visualization/vis_browser_2.png +0 -0
  552. msprobe/docs/img/visualization/vis_match_info.png +0 -0
  553. msprobe/docs/img/visualization/vis_precision_info.png +0 -0
  554. msprobe/docs/img/visualization/vis_search_info.png +0 -0
  555. msprobe/docs/img/visualization/vis_show_info.png +0 -0
  556. msprobe/docs/img/visualization/vis_showcase.png +0 -0
  557. msprobe/docs/img/visualization/vis_unmatch_info.png +0 -0
  558. msprobe/docs/visualization/GPTModel.png +0 -0
  559. msprobe/docs/visualization/ParallelMLP.png +0 -0
  560. msprobe/docs/visualization/layer_mapping_example.md +0 -132
  561. msprobe/docs/visualization/mapping.png +0 -0
  562. msprobe/docs/visualization/mapping1.png +0 -0
  563. msprobe/docs/visualization/mindspeed_llamafactoary_img/1.png +0 -0
  564. msprobe/docs/visualization/mindspeed_llamafactoary_img/2.png +0 -0
  565. msprobe/docs/visualization/mindspeed_llamafactoary_img/3.png +0 -0
  566. msprobe/docs/visualization/mindspeed_llamafactoary_img/4.png +0 -0
  567. msprobe/docs/visualization/mindspeed_llamafactoary_img/5.png +0 -0
  568. msprobe/docs/visualization/mindspeed_llamafactoary_img/6.png +0 -0
  569. msprobe/docs/visualization/mindspeed_llamafactoary_img/7.png +0 -0
  570. msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory-qwen25vl.txt +0 -59
  571. msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory1.png +0 -0
  572. msprobe/docs/visualization/mindspeed_llamafactoary_img/llamafactory2.png +0 -0
  573. msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed-mm-qwen25vl.txt +0 -80
  574. msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed1.png +0 -0
  575. msprobe/docs/visualization/mindspeed_llamafactoary_img/mindspeed2.png +0 -0
  576. msprobe/docs/visualization/mindspeed_llamafactory_mapping.md +0 -330
  577. msprobe/docs/visualization/module_name.png +0 -0
  578. msprobe/docs/visualization/module_name1.png +0 -0
  579. msprobe/docs/visualization/no_mapping.png +0 -0
  580. msprobe/docs/visualization/no_mapping1.png +0 -0
  581. msprobe/docs/visualization/no_mapping_analyze.png +0 -0
  582. msprobe/docs/visualization/top_layer.png +0 -0
  583. msprobe/mindspore/api_accuracy_checker/generate_op_script/op_generator.py +0 -460
  584. msprobe/mindspore/api_accuracy_checker/generate_op_script/operator_replication.template +0 -2081
  585. msprobe/mindspore/code_mapping/bind.py +0 -283
  586. msprobe/mindspore/code_mapping/cmd_parser.py +0 -40
  587. msprobe/mindspore/code_mapping/graph.py +0 -49
  588. msprobe/mindspore/code_mapping/graph_parser.py +0 -211
  589. msprobe/mindspore/code_mapping/main.py +0 -24
  590. msprobe/mindspore/code_mapping/processor.py +0 -34
  591. msprobe/mindspore/dym_loader/hook_dynamic_loader.cpp +0 -111
  592. msprobe/mindspore/dym_loader/hook_dynamic_loader.h +0 -52
  593. msprobe/mindspore/free_benchmark/api_pynative_self_check.py +0 -257
  594. msprobe/mindspore/free_benchmark/common/config.py +0 -27
  595. msprobe/mindspore/free_benchmark/common/handler_params.py +0 -31
  596. msprobe/mindspore/free_benchmark/common/utils.py +0 -100
  597. msprobe/mindspore/free_benchmark/data/support_wrap_ops.yaml +0 -638
  598. msprobe/mindspore/free_benchmark/handler/base_handler.py +0 -105
  599. msprobe/mindspore/free_benchmark/handler/check_handler.py +0 -55
  600. msprobe/mindspore/free_benchmark/handler/fix_handler.py +0 -51
  601. msprobe/mindspore/free_benchmark/handler/handler_factory.py +0 -36
  602. msprobe/mindspore/free_benchmark/perturbation/add_noise.py +0 -82
  603. msprobe/mindspore/free_benchmark/perturbation/base_perturbation.py +0 -45
  604. msprobe/mindspore/free_benchmark/perturbation/bit_noise.py +0 -78
  605. msprobe/mindspore/free_benchmark/perturbation/exchange_value.py +0 -77
  606. msprobe/mindspore/free_benchmark/perturbation/improve_precision.py +0 -56
  607. msprobe/mindspore/free_benchmark/perturbation/no_change.py +0 -27
  608. msprobe/mindspore/free_benchmark/perturbation/perturbation_factory.py +0 -46
  609. msprobe/mindspore/free_benchmark/self_check_tool_factory.py +0 -51
  610. msprobe/mindspore/grad_probe/global_context.py +0 -127
  611. msprobe/mindspore/grad_probe/grad_analyzer.py +0 -260
  612. msprobe/mindspore/grad_probe/grad_monitor.py +0 -42
  613. msprobe/mindspore/grad_probe/grad_stat_csv.py +0 -161
  614. msprobe/mindspore/grad_probe/hook.py +0 -115
  615. msprobe/mindspore/grad_probe/utils.py +0 -43
  616. msprobe/mindspore/mindtorch/__init__.py +0 -18
  617. msprobe/mindspore/ms_config.py +0 -153
  618. msprobe/mindspore/task_handler_factory.py +0 -44
  619. msprobe/nan_analyze/__init__.py +0 -14
  620. msprobe/pytorch/api_accuracy_checker/generate_op_script/config_op.json +0 -9
  621. msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py +0 -480
  622. msprobe/pytorch/api_accuracy_checker/generate_op_script/operator_replication.template +0 -567
  623. msprobe/pytorch/debugger/precision_debugger.py +0 -181
  624. msprobe/pytorch/free_benchmark/__init__.py +0 -23
  625. msprobe/pytorch/free_benchmark/common/constant.py +0 -85
  626. msprobe/pytorch/free_benchmark/common/counter.py +0 -87
  627. msprobe/pytorch/free_benchmark/common/enums.py +0 -80
  628. msprobe/pytorch/free_benchmark/common/params.py +0 -152
  629. msprobe/pytorch/free_benchmark/common/utils.py +0 -143
  630. msprobe/pytorch/free_benchmark/compare/grad_saver.py +0 -215
  631. msprobe/pytorch/free_benchmark/compare/single_benchmark.py +0 -121
  632. msprobe/pytorch/free_benchmark/main.py +0 -123
  633. msprobe/pytorch/free_benchmark/perturbed_layers/base_layer.py +0 -28
  634. msprobe/pytorch/free_benchmark/perturbed_layers/layer_factory.py +0 -56
  635. msprobe/pytorch/free_benchmark/perturbed_layers/npu/add_noise.py +0 -107
  636. msprobe/pytorch/free_benchmark/perturbed_layers/npu/bit_noise.py +0 -121
  637. msprobe/pytorch/free_benchmark/perturbed_layers/npu/change_value.py +0 -89
  638. msprobe/pytorch/free_benchmark/perturbed_layers/npu/improve_precision.py +0 -87
  639. msprobe/pytorch/free_benchmark/perturbed_layers/npu/no_change.py +0 -43
  640. msprobe/pytorch/free_benchmark/perturbed_layers/npu/npu_base_layser.py +0 -60
  641. msprobe/pytorch/free_benchmark/perturbed_layers/run_cpu.py +0 -34
  642. msprobe/pytorch/free_benchmark/result_handlers/base_handler.py +0 -252
  643. msprobe/pytorch/free_benchmark/result_handlers/check_handler.py +0 -54
  644. msprobe/pytorch/free_benchmark/result_handlers/fix_handler.py +0 -40
  645. msprobe/pytorch/free_benchmark/result_handlers/handler_factory.py +0 -45
  646. msprobe/pytorch/free_benchmark/result_handlers/preheat_handler.py +0 -181
  647. msprobe/pytorch/grad_probe/__init__.py +0 -0
  648. msprobe/pytorch/grad_probe/grad_monitor.py +0 -108
  649. msprobe/pytorch/grad_probe/grad_stat_csv.py +0 -160
  650. msprobe/pytorch/hook_module/__init__.py +0 -16
  651. msprobe/pytorch/hook_module/wrap_aten.py +0 -111
  652. msprobe/pytorch/online_dispatch/__init__.py +0 -19
  653. msprobe/pytorch/online_dispatch/compare.py +0 -224
  654. msprobe/pytorch/online_dispatch/dispatch.py +0 -332
  655. msprobe/pytorch/online_dispatch/dump_compare.py +0 -179
  656. msprobe/pytorch/online_dispatch/single_compare.py +0 -412
  657. msprobe/pytorch/online_dispatch/torch_ops_config.yaml +0 -58
  658. msprobe/pytorch/online_dispatch/utils.py +0 -158
  659. msprobe/pytorch/parse_tool/__init__.py +0 -0
  660. msprobe/pytorch/parse_tool/cli.py +0 -31
  661. msprobe/pytorch/parse_tool/lib/__init__.py +0 -0
  662. msprobe/pytorch/parse_tool/lib/compare.py +0 -253
  663. msprobe/pytorch/parse_tool/lib/config.py +0 -50
  664. msprobe/pytorch/parse_tool/lib/file_desc.py +0 -45
  665. msprobe/pytorch/parse_tool/lib/interactive_cli.py +0 -97
  666. msprobe/pytorch/parse_tool/lib/parse_exception.py +0 -54
  667. msprobe/pytorch/parse_tool/lib/parse_tool.py +0 -161
  668. msprobe/pytorch/parse_tool/lib/utils.py +0 -299
  669. msprobe/pytorch/parse_tool/lib/visualization.py +0 -85
  670. msprobe/pytorch/pt_config.py +0 -299
  671. /msprobe/core/{grad_probe → dump}/__init__.py +0 -0
  672. /msprobe/{mindspore/code_mapping → core/dump/api_dump}/__init__.py +0 -0
  673. /msprobe/{mindspore/debugger → core/dump/data_dump}/__init__.py +0 -0
  674. /msprobe/{mindspore/exception_dump → core/dump/data_dump/data_processor}/__init__.py +0 -0
  675. /msprobe/{mindspore/free_benchmark → core/dump/debugger}/__init__.py +0 -0
  676. /msprobe/{mindspore/free_benchmark/common → core/dump/kernel_dump}/__init__.py +0 -0
  677. /msprobe/mindspore/{free_benchmark/handler → dump/debugger}/__init__.py +0 -0
  678. /msprobe/mindspore/{grad_probe → dump/dump_processor}/__init__.py +0 -0
  679. /msprobe/mindspore/{overflow_check → dump/exception_dump}/__init__.py +0 -0
  680. /msprobe/mindspore/{mindtorch → dump/mindtorch}/mindtorch_adaptor.py +0 -0
  681. /msprobe/{pytorch/api_accuracy_checker/run_ut → mindspore/dump/overflow_check}/__init__.py +0 -0
  682. /msprobe/{pytorch/debugger → mindspore/monitor}/__init__.py +0 -0
  683. /msprobe/{pytorch/free_benchmark/common → msaccucmp}/__init__.py +0 -0
  684. /msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/.keep +0 -0
  685. /msprobe/pytorch/{free_benchmark/perturbed_layers → api_accuracy_checker/acc_check}/__init__.py +0 -0
  686. /msprobe/pytorch/api_accuracy_checker/{run_ut → acc_check}/torch_ut_setting.json +0 -0
  687. /msprobe/pytorch/{free_benchmark/perturbed_layers/npu → dump/api_dump}/__init__.py +0 -0
  688. /msprobe/pytorch/{hook_module → dump/api_dump}/support_wrap_ops.yaml +0 -0
  689. /msprobe/pytorch/{free_benchmark/result_handlers → dump/debugger}/__init__.py +0 -0
@@ -0,0 +1,153 @@
1
+ # -------------------------------------------------------------------------
2
+ # This file is part of the MindStudio project.
3
+ # Copyright (c) 2025 Huawei Technologies Co.,Ltd.
4
+ #
5
+ # MindStudio is licensed under Mulan PSL v2.
6
+ # You can use this software according to the terms and conditions of the Mulan PSL v2.
7
+ # You may obtain a copy of Mulan PSL v2 at:
8
+ #
9
+ # http://license.coscl.org.cn/MulanPSL2
10
+ #
11
+ # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
12
+ # EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
13
+ # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
14
+ # See the Mulan PSL v2 for more details.
15
+ # -------------------------------------------------------------------------
16
+
17
+ # 语言切换
18
+ ZH_CN = "zh-CN"
19
+ EN = "en"
20
+ language = {
21
+ ZH_CN: {
22
+ 'typeError': '文件类型错误',
23
+ 'searchTypeError': '搜索类型错误',
24
+ 'nodeInfoError': '查询参数nodeInfo及其子项必须存在且必须为字典',
25
+ 'metaDataError': '查询参数“metaData”及其子项必须存在且必须为字典',
26
+ 'dbInitError': '数据库初始化失败',
27
+ 'loadConfigError': '加载图配置信息失败',
28
+ 'rankStepNullError': 'rank或step或micro_step为空',
29
+ 'loadNodeError': '加载图所有节点列表失败',
30
+ 'expandNodeError': '节点展开或收起发生错误',
31
+ 'searchNodeError': '节点搜索发生错误',
32
+ 'graphTypeError': '图类型错误,仅支持 "NPU" 或 "BENCH"',
33
+ 'getNodeInfoError': '获取节点信息失败',
34
+ 'taskTypeError': '任务类型不支持',
35
+ 'matchNodeError': '匹配节点失败',
36
+ 'loadConfigFileError': '读取配置文件失败',
37
+ 'matchNodeLinksNullError': '匹配配置文件为空',
38
+ 'parameterError': '参数错误',
39
+ 'nodesTypeError': '节点类型不一致, 无法添加匹配关系',
40
+ 'taskTypeWrong': 'task类型错误',
41
+ 'nodeNotExist': '节点不存在',
42
+ 'ioEmptyError': '输入或输出统计误差值为空',
43
+ 'outputEmptyError': '输出统计误差值为空,计算精度误差失败',
44
+ 'operationFailed': '操作失败:',
45
+ 'or': '或',
46
+ 'nodeUnmatchError': '节点未匹配,请先匹配节点',
47
+ 'deleteMatchNodeFailed': '删除匹配节点失败',
48
+ 'noUpdateNodesFound': '未找到可更新的节点',
49
+ 'updateNodeAccuracyFailed': '更新节点精度失败',
50
+ 'updateDatabaseFailed': '更新数据库失败',
51
+ 'updateColorFailed': '更新颜色失败',
52
+ 'saveMatchRelationshipFailed': '保存匹配关系失败',
53
+ 'selectedNodeCantMatched': '选择的节点不可匹配',
54
+ 'loadErrorBySecurityIssue': '文件存在安全问题,读取文件失败',
55
+ 'loadConfigFailed': '获取配置信息失败, 请检查目录中第一个文件',
56
+ 'debug': '调试侧',
57
+ 'bench': '标杆侧',
58
+ 'obtainNodesAccuracyFailed': '获取符合精度误差节点失败',
59
+ 'notSupportOverflow': '多图模式下不支持溢出检测',
60
+ 'obtainNodesOverflowFailed': '获取符合溢出检测节点失败',
61
+ 'updatePrecisionFailed': '更新精度误差失败',
62
+ 'nodeTypeError': '节点类型错误',
63
+ 'readFileFailed': '读取文件失败',
64
+ 'parameterEmpty': '参数为空',
65
+ 'saveFileFailed': '保存文件失败',
66
+ 'dbConncetionNotInit': '数据库链接未初始化',
67
+ 'parseJsonFailed': '解析JSON失败',
68
+ 'getNodeListFailed': '获取节点列表失败',
69
+ 'initGraphJsonFailed': '初始化json图数据失败',
70
+ 'colorsNotObject': 'colors 必须是一个对象',
71
+ 'colotsEmpty': 'colors 不能为空',
72
+ 'illegalColorKey': '非法颜色键: ',
73
+ 'colorValuesNotObject': '颜色值必须是对象: ',
74
+ 'missingValueField': '缺少 value 字段: ',
75
+ 'notArrayOfLength2': 'value 必须是长度为2的数组: ',
76
+ 'notArrayConsistNumbers': 'value 数组必须是数字: ',
77
+ 'invalidValueRange': 'value 区间无效(左 >= 右): ',
78
+ 'unsupportedValue': '不支持的 value 字符串值: ',
79
+ 'valueTypeError': 'value 必须是数字数组或字符串: ',
80
+ 'descriptionError': 'description 包含恶意内容或格式错误: ',
81
+ 'circularReferenceError1': '检测到循环引用:节点 ',
82
+ 'circularReferenceError2': ' 已存在于路径中',
83
+ 'invalidTag': '无效标签: ',
84
+ 'pathMayNotInSecureDirectory': '该路径可能不在安全目录内',
85
+ 'serverError': '服务异常,请稍后重试'
86
+ },
87
+ EN: {
88
+ 'typeError': 'File type error',
89
+ 'searchTypeError': 'Search type error',
90
+ 'nodeInfoError': 'The query parameter nodeInfo and its sub-items must exist and must be a dictionary.',
91
+ 'metaDataError': 'The query parameter “metaData” and its sub-items must exist and must be a dictionary.',
92
+ 'dbInitError': 'Database initialization failed',
93
+ 'loadConfigError': 'load graph config info failed',
94
+ 'rankStepNullError': 'rank or step or micro_step is null',
95
+ 'loadNodeError': 'load graph all node list failed',
96
+ 'expandNodeError': 'node expand or collapse error',
97
+ 'searchNodeError': 'node search error',
98
+ 'graphTypeError': 'graph type error, only support "NPU" or "BENCH"',
99
+ 'getNodeInfoError': 'get node info failed',
100
+ 'taskTypeError': 'task type not support',
101
+ 'matchNodeError': 'match node failed',
102
+ 'loadConfigFileError': 'load config file failed',
103
+ 'parameterError': 'Parameter Error',
104
+ 'nodesTypeError': 'Node types are inconsistent; matching relationships cannot be added.',
105
+ 'taskTypeWrong': 'Task type error',
106
+ 'nodeNotExist': 'Node does not exist',
107
+ 'ioEmptyError': 'The input or output statistical error value is empty.',
108
+ 'outputEmptyError': 'The output statistical error value is empty, and the calculation precision error failed.',
109
+ 'operationFailed': 'Operation failed: ',
110
+ 'or': 'or',
111
+ 'nodeUnmatchError': 'Node not matched. Please match the node first.',
112
+ 'deleteMatchNodeFailed': 'Failed to delete matching node',
113
+ 'noUpdateNodesFound': 'No nodes found to update.',
114
+ 'updateNodeAccuracyFailed': 'Failed to update node accuracy',
115
+ 'updateDatabaseFailed': 'Failed to update the database',
116
+ 'updateColorFailed': 'Color update failed',
117
+ 'saveMatchRelationshipFailed': 'Failed to save matching relationship',
118
+ 'selectedNodeCantMatched': 'The selected node cannot be matched.',
119
+ 'loadErrorBySecurityIssue': 'The file has security issues, and reading the file failed.',
120
+ 'loadConfigFailed': 'Failed to retrieve configuration information. Please check the first file in directory.',
121
+ 'debug': 'Debug',
122
+ 'bench': 'Bench',
123
+ 'expandOrCollapseError': 'An error occurred while expanding or collapsing the node.',
124
+ 'obtainNodesAccuracyFailed': 'Failed to obtain nodes meeting accuracy error requirements',
125
+ 'notSupportOverflow': 'Overflow detection is not supported in multi-image mode.',
126
+ 'obtainNodesOverflowFailed': 'Failed to obtain overflow detection node',
127
+ 'updatePrecisionFailed': 'Update precision error failure',
128
+ 'nodeTypeError': 'Node type error',
129
+ 'readFileFailed': 'Failed to read file',
130
+ 'parameterEmpty': 'The parameter is empty.',
131
+ 'saveFileFailed': 'Failed to save file',
132
+ 'dbConncetionNotInit': 'database connection not init',
133
+ 'parseJsonFailed': 'Failed to parse JSON',
134
+ 'getNodeListFailed': 'Failed to get node list',
135
+ 'initGraphJsonFailed': 'initlize graph json failed',
136
+ 'colorsNotObject': 'Colors must be an object',
137
+ 'colotsEmpty': 'Colors cannot be empty',
138
+ 'illegalColorKey': 'Illegal color key: ',
139
+ 'colorValuesNotObject': 'Color values must be objects: ',
140
+ 'missingValueField': 'Missing value field: ',
141
+ 'notArrayOfLength2': 'The value must be an array of length 2: ',
142
+ 'notArrayConsistNumbers': 'Value array must consist of numbers: ',
143
+ 'invalidValueRange': 'Invalid value range (left >= right): ',
144
+ 'unsupportedValue': 'Unsupported value string values: ',
145
+ 'valueTypeError': 'Value must be a numeric array or string: ',
146
+ 'descriptionError': 'Description contains malicious content or formatting errors: ',
147
+ 'circularReferenceError1': 'Detected circular reference: node ',
148
+ 'circularReferenceError2': ' already exists in the path',
149
+ 'invalidTag': 'Invalid tag: ',
150
+ 'pathMayNotInSecureDirectory': 'The path may not be within a secure directory',
151
+ 'serverError': 'server error, please try again later'
152
+ }
153
+ }
@@ -0,0 +1,46 @@
1
+ # -------------------------------------------------------------------------
2
+ # This file is part of the MindStudio project.
3
+ # Copyright (c) 2025 Huawei Technologies Co.,Ltd.
4
+ #
5
+ # MindStudio is licensed under Mulan PSL v2.
6
+ # You can use this software according to the terms and conditions of the Mulan PSL v2.
7
+ # You may obtain a copy of Mulan PSL v2 at:
8
+ #
9
+ # http://license.coscl.org.cn/MulanPSL2
10
+ #
11
+ # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
12
+ # EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
13
+ # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
14
+ # See the Mulan PSL v2 for more details.
15
+ # -------------------------------------------------------------------------
16
+
17
+ import json
18
+ from werkzeug.wrappers.request import Request
19
+ from werkzeug import Response
20
+ from ..utils.graph_utils import GraphUtils
21
+ from ..utils.constant import security_headers
22
+
23
+
24
+ def request_method(allowed_method):
25
+ def decorator(func):
26
+ def wrapper(*args, **kwargs):
27
+ try:
28
+ if len(args) <= 0:
29
+ raise RuntimeError('Illegal function call, at least 1 parameter is required but got 0')
30
+ request = args[0]
31
+ if not isinstance(request, Request):
32
+ raise RuntimeError('The request "parameter" is not in a format supported by werkzeug')
33
+ actual_method = request.method.upper()
34
+ expected_method = allowed_method.upper()
35
+ if actual_method != expected_method:
36
+ raise RuntimeError(f"Method Not Allowed: expected '{expected_method}', got '{actual_method}'")
37
+ except Exception as e:
38
+ result = {'success': False, 'error': str(e)}
39
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
40
+ try:
41
+ return func(*args, **kwargs)
42
+ except Exception as e:
43
+ result = {'success': False, 'error': GraphUtils.t('serverError')}
44
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
45
+ return wrapper
46
+ return decorator
@@ -0,0 +1,15 @@
1
+ # -------------------------------------------------------------------------
2
+ # This file is part of the MindStudio project.
3
+ # Copyright (c) 2025 Huawei Technologies Co.,Ltd.
4
+ #
5
+ # MindStudio is licensed under Mulan PSL v2.
6
+ # You can use this software according to the terms and conditions of the Mulan PSL v2.
7
+ # You may obtain a copy of Mulan PSL v2 at:
8
+ #
9
+ # http://license.coscl.org.cn/MulanPSL2
10
+ #
11
+ # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
12
+ # EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
13
+ # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
14
+ # See the Mulan PSL v2 for more details.
15
+ # -------------------------------------------------------------------------
@@ -0,0 +1,304 @@
1
+ # -------------------------------------------------------------------------
2
+ # This file is part of the MindStudio project.
3
+ # Copyright (c) 2025 Huawei Technologies Co.,Ltd.
4
+ #
5
+ # MindStudio is licensed under Mulan PSL v2.
6
+ # You can use this software according to the terms and conditions of the Mulan PSL v2.
7
+ # You may obtain a copy of Mulan PSL v2 at:
8
+ #
9
+ # http://license.coscl.org.cn/MulanPSL2
10
+ #
11
+ # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
12
+ # EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
13
+ # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
14
+ # See the Mulan PSL v2 for more details.
15
+ # -------------------------------------------------------------------------
16
+
17
+ import os
18
+ import json
19
+ from pathlib import Path
20
+ from werkzeug import wrappers, Response, exceptions
21
+ from ..utils.request_method import request_method
22
+ from ..service import ServiceFactory, GraphServiceStrategy
23
+ from ..utils.file_check_wrapper import check_file_type
24
+ from ..utils.graph_utils import GraphUtils
25
+ from ..utils.constant import DataType
26
+ from ..utils.global_state import GraphState
27
+ from ..utils.constant import security_headers
28
+
29
+
30
+ class GraphView:
31
+ service_factory = ServiceFactory()
32
+
33
+ # 静态文件路由
34
+ @staticmethod
35
+ @wrappers.Request.application
36
+ def static_file_route(request):
37
+ filename = os.path.basename(request.path)
38
+
39
+ extension = os.path.splitext(filename)[1]
40
+ if extension == '.html':
41
+ content_type = 'text/html'
42
+ elif extension == '.js':
43
+ content_type = 'application/javascript'
44
+ else:
45
+ content_type = 'application/octet-stream'
46
+
47
+ try:
48
+ # 添加白名单校验
49
+ if filename != 'index.html' and filename != 'index.js':
50
+ raise exceptions.NotFound('404 Not Found') from e
51
+ current_dir = Path(__file__).resolve().parent
52
+ server_dir = current_dir.parent.parent
53
+ dir_path = (server_dir / "static").resolve()
54
+ filepath = (server_dir / "static" / filename).resolve() # resolve() 规范化路径
55
+ if not GraphUtils.is_relative_to(filepath, dir_path):
56
+ raise exceptions.NotFound('404 Not Found')
57
+ # 前端打包后产生的内部输入文件,不需要要安全校验
58
+ with open(filepath, 'rb') as infile:
59
+ contents = infile.read()
60
+ except IOError as e:
61
+ raise exceptions.NotFound('404 Not Found') from e
62
+ return Response(contents, content_type=content_type, headers=security_headers)
63
+
64
+ @staticmethod
65
+ @wrappers.Request.application
66
+ @request_method('GET')
67
+ def load_meta_dir(request):
68
+ """Scan logdir for directories containing .vis files, modified to return a tuple of (run, tag)."""
69
+ result = GraphServiceStrategy.load_meta_dir()
70
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
71
+
72
+ # 读取当前图数据
73
+ @staticmethod
74
+ @wrappers.Request.application
75
+ @request_method('GET')
76
+ def load_graph_data(request):
77
+ meta_data = {
78
+ 'run': request.args.get('run'),
79
+ 'tag': request.args.get('tag'),
80
+ 'type': request.args.get('type'),
81
+ }
82
+ lang = request.args.get('lang')
83
+ GraphState.set_global_value('lang', lang)
84
+ strategy = GraphView._get_strategy(meta_data)
85
+ if meta_data.get('type') == DataType.DB.value:
86
+ result = strategy.load_graph_data()
87
+ return Response(result, content_type="application/json", headers=security_headers)
88
+ elif meta_data.get('type') == DataType.JSON.value:
89
+ return Response(
90
+ strategy.load_graph_data(),
91
+ mimetype='text/event-stream',
92
+ headers={
93
+ 'Cache-Control': 'no-cache',
94
+ 'Connection': 'close', # TCP链接不复用,请求结束释放资源
95
+ } | security_headers
96
+ )
97
+ else:
98
+ result = {'success': False, 'error': GraphUtils.t('typeError')}
99
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
100
+
101
+ # 获取当前图数据配置信息
102
+ @staticmethod
103
+ @wrappers.Request.application
104
+ @check_file_type
105
+ @request_method('POST')
106
+ def load_graph_config_info(request):
107
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
108
+ meta_data = data.get('metaData')
109
+ strategy = GraphView._get_strategy(meta_data)
110
+ result = strategy.load_graph_config_info()
111
+ # 创建响应对象
112
+ response = Response(json.dumps(result), content_type="application/json", headers=security_headers)
113
+ return response
114
+
115
+ # 获取当前图所有节点列表
116
+ @staticmethod
117
+ @wrappers.Request.application
118
+ @check_file_type
119
+ @request_method('POST')
120
+ def load_graph_all_node_list(request):
121
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
122
+ meta_data = data.get('metaData')
123
+ strategy = GraphView._get_strategy(meta_data)
124
+ result = strategy.load_graph_all_node_list(meta_data)
125
+ response = Response(json.dumps(result), content_type="application/json", headers=security_headers)
126
+ return response
127
+
128
+ # 根据精度误差搜索节点
129
+ @staticmethod
130
+ @wrappers.Request.application
131
+ @check_file_type
132
+ @request_method('POST')
133
+ def search_node(request):
134
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'))
135
+ meta_data = data.get("metaData")
136
+ search_type = data.get("type")
137
+ values = data.get("values")
138
+ strategy = GraphView._get_strategy(meta_data)
139
+ if search_type == 'precision':
140
+ result = strategy.search_node_by_precision(meta_data, values)
141
+ elif search_type == 'overflow':
142
+ result = strategy.search_node_by_overflow(meta_data, values)
143
+ else:
144
+ result = {
145
+ 'success': False,
146
+ 'error': GraphUtils.t('searchTypeError')
147
+ }
148
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
149
+
150
+ # 更新误差节点
151
+ @staticmethod
152
+ @wrappers.Request.application
153
+ @check_file_type
154
+ @request_method('POST')
155
+ def update_precision_error(request):
156
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'))
157
+ meta_data = data.get('metaData')
158
+ filter_value = data.get("filterValue")
159
+ strategy = GraphView._get_strategy(meta_data)
160
+ result = strategy.update_precision_error(meta_data, filter_value)
161
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
162
+
163
+ # 展开关闭节点
164
+ @staticmethod
165
+ @wrappers.Request.application
166
+ @check_file_type
167
+ @request_method('POST')
168
+ def change_node_expand_state(request):
169
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
170
+ node_info = GraphUtils.safe_get_node_info(data)
171
+ result = {'success': False, 'error': ''}
172
+ meta_data = data.get('metaData')
173
+ if node_info is None or not isinstance(node_info, dict):
174
+ result['error'] = GraphUtils.t('nodeInfoError')
175
+ strategy = GraphView._get_strategy(meta_data)
176
+ hierarchy = strategy.change_node_expand_state(node_info, meta_data)
177
+ return Response(json.dumps(hierarchy), content_type="application/json", headers=security_headers)
178
+
179
+ # 更新当前图节点信息
180
+ @staticmethod
181
+ @wrappers.Request.application
182
+ @check_file_type
183
+ @request_method('POST')
184
+ def update_hierarchy_data(request):
185
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
186
+ graph_type = data.get("graphType")
187
+ meta_data = data.get('metaData')
188
+ strategy = GraphView._get_strategy(meta_data)
189
+ hierarchy = strategy.update_hierarchy_data(graph_type)
190
+ return Response(json.dumps(hierarchy), content_type="application/json", headers=security_headers)
191
+
192
+ # 获取当前节点对应节点的信息看板数据
193
+ @staticmethod
194
+ @wrappers.Request.application
195
+ @check_file_type
196
+ @request_method('POST')
197
+ def get_node_info(request):
198
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
199
+ node_info = GraphUtils.safe_get_node_info(data)
200
+ result = {'success': False, 'error': ''}
201
+ meta_data = data.get('metaData')
202
+ if node_info is None or not isinstance(node_info, dict):
203
+ result['error'] = GraphUtils.t('nodeInfoError')
204
+ return Response(result, content_type="application/json", headers=security_headers)
205
+ strategy = GraphView._get_strategy(meta_data)
206
+ node_detail = strategy.get_node_info(node_info, meta_data)
207
+ return Response(json.dumps(node_detail), content_type="application/json", headers=security_headers)
208
+
209
+ # 根据配置文件添加匹配节点
210
+ @staticmethod
211
+ @wrappers.Request.application
212
+ @check_file_type
213
+ @request_method('POST')
214
+ def add_match_nodes_by_config(request):
215
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
216
+ config_file = data.get('configFile')
217
+ meta_data = data.get('metaData')
218
+ strategy = GraphView._get_strategy(meta_data)
219
+ match_result = strategy.add_match_nodes_by_config(config_file, meta_data)
220
+ return Response(json.dumps(match_result), content_type="application/json", headers=security_headers)
221
+
222
+ # 添加匹配节点
223
+ @staticmethod
224
+ @wrappers.Request.application
225
+ @check_file_type
226
+ @request_method('POST')
227
+ def add_match_nodes(request):
228
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
229
+ npu_node_name = data.get("npuNodeName")
230
+ bench_node_name = data.get("benchNodeName")
231
+ meta_data = data.get('metaData')
232
+ is_match_children = data.get("isMatchChildren")
233
+ strategy = GraphView._get_strategy(meta_data)
234
+ match_result = strategy.add_match_nodes(npu_node_name, bench_node_name, meta_data, is_match_children)
235
+ return Response(json.dumps(match_result), content_type="application/json", headers=security_headers)
236
+
237
+ # 取消节点匹配
238
+ @staticmethod
239
+ @wrappers.Request.application
240
+ @check_file_type
241
+ @request_method('POST')
242
+ def delete_match_nodes(request):
243
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
244
+ npu_node_name = data.get("npuNodeName")
245
+ bench_node_name = data.get("benchNodeName")
246
+ meta_data = data.get('metaData')
247
+ is_unmatch_children = data.get("isUnMatchChildren")
248
+ strategy = GraphView._get_strategy(meta_data)
249
+ match_result = strategy.delete_match_nodes(npu_node_name, bench_node_name, meta_data, is_unmatch_children)
250
+ return Response(json.dumps(match_result), content_type="application/json", headers=security_headers)
251
+
252
+ # 保存匹配节点列表
253
+ @staticmethod
254
+ @wrappers.Request.application
255
+ @check_file_type
256
+ @request_method('POST')
257
+ def save_data(request):
258
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
259
+ meta_data = data.get('metaData')
260
+ strategy = GraphView._get_strategy(meta_data)
261
+ save_result = strategy.save_data(meta_data)
262
+ return Response(json.dumps(save_result), content_type="application/json", headers=security_headers)
263
+
264
+ # 更新颜色信息
265
+ @staticmethod
266
+ @wrappers.Request.application
267
+ @check_file_type
268
+ @request_method('POST')
269
+ def update_colors(request):
270
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
271
+ meta_data = data.get('metaData')
272
+ colors = GraphUtils.safe_json_loads(data.get('colors'))
273
+ success, error_msg, colors = GraphUtils.validate_colors_param(colors)
274
+ if not success:
275
+ result = {
276
+ 'success': False,
277
+ 'error': error_msg
278
+ }
279
+ return Response(json.dumps(result), content_type="application/json", headers=security_headers)
280
+ strategy = GraphView._get_strategy(meta_data, no_tag=True)
281
+ update_result = strategy.update_colors(colors)
282
+ return Response(json.dumps(update_result), content_type="application/json", headers=security_headers)
283
+
284
+ # 保存匹配关系
285
+ @staticmethod
286
+ @wrappers.Request.application
287
+ @check_file_type
288
+ @request_method('POST')
289
+ def save_matched_relations(request):
290
+ data = GraphUtils.safe_json_loads(request.get_data().decode('utf-8'), {})
291
+ meta_data = data.get('metaData')
292
+ strategy = GraphView._get_strategy(meta_data)
293
+ save_result = strategy.save_matched_relations(meta_data)
294
+ return Response(json.dumps(save_result), content_type="application/json", headers=security_headers)
295
+
296
+ @staticmethod
297
+ def _get_strategy(meta_data, no_tag=False):
298
+ run = meta_data.get('run')
299
+ data_type = meta_data.get('type')
300
+ if no_tag:
301
+ return GraphView.service_factory.create_strategy_without_tag(data_type, run)
302
+
303
+ tag = meta_data.get('tag')
304
+ return GraphView.service_factory.create_strategy(data_type, run, tag)
@@ -0,0 +1,108 @@
1
+ # Copyright 2017 The TensorFlow Authors. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # Copyright (c) 2025, Huawei Technologies.
16
+ # Adapt to the model hierarchical visualization data collected by the msprobe tool
17
+ # ==============================================================================
18
+
19
+ """The TensorBoard Graphs plugin."""
20
+
21
+ import os
22
+ from tensorboard.plugins import base_plugin
23
+ from tensorboard.util import tb_logging
24
+
25
+ from .app.views.graph_views import GraphView
26
+ from .app.utils.graph_utils import GraphUtils
27
+ from .app.utils.global_state import GraphState
28
+ from .app.utils.constant import Extension
29
+
30
+ logger = tb_logging.get_logger()
31
+
32
+ PLUGIN_NAME = 'graph_ascend'
33
+ PLUGIN_NAME_RUN_METADATA_WITH_GRAPH = 'graph_ascend_run_metadata_graph'
34
+ DB_EXT = Extension.DB.value
35
+ JSON_EXT = Extension.JSON.value
36
+
37
+
38
+ class GraphsPlugin(base_plugin.TBPlugin):
39
+ """Graphs Plugin for TensorBoard."""
40
+
41
+ plugin_name = PLUGIN_NAME
42
+
43
+ def __init__(self, context):
44
+ """Instantiates GraphsPlugin via TensorBoard core.
45
+
46
+ Args:
47
+ context: A base_plugin.TBContext instance.
48
+ """
49
+ super().__init__(context)
50
+ GraphState.reset_global_state()
51
+ self.logdir = os.path.abspath(os.path.expanduser(context.logdir.rstrip('/')))
52
+ # 将logdir赋值给global_state中的logdir属性,方便其他模块使用
53
+ GraphState.set_global_value('logdir', self.logdir)
54
+
55
+ def get_plugin_apps(self):
56
+ return {
57
+ '/index.js': GraphView.static_file_route,
58
+ '/index.html': GraphView.static_file_route,
59
+ "/load_meta_dir": GraphView.load_meta_dir,
60
+ "/screen": GraphView.search_node,
61
+ '/loadGraphData': GraphView.load_graph_data,
62
+ '/loadGraphConfigInfo': GraphView.load_graph_config_info,
63
+ '/loadGraphAllNodeList': GraphView.load_graph_all_node_list,
64
+ '/changeNodeExpandState': GraphView.change_node_expand_state,
65
+ '/updateHierarchyData': GraphView.update_hierarchy_data,
66
+ '/getNodeInfo': GraphView.get_node_info,
67
+ '/addMatchNodes': GraphView.add_match_nodes,
68
+ '/addMatchNodesByConfig': GraphView.add_match_nodes_by_config,
69
+ '/deleteMatchNodes': GraphView.delete_match_nodes,
70
+ '/saveData': GraphView.save_data,
71
+ '/updateColors': GraphView.update_colors,
72
+ '/saveMatchedRelations': GraphView.save_matched_relations,
73
+ '/updatePrecisionError': GraphView.update_precision_error,
74
+ }
75
+
76
+ def is_active(self):
77
+ """The graphs plugin is active if any run has a graph."""
78
+
79
+ def _is_vis(path, file_name):
80
+ return os.path.isfile(path) and (file_name.endswith(DB_EXT) or file_name.endswith(JSON_EXT))
81
+
82
+ _, error = GraphUtils.safe_check_load_file_path(self.logdir, True)
83
+ if error:
84
+ return False
85
+ for content in os.listdir(self.logdir):
86
+ content_path = os.path.join(self.logdir, content)
87
+ if _is_vis(content_path, content):
88
+ return True
89
+ if os.path.isdir(content_path):
90
+ _, error = GraphUtils.safe_check_load_file_path(content_path, True)
91
+ if error:
92
+ continue
93
+ for file in os.listdir(content_path):
94
+ if _is_vis(os.path.join(content_path, file), file):
95
+ return True
96
+ return False
97
+
98
+ def data_plugin_names(self):
99
+ return (
100
+ PLUGIN_NAME,
101
+ PLUGIN_NAME_RUN_METADATA_WITH_GRAPH,
102
+ )
103
+
104
+ def frontend_metadata(self):
105
+ return base_plugin.FrontendMetadata(
106
+ es_module_path='/index.js',
107
+ disable_reload=True,
108
+ )