mindstudio-probe 1.2.1__py3-none-any.whl → 1.2.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 (85) hide show
  1. {mindstudio_probe-1.2.1.dist-info → mindstudio_probe-1.2.2.dist-info}/METADATA +1 -1
  2. {mindstudio_probe-1.2.1.dist-info → mindstudio_probe-1.2.2.dist-info}/RECORD +85 -66
  3. msprobe/README.md +2 -2
  4. msprobe/core/common/const.py +34 -9
  5. msprobe/core/common/inplace_ops.yaml +1 -0
  6. msprobe/core/common/utils.py +14 -0
  7. msprobe/core/compare/layer_mapping/data_scope_parser.py +1 -1
  8. msprobe/core/compare/merge_result/merge_result.py +8 -7
  9. msprobe/core/compare/merge_result/utils.py +81 -0
  10. msprobe/core/compare/utils.py +10 -0
  11. msprobe/core/data_dump/data_collector.py +58 -13
  12. msprobe/core/data_dump/data_processor/base.py +92 -8
  13. msprobe/core/data_dump/data_processor/factory.py +3 -0
  14. msprobe/core/data_dump/data_processor/mindspore_processor.py +17 -4
  15. msprobe/core/data_dump/data_processor/pytorch_processor.py +58 -7
  16. msprobe/core/data_dump/json_writer.py +26 -8
  17. msprobe/docs/01.installation.md +25 -0
  18. msprobe/docs/02.config_introduction.md +14 -12
  19. msprobe/docs/03.config_examples.md +24 -0
  20. msprobe/docs/05.data_dump_PyTorch.md +34 -15
  21. msprobe/docs/06.data_dump_MindSpore.md +45 -22
  22. msprobe/docs/09.accuracy_checker_MindSpore.md +4 -2
  23. msprobe/docs/19.monitor.md +257 -260
  24. msprobe/docs/21.visualization_PyTorch.md +10 -0
  25. msprobe/docs/22.visualization_MindSpore.md +11 -0
  26. msprobe/docs/27.dump_json_instruction.md +24 -20
  27. msprobe/docs/28.debugger_save_instruction.md +94 -0
  28. msprobe/docs/28.kernel_dump_MindSpore.md +69 -0
  29. msprobe/docs/img/monitor/step_count_per_record.png +0 -0
  30. msprobe/mindspore/__init__.py +1 -0
  31. msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py +26 -6
  32. msprobe/mindspore/api_accuracy_checker/api_runner.py +54 -16
  33. msprobe/mindspore/api_accuracy_checker/compute_element.py +47 -1
  34. msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py +129 -0
  35. msprobe/mindspore/api_accuracy_checker/type_mapping.py +24 -1
  36. msprobe/mindspore/api_accuracy_checker/utils.py +6 -1
  37. msprobe/mindspore/common/utils.py +20 -2
  38. msprobe/mindspore/debugger/debugger_config.py +25 -2
  39. msprobe/mindspore/debugger/precision_debugger.py +25 -6
  40. msprobe/mindspore/dump/hook_cell/api_registry.py +2 -0
  41. msprobe/mindspore/dump/jit_dump.py +7 -6
  42. msprobe/mindspore/monitor/anomaly_detect.py +404 -0
  43. msprobe/mindspore/monitor/distributed/__init__.py +0 -0
  44. msprobe/mindspore/monitor/distributed/distributed_ops.yaml +15 -0
  45. msprobe/mindspore/monitor/distributed/stack_blacklist.yaml +5 -0
  46. msprobe/mindspore/monitor/distributed/wrap_distributed.py +300 -0
  47. msprobe/mindspore/monitor/features.py +63 -0
  48. msprobe/mindspore/monitor/module_hook.py +821 -0
  49. msprobe/mindspore/monitor/module_spec_verifier.py +94 -0
  50. msprobe/mindspore/monitor/utils.py +267 -0
  51. msprobe/mindspore/ms_config.py +8 -2
  52. msprobe/mindspore/service.py +95 -21
  53. msprobe/pytorch/__init__.py +0 -1
  54. msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py +1 -1
  55. msprobe/pytorch/bench_functions/apply_adam.py +215 -0
  56. msprobe/pytorch/bench_functions/group_norm_silu.py +27 -0
  57. msprobe/pytorch/bench_functions/mish.py +21 -0
  58. msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py +44 -0
  59. msprobe/pytorch/bench_functions/sort_v2.py +21 -0
  60. msprobe/pytorch/common/utils.py +71 -0
  61. msprobe/pytorch/debugger/debugger_config.py +19 -9
  62. msprobe/pytorch/debugger/precision_debugger.py +14 -0
  63. msprobe/pytorch/dump/module_dump/module_processer.py +10 -30
  64. msprobe/pytorch/function_factory.py +7 -1
  65. msprobe/pytorch/hook_module/support_wrap_ops.yaml +2 -1
  66. msprobe/pytorch/hook_module/wrap_distributed.py +4 -0
  67. msprobe/pytorch/monitor/anomaly_detect.py +14 -29
  68. msprobe/pytorch/monitor/csv2tb.py +10 -12
  69. msprobe/pytorch/monitor/module_hook.py +123 -104
  70. msprobe/pytorch/monitor/module_metric.py +6 -6
  71. msprobe/pytorch/monitor/optimizer_collect.py +45 -63
  72. msprobe/pytorch/monitor/utils.py +8 -43
  73. msprobe/pytorch/pt_config.py +19 -22
  74. msprobe/pytorch/service.py +103 -24
  75. msprobe/visualization/builder/graph_builder.py +31 -5
  76. msprobe/visualization/builder/msprobe_adapter.py +7 -5
  77. msprobe/visualization/graph/base_node.py +3 -2
  78. msprobe/visualization/graph/distributed_analyzer.py +80 -3
  79. msprobe/visualization/graph/node_op.py +4 -2
  80. msprobe/visualization/graph_service.py +3 -4
  81. msprobe/visualization/utils.py +10 -2
  82. {mindstudio_probe-1.2.1.dist-info → mindstudio_probe-1.2.2.dist-info}/LICENSE +0 -0
  83. {mindstudio_probe-1.2.1.dist-info → mindstudio_probe-1.2.2.dist-info}/WHEEL +0 -0
  84. {mindstudio_probe-1.2.1.dist-info → mindstudio_probe-1.2.2.dist-info}/entry_points.txt +0 -0
  85. {mindstudio_probe-1.2.1.dist-info → mindstudio_probe-1.2.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: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: Ascend Probe Utils
5
5
  Home-page: https://gitee.com/ascend/mstt/tree/master/debug/accuracy_tools/msprobe
6
6
  Author: Ascend Team
@@ -1,5 +1,5 @@
1
1
  msprobe/CMakeLists.txt,sha256=Cx_WsHVxbX2gWZ6Hxah2zYXz2eamSb4CgIlzKm9OQGA,125
2
- msprobe/README.md,sha256=N6QB_OXiAd5pjet0SwzvykQDWPve1UVUdf-jJSoMQ-w,7678
2
+ msprobe/README.md,sha256=4m6s2yO_GPMOtQ-riYwHTBJbwoQfHJOhjzyABHxA2m8,7759
3
3
  msprobe/__init__.py,sha256=q2S8b3VTSn1wTMrkf8Gm79OOq9EerMIK6Y26gFdu_0s,688
4
4
  msprobe/config.json,sha256=QS37x2t0D-grehkpHLLxRAEZqOrkNe40GwwOaVMx3Yc,1061
5
5
  msprobe/msprobe.py,sha256=NIt_qtxn3rdNgt4FJIXRk_gq4-dnVh98Sh6QnMlN-50,7143
@@ -8,33 +8,34 @@ msprobe/core/common_config.py,sha256=RZLr558VTs-l-R1MIZWA0LEw6uC2UOBe7veUoCyvqxs
8
8
  msprobe/core/advisor/advisor.py,sha256=WP8rBF2F9pcSphZONJDgNfz9c6GiRxbkWwPS9wRU4Tc,5900
9
9
  msprobe/core/advisor/advisor_const.py,sha256=thEEVYKPimv9WGxxaC4vBXQ-Coq6yBlZ394T_b49Ibw,2624
10
10
  msprobe/core/advisor/advisor_result.py,sha256=yM78n6NXLP1bjTsGeSddwb1bWQwtg1ZqjnPHmTzVxHE,2359
11
- msprobe/core/common/const.py,sha256=iVele12q0kFC9xpQpZedwQtBuclcezp908brUAHHCjU,20001
11
+ msprobe/core/common/const.py,sha256=IlQMC-a0cZyvThnXvCuRxmpzfLGEvXbET696kvFXVyU,20727
12
12
  msprobe/core/common/exceptions.py,sha256=pv1MxU5amB1dnCCmBJzF1WSQ8o4gC3FG9uAZ-qiug30,3942
13
13
  msprobe/core/common/file_utils.py,sha256=eXXOdqq84G98V0dfLVaVMX75eQA6LZPqDKaApVp19Cc,25404
14
14
  msprobe/core/common/inplace_op_checker.py,sha256=gwxpddOtPS2dRGbI2JB5ZixgoPLCYyDICb_07N9XVaM,1864
15
- msprobe/core/common/inplace_ops.yaml,sha256=9IFaoTEDgYiryq5cSWDGCxy-yhdU_srvO7uen9dfyCs,3156
15
+ msprobe/core/common/inplace_ops.yaml,sha256=Ta1zh6eF0A_Trd345gts2xlhFsU0-ZTXKEQOqUHT-54,3178
16
16
  msprobe/core/common/log.py,sha256=6mvE2DQtIZ3X66y3pIi8RtMGlznXJaIlHWwKHxhMKGk,3173
17
- msprobe/core/common/utils.py,sha256=IWQwTaQaoPFgFh8QKGyfub_FNLGkDTWuycC9jfH0w94,19519
17
+ msprobe/core/common/utils.py,sha256=IdQeMjeUKhwZcBlU0m2wgGGTwHNGbFEiE9gepqALgns,19876
18
18
  msprobe/core/compare/acc_compare.py,sha256=9Kyj8AMCoalKAW32clcgbCxd2v1TWL12c5jn7iT9ZYI,26851
19
19
  msprobe/core/compare/check.py,sha256=ewU5EWKuR8z3PMcTUlQSD6Lycssuyq3TLjjLiulmc2I,7300
20
20
  msprobe/core/compare/compare_cli.py,sha256=OHhHt-ojg0wVu-ZvNE54SAeWyibvB6yVFl1DDvauKmk,4061
21
21
  msprobe/core/compare/highlight.py,sha256=EsA756Ab9NOsOYA2tuZiDvjKUjRQsd5mENe0C3GsJG0,18533
22
22
  msprobe/core/compare/multiprocessing_compute.py,sha256=BRH01z56EtCEajEvTnaDKFgtenJ2jjkame2JK8dyW_w,6909
23
23
  msprobe/core/compare/npy_compare.py,sha256=JWRZEtHwr9TcA-6xZ1xqbx6BTUE8I48vvjn6_0WJmOw,12312
24
- msprobe/core/compare/utils.py,sha256=TymGBfuFRwwlslBK-ooxRU8Lyzidi4kFP7AqlE7H_GI,25601
24
+ msprobe/core/compare/utils.py,sha256=MeCxXjk5KoTlPeBgeCINm_fJaXK_sM_-frsKjRIc2rs,26050
25
25
  msprobe/core/compare/layer_mapping/__init__.py,sha256=MLMlb-zcaZCmG7Ykh6cY28kBTw-3_waNBRKbajwQc74,776
26
- msprobe/core/compare/layer_mapping/data_scope_parser.py,sha256=7Xm6FyhJLaKL_-OhC-4p9ZQJBB4J2n3Rb1CIdx75__k,9397
26
+ msprobe/core/compare/layer_mapping/data_scope_parser.py,sha256=WU9nelUpbkPa7RH_G3QAHRUhiWSHQ7Bt7TTMGFy51eM,9429
27
27
  msprobe/core/compare/layer_mapping/layer_mapping.py,sha256=7Fd1a76RwvuBU2olIz4x8FawwXlpEn_TZLXToDV_rPE,9992
28
28
  msprobe/core/compare/layer_mapping/postprocess_pass.py,sha256=giIeDiGVjp0mBSWrCalCQt0-hwUsH1hDdEJ_d6cQCo8,3951
29
- msprobe/core/compare/merge_result/merge_result.py,sha256=4zmRR4a5HeqvjUDWxb3JA8a9NM1ZNznhz44mL8-7HoI,15728
29
+ msprobe/core/compare/merge_result/merge_result.py,sha256=2P34oz91O1J56yibfRN4B2Xg2ybt5qkUkE2XW-uGixo,15789
30
30
  msprobe/core/compare/merge_result/merge_result_cli.py,sha256=QdQsaR6zp8SgE3thD1VXrlbkXF_slgN_pVf-7TNjlBs,1455
31
- msprobe/core/data_dump/data_collector.py,sha256=yQ7EFvQ-pXNgXlCcdqrTBpUkIPcJnmsb6oFqCG98U7c,8005
32
- msprobe/core/data_dump/json_writer.py,sha256=gBoHC7P4j0wgtSBo6W0D-geWmatZRpzAjLSmZXYs4l4,6028
31
+ msprobe/core/compare/merge_result/utils.py,sha256=z5YD34oLm9lxbRPQ74U2TzqMwmNOmKYr_NIihMQ1qpg,3523
32
+ msprobe/core/data_dump/data_collector.py,sha256=tcjP-PNEf5EZUJeSy_USMrlpqoU2MTVX_JTtSiEMOFY,10392
33
+ msprobe/core/data_dump/json_writer.py,sha256=Ug1zbQDbhUX2QPOVFwxLlHpy7JhUbjGr-F_E63hVNCg,6863
33
34
  msprobe/core/data_dump/scope.py,sha256=VWn2G8m5f_zVraqTHshDDaRHD0eJhR-5hRoebOoJLF8,9897
34
- msprobe/core/data_dump/data_processor/base.py,sha256=qfdJtaw7kGtsmCZ0Fc2by_F8uazl44JZtOnDYw1j_Wg,15091
35
- msprobe/core/data_dump/data_processor/factory.py,sha256=-VZuQ1fmhMkKSTyW2iFsBGl_Jlkjye3aZxQs7ImKwlM,4126
36
- msprobe/core/data_dump/data_processor/mindspore_processor.py,sha256=mlPoAusBTpo9K1ljCeLPyBDPZ3ueOaDb5uUyZ3VfrLw,14066
37
- msprobe/core/data_dump/data_processor/pytorch_processor.py,sha256=TCtnNmZHJRjJve8Swd5K6V_Rrl_jxR-wz5vt0fGWT_Q,22307
35
+ msprobe/core/data_dump/data_processor/base.py,sha256=GCodvjBmVwqjNYYqE7DOTcbLKXPyCFw8YmY8P0DJgW0,19262
36
+ msprobe/core/data_dump/data_processor/factory.py,sha256=onl0M8URU8Tjuw6mMdAHEwg2G-kL1fWXb8vPP5lmH_Y,4381
37
+ msprobe/core/data_dump/data_processor/mindspore_processor.py,sha256=KHPAT8Hr8N3g9oVWnZjBhlW3zHjggldJDxNDP2PVtHY,14697
38
+ msprobe/core/data_dump/data_processor/pytorch_processor.py,sha256=G7Mw-7c3n0csixgs-icPx2ucOsqBDwhG46PkUbjf1HM,24437
38
39
  msprobe/core/grad_probe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
40
  msprobe/core/grad_probe/constant.py,sha256=eS1IilPwNykxoXi8EvBXvG7_SfEnjWA9g7ca-RWqFBE,2292
40
41
  msprobe/core/grad_probe/grad_compare.py,sha256=gYflG7NeE9g94ExvbwpukAj5EeQoD627-cA8mu2vzVc,8271
@@ -46,15 +47,15 @@ msprobe/core/overflow_check/filter.py,sha256=VyUNcLM89QmXUbUBzKJG4wMFPNPdLkwgK24
46
47
  msprobe/core/overflow_check/ignore_rules.yaml,sha256=3k5HEKgF7_LtTexRk19AT1UZQ99IgItvctEsj4-5wYI,3021
47
48
  msprobe/core/overflow_check/level.py,sha256=0w-X2zVshf4I_2qECXm4uz6LqkhY5NFyCdZYU0pC62U,741
48
49
  msprobe/core/overflow_check/utils.py,sha256=1j5p2qWBOmOoat1v_Zi8krLOWz2NMCdUjrnD03AWTK8,991
49
- msprobe/docs/01.installation.md,sha256=K8QpRls-7deF_gmiKSlcomq00fTS5IQaRw7g4DwcbM0,6784
50
- msprobe/docs/02.config_introduction.md,sha256=BSFGw3bZjlJcLVY6xq_CuMFyzV4Qx2PN4M0rXYgXAL8,25998
51
- msprobe/docs/03.config_examples.md,sha256=HZa1nYkPHbvA51FU1N1QxeD987Gj_7tFPueTgkqq7OA,3661
50
+ msprobe/docs/01.installation.md,sha256=3ol7pyfSGnSoxXBkrFktizKnMmGoOAlR7a3dfTw6W6s,7538
51
+ msprobe/docs/02.config_introduction.md,sha256=HAW_h_7doHomXoG5Cur0nSKXoJ_Fx6e0vUgiKvKuB_8,28084
52
+ msprobe/docs/03.config_examples.md,sha256=tV1n-bc3VOYmdK0qLczFQIRmSBo0yxk2Gxm7onc1vz0,3987
52
53
  msprobe/docs/04.kernel_dump_PyTorch.md,sha256=dPURELEJabyNuSdsT_PWXXzqLsp2ZRGOu88qnkIi0x4,3002
53
- msprobe/docs/05.data_dump_PyTorch.md,sha256=w_b5NAdE4igQD2woaOl8ewcbt1Uo5hXEA5LZSrfGujQ,16357
54
- msprobe/docs/06.data_dump_MindSpore.md,sha256=pxuZJ36Q-FwDjrSTUg_PXJacg-4aLrQPuK8oT4SlVl0,19263
54
+ msprobe/docs/05.data_dump_PyTorch.md,sha256=jlo7-8OoEfwV5POZnDS9_kGjUsEflHUbEVybshszMic,17426
55
+ msprobe/docs/06.data_dump_MindSpore.md,sha256=i72bmGWN5foY0il3C96FF8UxxCp5gNjX_QGMZFfNGqM,20563
55
56
  msprobe/docs/07.accuracy_checker_PyTorch.md,sha256=AqAzlcQQK-DYZrwU2sDk0z2jsFCf7q86AoqS0gzwoDc,29339
56
57
  msprobe/docs/08.accuracy_checker_online_PyTorch.md,sha256=sO4jhA-1No8Ewy8AQrcgQnt235XuJhecQExiLL5T_6g,11758
57
- msprobe/docs/09.accuracy_checker_MindSpore.md,sha256=9QpMYNvdzwINOhVKmzhadm6IAFjnF5rnS2s9Oiwgt2w,9317
58
+ msprobe/docs/09.accuracy_checker_MindSpore.md,sha256=tDwLFWD8LVWe7XBEQKwYuPHB0rhUGSAN8i8spXdHo-w,9747
58
59
  msprobe/docs/10.accuracy_compare_PyTorch.md,sha256=pUx5w3MkkzhHb1KZ54OMrmbb458biZtrj345l2i2arI,28714
59
60
  msprobe/docs/11.accuracy_compare_MindSpore.md,sha256=MLCjwjlkNM59fPCVQZunJ-idnSRXJvzNHxC1BEEkOh4,29761
60
61
  msprobe/docs/12.overflow_check_PyTorch.md,sha256=fGPvMilLcG46UDOGMuysZ6GXc0YS5764yQc0oezLhB0,3656
@@ -64,15 +65,17 @@ msprobe/docs/15.free_benchmarking_PyTorch.md,sha256=Dh4j8OKAqvMdNg4P7JPJnvbIrtLj
64
65
  msprobe/docs/16.free_benchmarking_MindSpore.md,sha256=swCOrnBSzU6Q5I0AHVwi2r0JfKp3VE1DgNHripyE01M,8195
65
66
  msprobe/docs/17.grad_probe.md,sha256=aMCHKxHWkBesZNTK9ZOH5oY0pcVm1jkbooUz3uaROmM,9620
66
67
  msprobe/docs/18.online_dispatch.md,sha256=KuQtWygBMNpc6B-nX2-z25ZBJUGXSXIlwwkcA_sM63A,4126
67
- msprobe/docs/19.monitor.md,sha256=gztBmcrvNdrOIac8ReqLs_bu-PymvBGZC2WhL_rlOsY,28636
68
+ msprobe/docs/19.monitor.md,sha256=MlZKsFntN_VVXl_Yntr5aVFJxJbydvzWzuEZj7VYs90,45128
68
69
  msprobe/docs/20.monitor_performance_baseline.md,sha256=t-aM1s7BqEE8ls47gL1wmipkhdmB6CSPI90-r4abyXY,3672
69
- msprobe/docs/21.visualization_PyTorch.md,sha256=-rER5v2-8JAAO0gquojTLXazYd_d7d4C95fXkq1CKqo,20779
70
- msprobe/docs/22.visualization_MindSpore.md,sha256=RIgrCa51knSsHzrzmLoC1ozTPnxVsKkQl6fRrd9PxgI,23878
70
+ msprobe/docs/21.visualization_PyTorch.md,sha256=svYJ9JoVO0KW26N7IJ80cQSZ52i91FqbUka4VuuXr38,21597
71
+ msprobe/docs/22.visualization_MindSpore.md,sha256=CezHM2-02bRBGuExJ8mLi2WR6adQ6nwQbr6L18GG7sI,24697
71
72
  msprobe/docs/23.generate_operator_PyTorch.md,sha256=a0M_fHJu3ZCvk_Yg_H549OX2TLjhIrn89j2K_vrT6rk,10118
72
73
  msprobe/docs/24.code_mapping_Mindspore.md,sha256=FB4akTJce685-F9gO_ubKJf64sjsuhAzxQvYwtncFiA,1874
73
74
  msprobe/docs/25.tool_function_introduction.md,sha256=_v-M6pVzyMr453Pa90NkYG6MkLagUqe9kTDqgcqtvuo,12453
74
75
  msprobe/docs/26.data_dump_PyTorch_baseline.md,sha256=BD6rRKrN5WM8cEoD4LipMC0E6KE6xPan1IRFTDbdoUM,1666
75
- msprobe/docs/27.dump_json_instruction.md,sha256=u3rCUu1ADcaF5YzAr6NzXiRfAKsHSMZ-P9Mf4ANvdTY,13233
76
+ msprobe/docs/27.dump_json_instruction.md,sha256=KMwqSH2GHMMewrUYItRakDpqUv4lHyz2NZM7GN97CDo,13915
77
+ msprobe/docs/28.debugger_save_instruction.md,sha256=R9h0tEF_mRfoTF_IdnLY9HhL-BdD6KWCLvxVmGqi98c,4026
78
+ msprobe/docs/28.kernel_dump_MindSpore.md,sha256=EMgw2g58ediZZoorXOyyCN-Oz2PTW68DzZP87jLUgzo,2531
76
79
  msprobe/docs/FAQ.md,sha256=TQH2wl4GTf-1t1uHHsotv2hxq0IufloQdZZnsPQqnBE,11848
77
80
  msprobe/docs/S02.report_free_benchmarking_validation_performance_baseline.md,sha256=4NkHEa8VN3ebeUgrw9T-7rlL-qL_xB63w81O5m29D6s,10799
78
81
  msprobe/docs/accuracy_checker_MindSpore/accuracy_checker_MindSpore_baseline.md,sha256=-133ODcU0kr0K1WWyeghnxxMHM2DMdnNawLVymPqVXw,527
@@ -114,6 +117,7 @@ msprobe/docs/img/ms_dump.png,sha256=9tHk4gizGhkdycZRRiIRxBHJoPtCl9tsdMnl3PjVsk8,
114
117
  msprobe/docs/img/ms_layer.png,sha256=aqlWHCMoiNDksJE7m_ilpM0ifDLt8fxgh-MGNxpfNOU,277469
115
118
  msprobe/docs/img/pt_dump.png,sha256=c-YrWYiRERBj_x410-aq3-uMcxgII0ETVk-hT1KUr-4,70698
116
119
  msprobe/docs/img/monitor/cpu_info.png,sha256=H9DfJgwotN3uukISOHQb8_tAiNISqt2_rSu4LKI5z4k,13826
120
+ msprobe/docs/img/monitor/step_count_per_record.png,sha256=kZGQVoxFCz597O5O36en1A_NXelV8XGeeFLvGP_VvE0,5140
117
121
  msprobe/docs/img/visualization/fuzzy_match_ms.png,sha256=IanddWXLSrs5_SvtaAHRJWjPUJ7cGja3oF_PQCqfnKw,9222
118
122
  msprobe/docs/img/visualization/fuzzy_match_pt.png,sha256=uAFmJk5bgvlLswZjWCoEfnErTP4ZMgxDnuowdGU5Z-0,9065
119
123
  msprobe/docs/img/visualization/tensorboard_1.png,sha256=t3mafHzjcUHZbwJhbnri42B3mfoygLjaBIpli9KFLZg,8651
@@ -136,26 +140,27 @@ msprobe/docs/visualization/no_mapping.png,sha256=pz1Pz_azPG2m672l1Lq7eY0u0f5ymXe
136
140
  msprobe/docs/visualization/no_mapping1.png,sha256=2E5hXlze23c7Ns4xeXYyaJQig95bBjl03QIFW18DFho,148652
137
141
  msprobe/docs/visualization/no_mapping_analyze.png,sha256=GOqHERkQZQBzKbxTyYqQG7ZDQNdQ53kT9GLkZZsj5j0,218092
138
142
  msprobe/docs/visualization/top_layer.png,sha256=an5TuWPvM_o5eLSUAmrGby3wcrS04pXfMX4fvydKaVI,13196
139
- msprobe/mindspore/__init__.py,sha256=ewNzcBj4fgSXyIZ40s6yc7MP0wG-9JingLKGVwOTglQ,1050
143
+ msprobe/mindspore/__init__.py,sha256=k1ofyAaau6Nm4rpkuFiZwhskuC3xmWLu2-N8jFT3boQ,1110
140
144
  msprobe/mindspore/cell_processor.py,sha256=4Hn3MLa37zVv3k-skIsv_j3k56XKgKv2bGKqCCMAupc,3037
141
- msprobe/mindspore/ms_config.py,sha256=IfO6Bu9P6Enfo3_FSkZ6HTG8gah76mYWaj3J5bn_ejA,5682
145
+ msprobe/mindspore/ms_config.py,sha256=n8mt4Xbcb6BgHvAorzVriOMZKT9cIkDwD_ZajvXD94E,5832
142
146
  msprobe/mindspore/runtime.py,sha256=1Jn94SMMmJPhcWvzukDELaFd6am9LQMz-kiFg9YS53A,714
143
- msprobe/mindspore/service.py,sha256=Jpik2cGCqL4ep7d2qefG_bTKw0cAjwPeGnbaXsssGPM,22916
147
+ msprobe/mindspore/service.py,sha256=ma-LzkBiSCcDsmeY_gIG_oKyW0udPKexcAhaTfKmeU8,26125
144
148
  msprobe/mindspore/task_handler_factory.py,sha256=0almyYmPoK76pZQDMooluH-ikeTcAr1uEEWSC0qgxWw,1564
145
149
  msprobe/mindspore/api_accuracy_checker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py,sha256=10JO1jdaifI9oDBNiFba-tnGbMnUzdgfAjrm1SOVoD8,14668
150
+ msprobe/mindspore/api_accuracy_checker/api_accuracy_checker.py,sha256=oDxcB6sBaX76srgWrDn6POHpV6D3YWa6tEdKW473zWY,15787
147
151
  msprobe/mindspore/api_accuracy_checker/api_info.py,sha256=XrHmU-22BOpYObX999NOOPzW7h0wCM5KW89-bZpVBYc,4858
148
- msprobe/mindspore/api_accuracy_checker/api_runner.py,sha256=8m_KgvXGqa5s6fS6QHED7693O2JWw2ryoNwC7tGdCxA,8856
152
+ msprobe/mindspore/api_accuracy_checker/api_runner.py,sha256=EFpJmT_SE6r6oMmunDLcFqetvzbgzD7B5fV3DUjzd1Q,11297
149
153
  msprobe/mindspore/api_accuracy_checker/base_compare_algorithm.py,sha256=RMtJZd1qyw7AkWQlrL9Lp4F21P_TVPnRL8xs2nT7OgI,8428
150
154
  msprobe/mindspore/api_accuracy_checker/checker_support_api.yaml,sha256=xs4auF9UUv7LSQS2fDfWCbh6CJeaJ_tKsXedt5hS0G4,1325
151
155
  msprobe/mindspore/api_accuracy_checker/cmd_parser.py,sha256=Damqlg-hgIrxAodGb_QeQPqlCbXg576HosMZPoLVa1I,3355
152
- msprobe/mindspore/api_accuracy_checker/compute_element.py,sha256=iAugMQxKsrkER3yac2u0-2YUbK6j7YyspPAMI26VYrs,13231
156
+ msprobe/mindspore/api_accuracy_checker/compute_element.py,sha256=99MTomO7-u0eLZnM4pUWy33Wi-o_S0D6qQbzmwY9oX0,15067
153
157
  msprobe/mindspore/api_accuracy_checker/data_manager.py,sha256=9gJNXnzl692FuA3rN-No12ZrztDm1Os8GLx9J2zuAHc,13421
154
158
  msprobe/mindspore/api_accuracy_checker/main.py,sha256=ECA3HrNJHgEbOxOANNNl_c0EVq77IgiE45atfMICCF8,1295
155
159
  msprobe/mindspore/api_accuracy_checker/multi_api_accuracy_checker.py,sha256=2Dc3goj3WK6sd8hgiIm8A75GdG1hnGcWICcZ12LbRho,9247
156
160
  msprobe/mindspore/api_accuracy_checker/multi_data_manager.py,sha256=ry_pFW9dWMTsaMbCkA2g-8dNa3yd-5LX2FbShEzZ1Bs,2684
157
- msprobe/mindspore/api_accuracy_checker/type_mapping.py,sha256=Z9SDsSmTpel7ONCCMSDwvvMpmVhSxgiuXdvoCI4l0wM,3239
158
- msprobe/mindspore/api_accuracy_checker/utils.py,sha256=KvSIUqHcWLz-1viVJxTG_F3ALp2xkUAv6p9IsRs6gro,3801
161
+ msprobe/mindspore/api_accuracy_checker/torch_mindtorch_importer.py,sha256=1t2-nUX2A5Oa4MVQy8dgcLVVsEyTTi41iUZZpbkCTrk,3445
162
+ msprobe/mindspore/api_accuracy_checker/type_mapping.py,sha256=FL5SIQ3dJRKVmicvOOUzZ0zDrLzqXGCb8-fgMCizd-A,4071
163
+ msprobe/mindspore/api_accuracy_checker/utils.py,sha256=uREcuxnIOy0Zeuqeo8wP4g33dcyqND_VtUIzKQBY2kQ,3951
159
164
  msprobe/mindspore/code_mapping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
165
  msprobe/mindspore/code_mapping/bind.py,sha256=NX_8SvfSa7PAFy_PVgR39CgkFz-OPqtbWQYCGBUFMek,8814
161
166
  msprobe/mindspore/code_mapping/cmd_parser.py,sha256=QKwSVd6V05KJoNURO6BzpaLXQJci1742rZOzRSVa3qY,1493
@@ -165,20 +170,20 @@ msprobe/mindspore/code_mapping/main.py,sha256=VjxdvroXa5D58QUg56jQUXlJ-YNWmTMeri
165
170
  msprobe/mindspore/code_mapping/processor.py,sha256=o-YQyl90NPCpoex3iWbNMGHiWTuqLx8C0UfY2RSZ2wg,1164
166
171
  msprobe/mindspore/common/const.py,sha256=SUbEzA1JvjrVALIdOuwNfoqWe3ST-DvGU3zDfnfCpPA,3847
167
172
  msprobe/mindspore/common/log.py,sha256=b-XZiXylAOK85DH3leCGC0zbxTBRIVTokLOYQAyHCII,1127
168
- msprobe/mindspore/common/utils.py,sha256=cpdaVJaAJD3ERnQKcKwq1rruPtYjc-URmQEhUGSm4zY,5785
173
+ msprobe/mindspore/common/utils.py,sha256=ZV8sKBYtxVMv88-dcDvwXdoZ8HcvAgU6Op8fBsAaBhs,6607
169
174
  msprobe/mindspore/compare/distributed_compare.py,sha256=dXGbAqIzUnLIpn1kpkPSsHoOCr8HZFl2W6qf09U8ks8,2861
170
175
  msprobe/mindspore/compare/ms_compare.py,sha256=6PnK5PF4D46pG9UUsUDTyDT71CdLd1FBhAVvLYQCvg4,22382
171
176
  msprobe/mindspore/compare/ms_graph_compare.py,sha256=854kWqwqWjMzmrgI2NsY_6M5VwGpV_y76AaoxxkbKEE,20012
172
177
  msprobe/mindspore/compare/ms_to_pt_api.yaml,sha256=NGzy6_yIArM6V0zYsW3sg3KLMJe0sr9ljKiIcHujJus,13203
173
178
  msprobe/mindspore/debugger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
- msprobe/mindspore/debugger/debugger_config.py,sha256=AewiK_6iDLjseigeAC5_r6gJ3iKVphsgakyN3hjO824,3819
175
- msprobe/mindspore/debugger/precision_debugger.py,sha256=p5wT9mWd0N3gaq7Xpc_qw1Au3Rox-VbpLkgMuDzVFTE,8510
179
+ msprobe/mindspore/debugger/debugger_config.py,sha256=NfcUS8F5u5s9yOQZaDf525cXWi5fP9a7QqZ_zmBuFT0,5248
180
+ msprobe/mindspore/debugger/precision_debugger.py,sha256=4qD5syPnORNLt3xeKu8p87m6rV8RwR3J08OhlHH3MIA,9319
176
181
  msprobe/mindspore/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
182
  msprobe/mindspore/dump/dump_tool_factory.py,sha256=XRFc3LxqoFWpczkvOVlxwHV44GnaeSCgs4waduy3utA,2022
178
- msprobe/mindspore/dump/jit_dump.py,sha256=QtC6eUhcM2eTSFG7Olm20xDtVtLYHWiFnaNceZTVFbU,4460
183
+ msprobe/mindspore/dump/jit_dump.py,sha256=WKgVB4PydXBggHoKDHV2QwAdBmkA84BdjNuLppsrbxs,4459
179
184
  msprobe/mindspore/dump/kernel_graph_dump.py,sha256=DcQMwdGZeLU0WQ-ppOBzssZn8XFcpmRmY323vkjDGr0,3905
180
185
  msprobe/mindspore/dump/kernel_kbyk_dump.py,sha256=ofsBjJyaPgVSczRuVzYmbAqpEFszK6EH3Xj9pcdxjLk,2911
181
- msprobe/mindspore/dump/hook_cell/api_registry.py,sha256=plUdiW77bq97lCli5V4q3coPmsZkgKKcb2-E3LxCWys,10392
186
+ msprobe/mindspore/dump/hook_cell/api_registry.py,sha256=tuZyl336h3n8ffZwb-txxPwioKQJP3AUdEVPt2IC1tQ,10591
182
187
  msprobe/mindspore/dump/hook_cell/hook_cell.py,sha256=-CeWMEg2-YqWq--oiIcezkwpWSJpnRnkTmJWTZ5MLjU,2426
183
188
  msprobe/mindspore/dump/hook_cell/primitive_hooks.py,sha256=k5fU5wsno4l855cgaTz35ktJ1xChDy1GNl8af1anbjU,10380
184
189
  msprobe/mindspore/dump/hook_cell/support_wrap_ops.yaml,sha256=Bn9e5d3n4rxkFwGZNh5Lr02XGrcumWobiVSpf_NvsCQ,13578
@@ -215,14 +220,23 @@ msprobe/mindspore/grad_probe/hook.py,sha256=jKQa9ag9rWV-sD1-31SOrJfKFLwEWRXBzEfO
215
220
  msprobe/mindspore/grad_probe/utils.py,sha256=JNGOXZbey8b1YP99LUeAHV2XOJgTE3a7IHvVOybDU7M,1566
216
221
  msprobe/mindspore/mindtorch/__init__.py,sha256=ReXDwvtuuKdJYec0YvcxTLL2bA9RdPukoR7_hvJywTc,811
217
222
  msprobe/mindspore/mindtorch/mindtorch_adaptor.py,sha256=A8hssylam5fdwSz8dO5JN08OdtZurbCooHaVH-iVpn4,11291
223
+ msprobe/mindspore/monitor/anomaly_detect.py,sha256=38hCBx6YS5bsgOQbY2PGr3qN66TL_u52YKmCA-h_Xb0,14390
224
+ msprobe/mindspore/monitor/features.py,sha256=GYPsbqgVqOF54a-5Te1hpi945H0YnWzxAD7QIrT5NlQ,1543
225
+ msprobe/mindspore/monitor/module_hook.py,sha256=tP-Sk__vMQup9-vyxO0ewN8t_NA-yQOdkgn99uphsAA,34676
226
+ msprobe/mindspore/monitor/module_spec_verifier.py,sha256=TZltkpAlijosHT3M_rLs7rpcHZwzIW8QSekT9baGykM,3670
227
+ msprobe/mindspore/monitor/utils.py,sha256=EezD9YTliBmuHtRnG9KHmBAdbGHzVtUAB8Ey3Jb_hIY,9174
228
+ msprobe/mindspore/monitor/distributed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
+ msprobe/mindspore/monitor/distributed/distributed_ops.yaml,sha256=3mfRKCnhSio6TYsWQkNpr_Vae2a8oO5TGdFobNAdd0c,292
230
+ msprobe/mindspore/monitor/distributed/stack_blacklist.yaml,sha256=8Gx6Ot7sk69Z-hdWL8LC7KcXVv21EFCVmgSKzsNGcFo,111
231
+ msprobe/mindspore/monitor/distributed/wrap_distributed.py,sha256=AUB-D-fq0wTCQZiFQsLmBeiQZtr5lQt2yHgvC_cgbDI,9984
218
232
  msprobe/mindspore/overflow_check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
233
  msprobe/mindspore/overflow_check/kernel_graph_overflow_check.py,sha256=ZzVF13owq5F5D755b8CXduyJScdyuyr6TCtyttYe7H8,3064
220
234
  msprobe/mindspore/overflow_check/overflow_check_tool_factory.py,sha256=fHWkpwHZuYOylVX8DxEgIt3XLf4VlP78UWYxZDyq89M,1820
221
- msprobe/pytorch/__init__.py,sha256=9hpi8hPjnwSAFHVxxQ3N_wMt6noT7P6o1pIIyi3Xg_I,1036
222
- msprobe/pytorch/function_factory.py,sha256=TS7qE0YpL-aD4T5gQon8pXRkb2Tx5TmNTatE6lH7Dic,3568
235
+ msprobe/pytorch/__init__.py,sha256=qIvhnAk61oSpvPU0QI0YAC4zyLKYyOcfNzdXJxN7Klo,1035
236
+ msprobe/pytorch/function_factory.py,sha256=_WWSE7vMWWnoS6VZxHdUbi6H4_B9WOjlpWcQV1iTgk8,4032
223
237
  msprobe/pytorch/parse.py,sha256=TmMxmRfIfvvHzKGoDT5sKUdnt2PonwwwOKg1H7NsbVo,711
224
- msprobe/pytorch/pt_config.py,sha256=dbA7lrpP1oTQ1IkDr7_hVoPwby1HbxmxDCQGLtPWekY,14614
225
- msprobe/pytorch/service.py,sha256=5x16MI2NoIUHb5pqbtHJ5VkR-He_CI_QFu_Gw0ygqQA,18412
238
+ msprobe/pytorch/pt_config.py,sha256=N7bRQdlcyN79HWKbYX5dXDTNxPbY6CVc3d0l61oiick,14149
239
+ msprobe/pytorch/service.py,sha256=svnjqUhgdg_DwJ-rNe_Bucg62pFUBd9agYvedPYLumY,21692
226
240
  msprobe/pytorch/api_accuracy_checker/.keep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
241
  msprobe/pytorch/api_accuracy_checker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
228
242
  msprobe/pytorch/api_accuracy_checker/config.yaml,sha256=2kktin5NoWkSp2MOGDoxlz3MPv0lYXXD5r5SPYArEYs,144
@@ -240,7 +254,7 @@ msprobe/pytorch/api_accuracy_checker/compare/compare_column.py,sha256=2bQBWg8qVo
240
254
  msprobe/pytorch/api_accuracy_checker/compare/compare_input.py,sha256=OG83KTsDpc-NzUCjtMj5SnzuBmOHaQaJYPoyPaaxKfU,2059
241
255
  msprobe/pytorch/api_accuracy_checker/compare/compare_utils.py,sha256=K_YhER9znzATNCgCPBddbSfW5PJcFrKfjbRVyYIw4W8,9839
242
256
  msprobe/pytorch/api_accuracy_checker/generate_op_script/config_op.json,sha256=qIwrmgYSnO08FFrfIPhTWwB5XssHfWWsoRFzKIQYHxc,195
243
- msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py,sha256=m4eGM-1A1du14LXY2M4bvLzScN3aUBhj_bRJ-ntsJUs,23786
257
+ msprobe/pytorch/api_accuracy_checker/generate_op_script/op_generator.py,sha256=gAbykaAWTTBo8h7xB52c8AvwBw9RiCIerHwcKQTQo88,23787
244
258
  msprobe/pytorch/api_accuracy_checker/generate_op_script/operator_replication.template,sha256=9DFDNBg-qFB3uYzi7wbBpx9n5q8x0L4rJFh1L_wJock,17317
245
259
  msprobe/pytorch/api_accuracy_checker/precision_standard/absolute_threshold.py,sha256=4vtifRSecvSeTPjX_GVLDH75_phtfbkbhXUh2Y5H4O8,5535
246
260
  msprobe/pytorch/api_accuracy_checker/precision_standard/accumulative_error_compare.py,sha256=e0qANZpdGFsiezICAkLnULA9GmP3kjdCMEq1Y1wTgxI,5662
@@ -268,33 +282,38 @@ msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/server.py,sha256=wf_
268
282
  msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/torch_ops_config.yaml,sha256=AAEAsbIK8R1O9c9kDb6svfeklqt2W8GHf19ewKpEROo,1057
269
283
  msprobe/pytorch/api_accuracy_checker/tensor_transport_layer/utils.py,sha256=JBWBEp8mUyAYUjSuag-BQsvIn4luveOoRARput3dT7k,1791
270
284
  msprobe/pytorch/bench_functions/__init__.py,sha256=BoY2ZOpo_mj2gQ8pcl8oLwFxfHpZidOflJ1aGYDmPrM,1157
285
+ msprobe/pytorch/bench_functions/apply_adam.py,sha256=CNL19fQjwcMMDl1SHv3E_LKUoawkhz8_Kac5iXACsRc,6583
271
286
  msprobe/pytorch/bench_functions/apply_adam_w.py,sha256=tUkQEmmUf__kIkBTagtjphR7HaiZRpDjk_q7j6AGl00,1690
272
287
  msprobe/pytorch/bench_functions/confusion_transpose.py,sha256=sx-BcnKAvNXSmXrURU7KlGfead7PHPKM7SBUkILdKHc,1434
273
288
  msprobe/pytorch/bench_functions/fast_gelu.py,sha256=L3J2FNiHY_FCjWXLKuf3fCPLf7oE7kBVaYBjXUstR4s,1883
289
+ msprobe/pytorch/bench_functions/group_norm_silu.py,sha256=Uw5UEywR2GkKOltkEsKa2ZNabXfrgqHzs3a85F9hayg,1049
274
290
  msprobe/pytorch/bench_functions/layer_norm_eval.py,sha256=kObMeu4JKPltaGFXqf64cFcNVEsH8W-jW1m2PHbPPzA,808
275
291
  msprobe/pytorch/bench_functions/linear.py,sha256=jZ7C4jcKEBmM9t74P1AkPgJK1IXoawyxaQtultiO0nE,944
276
292
  msprobe/pytorch/bench_functions/matmul_backward.py,sha256=KMye6SI9EQPgfezG1Zx6aoX0gQhwOp3530Dr8eVvjfs,3623
293
+ msprobe/pytorch/bench_functions/mish.py,sha256=R2wNrjfYdq1CMpv4ZUCq9DyHX3py8UI-TfCKJGG4ZW0,702
294
+ msprobe/pytorch/bench_functions/moe_gating_top_k_softmax.py,sha256=LSm0aBnPkfdOk37Uj1ROvvYLG--4xh1ldhES5r-_zxQ,1632
277
295
  msprobe/pytorch/bench_functions/npu_fusion_attention.py,sha256=EBOUYxdm1aKABqPBo4dBWr5uTxA2mzN7FzWOMuVnvmQ,26657
278
296
  msprobe/pytorch/bench_functions/rms_norm.py,sha256=H5ukqQoxSWAHJoFeyZP_Jl6qn-nFNPrIfKedLNWPwOk,1072
279
297
  msprobe/pytorch/bench_functions/rotary_mul.py,sha256=RtyxNU1shFpUYJUvE0dRfFERaQ7SWq-qbirkZTmn4GY,2927
280
298
  msprobe/pytorch/bench_functions/scaled_mask_softmax.py,sha256=OAZq05MRKhBYuJ-962QeQMgO1xuCdTNd__XAgDf_5qQ,1518
299
+ msprobe/pytorch/bench_functions/sort_v2.py,sha256=BogydF5yqN2c4d8YZrxUzBHkK2VqEls1NqVBMa-MZDg,765
281
300
  msprobe/pytorch/bench_functions/swiglu.py,sha256=W3yBFgCsZkHu2BTx8JbObLYSR16xwV8ikqAtjmv1p5M,3319
282
301
  msprobe/pytorch/common/__init__.py,sha256=87H-l6y1gbEL2EQiSbPceeJwKJdcsS6zv-9NmrTJlTo,709
283
302
  msprobe/pytorch/common/compare_script.template,sha256=CsfmJ5IuPycAYa0-IfVPXrXVu-o6g8BeEF9v17UK_1w,286
284
303
  msprobe/pytorch/common/log.py,sha256=yGLpZ6mGfB-s9sHj_gcL5_PMq_Ai4BJxumA0F0knAso,1121
285
304
  msprobe/pytorch/common/parse_json.py,sha256=7HbrBdVCX8umYqa4u8JPHETAxUO1246jl7qhcE4FG1s,2286
286
- msprobe/pytorch/common/utils.py,sha256=L0R4XxhFZGswprESyg63dwnCODqjDcDHRIJiDIOH4G8,14527
305
+ msprobe/pytorch/common/utils.py,sha256=QfjQdhHKrPp3VJq_eDPhCUtqz9-Ey5mEsOeEQMgYUvE,17614
287
306
  msprobe/pytorch/compare/distributed_compare.py,sha256=tYs-SxRXTWnHeJV9L6n9fOdbdXxMnlo92YY0ka8BUVc,2615
288
307
  msprobe/pytorch/compare/mapping.yaml,sha256=Udlbf1dWDAdnTs8VcDTiSkqsMNj93o2qFUU2ocFgt2k,11697
289
308
  msprobe/pytorch/compare/match.py,sha256=j6ydfhs9zNMu6vzxsp_qMei-7-zDMuPO8Uj9i_OIhSA,1886
290
309
  msprobe/pytorch/compare/pt_compare.py,sha256=IkGLHnZnx3PhdU4SEg9GzXc7E7daFwN_JW7ZF576NzU,4676
291
310
  msprobe/pytorch/debugger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
292
- msprobe/pytorch/debugger/debugger_config.py,sha256=-EGPZ3mf9yphYwyVqs61nwXR9VFB7HBp54bru0xrejY,6370
293
- msprobe/pytorch/debugger/precision_debugger.py,sha256=H1bIIZdjmQbaQFiQS6S1x43nz5uR0u6uKcgOM6WkpPw,7928
311
+ msprobe/pytorch/debugger/debugger_config.py,sha256=FPvnZDYATDQY9cKYlg-IFZdTGLseAzjpux5EldFaqPQ,7061
312
+ msprobe/pytorch/debugger/precision_debugger.py,sha256=a-tAA8m-uAX6z6WtKxmV_9FmIv5zMt2F65V6E8prM3E,8487
294
313
  msprobe/pytorch/dump/kernel_dump/kernel_config.py,sha256=6ktVRcNlqwEM5C8L-og5ABX2FayQJr37Qhru0spWcWs,1186
295
314
  msprobe/pytorch/dump/module_dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
315
  msprobe/pytorch/dump/module_dump/module_dump.py,sha256=EDBsNhf_1xr-GkkEAbD1_HyZzjERQG_eAh-PCd-PWbg,4014
297
- msprobe/pytorch/dump/module_dump/module_processer.py,sha256=3fDq2N9PZx9523D-OnNm-ajo4BeiYWo3YdxfuDMVnBI,10350
316
+ msprobe/pytorch/dump/module_dump/module_processer.py,sha256=ot31p65GRQwT0d8agYbUeHmJyi6HyMWO8A5KIiyOpvg,9165
298
317
  msprobe/pytorch/free_benchmark/__init__.py,sha256=N2xdPic80U-Rl1B_6c8j09EMuU5Xn0knJjgmKQ5uiXQ,904
299
318
  msprobe/pytorch/free_benchmark/main.py,sha256=5SSJGQ-eYOsguCCHaCLiOPuSrlbEHuWkaIk6T4534UI,4634
300
319
  msprobe/pytorch/free_benchmark/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -329,10 +348,10 @@ msprobe/pytorch/hook_module/__init__.py,sha256=ktS1W-6hBa1q8wF-DGz8kFsfVhiIPWBOj
329
348
  msprobe/pytorch/hook_module/api_registry.py,sha256=V8bnCPlvrV2v3l2wtC3Dhr9SMeGp4HSc8K6i63K8Cd4,8104
330
349
  msprobe/pytorch/hook_module/hook_module.py,sha256=0HqopD23RlrZC3X9Im3nQ4-jBZksXNG_6aqVhRZeZiQ,4786
331
350
  msprobe/pytorch/hook_module/register_optimizer_hook.py,sha256=qQfUbltNNyBvKwGh13ECtSU0pJOcjQEz4MAxFB12ysg,2504
332
- msprobe/pytorch/hook_module/support_wrap_ops.yaml,sha256=WumCjr0gCvB5JILw4t4ClkVLWTiO3sPS0qNWizzdb0U,28432
351
+ msprobe/pytorch/hook_module/support_wrap_ops.yaml,sha256=nEI1TJ1OqiDplXylF-PXWFBc-0qKArj2NUII6EJbYSU,28454
333
352
  msprobe/pytorch/hook_module/utils.py,sha256=_m3M3Ad_Xtkm_ZZCo7rJzX9qeG3ocDYZQQtMqTnOuoc,1101
334
353
  msprobe/pytorch/hook_module/wrap_aten.py,sha256=tjD1CkresxQBr-iOhO5Hu4fGwSYpKNNhZv7XUBBFfus,3860
335
- msprobe/pytorch/hook_module/wrap_distributed.py,sha256=K_IDwZBfjS_medYT0JvB6bdq5Ua4tluOJfHTv3cD8zo,2512
354
+ msprobe/pytorch/hook_module/wrap_distributed.py,sha256=tm0D5kI556W5u-MSuRGAG5qJ-dGtYBFyVY0RojGpTYw,2668
336
355
  msprobe/pytorch/hook_module/wrap_functional.py,sha256=xtGVJBQMzkygYddGslcAjHbT7Ho5rUyWiQNzrCFMIDc,2205
337
356
  msprobe/pytorch/hook_module/wrap_npu_custom.py,sha256=gzhBVSygl32puWMZKmmSQfh9_f0lY_-V24pBNPOjVLo,3058
338
357
  msprobe/pytorch/hook_module/wrap_tensor.py,sha256=gWpEBg5BI1PqUYBz1XfSd9oPsau26w4iusmIrlH2m6c,2087
@@ -340,14 +359,14 @@ msprobe/pytorch/hook_module/wrap_torch.py,sha256=eJL_fTCm1K4NVKrjEqX-41zaa0aTqdN
340
359
  msprobe/pytorch/hook_module/wrap_vf.py,sha256=YpL1aPtVMszXosHiMtJgvLdLu4mBc2xjnNp9WvBrjGQ,1831
341
360
  msprobe/pytorch/monitor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
342
361
  msprobe/pytorch/monitor/anomaly_analyse.py,sha256=_jLGhu7M_vdKuuuD5wqeNhKxXnsPrPHtr9xTRjVnQD4,7674
343
- msprobe/pytorch/monitor/anomaly_detect.py,sha256=SHqubiwLgOivfWII4EWZxca6DPNlMtmmKwCQcB_Ohg0,15095
344
- msprobe/pytorch/monitor/csv2tb.py,sha256=g9ycInAORluIzmLeVW6vTj1zN6l2AjFzFLv57g8zGwE,6489
362
+ msprobe/pytorch/monitor/anomaly_detect.py,sha256=DZkxbSGUVFMtaW-reywn1TwubqfxJYhg_Gz8_iVdQHA,14285
363
+ msprobe/pytorch/monitor/csv2tb.py,sha256=1XFZ1gFPk01SY1OWV3EmPxOH6MxzHP0IIJioNyAleCE,6485
345
364
  msprobe/pytorch/monitor/features.py,sha256=4C9I7nOKtMl5xYWtdu5bk5cRVtocJE88lYvtTOkcJ-Q,2946
346
- msprobe/pytorch/monitor/module_hook.py,sha256=OBk8l97WtGMnwYqS2I4B4dxRmmow6aup766emFCiIcw,48356
347
- msprobe/pytorch/monitor/module_metric.py,sha256=PLE6wcP1YcETTxYy7CqowtJ1QHvgXmX5VudigEOp9wk,5180
365
+ msprobe/pytorch/monitor/module_hook.py,sha256=w2TJXcint1-ob-vTAb7tNfib7AjiPaKVFmQt1gXJ4EM,49020
366
+ msprobe/pytorch/monitor/module_metric.py,sha256=LDIi8-fcN2P5bysNyV8QngSkBrv6isREZvExbka56vA,5190
348
367
  msprobe/pytorch/monitor/module_spec_verifier.py,sha256=0Dpfx0SlsfR__oLdgiuYytnMEZ9KCJzSaoDR4IPQ4ZQ,3741
349
- msprobe/pytorch/monitor/optimizer_collect.py,sha256=sla0QTZzmK4I2f1mcaVN_8rs5PBVCQluci8zUhVMuXo,16521
350
- msprobe/pytorch/monitor/utils.py,sha256=Bt-VVMOjLtnFaSBovDrFeFpX9U2znP64ZeiQKtEC604,11922
368
+ msprobe/pytorch/monitor/optimizer_collect.py,sha256=XXBKTPqfas2SvPR9Pk4ZyGIIqly0jpfic9sAsWOkJ_I,15831
369
+ msprobe/pytorch/monitor/utils.py,sha256=V5SCaX7VNGtsglLYxvjiUpof2drQo1kAEyYrXovAJzQ,10126
351
370
  msprobe/pytorch/monitor/visualizer.py,sha256=HMjBMUUP96aYh2MFmqMD4eKM4QI_YD8STfU0ZdZhcb4,2661
352
371
  msprobe/pytorch/monitor/distributed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
353
372
  msprobe/pytorch/monitor/distributed/distributed_ops.yaml,sha256=LLZzEWyIx2dC-pLZ693HPwItReKqrZe_yAmgdyzHSpw,272
@@ -374,23 +393,23 @@ msprobe/pytorch/parse_tool/lib/parse_tool.py,sha256=nXX1b45o1AhpIR4oG1VpN56Jh02j
374
393
  msprobe/pytorch/parse_tool/lib/utils.py,sha256=_Ssw89FkxT9dc15r8FZFUY3FPMAM4kYnAU7ceFnrJdc,11692
375
394
  msprobe/pytorch/parse_tool/lib/visualization.py,sha256=8PAzoBGL8UWuF9Xryw-v6POBM4SczqBT3fcIBIugYWg,4102
376
395
  msprobe/visualization/__init__.py,sha256=rEvJTAx-jTGHBM7-bB6VZ7fwfWwYA961M1eZJj4sRcY,622
377
- msprobe/visualization/graph_service.py,sha256=f_ynMQOBm5PLMMV7Qojbqo0QymkOp3HPCQIfryEGrsM,14739
378
- msprobe/visualization/utils.py,sha256=2IZDfYi23siw6Ws-6G539x0GsevhXmroWKcMJaKkutA,7474
396
+ msprobe/visualization/graph_service.py,sha256=f6ETGlzGtaw2ATXZg6jGKIJa-uhu_3eXU7GpwEW7nr0,14698
397
+ msprobe/visualization/utils.py,sha256=ys3ece6FIkxpvhcTvHJR26Bn5RV-xWGZQX6S7OdSSK0,7683
379
398
  msprobe/visualization/builder/__init__.py,sha256=rEvJTAx-jTGHBM7-bB6VZ7fwfWwYA961M1eZJj4sRcY,622
380
- msprobe/visualization/builder/graph_builder.py,sha256=4wNGF3gUljT9hKPopQQC-Fivf7R2-Wi4ZgVlz9r-Bvg,10355
381
- msprobe/visualization/builder/msprobe_adapter.py,sha256=stA9HFMD_5s3lfcBnpmI5pJ0EWG3wBAW-WDXeK6B7Zo,8858
399
+ msprobe/visualization/builder/graph_builder.py,sha256=FipPs7_pTpehNA2_1ZZ4jPfqlv8AXa2vrr_pDMKHJDk,11688
400
+ msprobe/visualization/builder/msprobe_adapter.py,sha256=PzPrKbcwhftkAEc7ChL-Rp2XVhPIfWxdaTaD3MrcF4Q,9047
382
401
  msprobe/visualization/compare/__init__.py,sha256=vd0u6IEpGE1r-HC4CEhs3csiMaa0bxuFcHtyRlAX0kU,618
383
402
  msprobe/visualization/compare/graph_comparator.py,sha256=BcJFr6eMznR76JIAUdaPLAr7SWSe2ZNA3AuL9C4o5b4,9115
384
403
  msprobe/visualization/compare/mode_adapter.py,sha256=4P-55tOxfBkfZ2n8nKlBmtOYnA4w7tg3CKNIsyymJB0,9195
385
404
  msprobe/visualization/graph/__init__.py,sha256=rEvJTAx-jTGHBM7-bB6VZ7fwfWwYA961M1eZJj4sRcY,622
386
- msprobe/visualization/graph/base_node.py,sha256=0e60tmQlFOcKGRp2cj2aMyUtSW1s_fZWRHDHADqFUJk,4156
387
- msprobe/visualization/graph/distributed_analyzer.py,sha256=2Ai3ooDLU1XO7gfdVxJv_r8Swvm4h1V2Xcw4zY6L1pU,15551
405
+ msprobe/visualization/graph/base_node.py,sha256=ncOP0F6TGHLFdRspWuqToIAfCqbfJynsKYwZRrYuZbw,4207
406
+ msprobe/visualization/graph/distributed_analyzer.py,sha256=8B-9ecYxKw97nsVEzSsFZigQx3Dk2SgpuDtP9ZwzUnc,19408
388
407
  msprobe/visualization/graph/graph.py,sha256=hveibNDS7XVrXnipaDkOyZnqWCdjv1V2BlT1J4Wpinw,7752
389
408
  msprobe/visualization/graph/node_colors.py,sha256=7LpurTuE3edKGilwLVsXD7Ue4bMT7Maz63Udq_6CADM,4504
390
- msprobe/visualization/graph/node_op.py,sha256=Na01RFOCgsTkTFoyU67va6tfdI6OJAqOdKUx_NpYV5Y,1334
391
- mindstudio_probe-1.2.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
392
- mindstudio_probe-1.2.1.dist-info/METADATA,sha256=4NcePK60IxfE_KVD3A17H0LYC2acWRmiYDuq8F0eruk,1366
393
- mindstudio_probe-1.2.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
394
- mindstudio_probe-1.2.1.dist-info/entry_points.txt,sha256=4ob3a9L018EBZFdlfgMW1lbgeIOhc4F-HCR8gBksaCQ,49
395
- mindstudio_probe-1.2.1.dist-info/top_level.txt,sha256=LxFEFqelENSyWmRtocCiEUF04IE8aZvwTl7ADB598Tk,8
396
- mindstudio_probe-1.2.1.dist-info/RECORD,,
409
+ msprobe/visualization/graph/node_op.py,sha256=8tzGjAnEWb7yXpqrONsu0sNx8aPVmBmjk-aVx1xRtI0,1371
410
+ mindstudio_probe-1.2.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
411
+ mindstudio_probe-1.2.2.dist-info/METADATA,sha256=KdIxVBLp5yy7zG7LAZSL6OylWr7BQLxRV2sBd_-2OGc,1366
412
+ mindstudio_probe-1.2.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
413
+ mindstudio_probe-1.2.2.dist-info/entry_points.txt,sha256=4ob3a9L018EBZFdlfgMW1lbgeIOhc4F-HCR8gBksaCQ,49
414
+ mindstudio_probe-1.2.2.dist-info/top_level.txt,sha256=LxFEFqelENSyWmRtocCiEUF04IE8aZvwTl7ADB598Tk,8
415
+ mindstudio_probe-1.2.2.dist-info/RECORD,,
msprobe/README.md CHANGED
@@ -15,7 +15,7 @@ debugger = PrecisionDebugger(config_path='./config.json')
15
15
  ...
16
16
  debugger.start() # 一般在训练循环开头启动工具
17
17
  ... # 循环体
18
- debugger.stop() # 一般在训练循环末尾结束工具
18
+ debugger.stop() # 一般在训练循环末尾结束工具。必须调用,否则可能导致精度数据落盘不全
19
19
  debugger.step() # 在训练循环的最后需要重置工具,非循环场景不需要
20
20
  ```
21
21
 
@@ -127,7 +127,7 @@ MindSpore 动态图场景的[离线预检](./docs/09.accuracy_checker_MindSpore.
127
127
 
128
128
  该功能收集和聚合模型训练过程中的网络层,优化器, 通信算子的中间值,帮助诊断模型训练过程中计算, 通信,优化器各部分出现的异常情况。
129
129
 
130
- [PyTorch 场景的训练状态监控](./docs/19.monitor.md)
130
+ [兼容 PyTorch 和 MindSpore 框架的训练状态监控](./docs/19.monitor.md)
131
131
 
132
132
  ### 10 分级可视化构图比对
133
133
 
@@ -103,14 +103,16 @@ class Const:
103
103
  FREE_BENCHMARK = "free_benchmark"
104
104
  RUN_UT = "run_ut"
105
105
  GRAD_PROBE = "grad_probe"
106
- TASK_LIST = [TENSOR, STATISTICS, OVERFLOW_CHECK, FREE_BENCHMARK, RUN_UT, GRAD_PROBE]
107
- DUMP_DATA_COLLECTION_LIST = [STATISTICS, TENSOR]
106
+ STRUCTURE = "structure"
107
+ TASK_LIST = [TENSOR, STATISTICS, OVERFLOW_CHECK, FREE_BENCHMARK, RUN_UT, GRAD_PROBE, STRUCTURE]
108
+ DUMP_DATA_COLLECTION_LIST = [STATISTICS, TENSOR, STRUCTURE]
108
109
  DUMP_DATA_MODE_LIST = [ALL, INPUT, OUTPUT, FORWARD, BACKWARD]
109
110
  LEVEL_L0 = "L0"
110
111
  LEVEL_L1 = "L1"
111
112
  LEVEL_L2 = "L2"
112
113
  LEVEL_MIX = "mix"
113
- LEVEL_LIST = [LEVEL_L0, LEVEL_L1, LEVEL_L2, LEVEL_MIX]
114
+ LEVEL_DEBUG = "debug"
115
+ LEVEL_LIST = [LEVEL_L0, LEVEL_L1, LEVEL_L2, LEVEL_MIX, LEVEL_DEBUG]
114
116
  ATTR_NAME_PREFIX = "wrap_"
115
117
  ATTR_NAME_PREFIX_LEN = len(ATTR_NAME_PREFIX)
116
118
  KERNEL_DUMP = "kernel_dump"
@@ -543,9 +545,24 @@ class MsCompareConst:
543
545
  TENSOR_API = "Tensor"
544
546
 
545
547
  API_NAME_STR_LENGTH = 4
548
+ MAX_RECURSION_DEPTH = 20
549
+
550
+ # Mindtorch api_info field
551
+ MINDTORCH_TENSOR = "Tensor"
552
+ MINDTORCH = "Torch"
553
+ MINDTORCH_FUNC = "Functional"
554
+ MINDTORCH_NPU = "NPU"
555
+ MINDTORCH_DIST = "Distributed"
556
+
557
+
558
+
559
+ MT_VALID_API_TYPES = [
560
+ MINDTORCH, MINDTORCH_FUNC, MINDTORCH_TENSOR
561
+ ]
546
562
 
547
563
  TASK_FIELD = "task"
548
564
  STATISTICS_TASK = "statistics"
565
+ FRAMEWORK = "framework"
549
566
  TENSOR_TASK = "tensor"
550
567
  DUMP_DATA_DIR_FIELD = "dump_data_dir"
551
568
  DATA_FIELD = "data"
@@ -623,29 +640,37 @@ class MonitorConst:
623
640
  "DeepSpeedZeroOptimizer_Stage1_or_2",
624
641
  "DeepSpeedZeroOptimizer_Stage3"
625
642
  )
643
+ DEEPSPEED_ZERO_OPT_FILTER = "DeepSpeedZeroOptimizer"
626
644
  RULE_NAME = ['AnomalyTurbulence']
627
645
 
628
646
  SLICE_SIZE = 20480
647
+ # used for name
629
648
  DOT = "."
630
- VPP_SEP = ":"
649
+ NAME_SEP = ":"
650
+ INPUT_GRAD = "input_grad"
651
+ OUTPUT_GRAD = "output_grad"
631
652
  ACTV_IN = "input"
632
653
  ACTV_OUT = "output"
633
654
  ACTVGRAD_IN = "input_grad"
634
655
  ACTVGRAD_OUT = "output_grad"
656
+ # used for tasks
657
+ ACTV = "actv"
658
+ ACTVGRAD = "actv_grad"
635
659
  POST_GRAD = "post_grad"
636
660
  PRE_GRAD = "pre_grad"
637
661
  ACC_GRAD = "acc_grad"
638
662
  PREFIX_POST = "post"
639
663
  PREFIX_PRE = "pre"
640
- OUTPUT_DIR_PATTERN = r"([\w-]{0,20})-rank(\d{1,5})-"
641
-
642
664
  EXP_AVG = "exp_avg"
643
- EFXP_AVG_SQ = "efxp_avg_sq"
665
+ EXP_AVG_SQ = "exp_avg_sq"
666
+ PARAM = "param"
644
667
 
668
+ CSV_HEADER = ["vpp_stage", "name", "step"]
669
+ CSV_HEADER_XY = ["vpp_stage", "name", "step", "micro_step"]
670
+ OUTPUT_DIR_PATTERN = r"([\w-]{0,20})-rank(\d{1,5})-"
645
671
  ANOMALY_JSON = "anomaly.json"
646
672
  ANALYSE_JSON = "anomaly_analyse.json"
647
673
  TENSORBOARD = "tensorboard"
648
674
  CSV = "csv"
649
675
  API = "api"
650
- OPS_START_INDEX = 3
651
- HEADER_NAME_INDEX = 1
676
+ HEADER_NAME = 'name'
@@ -250,5 +250,6 @@ inplace_distributed_op:
250
250
  - all_to_all
251
251
  - all_gather_into_tensor
252
252
  - reduce_scatter_tensor
253
+ - batch_isend_irecv
253
254
 
254
255
 
@@ -239,6 +239,8 @@ def md5_find(data):
239
239
  for data_detail in data[key_op][api_info]:
240
240
  if data_detail and 'md5' in data_detail:
241
241
  return True
242
+ if isinstance(data[key_op][api_info], bool):
243
+ continue
242
244
  elif data[key_op][api_info] and 'md5' in data[key_op][api_info]:
243
245
  return True
244
246
  return False
@@ -303,6 +305,9 @@ def get_dump_mode(input_param):
303
305
  if npu_task == Const.TENSOR:
304
306
  return Const.ALL
305
307
 
308
+ if npu_task == Const.STRUCTURE:
309
+ return Const.STRUCTURE
310
+
306
311
  if npu_task == Const.STATISTICS:
307
312
  npu_md5_compare = md5_find(npu_json_data['data'])
308
313
  bench_md5_compare = md5_find(bench_json_data['data'])
@@ -496,3 +501,12 @@ def check_str_param(param):
496
501
  if not re.match(Const.REGEX_PREFIX_PATTERN, param):
497
502
  logger.error('The parameter {} contains special characters.'.format(param))
498
503
  raise MsprobeBaseException(MsprobeBaseException.INVALID_CHAR_ERROR)
504
+
505
+
506
+ class DumpPathAggregation:
507
+ dump_file_path = None
508
+ stack_file_path = None
509
+ construct_file_path = None
510
+ dump_tensor_data_dir = None
511
+ free_benchmark_file_path = None
512
+ debug_file_path = None
@@ -112,7 +112,7 @@ class DumpDataItem:
112
112
  self.layer_scope = Const.SEP.join(data_list[:Const.TYPE_NAME_INDEX])
113
113
  else:
114
114
  self.layer_scope = Const.TOP_LAYER
115
- if construct_info:
115
+ if construct_info and Const.SEP in construct_info:
116
116
  construct_list = construct_info.split(Const.SEP)
117
117
  if len(construct_list) < abs(Const.LAYER_NAME_INDEX):
118
118
  logger.error(
@@ -25,6 +25,7 @@ from msprobe.core.common.file_utils import load_yaml, logger, FileChecker, save_
25
25
  from msprobe.core.common.const import FileCheckConst, Const, CompareConst
26
26
  from msprobe.core.common.utils import CompareException, add_time_with_xlsx
27
27
  from msprobe.core.compare.utils import table_value_is_valid
28
+ from msprobe.core.compare.merge_result.utils import replace_compare_index_dict, check_config
28
29
 
29
30
 
30
31
  def check_compare_result_name(file_name):
@@ -170,6 +171,8 @@ def search_api_index_result(api_list, compare_index_list, result_df, rank_num, c
170
171
  table_value_check(index_value)
171
172
  api_index_dict.setdefault(api_full_name, {})[rank_num] = index_value # update api_index_dict
172
173
  compare_index_dict[compare_index] = api_index_dict
174
+
175
+ compare_index_dict = replace_compare_index_dict(compare_index_dict, compare_index_list, rank_num)
173
176
  return compare_index_dict
174
177
 
175
178
 
@@ -203,10 +206,13 @@ def result_process(compare_result_path_list, api_list):
203
206
  compare_index_list = check_index_dump_mode_consistent(dump_mode, rank_num)
204
207
  if len(compare_index_list) == 0:
205
208
  return [], [], []
206
- compare_index_dict = search_api_index_result(api_list, share_compare_index_list,
209
+ compare_index_list.extend([CompareConst.NPU_MAX, CompareConst.BENCH_MAX])
210
+ compare_index_dict = search_api_index_result(api_list, compare_index_list,
207
211
  result_df, rank_num, compare_index_dict)
208
212
  compare_index_dict_list.append(compare_index_dict)
209
213
  rank_num_list.append(rank_num)
214
+ compare_index_list.pop()
215
+ compare_index_list.pop()
210
216
  else:
211
217
  logger.warning(f"Rank{rank_num} compare result is empty and will not shown in merged result.")
212
218
 
@@ -362,13 +368,8 @@ def merge_result(input_dir, output_dir, config_path):
362
368
  compare_result_path_list = get_result_path(input_dir) # 获得的input_dir中所有比对结果件的全路径,数量少于2,便提示退出
363
369
 
364
370
  config = load_yaml(config_path)
365
- if not config:
366
- logger.error('config.yaml is empty, please check.')
367
- raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
371
+ config = check_config(config)
368
372
  api_list = config.get('api')
369
- if not api_list:
370
- logger.error('The APIs required to merge data were not found')
371
- raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
372
373
 
373
374
  # 初始化共享全局变量share_compare_index_list
374
375
  initialize_compare_index(config)
@@ -0,0 +1,81 @@
1
+ # Copyright (c) 2025-2025, Huawei Technologies Co., Ltd.
2
+ # All rights reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from msprobe.core.common.const import CompareConst
17
+ from msprobe.core.common.file_utils import logger
18
+ from msprobe.core.common.utils import CompareException
19
+
20
+
21
+ def replace_compare_index_dict(compare_index_dict, compare_index_list, rank_num):
22
+ """
23
+ 比对指标值为N/A、unsupported、Nan,将比对指标值替换成NPU max 和 Bench max(几个统计量相同)
24
+
25
+ 示例:
26
+ Distributed.all_reduce.0.forward.output.group的比对指标值是N/A
27
+ 替换后:
28
+ 比对指标值为:
29
+ NPU: tp-0-1-2-3
30
+ Bench: tp-0-1-2-3
31
+ """
32
+
33
+ if CompareConst.NPU_MAX not in compare_index_dict or CompareConst.BENCH_MAX not in compare_index_dict:
34
+ compare_index_dict.pop(CompareConst.NPU_MAX, None)
35
+ compare_index_dict.pop(CompareConst.BENCH_MAX, None)
36
+ return compare_index_dict
37
+
38
+ # 遍历比对指标列表,排除最后两个指标NPU max, Bench max
39
+ for compare_index in compare_index_list[:-2]:
40
+ op_name_index_dict = compare_index_dict[compare_index]
41
+ # 遍历op_item名称和对应的比对指标值
42
+ for op_name, index_value in op_name_index_dict.items():
43
+ npu_max = compare_index_dict[CompareConst.NPU_MAX][op_name][rank_num]
44
+ bench_max = compare_index_dict[CompareConst.BENCH_MAX][op_name][rank_num]
45
+ # 如果当前比对指标值是N/A、unsupported、Nan,并且NPU和Bench的最大值是类型相同,进行替换
46
+ if index_value[rank_num] in [CompareConst.N_A, CompareConst.UNSUPPORTED, CompareConst.NAN]:
47
+ compare_index_dict[compare_index][op_name][rank_num] = f'NPU:{str(npu_max)} Bench:{str(bench_max)}'
48
+
49
+ # 删除NPU_MAX和BENCH_MAX
50
+ compare_index_dict.pop(CompareConst.NPU_MAX, None)
51
+ compare_index_dict.pop(CompareConst.BENCH_MAX, None)
52
+ return compare_index_dict
53
+
54
+
55
+ def check_config(config):
56
+ """
57
+ config.yaml 内容检查
58
+ Args: config:
59
+ Returns: config
60
+ """
61
+ if not config:
62
+ logger.error('config.yaml is empty, please check.')
63
+ raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
64
+
65
+ api_list = config.get('api')
66
+ if not api_list:
67
+ logger.error('The APIs required to merge data were not found.')
68
+ raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
69
+ if not isinstance(api_list, list):
70
+ logger.error("The config format of 'api' is incorrect, please check.")
71
+ raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
72
+
73
+ compare_index_list = config.get('compare_index', [])
74
+ if compare_index_list is None:
75
+ compare_index_list = []
76
+ config['compare_index'] = compare_index_list
77
+ if not isinstance(compare_index_list, list):
78
+ logger.error("The config format of 'compare_index' is incorrect, please check.")
79
+ raise CompareException(CompareException.MERGE_COMPARE_RESULT_ERROR)
80
+
81
+ return config