mindstudio-probe 1.0.1__py3-none-any.whl → 1.0.4__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 (323) hide show
  1. {mindstudio_probe-1.0.1.dist-info → mindstudio_probe-1.0.4.dist-info}/LICENSE +201 -201
  2. {mindstudio_probe-1.0.1.dist-info → mindstudio_probe-1.0.4.dist-info}/METADATA +36 -30
  3. mindstudio_probe-1.0.4.dist-info/RECORD +276 -0
  4. {mindstudio_probe-1.0.1.dist-info → mindstudio_probe-1.0.4.dist-info}/WHEEL +1 -1
  5. {mindstudio_probe-1.0.1.dist-info → mindstudio_probe-1.0.4.dist-info}/entry_points.txt +1 -0
  6. msprobe/README.md +101 -182
  7. msprobe/__init__.py +1 -0
  8. msprobe/{config/config.json → config.json} +49 -27
  9. msprobe/core/__init__.py +0 -0
  10. msprobe/{pytorch → core}/advisor/advisor.py +124 -124
  11. msprobe/{pytorch → core}/advisor/advisor_const.py +59 -59
  12. msprobe/{pytorch → core}/advisor/advisor_result.py +58 -58
  13. msprobe/core/common/const.py +341 -241
  14. msprobe/core/common/exceptions.py +100 -88
  15. msprobe/core/common/{file_check.py → file_utils.py} +478 -265
  16. msprobe/core/common/log.py +76 -55
  17. msprobe/core/common/utils.py +385 -516
  18. msprobe/core/common_config.py +85 -58
  19. msprobe/core/compare/acc_compare.py +300 -0
  20. msprobe/core/compare/check.py +95 -0
  21. msprobe/core/compare/compare_cli.py +49 -0
  22. msprobe/core/compare/highlight.py +223 -0
  23. msprobe/core/compare/multiprocessing_compute.py +149 -0
  24. msprobe/{pytorch → core}/compare/npy_compare.py +295 -244
  25. msprobe/core/compare/utils.py +430 -0
  26. msprobe/core/data_dump/data_collector.py +154 -140
  27. msprobe/core/data_dump/data_processor/base.py +314 -245
  28. msprobe/core/data_dump/data_processor/factory.py +59 -61
  29. msprobe/core/data_dump/data_processor/mindspore_processor.py +186 -0
  30. msprobe/core/data_dump/data_processor/pytorch_processor.py +366 -346
  31. msprobe/core/data_dump/json_writer.py +96 -116
  32. msprobe/core/data_dump/scope.py +178 -178
  33. msprobe/core/grad_probe/__init__.py +0 -0
  34. msprobe/core/grad_probe/constant.py +71 -0
  35. msprobe/core/grad_probe/grad_compare.py +171 -0
  36. msprobe/core/grad_probe/utils.py +64 -0
  37. msprobe/docs/01.installation.md +89 -0
  38. msprobe/docs/02.config_introduction.md +165 -0
  39. msprobe/docs/03.config_examples.md +247 -0
  40. msprobe/docs/04.acl_config_examples.md +76 -0
  41. msprobe/docs/05.data_dump_PyTorch.md +198 -0
  42. msprobe/docs/06.data_dump_MindSpore.md +243 -0
  43. msprobe/docs/07.accuracy_checker_PyTorch.md +274 -0
  44. msprobe/docs/08.accuracy_checker_online_PyTorch.md +198 -0
  45. msprobe/docs/09.accuracy_checker_MindSpore.md +68 -0
  46. msprobe/docs/10.accuracy_compare_PyTorch.md +245 -0
  47. msprobe/docs/11.accuracy_compare_MindSpore.md +202 -0
  48. msprobe/docs/12.overflow_check_PyTorch.md +79 -0
  49. msprobe/docs/13.overflow_check_MindSpore.md +31 -0
  50. msprobe/{pytorch/doc/parse_tool.md → docs/14.data_parse_PyTorch.md} +283 -286
  51. msprobe/docs/15.free_benchmarking_PyTorch.md +164 -0
  52. msprobe/docs/17.grad_probe.md +207 -0
  53. msprobe/docs/FAQ_PyTorch.md +177 -0
  54. msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md +146 -0
  55. msprobe/docs/img/free_benchmark_framework.png +0 -0
  56. msprobe/docs/img/grad_probe_image-1.png +0 -0
  57. msprobe/docs/img/grad_probe_image-2.png +0 -0
  58. msprobe/docs/img/grad_probe_image-3.png +0 -0
  59. msprobe/docs/img/grad_probe_image-4.png +0 -0
  60. msprobe/docs/img/grad_probe_image.png +0 -0
  61. msprobe/mindspore/__init__.py +1 -1
  62. msprobe/mindspore/api_accuracy_checker/__init__.py +0 -0
  63. msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +255 -0
  64. msprobe/mindspore/api_accuracy_checker/api_info.py +69 -0
  65. msprobe/mindspore/api_accuracy_checker/api_runner.py +156 -0
  66. msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py +197 -0
  67. msprobe/mindspore/api_accuracy_checker/cmd_parser.py +6 -0
  68. msprobe/mindspore/api_accuracy_checker/compute_element.py +239 -0
  69. msprobe/mindspore/api_accuracy_checker/main.py +9 -0
  70. msprobe/mindspore/api_accuracy_checker/type_mapping.py +114 -0
  71. msprobe/mindspore/api_accuracy_checker/utils.py +80 -0
  72. msprobe/mindspore/cell_processor.py +34 -0
  73. msprobe/mindspore/common/const.py +106 -0
  74. msprobe/mindspore/common/log.py +38 -0
  75. msprobe/mindspore/common/utils.py +81 -0
  76. msprobe/mindspore/compare/distributed_compare.py +75 -0
  77. msprobe/mindspore/compare/ms_compare.py +219 -0
  78. msprobe/mindspore/compare/ms_graph_compare.py +348 -0
  79. msprobe/mindspore/compare/ms_to_pt_api.yaml +399 -0
  80. msprobe/mindspore/debugger/debugger_config.py +66 -51
  81. msprobe/mindspore/debugger/precision_debugger.py +126 -32
  82. msprobe/mindspore/dump/dump_tool_factory.py +35 -38
  83. msprobe/mindspore/dump/hook_cell/api_registry.py +118 -0
  84. msprobe/mindspore/dump/hook_cell/hook_cell.py +55 -0
  85. msprobe/mindspore/dump/hook_cell/support_wrap_ops.yaml +922 -0
  86. msprobe/mindspore/dump/hook_cell/wrap_api.py +113 -0
  87. msprobe/mindspore/dump/jit_dump.py +72 -0
  88. msprobe/mindspore/dump/kernel_graph_dump.py +59 -60
  89. msprobe/mindspore/dump/kernel_kbyk_dump.py +64 -0
  90. msprobe/mindspore/free_benchmark/__init__.py +0 -0
  91. msprobe/mindspore/free_benchmark/api_pynative_self_check.py +116 -0
  92. msprobe/mindspore/free_benchmark/common/__init__.py +0 -0
  93. msprobe/mindspore/free_benchmark/common/config.py +12 -0
  94. msprobe/mindspore/free_benchmark/common/handler_params.py +17 -0
  95. msprobe/mindspore/free_benchmark/common/utils.py +71 -0
  96. msprobe/mindspore/free_benchmark/data/support_wrap_ops.yaml +842 -0
  97. msprobe/mindspore/free_benchmark/decorator/__init__.py +0 -0
  98. msprobe/mindspore/free_benchmark/decorator/dec_forward.py +43 -0
  99. msprobe/mindspore/free_benchmark/decorator/decorator_factory.py +107 -0
  100. msprobe/mindspore/free_benchmark/handler/__init__.py +0 -0
  101. msprobe/mindspore/free_benchmark/handler/base_handler.py +90 -0
  102. msprobe/mindspore/free_benchmark/handler/check_handler.py +41 -0
  103. msprobe/mindspore/free_benchmark/handler/fix_handler.py +36 -0
  104. msprobe/mindspore/free_benchmark/handler/handler_factory.py +21 -0
  105. msprobe/mindspore/free_benchmark/perturbation/add_noise.py +67 -0
  106. msprobe/mindspore/free_benchmark/perturbation/base_perturbation.py +21 -0
  107. msprobe/mindspore/free_benchmark/perturbation/bit_noise.py +63 -0
  108. msprobe/mindspore/free_benchmark/perturbation/exchange_value.py +51 -0
  109. msprobe/mindspore/free_benchmark/perturbation/improve_precision.py +35 -0
  110. msprobe/mindspore/free_benchmark/perturbation/no_change.py +12 -0
  111. msprobe/mindspore/free_benchmark/perturbation/perturbation_factory.py +29 -0
  112. msprobe/mindspore/free_benchmark/self_check_tool_factory.py +33 -0
  113. msprobe/mindspore/grad_probe/__init__.py +0 -0
  114. msprobe/mindspore/grad_probe/global_context.py +90 -0
  115. msprobe/mindspore/grad_probe/grad_analyzer.py +231 -0
  116. msprobe/mindspore/grad_probe/grad_monitor.py +27 -0
  117. msprobe/mindspore/grad_probe/grad_stat_csv.py +132 -0
  118. msprobe/mindspore/grad_probe/hook.py +94 -0
  119. msprobe/mindspore/grad_probe/utils.py +30 -0
  120. msprobe/mindspore/ms_config.py +128 -78
  121. msprobe/mindspore/overflow_check/kernel_graph_overflow_check.py +44 -45
  122. msprobe/mindspore/overflow_check/overflow_check_tool_factory.py +34 -32
  123. msprobe/mindspore/runtime.py +4 -0
  124. msprobe/mindspore/service.py +378 -0
  125. msprobe/mindspore/task_handler_factory.py +24 -21
  126. msprobe/msprobe.py +105 -67
  127. msprobe/pytorch/__init__.py +4 -4
  128. msprobe/pytorch/api_accuracy_checker/common/config.py +53 -50
  129. msprobe/pytorch/api_accuracy_checker/common/utils.py +214 -224
  130. msprobe/pytorch/api_accuracy_checker/compare/algorithm.py +213 -216
  131. msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +606 -545
  132. msprobe/pytorch/api_accuracy_checker/compare/api_precision_standard.yaml +132 -132
  133. msprobe/pytorch/api_accuracy_checker/compare/api_precision_threshold.yaml +390 -390
  134. msprobe/pytorch/api_accuracy_checker/compare/compare.py +386 -345
  135. msprobe/pytorch/api_accuracy_checker/compare/compare_column.py +73 -73
  136. msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py +245 -248
  137. msprobe/pytorch/api_accuracy_checker/config.yaml +10 -4
  138. msprobe/pytorch/api_accuracy_checker/run_ut/data_generate.py +335 -328
  139. msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py +200 -203
  140. msprobe/pytorch/api_accuracy_checker/run_ut/run_overflow_check.py +133 -127
  141. msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py +592 -493
  142. msprobe/pytorch/api_accuracy_checker/run_ut/run_ut_utils.py +70 -7
  143. msprobe/pytorch/api_accuracy_checker/run_ut/torch_ut_setting.json +7 -4
  144. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/__init__.py +0 -0
  145. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/attl.py +197 -0
  146. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/client.py +325 -0
  147. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/device_dispatch.py +204 -0
  148. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py +219 -0
  149. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/ssl_config.py +10 -0
  150. msprobe/pytorch/bench_functions/__init__.py +15 -0
  151. msprobe/pytorch/bench_functions/apply_adam_w.py +28 -0
  152. msprobe/pytorch/bench_functions/confusion_transpose.py +19 -0
  153. msprobe/pytorch/bench_functions/fast_gelu.py +55 -0
  154. msprobe/pytorch/bench_functions/layer_norm_eval.py +6 -0
  155. msprobe/pytorch/bench_functions/linear.py +12 -0
  156. msprobe/pytorch/bench_functions/matmul_backward.py +48 -0
  157. msprobe/pytorch/bench_functions/npu_fusion_attention.py +509 -0
  158. msprobe/pytorch/bench_functions/rms_norm.py +15 -0
  159. msprobe/pytorch/bench_functions/rotary_mul.py +52 -0
  160. msprobe/pytorch/bench_functions/scaled_mask_softmax.py +26 -0
  161. msprobe/pytorch/bench_functions/swiglu.py +55 -0
  162. msprobe/pytorch/common/__init__.py +2 -2
  163. msprobe/pytorch/common/compare_script.template +14 -14
  164. msprobe/pytorch/common/log.py +20 -31
  165. msprobe/pytorch/common/parse_json.py +39 -37
  166. msprobe/pytorch/common/utils.py +305 -224
  167. msprobe/pytorch/compare/distributed_compare.py +66 -111
  168. msprobe/pytorch/compare/mapping.yaml +607 -607
  169. msprobe/pytorch/compare/match.py +34 -36
  170. msprobe/pytorch/compare/pt_compare.py +50 -0
  171. msprobe/pytorch/debugger/debugger_config.py +95 -86
  172. msprobe/pytorch/debugger/precision_debugger.py +125 -95
  173. msprobe/pytorch/free_benchmark/__init__.py +8 -8
  174. msprobe/pytorch/free_benchmark/common/constant.py +70 -67
  175. msprobe/pytorch/free_benchmark/common/counter.py +71 -71
  176. msprobe/pytorch/free_benchmark/common/enums.py +37 -37
  177. msprobe/pytorch/free_benchmark/common/params.py +129 -129
  178. msprobe/pytorch/free_benchmark/common/utils.py +102 -98
  179. msprobe/pytorch/free_benchmark/compare/grad_saver.py +179 -183
  180. msprobe/pytorch/free_benchmark/compare/single_benchmark.py +104 -104
  181. msprobe/pytorch/free_benchmark/main.py +105 -102
  182. msprobe/pytorch/free_benchmark/perturbed_layers/base_layer.py +13 -13
  183. msprobe/pytorch/free_benchmark/perturbed_layers/layer_factory.py +41 -41
  184. msprobe/pytorch/free_benchmark/perturbed_layers/npu/add_noise.py +90 -90
  185. msprobe/pytorch/free_benchmark/perturbed_layers/npu/bit_noise.py +104 -104
  186. msprobe/pytorch/free_benchmark/perturbed_layers/npu/change_value.py +63 -63
  187. msprobe/pytorch/free_benchmark/perturbed_layers/npu/improve_precision.py +68 -68
  188. msprobe/pytorch/free_benchmark/perturbed_layers/npu/no_change.py +28 -28
  189. msprobe/pytorch/free_benchmark/perturbed_layers/npu/npu_base_layser.py +45 -45
  190. msprobe/pytorch/free_benchmark/perturbed_layers/run_cpu.py +19 -19
  191. msprobe/pytorch/free_benchmark/result_handlers/base_handler.py +217 -203
  192. msprobe/pytorch/free_benchmark/result_handlers/check_handler.py +39 -39
  193. msprobe/pytorch/free_benchmark/result_handlers/fix_handler.py +23 -23
  194. msprobe/pytorch/free_benchmark/result_handlers/handler_factory.py +30 -31
  195. msprobe/pytorch/free_benchmark/result_handlers/preheat_handler.py +170 -170
  196. msprobe/pytorch/function_factory.py +76 -0
  197. msprobe/pytorch/functional/dump_module.py +39 -39
  198. msprobe/pytorch/grad_probe/__init__.py +0 -0
  199. msprobe/pytorch/grad_probe/grad_monitor.py +91 -0
  200. msprobe/pytorch/grad_probe/grad_stat_csv.py +129 -0
  201. msprobe/pytorch/hook_module/api_registry.py +161 -161
  202. msprobe/pytorch/hook_module/hook_module.py +120 -109
  203. msprobe/pytorch/hook_module/support_wrap_ops.yaml +1879 -1876
  204. msprobe/pytorch/hook_module/utils.py +30 -29
  205. msprobe/pytorch/hook_module/wrap_aten.py +110 -100
  206. msprobe/pytorch/hook_module/wrap_distributed.py +78 -75
  207. msprobe/pytorch/hook_module/wrap_functional.py +105 -108
  208. msprobe/pytorch/hook_module/wrap_npu_custom.py +93 -73
  209. msprobe/pytorch/hook_module/wrap_tensor.py +71 -72
  210. msprobe/pytorch/hook_module/wrap_torch.py +86 -88
  211. msprobe/pytorch/hook_module/wrap_vf.py +62 -64
  212. msprobe/pytorch/module_processer.py +138 -98
  213. msprobe/pytorch/online_dispatch/__init__.py +20 -20
  214. msprobe/pytorch/online_dispatch/compare.py +236 -236
  215. msprobe/pytorch/online_dispatch/dispatch.py +271 -273
  216. msprobe/pytorch/online_dispatch/dump_compare.py +155 -186
  217. msprobe/pytorch/online_dispatch/single_compare.py +391 -391
  218. msprobe/pytorch/online_dispatch/torch_ops_config.yaml +49 -49
  219. msprobe/pytorch/online_dispatch/utils.py +130 -187
  220. msprobe/pytorch/parse.py +4 -4
  221. msprobe/pytorch/parse_tool/cli.py +32 -32
  222. msprobe/pytorch/parse_tool/lib/compare.py +260 -259
  223. msprobe/pytorch/parse_tool/lib/config.py +52 -51
  224. msprobe/pytorch/parse_tool/lib/file_desc.py +31 -31
  225. msprobe/pytorch/parse_tool/lib/interactive_cli.py +102 -102
  226. msprobe/pytorch/parse_tool/lib/parse_exception.py +54 -54
  227. msprobe/pytorch/parse_tool/lib/parse_tool.py +158 -158
  228. msprobe/pytorch/parse_tool/lib/utils.py +316 -367
  229. msprobe/pytorch/parse_tool/lib/visualization.py +85 -90
  230. msprobe/pytorch/pt_config.py +188 -93
  231. msprobe/pytorch/service.py +246 -167
  232. mindstudio_probe-1.0.1.dist-info/RECORD +0 -228
  233. msprobe/config/README.md +0 -397
  234. msprobe/mindspore/doc/dump.md +0 -65
  235. msprobe/mindspore/dump/api_kbk_dump.py +0 -55
  236. msprobe/pytorch/compare/acc_compare.py +0 -1024
  237. msprobe/pytorch/compare/highlight.py +0 -100
  238. msprobe/pytorch/doc/FAQ.md +0 -193
  239. msprobe/pytorch/doc/api_accuracy_checker.md +0 -269
  240. msprobe/pytorch/doc/atat/321/207/342/226/223/342/225/233/321/205/342/225/221/320/266/321/205/342/225/226/320/265/321/205/320/225/342/225/226/321/206/320/245/342/226/221/321/206/320/235/320/276dump/321/206/320/260/320/227/321/205/320/227/320/226/321/206/320/220/320/267/321/210/320/223/342/225/234/321/205/320/257/342/225/221/321/207/342/225/221/342/224/220/321/206/320/232/320/265/321/205/320/241/320/232.md +0 -182
  241. msprobe/pytorch/doc/dump.md +0 -207
  242. msprobe/pytorch/doc/ptdbg_ascend_compare.md +0 -176
  243. msprobe/pytorch/doc/ptdbg_ascend_overview.md +0 -68
  244. msprobe/pytorch/doc/ptdbg_ascend_quickstart.md +0 -381
  245. msprobe/pytorch/doc/run_overflow_check.md +0 -25
  246. msprobe/pytorch/doc//321/205/320/254/320/270/321/207/342/225/221/342/224/220/321/207/342/226/223/342/225/233/321/205/342/225/221/320/266/321/206/320/277/320/244/321/205/320/277/342/225/243.md +0 -90
  247. msprobe/test/core_ut/common/test_utils.py +0 -345
  248. msprobe/test/core_ut/data_dump/test_data_collector.py +0 -47
  249. msprobe/test/core_ut/data_dump/test_json_writer.py +0 -183
  250. msprobe/test/core_ut/data_dump/test_scope.py +0 -151
  251. msprobe/test/core_ut/test_common_config.py +0 -152
  252. msprobe/test/core_ut/test_file_check.py +0 -218
  253. msprobe/test/core_ut/test_log.py +0 -109
  254. msprobe/test/mindspore_ut/test_api_kbk_dump.py +0 -51
  255. msprobe/test/mindspore_ut/test_debugger_config.py +0 -42
  256. msprobe/test/mindspore_ut/test_dump_tool_factory.py +0 -51
  257. msprobe/test/mindspore_ut/test_kernel_graph_dump.py +0 -66
  258. msprobe/test/mindspore_ut/test_kernel_graph_overflow_check.py +0 -63
  259. msprobe/test/mindspore_ut/test_ms_config.py +0 -69
  260. msprobe/test/mindspore_ut/test_overflow_check_tool_factory.py +0 -51
  261. msprobe/test/mindspore_ut/test_precision_debugger.py +0 -56
  262. msprobe/test/mindspore_ut/test_task_handler_factory.py +0 -58
  263. msprobe/test/pytorch_ut/advisor/test_advisor.py +0 -83
  264. msprobe/test/pytorch_ut/api_accuracy_checker/common/test_common_utils.py +0 -108
  265. msprobe/test/pytorch_ut/api_accuracy_checker/common/test_config.py +0 -39
  266. msprobe/test/pytorch_ut/api_accuracy_checker/compare/test_algorithm.py +0 -112
  267. msprobe/test/pytorch_ut/api_accuracy_checker/compare/test_api_precision_compare.py +0 -77
  268. msprobe/test/pytorch_ut/api_accuracy_checker/compare/test_compare.py +0 -125
  269. msprobe/test/pytorch_ut/api_accuracy_checker/compare/test_compare_column.py +0 -10
  270. msprobe/test/pytorch_ut/api_accuracy_checker/compare/test_compare_utils.py +0 -43
  271. msprobe/test/pytorch_ut/api_accuracy_checker/run_ut/dump.json +0 -179
  272. msprobe/test/pytorch_ut/api_accuracy_checker/run_ut/forward.json +0 -63
  273. msprobe/test/pytorch_ut/api_accuracy_checker/run_ut/test_data_generate.py +0 -99
  274. msprobe/test/pytorch_ut/api_accuracy_checker/run_ut/test_multi_run_ut.py +0 -115
  275. msprobe/test/pytorch_ut/api_accuracy_checker/run_ut/test_run_ut.py +0 -72
  276. msprobe/test/pytorch_ut/compare/test_acc_compare.py +0 -17
  277. msprobe/test/pytorch_ut/free_benchmark/perturbed_layers/test_perturbed_layser.py +0 -105
  278. msprobe/test/pytorch_ut/free_benchmark/result_handlers/test_result_handler.py +0 -121
  279. msprobe/test/pytorch_ut/free_benchmark/test_main.py +0 -101
  280. msprobe/test/pytorch_ut/functional/test_dump_module.py +0 -15
  281. msprobe/test/pytorch_ut/hook_module/test_api_registry.py +0 -130
  282. msprobe/test/pytorch_ut/hook_module/test_hook_module.py +0 -42
  283. msprobe/test/pytorch_ut/hook_module/test_wrap_aten.py +0 -65
  284. msprobe/test/pytorch_ut/hook_module/test_wrap_distributed.py +0 -35
  285. msprobe/test/pytorch_ut/hook_module/test_wrap_functional.py +0 -20
  286. msprobe/test/pytorch_ut/hook_module/test_wrap_tensor.py +0 -35
  287. msprobe/test/pytorch_ut/hook_module/test_wrap_torch.py +0 -43
  288. msprobe/test/pytorch_ut/hook_module/test_wrap_vf.py +0 -11
  289. msprobe/test/pytorch_ut/test_pt_config.py +0 -69
  290. msprobe/test/pytorch_ut/test_service.py +0 -59
  291. msprobe/test/resources/advisor.txt +0 -3
  292. msprobe/test/resources/compare_result_20230703104808.csv +0 -9
  293. msprobe/test/resources/compare_result_without_accuracy.csv +0 -9
  294. msprobe/test/resources/config.yaml +0 -3
  295. msprobe/test/resources/npu_test.pkl +0 -8
  296. msprobe/test/run_test.sh +0 -30
  297. msprobe/test/run_ut.py +0 -58
  298. msprobe/test/test_module_processer.py +0 -64
  299. {mindstudio_probe-1.0.1.dist-info → mindstudio_probe-1.0.4.dist-info}/top_level.txt +0 -0
  300. /msprobe/{pytorch/doc → docs}/img/BLOOM-7B_1.png +0 -0
  301. /msprobe/{pytorch/doc → docs}/img/BLOOM-7B_2.png +0 -0
  302. /msprobe/{pytorch/doc → docs}/img/BLOOM-7B_3.png +0 -0
  303. /msprobe/{pytorch/doc → docs}/img/BLOOM-7B_4.png +0 -0
  304. /msprobe/{pytorch/doc → docs}/img/GPT-3_1.png +0 -0
  305. /msprobe/{pytorch/doc → docs}/img/GPT-3_2.png +0 -0
  306. /msprobe/{pytorch/doc → docs}/img/GPT-3_3.png +0 -0
  307. /msprobe/{pytorch/doc → docs}/img/GPT-3_4.png +0 -0
  308. /msprobe/{pytorch/doc → docs}/img/GPT-3_5.png +0 -0
  309. /msprobe/{pytorch/doc → docs}/img/GPT-3_6.png +0 -0
  310. /msprobe/{pytorch/doc → docs}/img/GPT-3_7.png +0 -0
  311. /msprobe/{pytorch/doc → docs}/img/GPT-3_8.png +0 -0
  312. /msprobe/{pytorch/doc → docs}/img/YOLOV5S_1.png +0 -0
  313. /msprobe/{pytorch/doc → docs}/img/YOLOV5S_2.png +0 -0
  314. /msprobe/{pytorch/doc → docs}/img/accuracy_checking_details.png +0 -0
  315. /msprobe/{pytorch/doc → docs}/img/accuracy_checking_result.png +0 -0
  316. /msprobe/{pytorch/doc → docs}/img/api_precision_compare_details.png +0 -0
  317. /msprobe/{pytorch/doc → docs}/img/api_precision_compare_result.png +0 -0
  318. /msprobe/{pytorch/doc → docs}/img/auto_analyze_log.png +0 -0
  319. /msprobe/{pytorch/doc → docs}/img/compare_result_pkl.png +0 -0
  320. /msprobe/{pytorch/doc → docs}/img/compare_result_pkl_md5.png.png +0 -0
  321. /msprobe/{pytorch/doc → docs}/img/cpu_info.png +0 -0
  322. /msprobe/{config → docs}/img/free_benchmark.png +0 -0
  323. /msprobe/{pytorch/doc → docs}/img/module_compare.png +0 -0
