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
@@ -0,0 +1,399 @@
1
+ Functional.abs: Torch.abs
2
+ Functional.absolute: Torch.absolute
3
+ Functional.acos: Torch.acos
4
+ Functional.acosh: Torch.acosh
5
+ Functional.adaptive_avg_pool2d: Functional.adaptive_avg_pool2d
6
+ Functional.adaptive_avg_pool3d: Functional.adaptive_avg_pool3d
7
+ Functional.adaptive_max_pool2d: Functional.adaptive_max_pool2d
8
+ Functional.add: Torch.add
9
+ Functional.addbmm: Torch.addbmm
10
+ Functional.addcdiv: Torch.addcdiv
11
+ Functional.addcmul: Torch.addcmul
12
+ Functional.addmm: Torch.addmm
13
+ Functional.addmv: Torch.addmv
14
+ Functional.affine_grid: Functional.affine_grid
15
+ Functional.angle: Torch.angle
16
+ Functional.arange: Torch.arange
17
+ Functional.arccos: Torch.arccos
18
+ Functional.arccosh: Torch.arccosh
19
+ Functional.arcsinh: Torch.arcsinh
20
+ Functional.arctan: Torch.arctan
21
+ Functional.arctanh: Torch.arctanh
22
+ Functional.argmax: Torch.argmax
23
+ Functional.asin: Torch.asin
24
+ Functional.asinh: Torch.asinh
25
+ Functional.atan: Torch.atan
26
+ Functional.atan2: Torch.atan2
27
+ Functional.atanh: Torch.atanh
28
+ Functional.baddbmm: Torch.baddbmm
29
+ Functional.bartlett_window: Torch.bartlett_window
30
+ Functional.bidense: Functional.bilinear
31
+ Functional.bincount: Torch.bincount
32
+ Functional.bitwise_and: Torch.bitwise_and
33
+ Functional.bitwise_or: Torch.bitwise_or
34
+ Functional.bitwise_xor: Torch.bitwise_xor
35
+ Functional.blackman_window: Torch.blackman_window
36
+ Functional.ceil: Torch.ceil
37
+ Functional.cholesky_solve: Torch.cholesky_solve
38
+ Functional.clamp: Torch.clamp
39
+ Functional.clip: Torch.clip
40
+ Functional.column_stack: Torch.column_stack
41
+ Functional.conj: Torch.conj
42
+ Functional.conv1d: Functional.conv1d
43
+ Functional.conv2d: Functional.conv2d
44
+ Functional.conv3d: Functional.conv3d
45
+ Functional.cosh: Torch.cosh
46
+ Functional.cosine_embedding_loss: Functional.cosine_embedding_loss
47
+ Functional.cosine_similarity: Functional.cosine_similarity
48
+ Functional.cross: Torch.cross
49
+ Functional.cross_entropy: Functional.cross_entropy
50
+ Functional.ctc_loss: Functional.ctc_loss
51
+ Functional.cumprod: Torch.cumprod
52
+ Functional.dense: Functional.linear
53
+ Functional.diag_embed: Torch.diag_embed
54
+ Functional.diagflat: Torch.diagflat
55
+ Functional.diagonal: Torch.diagonal
56
+ Functional.digamma: Torch.digamma
57
+ Functional.dist: Torch.dist
58
+ Functional.div: Torch.div
59
+ Functional.divide: Torch.divide
60
+ Functional.einsum: Torch.einsum
61
+ Functional.equal: Torch.eq
62
+ Functional.erf: Torch.erf
63
+ Functional.erfc: Torch.erfc
64
+ Functional.exp: Torch.exp
65
+ Functional.exp2: Torch.exp2
66
+ Functional.expm1: Torch.expm1
67
+ Functional.eye: Torch.eye
68
+ Functional.flip: Torch.flip
69
+ Functional.fliplr: Torch.fliplr
70
+ Functional.flipud: Torch.flipud
71
+ Functional.floor_divide: Torch.floor_divide
72
+ Functional.fmax: Torch.fmax
73
+ Functional.fmod: Torch.fmod
74
+ Functional.full: Torch.full
75
+ Functional.full_like: Torch.full_like
76
+ Functional.gcd: Torch.gcd
77
+ Functional.geqrf: Torch.geqrf
78
+ Functional.greater: Torch.greater
79
+ Functional.greater_equal: Torch.greater_equal
80
+ Functional.gumbel_softmax: Functional.gumbel_softmax
81
+ Functional.hamming_window: Torch.hamming_window
82
+ Functional.hann_window: Torch.hann_window
83
+ Functional.hardsigmoid: Functional.hardsigmoid
84
+ Functional.hardtanh: Functional.hardtanh
85
+ Functional.heaviside: Torch.heaviside
86
+ Functional.hinge_embedding_loss: Functional.hinge_embedding_loss
87
+ Functional.histc: Torch.histc
88
+ Functional.hsplit: Torch.hsplit
89
+ Functional.hstack: Torch.hstack
90
+ Functional.hypot: Torch.hypot
91
+ Functional.i0: Torch.i0
92
+ Functional.igamma: Torch.igamma
93
+ Functional.igammac: Torch.igammac
94
+ Functional.imag: Torch.imag
95
+ Functional.inner: Torch.inner
96
+ Functional.inverse: Torch.inverse
97
+ Functional.is_nonzero: Torch.is_nonzero
98
+ Functional.is_tensor: Torch.is_tensor
99
+ Functional.isinf: Torch.isinf
100
+ Functional.isneginf: Torch.isneginf
101
+ Functional.isposinf: Torch.isposinf
102
+ Functional.isreal: Torch.isreal
103
+ Functional.kaiser_window: Torch.kaiser_window
104
+ Functional.kron: Torch.kron
105
+ Functional.l1_loss: Functional.l1_loss
106
+ Functional.lcm: Torch.lcm
107
+ Functional.lerp: Torch.lerp
108
+ Functional.log1p: Torch.log1p
109
+ Functional.logaddexp: Torch.logaddexp
110
+ Functional.logaddexp2: Torch.logaddexp2
111
+ Functional.logdet: Torch.logdet
112
+ Functional.logical_and: Torch.logical_and
113
+ Functional.logical_not: Torch.logical_not
114
+ Functional.logical_or: Torch.logical_or
115
+ Functional.logical_xor: Torch.logical_xor
116
+ Functional.logit: Torch.logit
117
+ Functional.logspace: Torch.logspace
118
+ Functional.lt: Torch.lt
119
+ Functional.lu_solve: Torch.lu_solve
120
+ Functional.lu_unpack: Torch.lu_unpack
121
+ Functional.margin_ranking_loss: Functional.margin_ranking_loss
122
+ Functional.masked_select: Torch.masked_select
123
+ Functional.matmul: Torch.matmul
124
+ Functional.max_pool3d: Functional.max_pool3d
125
+ Functional.max_unpool1d: Functional.max_unpool1d
126
+ Functional.max_unpool2d: Functional.max_unpool2d
127
+ Functional.max_unpool3d: Functional.max_unpool3d
128
+ Functional.mm: Torch.mm
129
+ Functional.moveaxis: Torch.moveaxis
130
+ Functional.movedim: Torch.movedim
131
+ Functional.mse_loss: Functional.mse_loss
132
+ Functional.msort: Torch.msort
133
+ Functional.mul: Torch.mul
134
+ Functional.multi_margin_loss: Functional.multi_margin_loss
135
+ Functional.multilabel_margin_loss: Functional.multilabel_margin_loss
136
+ Functional.multilabel_soft_margin_loss: Functional.multilabel_soft_margin_loss
137
+ Functional.multiply: Torch.multiply
138
+ Functional.nan_to_num: Torch.nan_to_num
139
+ Functional.nansum: Torch.nansum
140
+ Functional.neg: Torch.neg
141
+ Functional.negative: Torch.negative
142
+ Functional.nextafter: Torch.nextafter
143
+ Functional.nll_loss: Functional.nll_loss
144
+ Functional.nonzero: Torch.nonzero
145
+ Functional.not_equal: Torch.not_equal
146
+ Functional.numel: Torch.numel
147
+ Functional.ones_like: Torch.ones_like
148
+ Functional.orgqr: Torch.orgqr
149
+ Functional.outer: Torch.outer
150
+ Functional.pdist: Functional.pdist
151
+ Functional.permute: Torch.permute
152
+ Functional.pixel_shuffle: Functional.pixel_shuffle
153
+ Functional.pixel_unshuffle: Functional.pixel_unshuffle
154
+ Functional.polar: Torch.polar
155
+ Functional.pow: Torch.pow
156
+ Functional.rand: Torch.rand
157
+ Functional.rand_like: Torch.rand_like
158
+ Functional.randn: Torch.randn
159
+ Functional.randn_like: Torch.randn_like
160
+ Functional.ravel: Torch.ravel
161
+ Functional.real: Torch.real
162
+ Functional.reciprocal: Torch.reciprocal
163
+ Functional.relu: Functional.relu
164
+ Functional.remainder: Torch.remainder
165
+ Functional.reshape: Torch.reshape
166
+ Functional.roll: Torch.roll
167
+ Functional.rot90: Torch.rot90
168
+ Functional.round: Torch.round
169
+ Functional.row_stack: Torch.row_stack
170
+ Functional.rsqrt: Torch.rsqrt
171
+ Functional.searchsorted: Torch.searchsorted
172
+ Functional.sgn: Torch.sgn
173
+ Functional.sigmoid: Functional.sigmoid
174
+ Functional.sign: Torch.sign
175
+ Functional.signbit: Torch.signbit
176
+ Functional.sin: Torch.sin
177
+ Functional.sinc: Torch.sinc
178
+ Functional.sinh: Torch.sinh
179
+ Functional.slogdet: Torch.slogdet
180
+ Functional.smooth_l1_loss: Functional.smooth_l1_loss
181
+ Functional.soft_margin_loss: Functional.soft_margin_loss
182
+ Functional.square: Torch.square
183
+ Functional.subtract: Torch.subtract
184
+ Functional.sum: Torch.sum
185
+ Functional.swapaxes: Torch.transpose
186
+ Functional.swapdims: Torch.swapdims
187
+ Functional.t: Torch.t
188
+ Functional.tan: Torch.tan
189
+ Functional.tanh: Functional.tanh
190
+ Functional.tanhshrink: Functional.tanhshrink
191
+ Functional.topk: Torch.topk
192
+ Functional.trace: Torch.trace
193
+ Functional.trapz: Torch.trapz
194
+ Functional.tril: Torch.tril
195
+ Functional.tril_indices: Torch.tril_indices
196
+ Functional.triu_indices: Torch.triu_indices
197
+ Functional.true_divide: Torch.true_divide
198
+ Functional.trunc: Torch.trunc
199
+ Functional.unbind: Torch.unbind
200
+ Functional.unfold: Functional.unfold
201
+ Functional.unsqueeze: Torch.unsqueeze
202
+ Functional.vander: Torch.vander
203
+ Functional.view_as_real: Torch.view_as_real
204
+ Functional.vsplit: Torch.vsplit
205
+ Functional.where: Torch.where
206
+ Functional.xlogy: Torch.xlogy
207
+ Functional.zeros_like: Torch.zeros_like
208
+ Tensor.H: Tensor.H
209
+ Tensor.T: Tensor.T
210
+ Tensor.abs: Tensor.abs
211
+ Tensor.absolute: Tensor.absolute
212
+ Tensor.acos: Tensor.acos
213
+ Tensor.acosh: Tensor.acosh
214
+ Tensor.add: Tensor.add
215
+ Tensor.addbmm: Tensor.addbmm
216
+ Tensor.addcdiv: Tensor.addcdiv
217
+ Tensor.addcmul: Tensor.addcmul
218
+ Tensor.addmm: Tensor.addmm
219
+ Tensor.addr: Tensor.addr
220
+ Tensor.angle: Tensor.angle
221
+ Tensor.arccos: Tensor.arccos
222
+ Tensor.arccosh: Tensor.arccosh
223
+ Tensor.arcsin: Tensor.arcsin
224
+ Tensor.arcsinh: Tensor.arcsinh
225
+ Tensor.arctan: Tensor.arctan
226
+ Tensor.arctanh: Tensor.arctanh
227
+ Tensor.asin: Tensor.asin
228
+ Tensor.asinh: Tensor.asinh
229
+ Tensor.asnumpy: Tensor.numpy
230
+ Tensor.atan: Tensor.atan
231
+ Tensor.atan2: Tensor.atan2
232
+ Tensor.atanh: Tensor.atanh
233
+ Tensor.baddbmm: Tensor.baddbmm
234
+ Tensor.bincount: Tensor.bincount
235
+ Tensor.bitwise_and: Tensor.bitwise_and
236
+ Tensor.bitwise_or: Tensor.bitwise_or
237
+ Tensor.bitwise_xor: Tensor.bitwise_xor
238
+ Tensor.cauchy: Tensor.cauchy_
239
+ Tensor.ceil: Tensor.ceil
240
+ Tensor.cholesky: Tensor.cholesky
241
+ Tensor.cholesky_solve: Tensor.cholesky_solve
242
+ Tensor.chunk: Tensor.chunk
243
+ Tensor.clamp: Tensor.clamp
244
+ Tensor.clip: Tensor.clip
245
+ Tensor.conj: Tensor.conj
246
+ Tensor.contiguous: Tensor.contiguous
247
+ Tensor.copysign: Tensor.copysign
248
+ Tensor.cos: Tensor.cos
249
+ Tensor.cosh: Tensor.cosh
250
+ Tensor.cross: Tensor.cross
251
+ Tensor.cumprod: Tensor.cumprod
252
+ Tensor.cumsum: Tensor.cumsum
253
+ Tensor.deg2rad: Tensor.deg2rad
254
+ Tensor.diagflat: Tensor.diagflat
255
+ Tensor.diagonal: Tensor.diagonal
256
+ Tensor.digamma: Tensor.digamma
257
+ Tensor.div: Tensor.div
258
+ Tensor.divide: Tensor.divide
259
+ Tensor.equal: Tensor.eq
260
+ Tensor.erf: Tensor.erf
261
+ Tensor.erfc: Tensor.erfc
262
+ Tensor.erfinv: Tensor.erfinv
263
+ Tensor.exp: Tensor.exp
264
+ Tensor.expm1: Tensor.expm1
265
+ Tensor.fill_diagonal: Tensor.fill_diagonal_
266
+ Tensor.fliplr: Tensor.fliplr
267
+ Tensor.flipud: Tensor.flipud
268
+ Tensor.float: Tensor.float
269
+ Tensor.floor: Tensor.floor
270
+ Tensor.fmax: Tensor.fmax
271
+ Tensor.fmod: Tensor.fmod
272
+ Tensor.gather_elements: Tensor.gather
273
+ Tensor.geqrf: Tensor.geqrf
274
+ Tensor.greater: Tensor.greater
275
+ Tensor.greater_equal: Tensor.greater_equal
276
+ Tensor.half: Tensor.half
277
+ Tensor.hardshrink: Tensor.hardshrink
278
+ Tensor.heaviside: Tensor.heaviside
279
+ Tensor.histc: Tensor.histc
280
+ Tensor.hypot: Tensor.hypot
281
+ Tensor.i0: Tensor.i0
282
+ Tensor.igamma: Tensor.igamma
283
+ Tensor.igammac: Tensor.igammac
284
+ Tensor.imag: Tensor.imag
285
+ Tensor.index_add: Tensor.index_add
286
+ Tensor.index_fill: Tensor.index_fill
287
+ Tensor.index_put: Tensor.index_put
288
+ Tensor.int: Tensor.int
289
+ Tensor.inverse: Tensor.inverse
290
+ Tensor.is_complex: Tensor.is_complex
291
+ Tensor.is_contiguous: Tensor.is_contiguous
292
+ Tensor.is_floating_point: Tensor.is_floating_point
293
+ Tensor.is_signed: Tensor.is_signed
294
+ Tensor.isfinite: Tensor.isfinite
295
+ Tensor.isinf: Tensor.isinf
296
+ Tensor.isnan: Tensor.isnan
297
+ Tensor.isneginf: Tensor.isneginf
298
+ Tensor.isposinf: Tensor.isposinf
299
+ Tensor.isreal: Tensor.isreal
300
+ Tensor.lcm: Tensor.lcm
301
+ Tensor.ldexp: Tensor.ldexp
302
+ Tensor.le: Tensor.le
303
+ Tensor.lerp: Tensor.lerp
304
+ Tensor.less: Tensor.less
305
+ Tensor.less_equal: Tensor.less_equal
306
+ Tensor.log: Tensor.log
307
+ Tensor.log10: Tensor.log10
308
+ Tensor.log1p: Tensor.log1p
309
+ Tensor.log2: Tensor.log2
310
+ Tensor.log_normal: Tensor.log_normal
311
+ Tensor.logaddexp: Tensor.logaddexp
312
+ Tensor.logaddexp2: Tensor.logaddexp2
313
+ Tensor.logcumsumexp: Tensor.logcumsumexp
314
+ Tensor.logdet: Tensor.logdet
315
+ Tensor.logical_and: Tensor.logical_and
316
+ Tensor.logical_not: Tensor.logical_not
317
+ Tensor.logical_or: Tensor.logical_or
318
+ Tensor.logical_xor: Tensor.logical_xor
319
+ Tensor.logit: Tensor.logit
320
+ Tensor.long: Tensor.long
321
+ Tensor.lt: Tensor.lt
322
+ Tensor.lu_solve: Tensor.lu_solve
323
+ Tensor.mH: Tensor.mH
324
+ Tensor.mT: Tensor.mT
325
+ Tensor.masked_fill: Tensor.masked_fill
326
+ Tensor.masked_select: Tensor.masked_select
327
+ Tensor.matmul: Tensor.matmul
328
+ Tensor.maximum: Tensor.maximum
329
+ Tensor.minimum: Tensor.minimum
330
+ Tensor.mm: Tensor.mm
331
+ Tensor.movedim: Tensor.movedim
332
+ Tensor.msort: Tensor.msort
333
+ Tensor.mul: Tensor.mul
334
+ Tensor.multiply: Tensor.multiply
335
+ Tensor.mvlgamma: Tensor.mvlgamma
336
+ Tensor.nan_to_num: Tensor.nan_to_num
337
+ Tensor.nanmedian: Tensor.nanmedian
338
+ Tensor.nansum: Tensor.nansum
339
+ Tensor.ndim: Tensor.ndim
340
+ Tensor.ndimension: Tensor.ndimension
341
+ Tensor.ne: Tensor.ne
342
+ Tensor.neg: Tensor.neg
343
+ Tensor.negative: Tensor.negative
344
+ Tensor.nelement: Tensor.nelement
345
+ Tensor.new_ones: Tensor.new_ones
346
+ Tensor.new_zeros: Tensor.new_zeros
347
+ Tensor.nextafter: Tensor.nextafter
348
+ Tensor.nonzero: Tensor.nonzero
349
+ Tensor.not_equal: Tensor.not_equal
350
+ Tensor.numel: Tensor.numel
351
+ Tensor.orgqr: Tensor.orgqr
352
+ Tensor.ormqr: Tensor.ormqr
353
+ Tensor.outer: Tensor.outer
354
+ Tensor.permute: Tensor.permute
355
+ Tensor.rad2deg: Tensor.rad2deg
356
+ Tensor.ravel: Tensor.ravel
357
+ Tensor.real: Tensor.real
358
+ Tensor.reciprocal: Tensor.reciprocal
359
+ Tensor.remainder: Tensor.remainder
360
+ Tensor.repeat_interleave: Tensor.repeat_interleave
361
+ Tensor.reshape: Tensor.reshape
362
+ Tensor.reshape_as: Tensor.reshape_as
363
+ Tensor.roll: Tensor.roll
364
+ Tensor.rot90: Tensor.rot90
365
+ Tensor.round: Tensor.round
366
+ Tensor.rsqrt: Tensor.rsqrt
367
+ Tensor.sgn: Tensor.sgn
368
+ Tensor.shape: Tensor.shape
369
+ Tensor.short: Tensor.short
370
+ Tensor.sigmoid: Tensor.sigmoid
371
+ Tensor.sign: Tensor.sign
372
+ Tensor.signbit: Tensor.signbit
373
+ Tensor.sin: Tensor.sin
374
+ Tensor.sinc: Tensor.sinc
375
+ Tensor.sinh: Tensor.sinh
376
+ Tensor.slogdet: Tensor.slogdet
377
+ Tensor.sort: Tensor.sort
378
+ Tensor.sqrt: Tensor.sqrt
379
+ Tensor.square: Tensor.square
380
+ Tensor.squeeze: Tensor.squeeze
381
+ Tensor.storage_offset: Tensor.storage_offset
382
+ Tensor.stride: Tensor.stride
383
+ Tensor.subtract: Tensor.subtract
384
+ Tensor.sum_to_size: Tensor.sum_to_size
385
+ Tensor.swapaxes: Tensor.transpose
386
+ Tensor.swapdims: Tensor.swapdims
387
+ Tensor.t: Tensor.t
388
+ Tensor.tan: Tensor.tan
389
+ Tensor.tanh: Tensor.tanh
390
+ Tensor.topk: Tensor.topk
391
+ Tensor.trace: Tensor.trace
392
+ Tensor.tril: Tensor.tril
393
+ Tensor.true_divide: Tensor.true_divide
394
+ Tensor.trunc: Tensor.trunc
395
+ Tensor.unbind: Tensor.unbind
396
+ Tensor.unsqueeze: Tensor.unsqueeze
397
+ Tensor.view: Tensor.view
398
+ Tensor.view_as: Tensor.view_as
399
+ Tensor.where: Tensor.where
@@ -1,51 +1,66 @@
1
- import os
2
-
3
-
4
- class DebuggerConfig:
5
- convert_map = {
6
- "L0": "cell",
7
- "L1": "api",
8
- "L2": 'kernel'
9
- }
10
-
11
- def __init__(self, common_config, task_config):
12
- self.dump_path = common_config.dump_path
13
- self.task = common_config.task
14
- self.rank = [] if not common_config.rank else common_config.rank
15
- self.step = [] if not common_config.step else common_config.step
16
- if not common_config.level:
17
- common_config.level = "L1"
18
- self.level = DebuggerConfig.convert_map[common_config.level]
19
- self.list = [] if not task_config.list else task_config.list
20
- self.data_mode = [] if not task_config.data_mode else task_config.data_mode
21
- self.file_format = task_config.file_format
22
- self.check_mode = task_config.check_mode
23
-
24
- self.check()
25
-
26
- def check(self):
27
- if not self.dump_path:
28
- raise Exception("Dump path is empty.")
29
- if not os.path.isabs(self.dump_path):
30
- raise Exception("Dump path must be absolute path.")
31
- if not self.task:
32
- self.task = "statistics"
33
- if not self.level:
34
- raise Exception("level must be L0, L1 or L2")
35
- if not self.file_format:
36
- self.file_format = "npy"
37
- if not self.check_mode:
38
- self.check_mode = "all"
39
- self._check_rank()
40
- self._check_step()
41
- return True
42
-
43
- def _check_rank(self):
44
- for rank_id in self.rank:
45
- if not isinstance(rank_id, int) or rank_id < 0:
46
- raise ValueError(f"rank {self.rank} must be a positive integer.")
47
-
48
- def _check_step(self):
49
- for s in self.step:
50
- if not isinstance(s, int):
51
- raise ValueError(f"step element {s} should be int")
1
+ import os
2
+
3
+ from msprobe.core.common.const import Const
4
+ from msprobe.mindspore.common.const import Const as MsConst
5
+ from msprobe.mindspore.common.const import FreeBenchmarkConst
6
+ from msprobe.core.common.file_utils import create_directory
7
+
8
+
9
+ class DebuggerConfig:
10
+ def __init__(self, common_config, task_config):
11
+ self.execution_mode = None
12
+ self.dump_path = common_config.dump_path
13
+ self.task = common_config.task
14
+ self.rank = [] if not common_config.rank else common_config.rank
15
+ self.step = [] if not common_config.step else common_config.step
16
+ common_config.level = Const.LEVEL_L1 if not common_config.level else common_config.level
17
+ self.level = MsConst.TOOL_LEVEL_DICT.get(common_config.level, MsConst.API)
18
+ self.level_ori = common_config.level
19
+ self.list = [] if not task_config.list else task_config.list
20
+ self.scope = [] if not task_config.scope else task_config.scope
21
+ self.data_mode = [] if not task_config.data_mode else task_config.data_mode
22
+ self.file_format = task_config.file_format
23
+ self.overflow_nums = 1 if not task_config.overflow_nums else task_config.overflow_nums
24
+ self.check_mode = task_config.check_mode
25
+ self.framework = Const.MS_FRAMEWORK
26
+ self.summary_mode = task_config.summary_mode
27
+ self.check()
28
+ create_directory(self.dump_path)
29
+
30
+ if self.task == Const.FREE_BENCHMARK:
31
+ self.pert_type = (FreeBenchmarkConst.DEFAULT_PERT_TYPE
32
+ if not task_config.pert_mode else task_config.pert_mode)
33
+ self.handler_type = (FreeBenchmarkConst.DEFAULT_HANDLER_TYPE
34
+ if not task_config.handler_type else task_config.handler_type)
35
+ self.stage = FreeBenchmarkConst.DEFAULT_STAGE if not task_config.fuzz_stage else task_config.fuzz_stage
36
+ if self.handler_type == FreeBenchmarkConst.FIX and \
37
+ self.pert_type != FreeBenchmarkConst.DEFAULT_PERT_TYPE:
38
+ raise ValueError("pert_mode must be improve_precision or empty when handler_type is fix, "
39
+ f"but got {self.pert_type}.")
40
+ self.dump_level = FreeBenchmarkConst.DEFAULT_DUMP_LEVEL
41
+
42
+ def check(self):
43
+ if not self.dump_path:
44
+ raise Exception("Dump path is empty.")
45
+ self.dump_path = os.path.abspath(self.dump_path)
46
+ if not self.task:
47
+ self.task = "statistics"
48
+ if not self.level:
49
+ raise Exception("level must be L0, L1 or L2")
50
+ if not self.file_format:
51
+ self.file_format = "npy"
52
+ if not self.check_mode:
53
+ self.check_mode = "all"
54
+ self._check_rank()
55
+ self._check_step()
56
+ return True
57
+
58
+ def _check_rank(self):
59
+ for rank_id in self.rank:
60
+ if not isinstance(rank_id, int) or rank_id < 0:
61
+ raise ValueError(f"rank {self.rank} must be a positive integer.")
62
+
63
+ def _check_step(self):
64
+ for s in self.step:
65
+ if not isinstance(s, int) or s < 0:
66
+ raise ValueError(f"step element {s} must be a positive integer.")
@@ -1,32 +1,126 @@
1
- import os
2
- from msprobe.mindspore.ms_config import parse_json_config
3
- from msprobe.mindspore.debugger.debugger_config import DebuggerConfig
4
- from msprobe.mindspore.task_handler_factory import TaskHandlerFactory
5
-
6
-
7
- class PrecisionDebugger:
8
- _instance = None
9
-
10
- def __new__(cls, config_path=None):
11
- if not cls._instance:
12
- cls._instance = super().__new__(cls)
13
- cls._instance.initialized = False
14
- cls._instance.config = None
15
- return cls._instance
16
-
17
- def __init__(self, config_path=None):
18
- if self.initialized:
19
- return
20
- if not config_path:
21
- config_path = os.path.join(os.path.dirname(__file__), "../../config/config.json")
22
- common_config, task_config = parse_json_config(config_path)
23
- self.config = DebuggerConfig(common_config, task_config)
24
- self.initialized = True
25
-
26
- @classmethod
27
- def start(cls, target=None):
28
- instance = cls._instance
29
- if not instance:
30
- raise Exception("No instance of PrecisionDebugger found.")
31
- handler = TaskHandlerFactory.create(instance.config)
32
- handler.handle()
1
+ import os
2
+
3
+ import mindspore as ms
4
+ from mindspore._c_expression import MSContext
5
+
6
+ from msprobe.mindspore.service import Service
7
+ from msprobe.mindspore.ms_config import parse_json_config
8
+ from msprobe.mindspore.debugger.debugger_config import DebuggerConfig
9
+ from msprobe.mindspore.task_handler_factory import TaskHandlerFactory
10
+ from msprobe.core.common.const import Const
11
+ from msprobe.mindspore.common.const import Const as MsConst
12
+ from msprobe.mindspore.runtime import Runtime
13
+
14
+ from msprobe.mindspore.grad_probe.grad_monitor import GradientMonitor
15
+
16
+
17
+ class PrecisionDebugger:
18
+ _instance = None
19
+ task_not_need_service = [Const.GRAD_PROBE]
20
+
21
+ def __new__(cls, config_path=None, opt=None):
22
+ if not cls._instance:
23
+ cls._instance = super().__new__(cls)
24
+ cls._instance.initialized = False
25
+ cls._instance.config = None
26
+ cls.service = None
27
+ cls.first_start = False
28
+ return cls._instance
29
+
30
+ def __init__(self, config_path=None):
31
+ if self.initialized:
32
+ return
33
+ self.initialized = True
34
+ if not config_path:
35
+ config_path = os.path.join(os.path.dirname(__file__), "../../config.json")
36
+ common_config, task_config = parse_json_config(config_path)
37
+ self.task = common_config.task
38
+ if self.task == Const.GRAD_PROBE:
39
+ self.gm = GradientMonitor(common_config, task_config)
40
+ return
41
+ self.config = DebuggerConfig(common_config, task_config)
42
+
43
+ Runtime.step_count = 0
44
+ Runtime.is_running = False
45
+
46
+ @staticmethod
47
+ def _get_execution_mode():
48
+ jit_level = ms.context.get_jit_config().get(MsConst.JIT_LEVEL)
49
+ jit_level = jit_level if jit_level else ms.get_context(MsConst.JIT_LEVEL)
50
+ if not jit_level:
51
+ if MSContext.get_instance().get_ascend_soc_version() == MsConst.ASCEND_910A:
52
+ jit_level = MsConst.JIT_LEVEL_O2
53
+ else:
54
+ jit_level = MsConst.JIT_LEVEL_O0
55
+
56
+ if ms.get_context("mode") == ms.GRAPH_MODE:
57
+ if jit_level == MsConst.JIT_LEVEL_O2:
58
+ return MsConst.GRAPH_GE_MODE
59
+ else:
60
+ return MsConst.GRAPH_KBYK_MODE
61
+ else:
62
+ return MsConst.PYNATIVE_MODE
63
+
64
+ @classmethod
65
+ def start(cls, model=None):
66
+ instance = cls._instance
67
+ if not instance:
68
+ raise Exception("No instance of PrecisionDebugger found.")
69
+ if instance.task in PrecisionDebugger.task_not_need_service:
70
+ return
71
+
72
+ instance.config.execution_mode = instance._get_execution_mode()
73
+ if cls._need_service():
74
+ if not instance.service:
75
+ instance.service = Service(instance.config)
76
+ instance.service.start(model)
77
+ else:
78
+ if not instance.first_start:
79
+ handler = TaskHandlerFactory.create(instance.config)
80
+ handler.handle()
81
+
82
+ instance.first_start = True
83
+ Runtime.is_running = True
84
+
85
+ @classmethod
86
+ def stop(cls):
87
+ instance = cls._instance
88
+ if not instance:
89
+ raise Exception("PrecisionDebugger instance is not created.")
90
+ if instance.task == Const.GRAD_PROBE:
91
+ instance.gm.stop()
92
+ if instance.task in PrecisionDebugger.task_not_need_service:
93
+ return
94
+ if instance.service:
95
+ instance.service.stop()
96
+ Runtime.is_running = False
97
+
98
+ @classmethod
99
+ def step(cls):
100
+ instance = cls._instance
101
+ if not instance:
102
+ raise Exception("PrecisionDebugger instance is not created.")
103
+ if instance.task in PrecisionDebugger.task_not_need_service:
104
+ return
105
+ if instance.service:
106
+ instance.service.step()
107
+ Runtime.step_count += 1
108
+
109
+ @classmethod
110
+ def monitor(cls, opt):
111
+ instance = cls._instance
112
+ if not instance:
113
+ raise Exception("PrecisionDebugger instance is not created.")
114
+ if instance.task != Const.GRAD_PROBE:
115
+ return
116
+ instance.gm.monitor(opt)
117
+
118
+ @classmethod
119
+ def _need_service(cls):
120
+ instance = cls._instance
121
+ if not instance:
122
+ raise Exception("No instance of PrecisionDebugger found.")
123
+ if instance.config.execution_mode != MsConst.PYNATIVE_MODE:
124
+ return False
125
+ else:
126
+ return instance.config.task != Const.FREE_BENCHMARK and instance.config.level != MsConst.KERNEL