mindstudio-probe 8.3.0__py3-none-any.whl → 8.3.2__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 (54) hide show
  1. {mindstudio_probe-8.3.0.dist-info → mindstudio_probe-8.3.2.dist-info}/METADATA +1 -1
  2. {mindstudio_probe-8.3.0.dist-info → mindstudio_probe-8.3.2.dist-info}/RECORD +44 -54
  3. msprobe/README.md +8 -5
  4. msprobe/core/common/const.py +17 -3
  5. msprobe/core/common/file_utils.py +64 -13
  6. msprobe/core/common/framework_adapter.py +10 -1
  7. msprobe/core/common/utils.py +17 -0
  8. msprobe/core/compare/utils.py +26 -6
  9. msprobe/core/config_check/ckpt_compare/ckpt_comparator.py +6 -1
  10. msprobe/core/hook_manager.py +2 -16
  11. msprobe/core/service.py +5 -16
  12. msprobe/docs/01.installation.md +2 -0
  13. msprobe/docs/02.config_introduction.md +0 -13
  14. msprobe/docs/05.data_dump_PyTorch.md +1 -1
  15. msprobe/docs/07.accuracy_checker_PyTorch.md +13 -13
  16. msprobe/docs/10.accuracy_compare_PyTorch.md +6 -6
  17. msprobe/docs/14.data_parse_PyTorch.md +2 -0
  18. msprobe/docs/19.monitor.md +4 -4
  19. msprobe/docs/21.visualization_PyTorch.md +1 -1
  20. msprobe/docs/25.tool_function_introduction.md +0 -1
  21. msprobe/docs/32.ckpt_compare.md +5 -5
  22. msprobe/mindspore/monitor/module_hook.py +17 -20
  23. msprobe/pytorch/api_accuracy_checker/common/config.py +3 -36
  24. msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py +0 -24
  25. msprobe/pytorch/api_accuracy_checker/compare/compare.py +2 -12
  26. msprobe/pytorch/api_accuracy_checker/config.yaml +1 -6
  27. msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py +34 -5
  28. msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py +12 -132
  29. msprobe/pytorch/common/utils.py +0 -70
  30. msprobe/pytorch/debugger/debugger_config.py +0 -10
  31. msprobe/pytorch/dump/module_dump/module_processer.py +18 -3
  32. msprobe/pytorch/hook_module/api_register.py +14 -3
  33. msprobe/pytorch/monitor/module_hook.py +16 -34
  34. msprobe/pytorch/pt_config.py +2 -51
  35. msprobe/pytorch/pytorch_service.py +10 -14
  36. msprobe/visualization/builder/graph_builder.py +2 -2
  37. msprobe/visualization/builder/graph_merger.py +13 -0
  38. msprobe/visualization/db_utils.py +42 -18
  39. msprobe/visualization/graph/graph.py +13 -9
  40. msprobe/visualization/graph_service.py +20 -10
  41. msprobe/docs/08.accuracy_checker_online_PyTorch.md +0 -295
  42. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/__init__.py +0 -0
  43. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/attl.py +0 -205
  44. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/client.py +0 -378
  45. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/device_dispatch.py +0 -239
  46. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/dump_dispatch.py +0 -115
  47. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py +0 -250
  48. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/torch_ops_config.yaml +0 -63
  49. msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/utils.py +0 -198
  50. msprobe/pytorch/attl_manager.py +0 -65
  51. {mindstudio_probe-8.3.0.dist-info → mindstudio_probe-8.3.2.dist-info}/LICENSE +0 -0
  52. {mindstudio_probe-8.3.0.dist-info → mindstudio_probe-8.3.2.dist-info}/WHEEL +0 -0
  53. {mindstudio_probe-8.3.0.dist-info → mindstudio_probe-8.3.2.dist-info}/entry_points.txt +0 -0
  54. {mindstudio_probe-8.3.0.dist-info → mindstudio_probe-8.3.2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mindstudio-probe
3
- Version: 8.3.0
3
+ Version: 8.3.2
4
4
  Summary: Ascend Probe Utils
5
5
  Home-page: https://gitcode.com/Ascend/mstt/tree/master/debug/accuracy_tools/msprobe
6
6
  Author: Ascend Team
@@ -1,21 +1,21 @@
1
1
  msprobe/CMakeLists.txt,sha256=Cx_WsHVxbX2gWZ6Hxah2zYXz2eamSb4CgIlzKm9OQGA,125
2
- msprobe/README.md,sha256=CnXpjnrPs-Pzg4Iamw9PKBsTU7s1CVRKyRHNsqsuvo4,8736
2
+ msprobe/README.md,sha256=avO7tZ2lPArJMF12rlrZ0SYOD0PXR1x2eWkPE2RLcx4,9060
3
3
  msprobe/__init__.py,sha256=q2S8b3VTSn1wTMrkf8Gm79OOq9EerMIK6Y26gFdu_0s,688
4
4
  msprobe/config.json,sha256=QS37x2t0D-grehkpHLLxRAEZqOrkNe40GwwOaVMx3Yc,1061
5
5
  msprobe/msprobe.py,sha256=KHFMop_Tm9hHKTd1c-_HaVZjkT8DQ6Kx6PejIkrClME,8228
6
6
  msprobe/core/__init__.py,sha256=X_OkpIz42vnqhGy6WCeuEvYK4IFx4BwCT5bQj7tuuwI,757
7
7
  msprobe/core/common_config.py,sha256=0kzhosc3FIE0_JfAnOYx8lYLbno7j0rmH0ST9On1jpQ,7182
8
- msprobe/core/hook_manager.py,sha256=heWLbR2spTpRRaNG3gWTKvHDdrYZQYG839ldrsusHwU,14568
9
- msprobe/core/service.py,sha256=jNrCqBdlzS5xX0LlLGdB6yD1WB_K3lzJqKqpjjpUbgY,14062
8
+ msprobe/core/hook_manager.py,sha256=PyOZjK3UrwV-Tmn_3J_Ydjia83TasgrP3hWeEU9YL_E,13693
9
+ msprobe/core/service.py,sha256=FIYuVyHVVysFED5L3wPVZi8y8aT8ObiXtkfnhSnBGQo,13586
10
10
  msprobe/core/advisor/advisor.py,sha256=WP8rBF2F9pcSphZONJDgNfz9c6GiRxbkWwPS9wRU4Tc,5900
11
11
  msprobe/core/advisor/advisor_const.py,sha256=thEEVYKPimv9WGxxaC4vBXQ-Coq6yBlZ394T_b49Ibw,2624
12
12
  msprobe/core/advisor/advisor_result.py,sha256=yM78n6NXLP1bjTsGeSddwb1bWQwtg1ZqjnPHmTzVxHE,2359
13
- msprobe/core/common/const.py,sha256=r2wKstNjzjZOmGDw_q3jlN56hqA3tv5CtNNrdl8jZMk,27799
13
+ msprobe/core/common/const.py,sha256=2W9F588W134_ebIIIXpo7vup0TocUNJBELUH84Y2kKo,28099
14
14
  msprobe/core/common/db_manager.py,sha256=OjC7Gr_4CKmrlLcODsLkeTv1dU-VU93fmLU0xMfiPzg,9088
15
15
  msprobe/core/common/decorator.py,sha256=lj1upkAkGYeIV3tnH0bFqp7VDIKqTkFVaE5GUOFUNUE,1785
16
16
  msprobe/core/common/exceptions.py,sha256=PJB4UTxT5VxyUE9aTCgwxiEExcuQZCcbu5V7tFdLVrY,4045
17
- msprobe/core/common/file_utils.py,sha256=f8tOLHQcz4DQl7Qx2HVflhryWGZG1SQtq-IwVHDrl_8,40820
18
- msprobe/core/common/framework_adapter.py,sha256=MTbJYJmTApkJme8tajFWhDfIPOo-hgWQYo3_w3DksD8,6236
17
+ msprobe/core/common/file_utils.py,sha256=G3tY0xu5A4RM2skYJXdIH93F52mjjx76qoBKDp0h0_s,42180
18
+ msprobe/core/common/framework_adapter.py,sha256=86tGwDOvX_3UCwZhmfK3Y2EebTpSDpH9MbMkUG06__A,6842
19
19
  msprobe/core/common/global_lock.py,sha256=MQedbRCzJTLAYGeNeeD1T7Vmn349r7ymGKt8d-U3m2Y,2721
20
20
  msprobe/core/common/inplace_op_checker.py,sha256=gwxpddOtPS2dRGbI2JB5ZixgoPLCYyDICb_07N9XVaM,1864
21
21
  msprobe/core/common/inplace_ops.yaml,sha256=Ta1zh6eF0A_Trd345gts2xlhFsU0-ZTXKEQOqUHT-54,3178
@@ -23,7 +23,7 @@ msprobe/core/common/log.py,sha256=VrecAUbJNfhm8tKtg-dGmLcOm3gM5XJth2tpeW6DsDo,33
23
23
  msprobe/core/common/megatron_utils.py,sha256=BALTlzSdHYsQ83s9XhHKo9Ub6CQGWeOqGF4SphXEDps,1864
24
24
  msprobe/core/common/parallel_state.py,sha256=WUfPtp4tfiV1E_oVkmQF2FZxO-sTgJtOsvDdSn4mdvY,8305
25
25
  msprobe/core/common/runtime.py,sha256=KpPoWIvIWSGjD-xnldxtZQXcEB6Ip2qj1hVIcZG4tWg,844
26
- msprobe/core/common/utils.py,sha256=v4qYIn833GCdcfjICpiEq4Keuc88IOEugNvwUyhIDI0,27410
26
+ msprobe/core/common/utils.py,sha256=8WsZVFPSifCahQ_REEZl85up_vQflZF6Tg1hoKBdxhY,27794
27
27
  msprobe/core/compare/acc_compare.py,sha256=M_Ie7Xtc8stbKNFVKZsLlp7R3i0RIu95vqzXYbX5sE0,38484
28
28
  msprobe/core/compare/check.py,sha256=L4sq90oXdNfqiM7BzxsCXU6zD55K1-0zjFTDKwII9Y0,4384
29
29
  msprobe/core/compare/compare_cli.py,sha256=B0WoZVAnWCKRAyRwDkYIKgIsTbKc4HA_8I8m2McO_OU,6940
@@ -32,7 +32,7 @@ msprobe/core/compare/highlight.py,sha256=iNgkVAUSfJlxKt0NC8A78XpWI5aNqJrxyCRWYVG
32
32
  msprobe/core/compare/ms_to_pt_api.yaml,sha256=NGzy6_yIArM6V0zYsW3sg3KLMJe0sr9ljKiIcHujJus,13203
33
33
  msprobe/core/compare/multiprocessing_compute.py,sha256=Yy7eNUyP4u9HHn7BLAK6F0FddR1JkY01qUNllPI30yE,14262
34
34
  msprobe/core/compare/npy_compare.py,sha256=aCylTUJuLUEsqqm-KySnY24egh5b36rTFh_dXfaJx84,12712
35
- msprobe/core/compare/utils.py,sha256=8vWFoqgqBY8XRc7eDOX2Lzaln26aPmaLF8Vs_xBQovk,35416
35
+ msprobe/core/compare/utils.py,sha256=Aklo1fbe4J22O7JnYFxstaCP6j191gKYyhyx4QX3dm0,36156
36
36
  msprobe/core/compare/diff_analyze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  msprobe/core/compare/diff_analyze/diff_analyze_threshold.yaml,sha256=77K_1RM8ICVuDSNVTFIRdeBu15HyzR2Kw9YjhHaoaT0,193
38
38
  msprobe/core/compare/diff_analyze/first_diff_analyze.py,sha256=zXfaVYuMwA-y0upjQaycuQ2Q7dc2kqH8kAgWcWqXkVs,4755
@@ -59,7 +59,7 @@ msprobe/core/config_check/checkers/hyperparameter_checker.py,sha256=JIbEMTlfM-YN
59
59
  msprobe/core/config_check/checkers/pip_checker.py,sha256=r7PMSjwCODypcxk_yEhjZy2ydvd_sj3YkP0KKwgZlSE,3441
60
60
  msprobe/core/config_check/checkers/random_checker.py,sha256=hR6qJu18dtAcFvZokNcW6qzUxnaUz6U-XeCavyY0e-c,13158
61
61
  msprobe/core/config_check/checkers/weights_checker.py,sha256=ObjwgiNyB4nLKPFIhL71kNmjekaWZAXJtvwoyQatsoU,5825
62
- msprobe/core/config_check/ckpt_compare/ckpt_comparator.py,sha256=HEtfNU14vN8qpv7Rcr91zMn_-RqilJAgca35LAstaDc,3095
62
+ msprobe/core/config_check/ckpt_compare/ckpt_comparator.py,sha256=NxzmK4KT836tUZX91xs6kKXmjoHarUuI4J-MqgbtnWM,3511
63
63
  msprobe/core/config_check/ckpt_compare/megatron_loader.py,sha256=0HUEGsQQBBl-hI2CCZsPU7F-tqDwkG2miTjLYPA4zqo,12057
64
64
  msprobe/core/config_check/ckpt_compare/metrics.py,sha256=EDRLEFA_difzZWAfD-Y9-0qlk3Veu0IyKrpixrVCamo,2010
65
65
  msprobe/core/config_check/ckpt_compare/name_mapping.yaml,sha256=dC6SX0qYcOfgAw1wRhic_MxQFC5YNkogFajNszDIHUk,379
@@ -97,31 +97,30 @@ msprobe/core/overflow_check/utils.py,sha256=1j5p2qWBOmOoat1v_Zi8krLOWz2NMCdUjrnD
97
97
  msprobe/core/single_save/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  msprobe/core/single_save/single_comparator.py,sha256=faYvqjvZNpA0GrtpI5pXTYOlvV8x5toKFdKVv5Nzk60,10827
99
99
  msprobe/core/single_save/single_saver.py,sha256=IVS7fsG5CWmZNCeUenNwtVxhAmpIWSYHK7az2NpZ678,5562
100
- msprobe/docs/01.installation.md,sha256=QmJlZPTVzoC1h9Ikgg7nB_u7Ay16Aoi9ZwiirC5mfdc,10845
101
- msprobe/docs/02.config_introduction.md,sha256=zsN7EGYwlNZ9__Y8uLvEaP2d9K5XsRznuZ8afpO5R20,35057
100
+ msprobe/docs/01.installation.md,sha256=I4iA214liJglmn7T6moGlipnWNy2y1aKNWAoHsU0BFE,11369
101
+ msprobe/docs/02.config_introduction.md,sha256=EVzpOM38ZsFde3PTQkR2LYepix-lpLbYIr9uKZuBNtU,32272
102
102
  msprobe/docs/03.config_examples.md,sha256=lHv_HLaCxk1nlSPIUF7wQVO0RR6_Q5b9XrSp96fr1FE,4408
103
103
  msprobe/docs/04.kernel_dump_PyTorch.md,sha256=1qXNBrdkO2r8FJjHObr1r2XGy7gIzhvZ3DWC0JjDPng,3034
104
- msprobe/docs/05.data_dump_PyTorch.md,sha256=0ZLkESAFa_HBlo8nndc7cWXQ0O1l7BuNCCy7eARTcm8,22242
104
+ msprobe/docs/05.data_dump_PyTorch.md,sha256=UnswISCnklt0IYPVBvtnclBb-gq0an2ozoWoq-jX0v4,22243
105
105
  msprobe/docs/06.data_dump_MindSpore.md,sha256=pweNRLRxNy1cu8h5cgmEf9auOBuKN3-Ezen5Et7a1s8,29284
106
- msprobe/docs/07.accuracy_checker_PyTorch.md,sha256=tLHA1eD0ldNv_4uQKArN-HzKcPdQbQighhK9VKuhuxQ,30993
107
- msprobe/docs/08.accuracy_checker_online_PyTorch.md,sha256=u3kDOo3Y1YMSu2rd2QiIToYxqtpi4epfKk_ngdSc_Sw,14717
106
+ msprobe/docs/07.accuracy_checker_PyTorch.md,sha256=2oLP43_0cgvF1rLza3xQGST9WvKfFjBocLLSA8tZG6E,31006
108
107
  msprobe/docs/09.accuracy_checker_MindSpore.md,sha256=XKEnEgqPJKZxL7JL3evZeIAa_LbMh8DR7sILqJ1camw,11320
109
- msprobe/docs/10.accuracy_compare_PyTorch.md,sha256=3H_fHJBMRweqAxEOT6trHSQPAMjP3xD9G3T_PIJPtVY,41611
108
+ msprobe/docs/10.accuracy_compare_PyTorch.md,sha256=xZU4cKF9JNFVQKxsKOg7O5hx03gqQjFYrOMGWcp8pd8,41635
110
109
  msprobe/docs/11.accuracy_compare_MindSpore.md,sha256=9zalk8EiYA_ex5kkiGEIn8yaNygLmJPplUoUEPs-C5w,40792
111
110
  msprobe/docs/12.overflow_check_PyTorch.md,sha256=VE76J_rFAFm0pw_bQEnKIV4FdXek4x7cenxTQQz2FK0,3793
112
111
  msprobe/docs/13.overflow_check_MindSpore.md,sha256=G67GjHo2VERAKsr1_uX0m67eNuG8E9aN6tmZiO1c_zg,2799
113
- msprobe/docs/14.data_parse_PyTorch.md,sha256=g1Hx3RFG7SIYTpTI2uySZjDIXwsF7LhVVghvITSp0L0,19125
112
+ msprobe/docs/14.data_parse_PyTorch.md,sha256=YWFj32k4L0n6D1-j9c-COvcUEczn-a-TxV4DJ7n2n_A,19394
114
113
  msprobe/docs/15.free_benchmarking_PyTorch.md,sha256=6pIpLXx5lUu45_kdL31rhj9zV3Ew8X-yyqZXrJ_gZPk,9888
115
114
  msprobe/docs/16.free_benchmarking_MindSpore.md,sha256=swCOrnBSzU6Q5I0AHVwi2r0JfKp3VE1DgNHripyE01M,8195
116
115
  msprobe/docs/17.grad_probe.md,sha256=9g1aq6FettgpvzBxKj5C5W8bTsENPtt2itYaNOLcBk8,9624
117
116
  msprobe/docs/18.online_dispatch.md,sha256=Ae9ONIXF3wA2u0tikuDxV0nea_n5TIGug-PKTI9c7Ws,4170
118
- msprobe/docs/19.monitor.md,sha256=ogaecwFA5vpEyEEKuXaWmbaoClnPdtRedYhntppTAYo,57192
117
+ msprobe/docs/19.monitor.md,sha256=TDfLjTEoN4nEUikeqici0MdAtLmuaXsYdGHjWhhNPl4,57194
119
118
  msprobe/docs/20.monitor_performance_baseline.md,sha256=t-aM1s7BqEE8ls47gL1wmipkhdmB6CSPI90-r4abyXY,3672
120
- msprobe/docs/21.visualization_PyTorch.md,sha256=Mds0wPfD9XjNJstj-SZshhpFvUFYjh7ZZ-Zpefo3K4E,27666
119
+ msprobe/docs/21.visualization_PyTorch.md,sha256=lEt72aqsT5voRk38vAapXSJA_nzbu3DWq3-mEYKZowU,27678
121
120
  msprobe/docs/22.visualization_MindSpore.md,sha256=jtMgasjacyNEevhmrMT5Y8IOsAgEuDzBN7vvZYBJl7s,26605
122
121
  msprobe/docs/23.generate_operator_PyTorch.md,sha256=Tu_Jik6zWBIdf2ePOBeUAKnPMFnwcNdw1cuZg-Jfxbc,10289
123
122
  msprobe/docs/24.code_mapping_Mindspore.md,sha256=pFGY7uvNnaBqUDLQBDEay0In04nrpP2mFCzYfYYQEcs,2068
124
- msprobe/docs/25.tool_function_introduction.md,sha256=I1SFsz9RVdpjyNxLTyPPuKcLZIRDDWuwiVx2O2cQezc,16391
123
+ msprobe/docs/25.tool_function_introduction.md,sha256=tqXbsW1xTbVBgke5bDd0B5NFxVGXmyqQkr63b9AtdFY,15668
125
124
  msprobe/docs/26.data_dump_PyTorch_baseline.md,sha256=Di-qxaT7TckS4ggAJOk3R99DGlJ67i9Vw7Jl9fIoJNA,2551
126
125
  msprobe/docs/27.dump_json_instruction.md,sha256=YW6q4U0ccoFwax_fZ5Gqr1CQo5PFlKaxr9S-4ocycZs,21025
127
126
  msprobe/docs/28.debugger_save_instruction.md,sha256=pxvLlc2GmR8tmapZ8IKZyIFGwt1tEKXU4jy8Ao4MwrI,10173
@@ -129,7 +128,7 @@ msprobe/docs/28.kernel_dump_MindSpore.md,sha256=USVxSPdhuaiw6dlWGu02GVNMXgaryHzy
129
128
  msprobe/docs/29.data_dump_MSAdapter.md,sha256=lWZaqR4ClAGW-YUj5jKZlJJqgOz2iIXgro3gq95VvMw,11615
130
129
  msprobe/docs/30.overflow_check_MSAdapter.md,sha256=leiJqnUR3L93K3-kDDeEPTcG5UeIl-Gjbq9GCzFjXNw,2208
131
130
  msprobe/docs/31.config_check.md,sha256=HsqOL1DHmnM-fR-QlrPVF0N2E5Aey9sFlLBTCG-1Us4,4171
132
- msprobe/docs/32.ckpt_compare.md,sha256=iPCUAC17GChf2_h4e2x4PaponRQYKcqZ-0jMoi2dS6c,2519
131
+ msprobe/docs/32.ckpt_compare.md,sha256=bne2nbNuX5Mz5UGVxOcy0VKHE-7PpIDk5qgGFstcZ8I,2956
133
132
  msprobe/docs/33.generate_operator_MindSpore.md,sha256=Q95U1T1g1p3OGDaFHKIA6Xb7h986SBrugKy6jaCQmjU,10005
134
133
  msprobe/docs/34.RL_collect.md,sha256=fC1nDBAFjEBnMbDOYvzujQjvpRCZK2wrRhl9odKInQ8,4430
135
134
  msprobe/docs/35.nan_analyze.md,sha256=YaY0v_n64JfSIdUVk_MYEJgPJukGBlWUV5qE1TLC9-w,3301
@@ -308,7 +307,7 @@ msprobe/mindspore/mindtorch/mindtorch_adaptor.py,sha256=M_1uX4Yc29Owz46diRsUbtRI
308
307
  msprobe/mindspore/monitor/common_func.py,sha256=L-t_w1nl---0T4W80Rtp0YijNx1GwFHkuhg9IV0wpbw,1549
309
308
  msprobe/mindspore/monitor/data_writers.py,sha256=xBj_kv1MpFH3DpB1mdl39vH-1_M81uz4rMJiz4ptKkw,8782
310
309
  msprobe/mindspore/monitor/features.py,sha256=l7PSxsEy7fwJJkzYW68CcUvtiW1Q4mq9N2j2d9pEAnw,4510
311
- msprobe/mindspore/monitor/module_hook.py,sha256=U4SDazoBsJttpUzyy_tsRfgL3QWbO8vFS-dJxEtcgAE,48326
310
+ msprobe/mindspore/monitor/module_hook.py,sha256=vFBztQ0IgzQ6UZCouWTGbaoZdfNmKG09fuBWYxpbo-Y,48081
312
311
  msprobe/mindspore/monitor/optimizer_collect.py,sha256=B_WsSnuX5LDAY2LTwuwwC8mMtVcR3X1iautlNzaxCSE,14419
313
312
  msprobe/mindspore/monitor/utils.py,sha256=Rnb0BOf1mFdhNfIkAL1cG0IzCsznaHYLBGInZbVFjXQ,3412
314
313
  msprobe/mindspore/monitor/distributed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -323,23 +322,22 @@ msprobe/nan_analyze/analyzer.py,sha256=EEMwQWm33JgXgvLudoMRkIYDQpQaqViFpl6BFMIrO
323
322
  msprobe/nan_analyze/graph.py,sha256=uSEYUC4I1KhGPUyi3E1BblNNpxUY3fjpf_sNnaaY7w4,8085
324
323
  msprobe/nan_analyze/utils.py,sha256=jwpnHcfluzBlytAcUuyAotj0Hw3zmi7e8ncf7rME2JU,7666
325
324
  msprobe/pytorch/__init__.py,sha256=qIvhnAk61oSpvPU0QI0YAC4zyLKYyOcfNzdXJxN7Klo,1035
326
- msprobe/pytorch/attl_manager.py,sha256=Fe_vnjgmqZPpSHzEV7ayKweFjmBUuQV60MLSuw-fj2A,2706
327
325
  msprobe/pytorch/function_factory.py,sha256=Fi4w0zfO64Sd2IU9z45mBbDgS8k_CQEiZ9vRpC_TkVk,4031
328
- msprobe/pytorch/pt_config.py,sha256=8ZUqCC3IPv831O1exVSZDqqTTreVahEQVCYYOxvdmSU,14799
329
- msprobe/pytorch/pytorch_service.py,sha256=qtFeInAQrGSKSmf4ZMlgiR3u_ReupjNcfvix6t2nHOc,3107
326
+ msprobe/pytorch/pt_config.py,sha256=1A6RhK6BBdMxXdYfLIcvtkOFUSXEaRMuNvaK6stjl7o,12284
327
+ msprobe/pytorch/pytorch_service.py,sha256=NJiKpMm9lSwzXCZmHmNWnaaM7xuHCcDcxDDQX9MMLl4,2664
330
328
  msprobe/pytorch/api_accuracy_checker/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
331
329
  msprobe/pytorch/api_accuracy_checker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
- msprobe/pytorch/api_accuracy_checker/config.yaml,sha256=2kktin5NoWkSp2MOGDoxlz3MPv0lYXXD5r5SPYArEYs,144
330
+ msprobe/pytorch/api_accuracy_checker/config.yaml,sha256=JDD7boERYCh7vd5x74ZcHXmS8afthdj6-pYGIqHinDY,67
333
331
  msprobe/pytorch/api_accuracy_checker/common/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
334
332
  msprobe/pytorch/api_accuracy_checker/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
- msprobe/pytorch/api_accuracy_checker/common/config.py,sha256=7_JU9E2zT-ScgJyOTxBgGkZpQk1WB7skU_ihDcEU-J4,5400
333
+ msprobe/pytorch/api_accuracy_checker/common/config.py,sha256=D4ZDCifjfjrpM-_IexazipoYS-DcBzFa3cK-r7anvKk,4070
336
334
  msprobe/pytorch/api_accuracy_checker/common/utils.py,sha256=DhAEgbMdon3NThmpZTAzpqJJmJBTNtA8c-C4ZfSPL3s,9016
337
335
  msprobe/pytorch/api_accuracy_checker/compare/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
338
336
  msprobe/pytorch/api_accuracy_checker/compare/algorithm.py,sha256=AoB1wXdOOXRqzOfpSR0Tr5_iKAF7O8zSNuIQ_ocATgo,10343
339
- msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py,sha256=F1S_ShUd0RLcjwfTA7BqRep9xOUO0zafbhxOJM4_VbQ,24030
337
+ msprobe/pytorch/api_accuracy_checker/compare/api_precision_compare.py,sha256=5Mj9N0bkEpjWvYRtAO94E9ThHho7dxAF_ZnLvKbLxwQ,22752
340
338
  msprobe/pytorch/api_accuracy_checker/compare/api_precision_standard.yaml,sha256=k8J16s9to_7LTrTCj118JCdGXaMnTvnEnNsCHHtctN4,2047
341
339
  msprobe/pytorch/api_accuracy_checker/compare/api_precision_threshold.yaml,sha256=Pt5MQFazR6DwvI19SF8wUTHp2z_SLdoDz643AUdoWcY,8112
342
- msprobe/pytorch/api_accuracy_checker/compare/compare.py,sha256=x_xM69LJNZfdO6AtafVEHDD0xetdAPnFQryC0XAwP-8,22125
340
+ msprobe/pytorch/api_accuracy_checker/compare/compare.py,sha256=MBB_ggZZOrowdYjOo8WGikqzgWx26v9HpR3shV-BGnI,21393
343
341
  msprobe/pytorch/api_accuracy_checker/compare/compare_column.py,sha256=2bQBWg8qVoG3i-HhcUat310kivy7B2de4mQgJrRxWsk,7028
344
342
  msprobe/pytorch/api_accuracy_checker/compare/compare_input.py,sha256=OG83KTsDpc-NzUCjtMj5SnzuBmOHaQaJYPoyPaaxKfU,2059
345
343
  msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py,sha256=o64RKRmaMe-8E3qsASZJOxI_SBT15O9SDB_Lz59iW28,9817
@@ -358,19 +356,11 @@ msprobe/pytorch/api_accuracy_checker/precision_standard/ulp_compare.py,sha256=pE
358
356
  msprobe/pytorch/api_accuracy_checker/run_ut/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
359
357
  msprobe/pytorch/api_accuracy_checker/run_ut/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
360
358
  msprobe/pytorch/api_accuracy_checker/run_ut/data_generate.py,sha256=t8DbR13Sna4d8ovyVmrrMw0xMEI9gueEHexLPKwrv8g,17599
361
- msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py,sha256=vZUt-7zJ0RXSQrQFKMENFwi8Zhu8mUmHm1yifMIHLOY,10436
359
+ msprobe/pytorch/api_accuracy_checker/run_ut/multi_run_ut.py,sha256=kCssWavWUyZS7n4-mHK2JvJTng4xWUM4_LnzmOFqou8,12169
362
360
  msprobe/pytorch/api_accuracy_checker/run_ut/run_overflow_check.py,sha256=cl9Avx5-_ihF4KPuofGrhPw6dzQqHJLbZslluVPC-LQ,8060
363
- msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py,sha256=shdWY9aILlygUXScXSswcShwj_0Zn6V676LDTbTZKOU,28313
361
+ msprobe/pytorch/api_accuracy_checker/run_ut/run_ut.py,sha256=4f4Vh1oXGDzYKcTDFnS-ID5jxa1_bgO7q3H-cSKeF6c,22983
364
362
  msprobe/pytorch/api_accuracy_checker/run_ut/run_ut_utils.py,sha256=iZMGFpzQfK94Zxj7IJn0ldvcLHS5XVW63SCyK93doAo,11428
365
363
  msprobe/pytorch/api_accuracy_checker/run_ut/torch_ut_setting.json,sha256=6caXsuV9H9eDG2Zd0m_qJG_TsZ2Mk8z8RV8tS7r2m4o,92
366
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
367
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/attl.py,sha256=zkyT0xHTUxkMEkM-BEcs0DJqI4dcMz9zx-03jLoEfZs,7837
368
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/client.py,sha256=s8saRhYf6Cjetjw1JTKkmJnb3GDxxVL7cgbz-OL64yg,14876
369
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/device_dispatch.py,sha256=L9YMol7bjXXe9MsaSEwWdmEVLtn27Y2l0PDgxB76XaE,10701
370
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/dump_dispatch.py,sha256=LllAmk0_PqUKDltUukKoZtcVMu9wuEqQKBW2VJyoA4I,3986
371
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py,sha256=DqenaweA_kULje8J-qwiQEMadGGf4ZxlHw9I3gNhjD8,10384
372
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/torch_ops_config.yaml,sha256=AAEAsbIK8R1O9c9kDb6svfeklqt2W8GHf19ewKpEROo,1057
373
- msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/utils.py,sha256=lCK2rVmTXTTdickMoUR9VcP4QnNjWsWXuyYNRNuFEqo,7248
374
364
  msprobe/pytorch/bench_functions/__init__.py,sha256=BoY2ZOpo_mj2gQ8pcl8oLwFxfHpZidOflJ1aGYDmPrM,1157
375
365
  msprobe/pytorch/bench_functions/apply_adam.py,sha256=CNL19fQjwcMMDl1SHv3E_LKUoawkhz8_Kac5iXACsRc,6583
376
366
  msprobe/pytorch/bench_functions/apply_adam_w.py,sha256=tUkQEmmUf__kIkBTagtjphR7HaiZRpDjk_q7j6AGl00,1690
@@ -392,7 +382,7 @@ msprobe/pytorch/common/__init__.py,sha256=87H-l6y1gbEL2EQiSbPceeJwKJdcsS6zv-9Nmr
392
382
  msprobe/pytorch/common/compare_script.template,sha256=CsfmJ5IuPycAYa0-IfVPXrXVu-o6g8BeEF9v17UK_1w,286
393
383
  msprobe/pytorch/common/log.py,sha256=yGLpZ6mGfB-s9sHj_gcL5_PMq_Ai4BJxumA0F0knAso,1121
394
384
  msprobe/pytorch/common/parse_json.py,sha256=7HbrBdVCX8umYqa4u8JPHETAxUO1246jl7qhcE4FG1s,2286
395
- msprobe/pytorch/common/utils.py,sha256=VPIixcerXBg4GEPKFhDTcF0nPdzj806sRrPLmIGTvOk,18483
385
+ msprobe/pytorch/common/utils.py,sha256=3PShpmPAfGP4G-_CAPsLL0_XA6QMDeTwEUkkH14AKSE,16082
396
386
  msprobe/pytorch/compare/distributed_compare.py,sha256=uUMMB4cTsnxHUG8e8TyG5rcrqvip8-lo0DyMA0wB0zQ,916
397
387
  msprobe/pytorch/compare/mapping.yaml,sha256=Udlbf1dWDAdnTs8VcDTiSkqsMNj93o2qFUU2ocFgt2k,11697
398
388
  msprobe/pytorch/compare/match.py,sha256=j6ydfhs9zNMu6vzxsp_qMei-7-zDMuPO8Uj9i_OIhSA,1886
@@ -400,12 +390,12 @@ msprobe/pytorch/compare/pt_compare.py,sha256=wUsLvx4lVPy3SbAeadO5Uw7kjDQhDJ7ZMx0
400
390
  msprobe/pytorch/compare/pt_diff_analyze.py,sha256=KG_7Diri1Nrl64FigVvAjMekSZ9SMWy3BqtqMpP75xE,893
401
391
  msprobe/pytorch/compare/utils.py,sha256=X_IsirhkQo1iH652WaJsnERsjYZaJ3DiP18RZr8EQ3c,1921
402
392
  msprobe/pytorch/debugger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
403
- msprobe/pytorch/debugger/debugger_config.py,sha256=9tdsLIKpRT3MjFX-EqN4Rvr-T0Fhbp1bvfhdDIgEVK4,8695
393
+ msprobe/pytorch/debugger/debugger_config.py,sha256=jP_xdwF1zV2YbvTrI8dB2PM1PQD0YGPOFSB9cIq_x1E,7993
404
394
  msprobe/pytorch/debugger/precision_debugger.py,sha256=pKAFBu1MIgG4sM27unnRRJolyj6eFpgs1O4JLKxaUTo,6718
405
395
  msprobe/pytorch/dump/module_dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
406
396
  msprobe/pytorch/dump/module_dump/hook_wrapper.py,sha256=gVu8COEsGDRitROcFHK5AgQrQ4MydHNkdwAptQ2PMq4,4619
407
397
  msprobe/pytorch/dump/module_dump/module_dump.py,sha256=yHKVkDaxayrbanUkxc8Wo7crHc1KNPQAXpLFpbcybjY,1767
408
- msprobe/pytorch/dump/module_dump/module_processer.py,sha256=EdxNMJfonb7u6BwxpmhZjJ4okr4dFKqhtQWQjC0H7os,13849
398
+ msprobe/pytorch/dump/module_dump/module_processer.py,sha256=i_Mevm4zlo48KB8sJtG1CVIhQMcpnuADoWB1ndsDTo4,14512
409
399
  msprobe/pytorch/free_benchmark/__init__.py,sha256=N2xdPic80U-Rl1B_6c8j09EMuU5Xn0knJjgmKQ5uiXQ,904
410
400
  msprobe/pytorch/free_benchmark/main.py,sha256=n-Q55NNoI0o7jhyhAUri68Fq-kyBa9xNLh5az5zBbaY,4802
411
401
  msprobe/pytorch/free_benchmark/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -437,7 +427,7 @@ msprobe/pytorch/grad_probe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
437
427
  msprobe/pytorch/grad_probe/grad_monitor.py,sha256=xb3M1XguMxVsSgZuYwyB08tz_jno1-43cURs2pG1FYU,4910
438
428
  msprobe/pytorch/grad_probe/grad_stat_csv.py,sha256=k0YesT0Jy-2LsUlSYEDt8eRuhhfFhpSGv4ImtE74NH0,4940
439
429
  msprobe/pytorch/hook_module/__init__.py,sha256=ktS1W-6hBa1q8wF-DGz8kFsfVhiIPWBOj6C3kSatgno,679
440
- msprobe/pytorch/hook_module/api_register.py,sha256=x3tmihtP3ghAG_ncWY8Ld882ncJXud13NpDZE1_XS-o,7142
430
+ msprobe/pytorch/hook_module/api_register.py,sha256=nwoQTO6EiOnuoEzWVxkX1x6uGii7qj6oYQIff13HubI,7582
441
431
  msprobe/pytorch/hook_module/hook_module.py,sha256=I1i_vISgVcLPd4uEYMMfr7Xfz76c3ASO0-XOcIoKxVA,3738
442
432
  msprobe/pytorch/hook_module/pt_hook_manager.py,sha256=x77ZU_YNYs5PB9snbopxSgyBmDNBEDQD5JeK1bcano4,5199
443
433
  msprobe/pytorch/hook_module/register_optimizer_hook.py,sha256=3JS0VqHAswQ7SlGXQ9gS9o4kGQYZflFAwOrJhUpB5gk,2539
@@ -449,7 +439,7 @@ msprobe/pytorch/monitor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
449
439
  msprobe/pytorch/monitor/csv2tb.py,sha256=OCsOtZ6G423Gu-WicF0eWijGeJ6TFY9Zefe-3SlAVI0,6557
450
440
  msprobe/pytorch/monitor/data_writers.py,sha256=ieJTuN7hSzusUqq-Pi251Xwtq1B6iwnIkmpuNIDq41w,9713
451
441
  msprobe/pytorch/monitor/features.py,sha256=BShZU-f5oQLc4zIfoRax_JHVMv79-hN18RS1at40IyY,6281
452
- msprobe/pytorch/monitor/module_hook.py,sha256=loTsPucohyS6w0tHtRoenq-XpErBFPafQ5CH2qNpU38,59817
442
+ msprobe/pytorch/monitor/module_hook.py,sha256=MuBB6JgZrgAuc_-v-t09bMN2BmzJXIoT6n6uNSSWlOE,59227
453
443
  msprobe/pytorch/monitor/module_metric.py,sha256=khxcepVffT0B7pvI0c80NCOFMwxX23tLimElyJ3Rls0,6328
454
444
  msprobe/pytorch/monitor/optimizer_collect.py,sha256=-ai9XAXP4gTsuTQ3cecVZySWS8Zb3PABuxcJSm9XGPw,19947
455
445
  msprobe/pytorch/monitor/utils.py,sha256=uBSJfpYRbi3YJRy0fHyIoY3bAnmIRF2kErdvZ1R2HSo,1641
@@ -477,12 +467,12 @@ msprobe/pytorch/parse_tool/lib/parse_tool.py,sha256=nXX1b45o1AhpIR4oG1VpN56Jh02j
477
467
  msprobe/pytorch/parse_tool/lib/utils.py,sha256=c4tyO_QeeqdB5ysJKXcckfVshV5HuV9j7_Hr-a3cB6s,11718
478
468
  msprobe/pytorch/parse_tool/lib/visualization.py,sha256=_M1R4kiyc3zdxyoHRqFoxMEfm4klQtscXsOLBevWnEk,4071
479
469
  msprobe/visualization/__init__.py,sha256=rEvJTAx-jTGHBM7-bB6VZ7fwfWwYA961M1eZJj4sRcY,622
480
- msprobe/visualization/db_utils.py,sha256=GhazcnqNQ27n-kpfxcuW8nK83_uC336S3-C0zpoNZ2I,9449
481
- msprobe/visualization/graph_service.py,sha256=_GfTbRtutN5Yk25cvV9kzD5kVWrgcHD5t6gkSbX5P5o,26302
470
+ msprobe/visualization/db_utils.py,sha256=R_sRqrAohVBimyVV5ZCvTl8joB7K30wAp7kLGlrQp7g,10356
471
+ msprobe/visualization/graph_service.py,sha256=xz4KjeBQP9ycEPTmOMobJT-uglPQP7spXDCZ9AxIb_M,26812
482
472
  msprobe/visualization/utils.py,sha256=P5Ds9uMRoMPRNft8XTSiqDrGAbEG7bQbIZD6qJy3Lvs,12620
483
473
  msprobe/visualization/builder/__init__.py,sha256=rEvJTAx-jTGHBM7-bB6VZ7fwfWwYA961M1eZJj4sRcY,622
484
- msprobe/visualization/builder/graph_builder.py,sha256=iTqXOhzfNz3uJAl3OrM3RvQhOgkTygzNZlaHpoKu3pI,20492
485
- msprobe/visualization/builder/graph_merger.py,sha256=RbNJ8yFPwJDmMwtTRfccskqSxBGixzOsh6wRQ-LK_40,50849
474
+ msprobe/visualization/builder/graph_builder.py,sha256=yL7rHq4F94zWYBYJCyQvY3gLwzhLWnV6oLsVfUZ8AZo,20535
475
+ msprobe/visualization/builder/graph_merger.py,sha256=Zpk0Kg54Ad2dKZqwxN5wE0A1MCdgoX31O9WIRv0Z9UU,51901
486
476
  msprobe/visualization/builder/msprobe_adapter.py,sha256=V-K90RqY02hmRJL_lxiyJjZIkwE-843hM1ruc6N2Wdc,9125
487
477
  msprobe/visualization/compare/__init__.py,sha256=vd0u6IEpGE1r-HC4CEhs3csiMaa0bxuFcHtyRlAX0kU,618
488
478
  msprobe/visualization/compare/graph_comparator.py,sha256=v1YbN5oIqcmnZZ7oZBJEH_EXen1Y9bvh9Itul7erb8o,10282
@@ -490,12 +480,12 @@ msprobe/visualization/compare/mode_adapter.py,sha256=d7yjHzL1rwAg0E8RJRU0B0s7S90
490
480
  msprobe/visualization/graph/__init__.py,sha256=rEvJTAx-jTGHBM7-bB6VZ7fwfWwYA961M1eZJj4sRcY,622
491
481
  msprobe/visualization/graph/base_node.py,sha256=tai40AZ_0PXkpPgEQbnTAcf8K0XSMWfKkrnJF7VMrCc,3725
492
482
  msprobe/visualization/graph/distributed_analyzer.py,sha256=IVPaA6Z3uZxuOob7fibgc9zGFMjtC-LaqQBzaragWbw,19046
493
- msprobe/visualization/graph/graph.py,sha256=5AokyZE1nGZD_grRJZL8_gmpH3zkns9WOeHyuc1r75g,8607
483
+ msprobe/visualization/graph/graph.py,sha256=SFf_x4a3e5ejUe6PntPeEqnGCPaR6gUWpak6w_hyIBE,8776
494
484
  msprobe/visualization/graph/node_colors.py,sha256=7LpurTuE3edKGilwLVsXD7Ue4bMT7Maz63Udq_6CADM,4504
495
485
  msprobe/visualization/graph/node_op.py,sha256=qkbw3ZJkKGQH071C1CLIXi4kavvsLxBTzt0KXncz6fY,1368
496
- mindstudio_probe-8.3.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
497
- mindstudio_probe-8.3.0.dist-info/METADATA,sha256=fB6i8qNuYK0jfA7Dtc7hULPZTKrxXlsLUNuvjfZHoYs,1437
498
- mindstudio_probe-8.3.0.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
499
- mindstudio_probe-8.3.0.dist-info/entry_points.txt,sha256=4ob3a9L018EBZFdlfgMW1lbgeIOhc4F-HCR8gBksaCQ,49
500
- mindstudio_probe-8.3.0.dist-info/top_level.txt,sha256=LxFEFqelENSyWmRtocCiEUF04IE8aZvwTl7ADB598Tk,8
501
- mindstudio_probe-8.3.0.dist-info/RECORD,,
486
+ mindstudio_probe-8.3.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
487
+ mindstudio_probe-8.3.2.dist-info/METADATA,sha256=wkdXr0lpQ-KJB2H3HR5Y7gEpXPIEQc0u6RailLM3cbA,1437
488
+ mindstudio_probe-8.3.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
489
+ mindstudio_probe-8.3.2.dist-info/entry_points.txt,sha256=4ob3a9L018EBZFdlfgMW1lbgeIOhc4F-HCR8gBksaCQ,49
490
+ mindstudio_probe-8.3.2.dist-info/top_level.txt,sha256=LxFEFqelENSyWmRtocCiEUF04IE8aZvwTl7ADB598Tk,8
491
+ mindstudio_probe-8.3.2.dist-info/RECORD,,
msprobe/README.md CHANGED
@@ -50,9 +50,14 @@ export MSPROBE_LOG_LEVEL={x}
50
50
 
51
51
  ## 🚨 工具限制与注意事项
52
52
 
53
- **1. Pytorch 框架下,工具暂不支持 Fully Sharded Data Parallel(FSDP)。**
53
+ **1. 工具读写的所有路径,如config_path、dump_path等,只允许包含大小写字母、数字、下划线、斜杠、点和短横线。**
54
+
55
+ **2. 出于安全性及权限最小化角度考虑,msprobe工具不应使用root等高权限账户使用,建议使用普通用户权限安装执行。**
56
+
57
+ **3. 使用msprobe工具前请确保执行用户的umask值大于等于0027,否则可能会导致工具生成的精度数据文件和目录权限过大。**
58
+
59
+ **4. 用户须自行保证使用最小权限原则,如给工具输入的文件要求other用户不可写,在一些对安全要求更严格的功能场景下还需确保输入的文件group用户不可写。**
54
60
 
55
- **2. 工具读写的所有路径,如config_path、dump_path等,只允许包含大小写字母、数字、下划线、斜杠、点和短横线。**
56
61
 
57
62
  ## ⚙️ 安装
58
63
 
@@ -84,9 +89,7 @@ msprobe 通过在训练脚本中添加 PrecisionDebugger 接口的方式对 API
84
89
 
85
90
  精度预检旨在昇腾 NPU 上扫描训练模型中的所有 API 进行 API 复现,给出精度情况的诊断和分析。对应 config.json 中的 "run_ut" task。
86
91
 
87
- PyTorch 场景的[离线预检](./docs/07.accuracy_checker_PyTorch.md)和[在线预检](./docs/08.accuracy_checker_online_PyTorch.md)
88
-
89
- 在线预检计划在 Mindstudio 8.3.0 版本正式下线。
92
+ PyTorch 场景的[离线预检](./docs/07.accuracy_checker_PyTorch.md)
90
93
 
91
94
  MindSpore 动态图场景的[离线预检](./docs/09.accuracy_checker_MindSpore.md)
92
95
 
@@ -691,9 +691,23 @@ class FileCheckConst:
691
691
  """
692
692
  Class for file check const
693
693
  """
694
- READ_ABLE = "read"
695
- WRITE_ABLE = "write"
696
- READ_WRITE_ABLE = "read and write"
694
+ READ_ABLE = "r"
695
+ WRITE_ABLE = "w"
696
+ EXECUTE_ABLE = "x"
697
+ READ_WRITE_ABLE = "rw"
698
+ READ_EXECUTE_ABLE = "rx"
699
+ WRITE_EXECUTE_ABLE = "wx"
700
+ READ_WRITE_EXECUTE_ABLE = "rwx"
701
+ PERM_OPTIONS = [
702
+ READ_ABLE,
703
+ WRITE_ABLE,
704
+ EXECUTE_ABLE,
705
+ READ_WRITE_ABLE,
706
+ READ_EXECUTE_ABLE,
707
+ WRITE_EXECUTE_ABLE,
708
+ READ_WRITE_EXECUTE_ABLE
709
+ ]
710
+
697
711
  DIRECTORY_LENGTH = 4096
698
712
  FILE_NAME_LENGTH = 255
699
713
  FILE_VALID_PATTERN = r"^[a-zA-Z0-9_.:/-]+$"
@@ -46,13 +46,19 @@ class FileChecker:
46
46
  The class for check file.
47
47
 
48
48
  Attributes:
49
- file_path: The file or dictionary path to be verified.
50
- path_type: file or dictionary
51
- ability(str): one of [FileCheckConst.READ_ABLE, FileCheckConst.WRITE_ABLE, FileCheckConst.READ_WRITE_ABLE]
49
+ file_path: The file or dictionary path to be verified
50
+ path_type: file or dictionary type
51
+ ability(str): one of ["r", "w", "x", "rw", "rx", "wx", "rwx"], r: read, w: write, x: execute
52
52
  file_type(str): The correct file type for file
53
53
  """
54
54
 
55
- def __init__(self, file_path, path_type, ability=None, file_type=None):
55
+ def __init__(
56
+ self,
57
+ file_path,
58
+ path_type,
59
+ ability=None,
60
+ file_type=None
61
+ ):
56
62
  self.file_path = file_path
57
63
  self.path_type = self._check_path_type(path_type)
58
64
  self.ability = self._check_ability_type(ability)
@@ -67,15 +73,14 @@ class FileChecker:
67
73
 
68
74
  @staticmethod
69
75
  def _check_ability_type(ability):
70
- ability_list = [FileCheckConst.READ_ABLE, FileCheckConst.WRITE_ABLE, FileCheckConst.READ_WRITE_ABLE]
71
- if ability and ability not in ability_list:
72
- logger.error(f'The ability must be one of {ability_list}.')
76
+ if ability and ability not in FileCheckConst.PERM_OPTIONS:
77
+ logger.error(f'The ability must be one of {FileCheckConst.PERM_OPTIONS}.')
73
78
  raise FileCheckException(FileCheckException.ILLEGAL_PARAM_ERROR)
74
79
  return ability
75
80
 
76
81
  def common_check(self):
77
82
  """
78
- 功能:基本文件权限校验,包括文件存在性、软连接、文件长度、文件类型、文件读写权限、文件属组、文件路径特殊字符、文件后缀等
83
+ 功能:基本文件权限校验,包括文件存在性、软连接、文件长度、文件类型、文件读写权限、文件属组、文件路径特殊字符、文件后缀名等
79
84
  注意:文件后缀的合法性,非通用操作,可使用其他独立接口实现
80
85
  """
81
86
  check_path_exists(self.file_path)
@@ -94,13 +99,15 @@ class FileChecker:
94
99
  return self.file_path
95
100
 
96
101
  def check_path_ability(self):
97
- if self.ability == FileCheckConst.WRITE_ABLE:
98
- check_path_writability(self.file_path)
99
- if self.ability == FileCheckConst.READ_ABLE:
100
- check_path_readability(self.file_path)
101
- if self.ability == FileCheckConst.READ_WRITE_ABLE:
102
+ if not self.ability:
103
+ return
104
+
105
+ if FileCheckConst.READ_ABLE in self.ability:
102
106
  check_path_readability(self.file_path)
107
+ if FileCheckConst.WRITE_ABLE in self.ability:
103
108
  check_path_writability(self.file_path)
109
+ if FileCheckConst.EXECUTE_ABLE in self.ability:
110
+ check_path_executable(self.file_path)
104
111
 
105
112
 
106
113
  class FileOpen:
@@ -1040,4 +1047,48 @@ class SafeUnpickler(pickle.Unpickler):
1040
1047
  raise pickle.PicklingError(f'Unpickling {module}.{name} is illegal!')
1041
1048
 
1042
1049
 
1050
+ class DeserializationScanner:
1051
+ """反序列化风险扫描器"""
1052
+
1053
+ DANGEROUS_METHODS = {
1054
+ '__reduce__', '__reduce_ex__', '__setstate__', '__getstate__',
1055
+ '__new__', '__init__', '__del__',
1056
+ '__call__', '__enter__', '__exit__',
1057
+ 'eval', 'exec', 'compile', '__import__', 'open'
1058
+ 'os.system', 'os.popen', 'subprocess.call', 'subprocess.Popen',
1059
+ }
1060
+
1061
+ DANGEROUS_MODULES = {
1062
+ 'os', 'sys', 'subprocess', 'shutil', 'socket',
1063
+ 'requests', 'urllib', 'ftplib', 'smtplib',
1064
+ }
1065
+
1066
+ @classmethod
1067
+ def scan_pickle_content(cls, filepath: str) -> bool:
1068
+ with FileOpen(filepath, 'rb') as f:
1069
+ content = f.read()
1070
+
1071
+ try:
1072
+ text_content = content.decode('latin-1')
1073
+ except Exception as e:
1074
+ text_content = str(content)
1075
+
1076
+ for method in cls.DANGEROUS_METHODS:
1077
+ if re.fullmatch(method, text_content):
1078
+ logger.warning(f"Insecure method found: {method}")
1079
+ return False
1080
+
1081
+ for module in cls.DANGEROUS_MODULES:
1082
+ patterns = [
1083
+ f"import {module}",
1084
+ f"from {module} import",
1085
+ f"{module}.",
1086
+ ]
1087
+ for pattern in patterns:
1088
+ if pattern in text_content:
1089
+ logger.warning(f"Insecure module found: {module}")
1090
+ return False
1091
+ return True
1092
+
1093
+
1043
1094
  atexit.register(SharedDict.destroy_shared_memory)
@@ -16,7 +16,9 @@
16
16
  import functools
17
17
 
18
18
  from msprobe.core.common.const import Const
19
- from msprobe.core.common.file_utils import check_file_or_directory_path, save_npy
19
+ from msprobe.core.common.file_utils import check_file_or_directory_path, save_npy, DeserializationScanner
20
+ from msprobe.core.common.log import logger
21
+ from msprobe.core.common.utils import confirm
20
22
 
21
23
 
22
24
  class FrameworkDescriptor:
@@ -155,6 +157,13 @@ class FmkAdp:
155
157
  check_file_or_directory_path(path, is_strict=not weights_only)
156
158
  if cls.fmk == Const.PT_FRAMEWORK:
157
159
  try:
160
+ if not weights_only:
161
+ if not DeserializationScanner.scan_pickle_content(path):
162
+ if not confirm(
163
+ f"Some insecure methods or modules are detected in {path}, "
164
+ f"input yes to ignore and continue, otherwise exit", False):
165
+ logger.error("Insecure risks found and exit!")
166
+ raise Exception("Insecure risks found and exit!")
158
167
  if to_cpu:
159
168
  return cls.framework.load(path, map_location=cls.framework.device("cpu"), weights_only=weights_only)
160
169
  else:
@@ -708,3 +708,20 @@ def check_process_num(process_num):
708
708
  raise ValueError(f"process_num({process_num}) is not a positive integer")
709
709
  if process_num > Const.MAX_PROCESS_NUM:
710
710
  raise ValueError(f"The maximum supported process_num is {Const.MAX_PROCESS_NUM}, current value: {process_num}.")
711
+
712
+
713
+ def confirm(prompt, default=False):
714
+ if default is True:
715
+ prompt_suffix = " [Y/n] "
716
+ elif default is False:
717
+ prompt_suffix = " [y/N] "
718
+ else:
719
+ prompt_suffix = " [y/n] "
720
+
721
+ full_prompt = prompt + prompt_suffix
722
+
723
+ user_input = input(full_prompt).strip().lower()
724
+ if user_input in ['y', 'yes']:
725
+ return True
726
+ else:
727
+ return default
@@ -789,23 +789,43 @@ def compare_distributed_inner(npu_dump_dir, bench_dump_dir, output_path, compare
789
789
 
790
790
  npu_ranks, bench_ranks = get_sorted_ranks(npu_dump_dir, bench_dump_dir)
791
791
 
792
- # 统计量、md5比对
793
- pre_check_dump_path = os.path.join(npu_dump_dir, npu_ranks[0], 'dump.json') if npu_ranks else ''
792
+ # ------------------预载rank0的json用于判断是什么类型dump数据------------------
793
+ # 判断是否存在dump.json或debug.json
794
+ if npu_ranks:
795
+ dir_path = os.path.join(npu_dump_dir, npu_ranks[0])
796
+ dump_file = os.path.join(dir_path, 'dump.json')
797
+ debug_file = os.path.join(dir_path, 'debug.json')
798
+
799
+ # 确定pre_check_dump_path
800
+ if os.path.exists(dump_file):
801
+ pre_check_dump_path = dump_file
802
+ elif os.path.exists(debug_file):
803
+ pre_check_dump_path = debug_file
804
+ else:
805
+ pre_check_dump_path = ''
806
+ else:
807
+ pre_check_dump_path = ''
808
+
809
+ # 如果pre_check_dump_path为空,直接返回
794
810
  if not pre_check_dump_path:
795
811
  return
812
+
796
813
  dump_data = load_json(pre_check_dump_path)
814
+
815
+ # ------------------统计量、md5比对------------------
797
816
  if dump_data.get('task') == Const.STATISTICS:
798
817
  # dump数据为统计量或md5时,多进程加速比对
799
818
  input_param_nr_list = []
800
819
  for nr, br in zip(npu_ranks, bench_ranks):
801
- input_param, skip = extract_compare_param(Const.DUMP_JSON_FILE)
802
- if not skip:
803
- input_param_nr_list.append((input_param, nr))
820
+ for file_type in [Const.DUMP_JSON_FILE, Const.DEBUG_JSON_FILE]:
821
+ input_param, skip = extract_compare_param(file_type)
822
+ if not skip:
823
+ input_param_nr_list.append((input_param, nr))
804
824
  func_args = (compare_func, input_param_nr_list, output_path, kwargs)
805
825
  multi_statistics_compare(multi_ranks_compare, func_args)
806
826
  return
807
827
 
808
- # 真实数据比对
828
+ # ------------------真实数据比对------------------
809
829
  for nr, br in zip(npu_ranks, bench_ranks):
810
830
  for file_type in [Const.DUMP_JSON_FILE, Const.DEBUG_JSON_FILE]:
811
831
  input_param, skip = extract_compare_param(file_type)
@@ -19,11 +19,11 @@ from tqdm import tqdm
19
19
  from msprobe.core.common.file_utils import save_json, check_path_before_create, check_path_not_exists, \
20
20
  check_file_or_directory_path
21
21
  from msprobe.core.common.log import logger
22
+ from msprobe.core.common.utils import confirm
22
23
  from msprobe.core.config_check.ckpt_compare.megatron_loader import load_megatron_weights
23
24
  from msprobe.core.config_check.ckpt_compare.metrics import METRIC_FUNC
24
25
 
25
26
 
26
-
27
27
  def compare_checkpoints(ckpt_path1, ckpt_path2, output_path) -> Dict:
28
28
  """Compare weights between two checkpoints using cosine similarity and L2 distance.
29
29
 
@@ -45,6 +45,11 @@ def compare_checkpoints(ckpt_path1, ckpt_path2, output_path) -> Dict:
45
45
  """
46
46
 
47
47
  # Load both checkpoints
48
+ if not confirm("You are using torch.load with weights_only is False, it may cause arbitrary code "
49
+ "execution. Do it only if you get the file from a trusted source. Input yes to continue, "
50
+ "otherwise exit", False):
51
+ logger.error("Insecure risks found and exit!")
52
+ raise Exception("Insecure risks found and exit!")
48
53
  check_file_or_directory_path(ckpt_path1, isdir=True)
49
54
  check_file_or_directory_path(ckpt_path2, isdir=True)
50
55
  check_path_before_create(output_path)
@@ -46,10 +46,9 @@ class BaseHookManager(ABC):
46
46
  hook_handle_dict = {}
47
47
  params_grad_info = {}
48
48
 
49
- def __init__(self, data_collector, config, attl_manager=None):
49
+ def __init__(self, data_collector, config):
50
50
  self.data_collector = data_collector
51
51
  self.config = config
52
- self.attl_manager = attl_manager
53
52
 
54
53
  @property
55
54
  def _pid(self):
@@ -216,10 +215,6 @@ class BaseHookManager(ABC):
216
215
 
217
216
  args = self._register_backward_hook(module, full_backward_name, args)
218
217
  with self._no_grad_context():
219
- if getattr(self.config, "online_run_ut", False):
220
- BaseHookManager.inner_switch[tid] = False
221
- ThreadSafe.release()
222
- return
223
218
  self.data_collector.update_api_or_module_name(full_forward_name)
224
219
  self.data_collector.forward_input_data_collect(
225
220
  full_forward_name,
@@ -265,13 +260,6 @@ class BaseHookManager(ABC):
265
260
  output = self._register_backward_pre_hook(module, full_backward_name, output)
266
261
 
267
262
  with self._no_grad_context():
268
- if getattr(self.config, "online_run_ut", False):
269
- if self.data_collector.scope and not self.data_collector.scope.check(full_name):
270
- return None
271
- if self.attl_manager:
272
- self.attl_manager.attl_send(full_name, args, kwargs, output)
273
- BaseHookManager.inner_switch[tid] = False
274
- return None
275
263
  if hook_type == Const.MODULE:
276
264
  params_dict = self._get_params_dict(module)
277
265
  setattr(module_input_output, Const.PARAMS, params_dict)
@@ -320,9 +308,7 @@ class BaseHookManager(ABC):
320
308
  original_state = self.ensure_gc_enabled()
321
309
  BaseHookManager.inner_switch[tid] = True
322
310
  self.data_collector.update_api_or_module_name(full_name)
323
- if getattr(self.config, "online_run_ut", False):
324
- BaseHookManager.inner_switch[tid] = False
325
- return
311
+
326
312
  need_exchange = self._need_exchange(module) if hook_type == Const.MODULE else True
327
313
  if need_exchange:
328
314
  module_input_output = ModuleBackwardInputsOutputs(grad_input=grad_output, grad_output=grad_input)