@@ -1,50 +1,50 @@
1
- aten_ops_blacklist:
2
- - _cudnn_rnn
3
- - _local_scalar_dense
4
- - _pin_memory
5
- - _to_copy
6
- - _unsafe_view
7
- - clone
8
- - contiguous
9
- - copy_
10
- - cudnn_batch_norm
11
- - cudnn_batch_norm_backward
12
- - detach
13
- - empty
14
- - index_put_
15
- - lift_fresh
16
- - max_pool2d_with_indices_backward # shape unmatch
17
- - native_batch_norm_backward
18
- - new_empty
19
- - new_empty_strided
20
- - new_full
21
- - new_ones
22
- - new_zeros
23
- - ones
24
- - ones_like
25
- - permute
26
- - rand
27
- - rand_like
28
- - randint
29
- - randint_like
30
- - randn
31
- - randn_like
32
- - randperm
33
- - scalar_tensor
34
- - select
35
- - to
36
- - transpose
37
- - unbind
38
- - view
39
- - zero
40
- - zero_
41
- - zeros
42
- - zeros_like
43
-
44
- npu_adjust_autogard:
45
- - adaptive_avg_pool2d
46
- - batch_norm
47
- - log_softmax
48
- - nll_loss
49
- - to
1
+ aten_ops_blacklist:
2
+ - _cudnn_rnn
3
+ - _local_scalar_dense
4
+ - _pin_memory
5
+ - _to_copy
6
+ - _unsafe_view
7
+ - clone
8
+ - contiguous
9
+ - copy_
10
+ - cudnn_batch_norm
11
+ - cudnn_batch_norm_backward
12
+ - detach
13
+ - empty
14
+ - index_put_
15
+ - lift_fresh
16
+ - max_pool2d_with_indices_backward # shape unmatch
17
+ - native_batch_norm_backward
18
+ - new_empty
19
+ - new_empty_strided
20
+ - new_full
21
+ - new_ones
22
+ - new_zeros
23
+ - ones
24
+ - ones_like
25
+ - permute
26
+ - rand
27
+ - rand_like
28
+ - randint
29
+ - randint_like
30
+ - randn
31
+ - randn_like
32
+ - randperm
33
+ - scalar_tensor
34
+ - select
35
+ - to
36
+ - transpose
37
+ - unbind
38
+ - view
39
+ - zero
40
+ - zero_
41
+ - zeros
42
+ - zeros_like
43
+
44
+ npu_adjust_autogard:
45
+ - adaptive_avg_pool2d
46
+ - batch_norm
47
+ - log_softmax
48
+ - nll_loss
49
+ - to
50
50
 
@@ -1,187 +1,130 @@
1
- import os
2
- import inspect
3
- import logging
4
- import psutil
5
- import torch
6
- import numpy as np
7
-
8
- try:
9
- import torch_npu
10
- except ImportError:
11
- pta_cpu_device = None
12
- else:
13
- pta_cpu_device = torch.device("cpu")
14
-
15
- from msprobe.core.common.const import CompareConst, FileCheckConst
16
- from msprobe.core.common.file_check import change_mode
17
-
18
- cpu_device = torch._C.device("cpu")
19
- COLOR_RED = '\033[31m'
20
- COLOR_GREEN = '\033[32m'
21
- COLOR_YELLOW = '\033[33m'
22
- COLOR_BLUE = '\033[34m'
23
- COLOR_PURPLE = '\033[35m'
24
- COLOR_CYAN = '\033[36m'
25
- COLOR_GRAY = '\033[37m'
26
- COLOR_RESET = '\033[0m'
27
-
28
- COMPARE_LOGO = '''
29
- _ _
30
- ___ _ __ | (_)_ __ ___ ___ ___ _ __ ___ _ __ __ _ _ __ ___
31
- / _ \\| '_ \\| | | '_ \\ / _ \\ / __/ _ \\| '_ ` _ \\| '_ \\ / _` | '__/ _ \\
32
- | (_) | | | | | | | | | __/ | (_| (_) | | | | | | |_) | (_| | | | __/
33
- \\___/|_| |_|_|_|_| |_|\\___| \\___\\___/|_| |_| |_| .__/ \\__,_|_| \\___|
34
- |_|
35
- '''
36
-
37
- CSV_COLUMN_NAME = [CompareConst.NPU_NAME,
38
- CompareConst.BENCH_NAME,
39
- CompareConst.NPU_DTYPE,
40
- CompareConst.BENCH_DTYPE,
41
- CompareConst.NPU_SHAPE,
42
- CompareConst.BENCH_SHAPE,
43
- CompareConst.NPU_MAX,
44
- CompareConst.NPU_MIN,
45
- CompareConst.NPU_MEAN,
46
- CompareConst.BENCH_MAX,
47
- CompareConst.BENCH_MIN,
48
- CompareConst.BENCH_MEAN,
49
- CompareConst.COSINE,
50
- CompareConst.MAX_ABS_ERR,
51
- CompareConst.MAX_RELATIVE_ERR,
52
- CompareConst.ACCURACY,
53
- CompareConst.STACK,
54
- CompareConst.ERROR_MESSAGE]
55
-
56
- FLOAT_TYPE = [np.half, np.single, float, np.double, np.float64, np.longdouble, np.float32, np.float16]
57
- BOOL_TYPE = [bool, np.uint8]
58
- INT_TYPE = [np.int32, np.int64]
59
-
60
-
61
- def get_callstack():
62
- callstack = []
63
- for (_, path, line, func, code, _) in inspect.stack()[2:]:
64
- if code:
65
- stack_line = [path, str(line), func, code[0].strip() if code else code]
66
- else:
67
- stack_line = [path, str(line), func, code]
68
- callstack.append(stack_line)
69
- return callstack
70
-
71
-
72
- def np_save_data(data, file_name, data_path):
73
- try:
74
- if hasattr(data, "numpy"):
75
- data = data.numpy()
76
- dump_path = os.path.join(data_path, f'{file_name}.npy')
77
- np.save(dump_path, data)
78
- change_mode(dump_path, FileCheckConst.DATA_FILE_AUTHORITY)
79
- except Exception as e:
80
- logger_error("save numpy failed, error: {}".format(e))
81
- finally:
82
- pass
83
-
84
-
85
- def data_to_cpu(data, deep, data_cpu):
86
- global cpu_device
87
- list_cpu = []
88
- if isinstance(data, torch.Tensor):
89
- if data.device == cpu_device or data.device == pta_cpu_device:
90
- tensor_copy = data.clone().detach()
91
- else:
92
- tensor_copy = data.cpu().detach()
93
- if tensor_copy.dtype in [torch.float16, torch.half, torch.bfloat16]:
94
- tensor_copy = tensor_copy.float()
95
-
96
- if deep == 0:
97
- data_cpu.append(tensor_copy)
98
- return tensor_copy
99
- elif isinstance(data, list):
100
- for v in data:
101
- list_cpu.append(data_to_cpu(v, deep + 1, data_cpu))
102
- if deep == 0:
103
- data_cpu.append(list_cpu)
104
- return list_cpu
105
- elif isinstance(data, tuple):
106
- for v in data:
107
- list_cpu.append(data_to_cpu(v, deep + 1, data_cpu))
108
- tuple_cpu = tuple(list_cpu)
109
- if deep == 0:
110
- data_cpu.append(tuple_cpu)
111
- return tuple_cpu
112
- elif isinstance(data, dict):
113
- dict_cpu = {}
114
- for k, v in data.items():
115
- dict_cpu[k] = data_to_cpu(v, deep + 1, data_cpu)
116
- if deep == 0:
117
- data_cpu.append(dict_cpu)
118
- return dict_cpu
119
- elif isinstance(data, torch._C.device):
120
- return cpu_device
121
- else:
122
- if deep == 0:
123
- data_cpu.append(data)
124
- return data
125
-
126
-
127
- def get_mp_logger():
128
- logger = logging.getLogger(__name__)
129
- if not logger.handlers:
130
- logger.setLevel(logging.INFO)
131
- handler = logging.StreamHandler()
132
- formatter = logging.Formatter('%(asctime)s %(message)s')
133
- logger.propagate = True
134
- handler.setFormatter(formatter)
135
- logger.addHandler(handler)
136
- return logger.info
137
-
138
-
139
- def logger_debug(mesg):
140
- logger = get_mp_logger()
141
- logger(f'DEBUG ' + mesg)
142
-
143
-
144
- def logger_info(mesg):
145
- logger = get_mp_logger()
146
- logger(f'INFO ' + mesg)
147
-
148
-
149
- def logger_warn(mesg):
150
- logger = get_mp_logger()
151
- logger(f'{COLOR_YELLOW}WARNING {mesg} {COLOR_RESET}')
152
-
153
-
154
- def logger_error(mesg):
155
- logger = get_mp_logger()
156
- logger(f'{COLOR_RED}ERROR {mesg} {COLOR_RESET}')
157
-
158
-
159
- def logger_user(mesg):
160
- logger = get_mp_logger()
161
- logger(mesg)
162
-
163
-
164
- def logger_logo():
165
- logger_user(f'{COLOR_CYAN}{COMPARE_LOGO} {COLOR_RESET}')
166
-
167
-
168
- def get_sys_info():
169
- mem = psutil.virtual_memory()
170
- cpu_percent = psutil.cpu_percent(interval=1)
171
- sys_info = f'Total: {mem.total / 1024 / 1024:.2f}MB ' \
172
- f'Free: {mem.available / 1024 / 1024:.2f} MB ' \
173
- f'Used: {mem.used / 1024 / 1024:.2f} MB ' \
174
- f'CPU: {cpu_percent}% '
175
- return sys_info
176
-
177
-
178
- class DispatchException(Exception):
179
- INVALID_PARAMETER = 0
180
-
181
- def __init__(self, err_code, err_msg=""):
182
- super(DispatchException, self).__init__()
183
- self.err_code = err_code
184
- self.err_msg = err_msg
185
-
186
- def __str__(self):
187
- return self.err_msg
1
+ import inspect
2
+ import psutil
3
+ import torch
4
+ import numpy as np
5
+
6
+ try:
7
+ import torch_npu
8
+ except ImportError:
9
+ pta_cpu_device = None
10
+ else:
11
+ pta_cpu_device = torch.device("cpu")
12
+
13
+ from msprobe.core.common.const import CompareConst
14
+
15
+ cpu_device = torch._C.device("cpu")
16
+ COLOR_RED = '\033[31m'
17
+ COLOR_GREEN = '\033[32m'
18
+ COLOR_YELLOW = '\033[33m'
19
+ COLOR_BLUE = '\033[34m'
20
+ COLOR_PURPLE = '\033[35m'
21
+ COLOR_CYAN = '\033[36m'
22
+ COLOR_GRAY = '\033[37m'
23
+ COLOR_RESET = '\033[0m'
24
+
25
+ COMPARE_LOGO = '''
26
+ _ _
27
+ ___ _ __ | (_)_ __ ___ ___ ___ _ __ ___ _ __ __ _ _ __ ___
28
+ / _ \\| '_ \\| | | '_ \\ / _ \\ / __/ _ \\| '_ ` _ \\| '_ \\ / _` | '__/ _ \\
29
+ | (_) | | | | | | | | | __/ | (_| (_) | | | | | | |_) | (_| | | | __/
30
+ \\___/|_| |_|_|_|_| |_|\\___| \\___\\___/|_| |_| |_| .__/ \\__,_|_| \\___|
31
+ |_|
32
+ '''
33
+
34
+ CSV_COLUMN_NAME = [CompareConst.NPU_NAME,
35
+ CompareConst.BENCH_NAME,
36
+ CompareConst.NPU_DTYPE,
37
+ CompareConst.BENCH_DTYPE,
38
+ CompareConst.NPU_SHAPE,
39
+ CompareConst.BENCH_SHAPE,
40
+ CompareConst.NPU_MAX,
41
+ CompareConst.NPU_MIN,
42
+ CompareConst.NPU_MEAN,
43
+ CompareConst.BENCH_MAX,
44
+ CompareConst.BENCH_MIN,
45
+ CompareConst.BENCH_MEAN,
46
+ CompareConst.COSINE,
47
+ CompareConst.MAX_ABS_ERR,
48
+ CompareConst.MAX_RELATIVE_ERR,
49
+ CompareConst.ACCURACY,
50
+ CompareConst.STACK,
51
+ CompareConst.ERROR_MESSAGE]
52
+
53
+ FLOAT_TYPE = [np.half, np.single, float, np.double, np.float64, np.longdouble, np.float32, np.float16]
54
+ BOOL_TYPE = [bool, np.uint8]
55
+ INT_TYPE = [np.int32, np.int64]
56
+
57
+
58
+ def get_callstack():
59
+ callstack = []
60
+ for (_, path, line, func, code, _) in inspect.stack()[2:]:
61
+ if code:
62
+ stack_line = [path, str(line), func, code[0].strip() if code else code]
63
+ else:
64
+ stack_line = [path, str(line), func, code]
65
+ callstack.append(stack_line)
66
+ return callstack
67
+
68
+
69
+ def data_to_cpu(data, deep, data_cpu):
70
+ global cpu_device
71
+ list_cpu = []
72
+ if isinstance(data, torch.Tensor):
73
+ if data.device == cpu_device or data.device == pta_cpu_device:
74
+ tensor_copy = data.clone().detach()
75
+ else:
76
+ tensor_copy = data.cpu().detach()
77
+ if tensor_copy.dtype in [torch.float16, torch.half, torch.bfloat16]:
78
+ tensor_copy = tensor_copy.float()
79
+
80
+ if deep == 0:
81
+ data_cpu.append(tensor_copy)
82
+ return tensor_copy
83
+ elif isinstance(data, list):
84
+ for v in data:
85
+ list_cpu.append(data_to_cpu(v, deep + 1, data_cpu))
86
+ if deep == 0:
87
+ data_cpu.append(list_cpu)
88
+ return list_cpu
89
+ elif isinstance(data, tuple):
90
+ for v in data:
91
+ list_cpu.append(data_to_cpu(v, deep + 1, data_cpu))
92
+ tuple_cpu = tuple(list_cpu)
93
+ if deep == 0:
94
+ data_cpu.append(tuple_cpu)
95
+ return tuple_cpu
96
+ elif isinstance(data, dict):
97
+ dict_cpu = {}
98
+ for k, v in data.items():
99
+ dict_cpu[k] = data_to_cpu(v, deep + 1, data_cpu)
100
+ if deep == 0:
101
+ data_cpu.append(dict_cpu)
102
+ return dict_cpu
103
+ elif isinstance(data, torch._C.device):
104
+ return cpu_device
105
+ else:
106
+ if deep == 0:
107
+ data_cpu.append(data)
108
+ return data
109
+
110
+
111
+ def get_sys_info():
112
+ mem = psutil.virtual_memory()
113
+ cpu_percent = psutil.cpu_percent(interval=1)
114
+ sys_info = f'Total: {mem.total / 1024 / 1024:.2f}MB ' \
115
+ f'Free: {mem.available / 1024 / 1024:.2f} MB ' \
116
+ f'Used: {mem.used / 1024 / 1024:.2f} MB ' \
117
+ f'CPU: {cpu_percent}% '
118
+ return sys_info
119
+
120
+
121
+ class DispatchException(Exception):
122
+ INVALID_PARAMETER = 0
123
+
124
+ def __init__(self, err_code, err_msg=""):
125
+ super(DispatchException, self).__init__()
126
+ self.err_code = err_code
127
+ self.err_msg = err_msg
128
+
129
+ def __str__(self):
130
+ return self.err_msg
msprobe/pytorch/parse.py CHANGED
@@ -1,4 +1,4 @@
1
- from msprobe.pytorch.parse_tool import cli
2
-
3
- if __name__ == '__main__':
4
- cli.parse()
1
+ from msprobe.pytorch.parse_tool import cli
2
+
3
+ if __name__ == '__main__':
4
+ cli.parse()
@@ -1,32 +1,32 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- """
4
- # Copyright (C) 2022-2024. Huawei Technologies Co., Ltd. All rights reserved.
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- """
17
- from msprobe.pytorch.parse_tool.lib.interactive_cli import InteractiveCli
18
- from msprobe.pytorch.common.log import logger
19
-
20
-
21
- def _run_interactive_cli(cli=None):
22
- logger.info("Interactive command mode")
23
- if not cli:
24
- cli = InteractiveCli()
25
- try:
26
- cli.cmdloop(intro="Start Parsing........")
27
- except KeyboardInterrupt:
28
- logger.info("Exit parsing.......")
29
-
30
-
31
- def parse():
32
- _run_interactive_cli()
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ # Copyright (C) 2022-2024. Huawei Technologies Co., Ltd. All rights reserved.
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """
17
+ from msprobe.pytorch.parse_tool.lib.interactive_cli import InteractiveCli
18
+ from msprobe.pytorch.common.log import logger
19
+
20
+
21
+ def _run_interactive_cli(cli=None):
22
+ logger.info("Interactive command mode")
23
+ if not cli:
24
+ cli = InteractiveCli()
25
+ try:
26
+ cli.cmdloop(intro="Start Parsing........")
27
+ except KeyboardInterrupt:
28
+ logger.info("Exit parsing.......")
29
+
30
+
31
+ def parse():
32
+ _run_interactive_cli()