mindspore 2.1.0__cp37-none-any.whl → 2.2.10__cp37-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.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

Files changed (569) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +46 -19
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/ascend_profilier/__init__.py +0 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  25. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  26. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  27. mindspore/_akg/akg/utils/kernel_exec.py +98 -274
  28. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  29. mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
  30. mindspore/_akg/akg/utils/util.py +38 -0
  31. mindspore/_c_dataengine.cpython-37m-aarch64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-37m-aarch64-linux-gnu.so +0 -0
  34. mindspore/_check_jit_forbidden_api.py +3 -1
  35. mindspore/_checkparam.py +23 -29
  36. mindspore/_extends/graph_kernel/__init__.py +0 -1
  37. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  38. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  39. mindspore/_extends/graph_kernel/splitter.py +4 -11
  40. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  41. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  42. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  43. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  44. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  45. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  46. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  47. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  48. mindspore/_extends/parse/__init__.py +12 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +61 -71
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +74 -104
  53. mindspore/_extends/parse/trope.py +1 -1
  54. mindspore/_extends/remote/kernel_build_server.py +25 -7
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_install_custom.py +43 -0
  57. mindspore/_mindspore_offline_debug.cpython-37m-aarch64-linux-gnu.so +0 -0
  58. mindspore/amp.py +47 -11
  59. mindspore/bin/cache_admin +0 -0
  60. mindspore/bin/cache_server +0 -0
  61. mindspore/boost/boost.py +1 -8
  62. mindspore/boost/boost_cell_wrapper.py +3 -2
  63. mindspore/boost/grad_accumulation.py +1 -1
  64. mindspore/boost/group_loss_scale_manager.py +8 -7
  65. mindspore/common/__init__.py +5 -3
  66. mindspore/common/_jit_fallback_utils.py +6 -0
  67. mindspore/common/_register_for_adapter.py +2 -0
  68. mindspore/common/_register_for_tensor.py +2 -2
  69. mindspore/common/_stub_tensor.py +13 -0
  70. mindspore/common/_utils.py +13 -0
  71. mindspore/common/api.py +174 -259
  72. mindspore/common/auto_dynamic_shape.py +494 -0
  73. mindspore/common/dtype.py +18 -11
  74. mindspore/common/dump.py +6 -4
  75. mindspore/common/initializer.py +14 -14
  76. mindspore/common/jit_config.py +33 -15
  77. mindspore/common/lazy_inline.py +126 -7
  78. mindspore/common/mindir_util.py +101 -0
  79. mindspore/common/parameter.py +51 -41
  80. mindspore/common/seed.py +4 -4
  81. mindspore/common/sparse_tensor.py +13 -14
  82. mindspore/common/tensor.py +243 -165
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +83 -4
  85. mindspore/communication/management.py +152 -84
  86. mindspore/config/op_info.config +14 -3
  87. mindspore/config/super_bar_config.json +4 -2
  88. mindspore/context.py +152 -61
  89. mindspore/dataset/__init__.py +5 -5
  90. mindspore/dataset/audio/__init__.py +2 -2
  91. mindspore/dataset/audio/transforms.py +52 -52
  92. mindspore/dataset/callback/ds_callback.py +16 -2
  93. mindspore/dataset/core/config.py +68 -51
  94. mindspore/dataset/engine/cache_client.py +28 -5
  95. mindspore/dataset/engine/datasets.py +250 -112
  96. mindspore/dataset/engine/datasets_audio.py +43 -211
  97. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  98. mindspore/dataset/engine/datasets_text.py +43 -67
  99. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  100. mindspore/dataset/engine/datasets_vision.py +219 -1029
  101. mindspore/dataset/engine/iterators.py +11 -4
  102. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  103. mindspore/dataset/engine/obs/util.py +3 -0
  104. mindspore/dataset/engine/samplers.py +1 -1
  105. mindspore/dataset/engine/validators.py +19 -5
  106. mindspore/dataset/text/__init__.py +3 -3
  107. mindspore/dataset/text/transforms.py +101 -127
  108. mindspore/dataset/text/utils.py +205 -138
  109. mindspore/dataset/transforms/__init__.py +1 -1
  110. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  111. mindspore/dataset/transforms/transforms.py +95 -40
  112. mindspore/dataset/utils/browse_dataset.py +8 -2
  113. mindspore/dataset/utils/line_reader.py +17 -19
  114. mindspore/dataset/vision/__init__.py +3 -3
  115. mindspore/dataset/vision/c_transforms.py +6 -3
  116. mindspore/dataset/vision/transforms.py +409 -287
  117. mindspore/dataset/vision/utils.py +13 -14
  118. mindspore/dataset/vision/validators.py +11 -1
  119. mindspore/experimental/map_parameter.py +14 -0
  120. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  121. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  122. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  123. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  124. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  125. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  126. mindspore/gen_ops.py +273 -0
  127. mindspore/include/OWNERS +0 -1
  128. mindspore/include/api/data_type.h +2 -1
  129. mindspore/include/api/graph.h +0 -15
  130. mindspore/include/api/kernel.h +2 -0
  131. mindspore/include/api/kernel_api.h +37 -12
  132. mindspore/include/api/model.h +17 -14
  133. mindspore/include/api/status.h +8 -3
  134. mindspore/include/api/types.h +37 -4
  135. mindspore/include/c_api/ms/abstract.h +67 -0
  136. mindspore/include/c_api/ms/attribute.h +197 -0
  137. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  138. mindspore/include/c_api/ms/base/macros.h +32 -0
  139. mindspore/include/c_api/ms/base/status.h +33 -0
  140. mindspore/include/c_api/ms/base/types.h +282 -0
  141. mindspore/include/c_api/ms/context.h +102 -0
  142. mindspore/include/c_api/ms/graph.h +160 -0
  143. mindspore/include/c_api/ms/node.h +606 -0
  144. mindspore/include/c_api/ms/tensor.h +161 -0
  145. mindspore/include/c_api/ms/value.h +84 -0
  146. mindspore/include/dataset/constants.h +6 -5
  147. mindspore/include/dataset/execute.h +23 -13
  148. mindspore/include/dataset/text.h +26 -26
  149. mindspore/include/dataset/transforms.h +13 -13
  150. mindspore/include/dataset/vision.h +60 -60
  151. mindspore/include/dataset/vision_ascend.h +5 -6
  152. mindspore/include/dataset/vision_lite.h +17 -17
  153. mindspore/include/mindapi/base/type_id.h +1 -0
  154. mindspore/include/mindapi/base/types.h +1 -0
  155. mindspore/lib/libdnnl.so.2 +0 -0
  156. mindspore/lib/libjemalloc.so.2 +0 -0
  157. mindspore/lib/libmindspore.so +0 -0
  158. mindspore/lib/libmindspore_backend.so +0 -0
  159. mindspore/lib/libmindspore_common.so +0 -0
  160. mindspore/lib/libmindspore_core.so +0 -0
  161. mindspore/lib/libmindspore_glog.so.0 +0 -0
  162. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  163. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  164. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  165. mindspore/lib/libmindspore_shared_lib.so +0 -0
  166. mindspore/lib/libnnacl.so +0 -0
  167. mindspore/lib/libopencv_core.so.4.5 +0 -0
  168. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  169. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  170. mindspore/lib/libps_cache.so +0 -0
  171. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
  172. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
  173. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
  174. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
  175. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  176. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  177. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  178. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  179. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  180. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  181. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  182. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  183. mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
  184. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  185. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  186. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8928 -0
  187. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  188. mindspore/lib/plugin/ascend/libakg.so +0 -0
  189. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  190. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  191. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  192. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  193. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  194. mindspore/lib/plugin/cpu/libakg.so +0 -0
  195. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  196. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  197. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  198. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  199. mindspore/nn/__init__.py +0 -2
  200. mindspore/nn/cell.py +313 -74
  201. mindspore/nn/dynamic_lr.py +21 -21
  202. mindspore/nn/layer/activation.py +22 -30
  203. mindspore/nn/layer/basic.py +15 -13
  204. mindspore/nn/layer/channel_shuffle.py +1 -1
  205. mindspore/nn/layer/container.py +271 -9
  206. mindspore/nn/layer/conv.py +323 -204
  207. mindspore/nn/layer/dense.py +8 -5
  208. mindspore/nn/layer/embedding.py +33 -27
  209. mindspore/nn/layer/flash_attention.py +141 -88
  210. mindspore/nn/layer/image.py +8 -6
  211. mindspore/nn/layer/math.py +16 -25
  212. mindspore/nn/layer/normalization.py +107 -66
  213. mindspore/nn/layer/padding.py +1 -1
  214. mindspore/nn/layer/pooling.py +131 -109
  215. mindspore/nn/layer/rnn_cells.py +27 -22
  216. mindspore/nn/layer/rnns.py +13 -16
  217. mindspore/nn/layer/thor_layer.py +1 -1
  218. mindspore/nn/layer/transformer.py +221 -154
  219. mindspore/nn/learning_rate_schedule.py +9 -1
  220. mindspore/nn/loss/loss.py +235 -174
  221. mindspore/nn/optim/ada_grad.py +2 -1
  222. mindspore/nn/optim/adadelta.py +1 -0
  223. mindspore/nn/optim/adafactor.py +2 -1
  224. mindspore/nn/optim/adam.py +7 -4
  225. mindspore/nn/optim/adamax.py +3 -2
  226. mindspore/nn/optim/adasum.py +2 -2
  227. mindspore/nn/optim/asgd.py +2 -3
  228. mindspore/nn/optim/ftrl.py +6 -5
  229. mindspore/nn/optim/lamb.py +7 -4
  230. mindspore/nn/optim/lars.py +1 -1
  231. mindspore/nn/optim/lazyadam.py +5 -3
  232. mindspore/nn/optim/momentum.py +2 -1
  233. mindspore/nn/optim/optimizer.py +53 -4
  234. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  235. mindspore/nn/optim/rmsprop.py +4 -3
  236. mindspore/nn/optim/rprop.py +23 -12
  237. mindspore/nn/optim/sgd.py +26 -11
  238. mindspore/nn/optim/thor.py +9 -7
  239. mindspore/nn/probability/bijector/bijector.py +5 -5
  240. mindspore/nn/probability/bijector/power_transform.py +27 -27
  241. mindspore/nn/probability/bijector/softplus.py +3 -3
  242. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  243. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  244. mindspore/nn/probability/distribution/beta.py +3 -3
  245. mindspore/nn/probability/distribution/categorical.py +7 -7
  246. mindspore/nn/probability/distribution/cauchy.py +0 -1
  247. mindspore/nn/probability/distribution/distribution.py +3 -3
  248. mindspore/nn/probability/distribution/gamma.py +3 -3
  249. mindspore/nn/probability/distribution/geometric.py +4 -4
  250. mindspore/nn/probability/distribution/gumbel.py +4 -4
  251. mindspore/nn/probability/distribution/log_normal.py +2 -2
  252. mindspore/nn/probability/distribution/logistic.py +2 -2
  253. mindspore/nn/probability/distribution/poisson.py +4 -4
  254. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  255. mindspore/nn/probability/distribution/uniform.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +84 -34
  257. mindspore/nn/wrap/grad_reducer.py +8 -5
  258. mindspore/nn/wrap/loss_scale.py +105 -42
  259. mindspore/numpy/array_creations.py +1 -2
  260. mindspore/numpy/array_ops.py +3 -2
  261. mindspore/numpy/utils_const.py +5 -5
  262. mindspore/offline_debug/convert_async.py +2 -2
  263. mindspore/ops/_grad_experimental/__init__.py +0 -5
  264. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  265. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  266. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  267. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  268. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  269. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  270. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  271. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  272. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  273. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  274. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  275. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  276. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  277. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  278. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  279. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  280. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  281. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  282. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  283. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  284. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  285. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  286. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  287. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  288. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  289. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  290. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  291. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  292. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  293. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  294. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  295. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  296. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  297. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  298. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  299. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  300. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  301. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  302. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  303. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  304. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  305. mindspore/ops/_primitive_cache.py +1 -1
  306. mindspore/ops/_tracefunc.py +45 -13
  307. mindspore/ops/_utils/utils.py +6 -1
  308. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  309. mindspore/ops/_vmap/vmap_base.py +3 -3
  310. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  311. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  312. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  313. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  314. mindspore/ops/arg_dtype_cast.py +54 -0
  315. mindspore/ops/composite/base.py +37 -10
  316. mindspore/ops/composite/math_ops.py +5 -4
  317. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  318. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  319. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  320. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  321. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  324. mindspore/ops/deprecated.py +304 -0
  325. mindspore/ops/function/__init__.py +4 -1
  326. mindspore/ops/function/array_func.py +174 -193
  327. mindspore/ops/function/clip_func.py +81 -13
  328. mindspore/ops/function/debug_func.py +1 -1
  329. mindspore/ops/function/grad/grad_func.py +18 -9
  330. mindspore/ops/function/image_func.py +10 -4
  331. mindspore/ops/function/linalg_func.py +5 -5
  332. mindspore/ops/function/math_func.py +575 -386
  333. mindspore/ops/function/nn_func.py +568 -260
  334. mindspore/ops/function/random_func.py +88 -57
  335. mindspore/ops/function/sparse_func.py +1 -1
  336. mindspore/ops/function/sparse_unary_func.py +14 -12
  337. mindspore/ops/function/vmap_func.py +6 -5
  338. mindspore/ops/functional.py +15 -10
  339. mindspore/ops/op_info_register.py +244 -25
  340. mindspore/ops/operations/__init__.py +28 -19
  341. mindspore/ops/operations/_grad_ops.py +72 -7
  342. mindspore/ops/operations/_inner_ops.py +350 -17
  343. mindspore/ops/operations/_quant_ops.py +4 -8
  344. mindspore/ops/operations/_sequence_ops.py +42 -0
  345. mindspore/ops/operations/array_ops.py +68 -282
  346. mindspore/ops/operations/comm_ops.py +107 -59
  347. mindspore/ops/operations/custom_ops.py +94 -70
  348. mindspore/ops/operations/debug_ops.py +8 -4
  349. mindspore/ops/operations/image_ops.py +18 -12
  350. mindspore/ops/operations/inner_ops.py +26 -3
  351. mindspore/ops/operations/math_ops.py +189 -141
  352. mindspore/ops/operations/nn_ops.py +794 -489
  353. mindspore/ops/operations/other_ops.py +0 -22
  354. mindspore/ops/operations/random_ops.py +53 -111
  355. mindspore/ops/operations/sparse_ops.py +3 -1
  356. mindspore/ops/primitive.py +24 -18
  357. mindspore/parallel/_auto_parallel_context.py +68 -8
  358. mindspore/parallel/_cost_model_context.py +2 -2
  359. mindspore/parallel/_offload_context.py +17 -3
  360. mindspore/parallel/_parallel_serialization.py +12 -5
  361. mindspore/parallel/_ps_context.py +12 -0
  362. mindspore/parallel/_tensor.py +18 -13
  363. mindspore/parallel/_transformer/layers.py +5 -3
  364. mindspore/parallel/_transformer/loss.py +1 -0
  365. mindspore/parallel/_transformer/moe.py +2 -2
  366. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  367. mindspore/parallel/_transformer/transformer.py +23 -3
  368. mindspore/parallel/_utils.py +11 -7
  369. mindspore/parallel/algo_parameter_config.py +85 -5
  370. mindspore/parallel/checkpoint_transform.py +19 -12
  371. mindspore/parallel/shard.py +21 -14
  372. mindspore/profiler/common/struct_type.py +3 -3
  373. mindspore/profiler/common/util.py +4 -2
  374. mindspore/profiler/envprofiling.py +1 -1
  375. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  376. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  377. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  378. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  379. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  380. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  381. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  382. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  383. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  384. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  385. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  386. mindspore/profiler/parser/flops_parser.py +15 -11
  387. mindspore/profiler/parser/framework_parser.py +38 -22
  388. mindspore/profiler/parser/hccl_parser.py +16 -12
  389. mindspore/profiler/parser/integrator.py +22 -11
  390. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  391. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  392. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  393. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  394. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  395. mindspore/profiler/parser/optime_parser.py +1 -1
  396. mindspore/profiler/parser/profiler_info.py +21 -2
  397. mindspore/profiler/parser/step_trace_parser.py +11 -14
  398. mindspore/profiler/profiling.py +179 -89
  399. mindspore/rewrite/api/node.py +102 -19
  400. mindspore/rewrite/api/node_type.py +5 -1
  401. mindspore/rewrite/api/pattern_engine.py +1 -1
  402. mindspore/rewrite/api/scoped_value.py +9 -17
  403. mindspore/rewrite/api/symbol_tree.py +131 -47
  404. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  405. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  406. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  407. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  408. mindspore/rewrite/common/rewrite_elog.py +5 -1
  409. mindspore/rewrite/namer.py +33 -24
  410. mindspore/rewrite/namespace.py +14 -5
  411. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  412. mindspore/rewrite/node/call_function.py +79 -0
  413. mindspore/rewrite/node/cell_container.py +135 -0
  414. mindspore/rewrite/node/control_flow.py +88 -0
  415. mindspore/rewrite/{node.py → node/node.py} +273 -234
  416. mindspore/rewrite/node/node_manager.py +254 -0
  417. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  418. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  419. mindspore/rewrite/parsers/assign_parser.py +216 -221
  420. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  421. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  422. mindspore/rewrite/parsers/constant_parser.py +9 -6
  423. mindspore/rewrite/parsers/container_parser.py +9 -7
  424. mindspore/rewrite/parsers/for_parser.py +36 -15
  425. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  426. mindspore/rewrite/parsers/if_parser.py +28 -24
  427. mindspore/rewrite/parsers/module_parser.py +196 -25
  428. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  429. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  430. mindspore/rewrite/parsers/return_parser.py +6 -6
  431. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  432. mindspore/rewrite/sparsify/utils.py +1 -1
  433. mindspore/rewrite/symbol_tree.py +523 -578
  434. mindspore/rewrite/symbol_tree_builder.py +9 -193
  435. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  436. mindspore/run_check/_check_version.py +6 -4
  437. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  438. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  439. mindspore/scipy/linalg.py +1 -1
  440. mindspore/scipy/optimize/minimize.py +7 -3
  441. mindspore/train/_utils.py +7 -3
  442. mindspore/train/amp.py +323 -123
  443. mindspore/train/anf_ir_pb2.py +14 -2
  444. mindspore/train/callback/_backup_and_restore.py +2 -12
  445. mindspore/train/callback/_callback.py +29 -4
  446. mindspore/train/callback/_checkpoint.py +23 -8
  447. mindspore/train/callback/_early_stop.py +2 -2
  448. mindspore/train/callback/_landscape.py +4 -4
  449. mindspore/train/callback/_loss_monitor.py +2 -2
  450. mindspore/train/callback/_on_request_exit.py +2 -2
  451. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  452. mindspore/train/callback/_summary_collector.py +15 -8
  453. mindspore/train/callback/_time_monitor.py +58 -5
  454. mindspore/train/data_sink.py +5 -11
  455. mindspore/train/dataset_helper.py +84 -57
  456. mindspore/train/loss_scale_manager.py +2 -2
  457. mindspore/train/metrics/__init__.py +3 -3
  458. mindspore/train/metrics/cosine_similarity.py +1 -1
  459. mindspore/train/metrics/hausdorff_distance.py +3 -2
  460. mindspore/train/metrics/mean_surface_distance.py +3 -2
  461. mindspore/train/metrics/metric.py +39 -19
  462. mindspore/train/metrics/roc.py +2 -2
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  464. mindspore/train/mind_ir_pb2.py +85 -36
  465. mindspore/train/model.py +187 -47
  466. mindspore/train/serialization.py +487 -161
  467. mindspore/train/summary/_summary_adapter.py +1 -1
  468. mindspore/train/summary/_writer_pool.py +3 -2
  469. mindspore/train/summary/summary_record.py +37 -17
  470. mindspore/train/train_thor/convert_utils.py +3 -3
  471. mindspore/train/train_thor/dataset_helper.py +1 -1
  472. mindspore/version.py +1 -1
  473. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/METADATA +6 -7
  474. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +477 -517
  475. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/entry_points.txt +0 -1
  476. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  477. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  478. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  479. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  480. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  481. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  482. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  483. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  484. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  485. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  486. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  487. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  488. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  489. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  490. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  491. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  492. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  493. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  494. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  495. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  496. mindspore/_extends/graph_kernel/expander.py +0 -80
  497. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  498. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  499. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  500. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  501. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  502. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  503. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  504. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  505. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  506. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  507. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  508. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  509. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  510. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  511. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  512. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  513. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  514. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  516. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  517. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  518. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  519. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  520. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  521. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  522. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  523. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  524. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  525. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  526. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  527. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  528. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  529. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  530. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  531. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  532. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  533. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  534. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  535. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  536. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  537. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  538. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  539. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  540. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  541. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  542. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  543. mindspore/dataset/datapreprocess/__init__.py +0 -20
  544. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  545. mindspore/include/api/net.h +0 -142
  546. mindspore/nn/lr_scheduler.py +0 -262
  547. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  548. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  549. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  550. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  551. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  552. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  553. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  554. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  555. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  556. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  557. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  558. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  559. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  560. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  561. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  562. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  563. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  564. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  565. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  566. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  567. mindspore/rewrite/node_visitor.py +0 -44
  568. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
  569. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
@@ -20,7 +20,7 @@ import os
20
20
  import numpy as np
21
21
 
22
22
 
23
- class AscendMsprofDataGenerator:
23
+ class AscendMsprofDataGeneratorOld:
24
24
  """Generate ascend data from files."""
25
25
 
26
26
  def __init__(self, source_path):
@@ -37,7 +37,7 @@ class AscendMsprofDataGenerator:
37
37
  'Op Name': {'index': self.invalid_index, 'dtype': ('Op Name', object)},
38
38
  'OP Type': {'index': self.invalid_index, 'dtype': ('Op Type', object)},
39
39
  'Task Type': {'index': self.invalid_index, 'dtype': ('Task Type', object)},
40
- 'Task Start Time': {'index': self.invalid_index, 'dtype': ('Task Start Time', float)},
40
+ 'Task Start Time(us)': {'index': self.invalid_index, 'dtype': ('Task Start Time', float)},
41
41
  'Task Duration(us)': {'index': self.invalid_index, 'dtype': ('Task Duration', float)},
42
42
  'Task Wait Time(us)': {'index': self.invalid_index, 'dtype': ('Task Wait Time', float)},
43
43
  'Input Shapes': {'index': self.invalid_index, 'dtype': ('Input Shapes', object)},
@@ -47,10 +47,15 @@ class AscendMsprofDataGenerator:
47
47
  'Output Data Types': {'index': self.invalid_index, 'dtype': ('Output Data Types', object)},
48
48
  'Output Formats': {'index': self.invalid_index, 'dtype': ('Output Formats', object)},
49
49
  }
50
- self.op_summary_extend_name = {
50
+ self.op_summaryA_extend_name = {
51
51
  'vector_fops': {'index': self.invalid_index, 'dtype': ('vector_fops', float)},
52
52
  'cube_fops': {'index': self.invalid_index, 'dtype': ('cube_fops', float)},
53
53
  }
54
+
55
+ self.op_summaryB_extend_name = {
56
+ 'aiv_vector_fops': {'index': self.invalid_index, 'dtype': ('vector_fops', float)},
57
+ 'aic_cube_fops': {'index': self.invalid_index, 'dtype': ('cube_fops', float)},
58
+ }
54
59
  self.op_summary_name = None
55
60
 
56
61
  self.op_statistic_name = {
@@ -61,9 +66,9 @@ class AscendMsprofDataGenerator:
61
66
 
62
67
  self.steptrace_name = {
63
68
  'Iteration ID': {'index': self.invalid_index, 'dtype': ('Iteration ID', int)},
64
- 'FP Start': {'index': self.invalid_index, 'dtype': ('FP Start', float)},
65
- 'BP End': {'index': self.invalid_index, 'dtype': ('BP End', float)},
66
- 'Iteration End': {'index': self.invalid_index, 'dtype': ('Iteration End', float)},
69
+ 'FP Start(us)': {'index': self.invalid_index, 'dtype': ('FP Start', float)},
70
+ 'BP End(us)': {'index': self.invalid_index, 'dtype': ('BP End', float)},
71
+ 'Iteration End(us)': {'index': self.invalid_index, 'dtype': ('Iteration End', float)},
67
72
  'Iteration Time(us)': {'index': self.invalid_index, 'dtype': ('Iteration Time', float)},
68
73
  'FP to BP Time(us)': {'index': self.invalid_index, 'dtype': ('FP to BP Time', float)},
69
74
  'Iteration Refresh(us)': {'index': self.invalid_index, 'dtype': ('Iteration Refresh', float)},
@@ -110,10 +115,15 @@ class AscendMsprofDataGenerator:
110
115
  iteration = int(file.split('_')[-1].split('.')[0])
111
116
  reader = csv.reader(csvfile, delimiter=',', quotechar='"')
112
117
  header = next(reader)
113
- self.link_index_with_name(header, self.op_summary_basis_name)
114
- extend_flag = self.link_index_with_name(header, self.op_summary_extend_name)
115
- if extend_flag:
116
- self.op_summary_name = {**self.op_summary_basis_name, **self.op_summary_extend_name}
118
+ flag = self.link_index_with_name(header, self.op_summary_basis_name)
119
+ if not flag:
120
+ raise RuntimeError("Read op summary failed. The file is missing basic fields.")
121
+ extend_flag_A = self.link_index_with_name(header, self.op_summaryA_extend_name)
122
+ extend_flag_B = self.link_index_with_name(header, self.op_summaryB_extend_name)
123
+ if extend_flag_A:
124
+ self.op_summary_name = {**self.op_summary_basis_name, **self.op_summaryA_extend_name}
125
+ elif extend_flag_B:
126
+ self.op_summary_name = {**self.op_summary_basis_name, **self.op_summaryB_extend_name}
117
127
  else:
118
128
  self.op_summary_name = self.op_summary_basis_name
119
129
  self.op_summary_name['Iteration ID'] = {'index': -1, 'dtype': ('Iteration ID', object)}
@@ -126,7 +136,7 @@ class AscendMsprofDataGenerator:
126
136
  op_summary_dt = np.dtype([value['dtype'] for value in self.op_summary_name.values()])
127
137
 
128
138
  self.op_summary = np.array(op_summary, dtype=op_summary_dt)
129
- self.op_summary['Task Start Time'] = self.op_summary['Task Start Time'] * 1e-6
139
+ self.op_summary['Task Start Time'] = self.op_summary['Task Start Time'] * 1e-3
130
140
  self.op_summary['Task Duration'] = self.op_summary['Task Duration'] * 1e-3
131
141
  self.op_summary['Task Wait Time'] = self.op_summary['Task Wait Time'] * 1e-3
132
142
 
@@ -137,7 +147,9 @@ class AscendMsprofDataGenerator:
137
147
  with open(file, newline='') as csvfile:
138
148
  reader = csv.reader(csvfile, delimiter=',', quotechar='"')
139
149
  header = next(reader)
140
- self.link_index_with_name(header, self.op_statistic_name)
150
+ flag = self.link_index_with_name(header, self.op_statistic_name)
151
+ if not flag:
152
+ raise RuntimeError("Read op summary failed. The file is missing basic fields.")
141
153
  for row in reader:
142
154
  row = [row[index.get('index')] for index in self.op_statistic_name.values()]
143
155
  row = ['0' if i == 'N/A' else i for i in row]
@@ -155,7 +167,9 @@ class AscendMsprofDataGenerator:
155
167
  with open(file, newline='') as csvfile:
156
168
  reader = csv.reader(csvfile, delimiter=',', quotechar='"')
157
169
  header = next(reader)
158
- self.link_index_with_name(header, self.steptrace_name)
170
+ flag = self.link_index_with_name(header, self.steptrace_name)
171
+ if not flag:
172
+ raise RuntimeError("Read op summary failed. The file is missing basic fields.")
159
173
  for row in reader:
160
174
  rows = [row[index.get('index')] for index in self.steptrace_name.values()]
161
175
  if row[9:]:
@@ -171,18 +185,18 @@ class AscendMsprofDataGenerator:
171
185
 
172
186
  index = len(self.steptrace_name)
173
187
  for name in hccl_data:
188
+ if index >= len(header):
189
+ break
174
190
  name = f"stream_{name['Stream ID']}_{name['Task ID']}_{name['Op Name']}"
175
191
  self.steptrace_name[name] = {'index': index, 'dtype': (name, float)}
176
192
  index += 1
177
193
  self.steptrace_name[f'{name} duration'] = {'index': index, 'dtype': (f'{name} duration', float)}
178
194
  index += 1
179
- if index >= len(header)-1:
180
- break
181
195
 
182
- for i in range(index, len(header), 2):
196
+ for i in range(len(self.steptrace_name), len(header), 2):
183
197
  name = f'hccl_{i}'
184
198
  self.steptrace_name[name] = {'index': i, 'dtype': (name, float)}
185
- self.steptrace_name[f'{name} duration'] = {'index': i+1, 'dtype': (f'{name} duration', float)}
199
+ self.steptrace_name[f'{name} duration'] = {'index': i + 1, 'dtype': (f'{name} duration', float)}
186
200
 
187
201
  steptrace_dt = np.dtype([value['dtype'] for value in self.steptrace_name.values()])
188
202
 
@@ -197,3 +211,176 @@ class AscendMsprofDataGenerator:
197
211
 
198
212
  for name in self.steptrace.dtype.names[9:]:
199
213
  self.steptrace[name] = self.steptrace[name] * 1e-3
214
+
215
+
216
+ class AscendMsprofDataGenerator:
217
+ """Generate ascend data from files."""
218
+
219
+ def __init__(self, source_path):
220
+ self.source_path = source_path
221
+ self.op_summary = None
222
+ self.op_statistic = None
223
+ self.steptrace = []
224
+
225
+ self.op_summary_type = [
226
+ ('Model ID', int),
227
+ ('Task ID', int),
228
+ ('Stream ID', int),
229
+ ('Op Name', object),
230
+ ('Op Type', object),
231
+ ('Task Type', object),
232
+ ('Task Start Time', float),
233
+ ('Task Duration', float),
234
+ ('Task Wait Time', float),
235
+ ('Input Shapes', object),
236
+ ('Input Data Types', object),
237
+ ('Input Formats', object),
238
+ ('Output Shapes', object),
239
+ ('Output Data Types', object),
240
+ ('Output Formats', object)
241
+ ]
242
+
243
+ self.op_statistic_type = [
244
+ ('Op Type', object),
245
+ ('Count', int),
246
+ ('Total Time', float),
247
+ ]
248
+
249
+ self.steptrace_type = [
250
+ ('Iteration ID', int),
251
+ ('FP Start', float),
252
+ ('BP End', float),
253
+ ('Iteration End', float),
254
+ ('Iteration Time', float),
255
+ ('FP to BP Time', float),
256
+ ('Iteration Refresh', float),
257
+ ('Data Aug Bound', float),
258
+ ('Model ID', int),
259
+ ]
260
+
261
+ @staticmethod
262
+ def find_files(directory, pattern):
263
+ """Find files with feature 'pattern' from the directory"""
264
+
265
+ for root, _, files in os.walk(directory):
266
+ files.sort(key=lambda x: os.path.getctime(os.path.join(directory, x)))
267
+ for basename in files:
268
+ if fnmatch.fnmatch(basename, pattern):
269
+ filename = os.path.join(root, basename)
270
+ yield filename
271
+
272
+ def parse(self):
273
+ """read msprof data generate DataFrame data"""
274
+ self._read_op_summary()
275
+
276
+ self._read_op_statistic()
277
+
278
+ self._read_steptrace()
279
+
280
+ return self.op_summary, self.op_statistic, self.steptrace
281
+
282
+ def _read_op_summary(self):
283
+ """read op summary to memory"""
284
+ op_summary = []
285
+ for file in self.find_files(self.source_path, "op_summary*.csv"):
286
+ with open(file, newline='') as csvfile:
287
+ reader = csv.DictReader(csvfile, delimiter=',', quotechar='"')
288
+ for row in reader:
289
+ vector_fops = row.get('vector_fops', None)
290
+ cube_fops = row.get('cube_fops', None)
291
+ aiv_vector_fops = row.get('aiv_vector_fops', None)
292
+ aic_cube_fops = row.get('aic_cube_fops', None)
293
+
294
+ new_row = [
295
+ row.get('Model ID'),
296
+ row.get('Task ID'),
297
+ row.get('Stream ID'),
298
+ row.get('Op Name'),
299
+ row.get('OP Type'),
300
+ row.get('Task Type'),
301
+ row.get('Task Start Time(us)'),
302
+ row.get('Task Duration(us)'),
303
+ row.get('Task Wait Time(us)'),
304
+ row.get('Input Shapes'),
305
+ row.get('Input Data Types'),
306
+ row.get('Input Formats'),
307
+ row.get('Output Shapes'),
308
+ row.get('Output Data Types'),
309
+ row.get('Output Formats')
310
+ ]
311
+
312
+ if vector_fops is not None and cube_fops is not None:
313
+ new_row.append(vector_fops)
314
+ new_row.append(cube_fops)
315
+
316
+ elif aic_cube_fops is not None and aiv_vector_fops is not None:
317
+ new_row.append(aiv_vector_fops)
318
+ new_row.append(aic_cube_fops)
319
+
320
+ new_row = tuple(['0' if d == 'N/A' else d for d in new_row])
321
+ op_summary.append(new_row)
322
+ break
323
+
324
+ if op_summary and len(op_summary[0]) > len(self.op_summary_type):
325
+ self.op_summary_type.extend([
326
+ ('vector_fops', float),
327
+ ('cube_fops', float)
328
+ ])
329
+ op_summary_dt = np.dtype(self.op_summary_type)
330
+
331
+ self.op_summary = np.array(op_summary, dtype=op_summary_dt)
332
+ self.op_summary['Task Start Time'] *= 1e-3
333
+ self.op_summary['Task Duration'] *= 1e-3
334
+ self.op_summary['Task Wait Time'] *= 1e-3
335
+
336
+ def _read_op_statistic(self):
337
+ """read op statistic to memory"""
338
+ op_statistic = []
339
+ for file in self.find_files(self.source_path, "op_statistic*.csv"):
340
+ with open(file, newline='') as csvfile:
341
+ reader = csv.DictReader(csvfile, delimiter=',', quotechar='"')
342
+ for row in reader:
343
+ new_row = (
344
+ row.get('OP Type'),
345
+ row.get('Count'),
346
+ row.get('Total Time(us)'),
347
+ )
348
+ new_row = tuple(['0' if d == 'N/A' else d for d in new_row])
349
+ op_statistic.append(new_row)
350
+ break
351
+
352
+ op_statistic_dt = np.dtype(self.op_statistic_type)
353
+ self.op_statistic = np.array(op_statistic, dtype=op_statistic_dt)
354
+ self.op_statistic['Total Time'] *= 1e-3
355
+
356
+ def _read_steptrace(self):
357
+ """read steptrace to memory"""
358
+ steptrace = []
359
+ for file in self.find_files(self.source_path, "step_trace*.csv"):
360
+ with open(file, newline='') as csvfile:
361
+ reader = csv.DictReader(csvfile, delimiter=',', quotechar='"')
362
+ for row in reader:
363
+ new_row = [
364
+ row.get('Iteration ID'),
365
+ row.get('FP Start(us)'),
366
+ row.get('BP End(us)'),
367
+ row.get('Iteration End(us)'),
368
+ row.get('Iteration Time(us)'),
369
+ row.get('FP to BP Time(us)'),
370
+ row.get('Iteration Refresh(us)'),
371
+ row.get('Data Aug Bound(us)'),
372
+ row.get('Model ID'),
373
+ ]
374
+ new_row = ['0' if i == 'N/A' else i for i in new_row]
375
+ steptrace.append(tuple(new_row))
376
+
377
+ steptrace_dt = np.dtype(self.steptrace_type)
378
+
379
+ self.steptrace = np.array(steptrace, dtype=steptrace_dt)
380
+ self.steptrace['FP Start'] = self.steptrace['FP Start'] * 1e-3
381
+ self.steptrace['BP End'] = self.steptrace['BP End'] * 1e-3
382
+ self.steptrace['Iteration End'] = self.steptrace['Iteration End'] * 1e-3
383
+ self.steptrace['Iteration Time'] = self.steptrace['Iteration Time'] * 1e-3
384
+ self.steptrace['FP to BP Time'] = self.steptrace['FP to BP Time'] * 1e-3
385
+ self.steptrace['Iteration Refresh'] = self.steptrace['Iteration Refresh'] * 1e-3
386
+ self.steptrace['Data Aug Bound'] = self.steptrace['Data Aug Bound'] * 1e-3
@@ -94,7 +94,7 @@ class AscendOPGenerator:
94
94
  writer.writerows(self.op_detail.tolist())
95
95
  except (IOError, OSError) as err:
96
96
  logging.critical('Errot occurred when write aicore detail file: %s', err)
97
- raise ProfilerIOException()
97
+ raise ProfilerIOException() from err
98
98
  if os.path.exists(aicore_intermediate_detail_path):
99
99
  os.chmod(aicore_intermediate_detail_path, stat.S_IREAD | stat.S_IWRITE)
100
100
 
@@ -109,7 +109,7 @@ class AscendOPGenerator:
109
109
  writer.writerows(self.op_type.tolist())
110
110
  except (IOError, OSError) as err:
111
111
  logging.critical('Errot occurred when write aicore type file: %s', err)
112
- raise ProfilerIOException()
112
+ raise ProfilerIOException() from err
113
113
  if os.path.exists(aicore_intermediate_type_path):
114
114
  os.chmod(aicore_intermediate_type_path, stat.S_IREAD | stat.S_IWRITE)
115
115
 
@@ -124,7 +124,7 @@ class AscendOPGenerator:
124
124
  writer.writerows(self.aicpu_detail.tolist())
125
125
  except (IOError, OSError) as err:
126
126
  logging.critical('Errot occurred when write aicpu detail file: %s', err)
127
- raise ProfilerIOException()
127
+ raise ProfilerIOException() from err
128
128
  if os.path.exists(aicpu_intermediate_detail_path):
129
129
  os.chmod(aicpu_intermediate_detail_path, stat.S_IREAD | stat.S_IWRITE)
130
130
 
@@ -139,12 +139,12 @@ class AscendOPGenerator:
139
139
  writer.writerows(self.framework_raw.tolist())
140
140
  except (IOError, OSError) as err:
141
141
  logging.critical('Errot occurred when write framework file: %s', err)
142
- raise ProfilerIOException()
142
+ raise ProfilerIOException() from err
143
143
  if os.path.exists(framework_raw_path):
144
144
  os.chmod(framework_raw_path, stat.S_IREAD | stat.S_IWRITE)
145
145
 
146
146
  # output_timeline_data
147
- if self.output_timeline_data.shape[0] != 0:
147
+ if self.output_timeline_data.shape[0] != 0 and output_timeline_data_path:
148
148
  try:
149
149
  with os.fdopen(os.open(output_timeline_data_path,
150
150
  os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR),
@@ -154,7 +154,7 @@ class AscendOPGenerator:
154
154
  writer.writerows(self.output_timeline_data.tolist())
155
155
  except (IOError, OSError) as err:
156
156
  logging.critical('Error occurred when write output timeline data file: %s', err)
157
- raise ProfilerIOException()
157
+ raise ProfilerIOException() from err
158
158
  if os.path.exists(aicpu_intermediate_detail_path):
159
159
  os.chmod(aicpu_intermediate_detail_path, stat.S_IREAD | stat.S_IWRITE)
160
160
 
@@ -29,9 +29,11 @@ class AscendStepTraceGenerator:
29
29
  self.steptrace = steptrace
30
30
  self.steptrace_detail = None
31
31
 
32
- self.steptrace_detail_dt = [('step_num', object), ('start_point', np.int64), ('end_point', np.int64),
33
- ('total', np.int64), ('fp_point', np.int64), ('bp_point', np.int64),
34
- ('iteration_interval', np.int64), ('fp_and_bp', np.int64), ('tail', np.int64)]
32
+ self.steptrace_detail_dt = [
33
+ ('step_num', object), ('start_point', np.int64), ('end_point', np.int64),
34
+ ('total', np.int64), ('fp_point', np.int64), ('bp_point', np.int64),
35
+ ('iteration_interval', np.int64), ('fp_and_bp', np.int64), ('tail', np.int64)
36
+ ]
35
37
 
36
38
  def parse(self):
37
39
  """Analyse the original steptrace data generate steptrace data."""
@@ -87,6 +89,6 @@ class AscendStepTraceGenerator:
87
89
  writer.writerows(self.steptrace_detail.tolist())
88
90
  except (IOError, OSError) as err:
89
91
  logging.critical('Errot occurred when write step trace file: %s', err)
90
- raise ProfilerIOException()
92
+ raise ProfilerIOException() from err
91
93
  if os.path.exists(step_trace_intermediate_file_path):
92
94
  os.chmod(step_trace_intermediate_file_path, stat.S_IREAD | stat.S_IWRITE)
@@ -13,7 +13,6 @@
13
13
  # limitations under the License.
14
14
  # ============================================================================
15
15
  """The integrator for integrating parsed profiling files."""
16
- import os
17
16
 
18
17
  import numpy as np
19
18
  from mindspore import log as logger
@@ -22,7 +21,6 @@ from mindspore.profiler.parser.base_timeline_generator import BaseTimelineGenera
22
21
  from mindspore.profiler.parser.container import TimelineContainer
23
22
  from mindspore.profiler.parser.cpu_gpu_timeline_generator import CpuTimelineGenerator
24
23
  from mindspore.profiler.parser.integrator import DeviceTarget
25
- from mindspore.profiler.parser.op_intermediate_parser import OPIntermediateParser
26
24
 
27
25
 
28
26
  class AscendTimelineGenerator(BaseTimelineGenerator):
@@ -51,16 +49,6 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
51
49
  [('Op Name', object), ('Stream ID', int), ('Task Start Time', float), ('Task Duration', float),
52
50
  ('pid', int)])
53
51
 
54
- @staticmethod
55
- def _get_all_reduce_names(communication_info):
56
- names = []
57
- for info in communication_info:
58
- # all_reduce_name format: stream_stream_id_stream_op_index_opname
59
- all_reduce_name = info[0][info[0].rindex('_') + 1:]
60
- if all_reduce_name not in names:
61
- names.append(all_reduce_name)
62
- return names
63
-
64
52
  def init_timeline(self, op_summary, steptrace):
65
53
  """
66
54
  Init timeline metadata, adding all collected info.
@@ -72,12 +60,12 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
72
60
 
73
61
  logger.info('Initiating timeline...')
74
62
 
75
- timeline_list = op_summary[op_summary['Task Type'] == 'AI_CORE'][
63
+ timeline_list = op_summary[~np.isin(op_summary['Task Type'], ['AI_CPU', 'HCCL'])][
76
64
  ['Op Name', 'Stream ID', 'Task Start Time', 'Task Duration']]
77
65
 
78
66
  timeline_list = timeline_list.tolist()
79
67
  cpu_timeline_generator = CpuTimelineGenerator(self._profiling_dir, self._rank_id, self._model)
80
- cpu_timeline_list = cpu_timeline_generator.load_cpu_op_data()
68
+ cpu_timeline_list = cpu_timeline_generator.get_timeline_data()
81
69
  if cpu_timeline_list:
82
70
  timeline_list.extend(cpu_timeline_list)
83
71
  timeline_list.sort(key=lambda x: float(x[self._start_time_idx]))
@@ -133,6 +121,7 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
133
121
  communication_info['Task Duration'] = hccl_op['Task Duration']
134
122
  communication_info['pid'] = 10000
135
123
  communication_info = communication_info.tolist()
124
+ communication_info.sort(key=lambda x: float(x[self._start_time_idx]))
136
125
  else:
137
126
  communication_info = []
138
127
  if communication_info:
@@ -159,49 +148,19 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
159
148
  self._timeline_meta = self._format_meta_data_list
160
149
 
161
150
  # Update timeline summary info
162
- timeline_summary = op_summary[np.isin(op_summary['Task Type'], ['AI_CORE', 'AI_CPU', 'HCCL'])][[
163
- 'Op Name', 'Stream ID', 'Task Duration']]
151
+ timeline_summary = op_summary[['Op Name', 'Stream ID', 'Task Duration']]
164
152
  self._timeline_summary['total_time'] = np.sum(timeline_summary['Task Duration'])
165
153
  self._timeline_summary['num_of_streams'] = int(
166
154
  len(np.unique(timeline_summary['Stream ID'], return_counts=True)[0]))
167
155
  self._timeline_summary['num_of_ops'] = int(len(np.unique(timeline_summary['Op Name'], return_counts=True)[0]))
168
156
  self._timeline_summary['op_exe_times'] = int(len(timeline_summary))
169
- self._timeline_summary['max_scope_name_num'] = int(np.max(
170
- [len(x) for x in np.char.split(timeline_summary['Op Name'].astype(str), sep='/')]))
157
+ if self._timeline_summary['op_exe_times'] != 0:
158
+ self._timeline_summary['max_scope_name_num'] = int(np.max(
159
+ [len(x) for x in np.char.split(timeline_summary['Op Name'].astype(str), sep='/')]))
160
+ else:
161
+ self._timeline_summary['max_scope_name_num'] = 0
171
162
  logger.info('Finished adding info into timeline...')
172
163
 
173
- def init_pynative_timeline(self):
174
- """Init timeline for pynative model."""
175
- timeline_list = OPIntermediateParser(self._profiling_dir, self._rank_id).get_timeline_data()
176
- cpu_timeline_generator = CpuTimelineGenerator(self._profiling_dir, self._rank_id, self._model)
177
- cpu_timeline_list = cpu_timeline_generator.load_cpu_op_data()
178
- if cpu_timeline_list:
179
- self._pynative_clock_synchronize(cpu_timeline_list)
180
- timeline_list.extend(cpu_timeline_list)
181
-
182
- self._register_op_name(timeline_list)
183
- self._timeline_summary['op_exe_times'] = len(timeline_list)
184
- self._max_scope_name_num = self._get_max_scope_name_num(timeline_list)
185
- self._timeline_summary['max_scope_name_num'] = self._max_scope_name_num
186
- self._timeline_summary['num_of_ops'] = len(self._op_name_list)
187
-
188
- timeline_list.sort(key=lambda x: float(x[self._start_time_idx]))
189
- min_cycle_counter = float(timeline_list[0][self._start_time_idx])
190
-
191
- step_timeline = self._pynative_get_step_timeline_list(timeline_list)
192
- timeline_list.extend(step_timeline)
193
-
194
- stream_count_dict = {}
195
- max_scope_name_num = 0
196
- for timeline in timeline_list:
197
- self._parse_timeline_data(timeline, min_cycle_counter)
198
- self._update_num_of_streams(timeline, stream_count_dict)
199
- cur_scope_name_num = len(timeline[self._op_name_idx].split('/')) - 1
200
- max_scope_name_num = max(cur_scope_name_num, max_scope_name_num)
201
-
202
- self._timeline_summary['max_scope_name_num'] = max_scope_name_num
203
- self._timeline_summary['num_of_streams'] = len(stream_count_dict)
204
-
205
164
  def _parse_timeline_data(self, timeline, min_cycle_counter):
206
165
  """Parse timeline data."""
207
166
  # factor to convert the time unit from 1ms to 1us for timeline display
@@ -232,94 +191,6 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
232
191
  self._update_format_meta_data(timeline_dict)
233
192
  self._timeline_meta.append(timeline_dict)
234
193
 
235
- def _get_op_timeline(self, communication_info, source_path):
236
- """get ai_core and cpu timeline."""
237
- all_reduce_names = AscendTimelineGenerator._get_all_reduce_names(communication_info)
238
- timeline_list = OPIntermediateParser(self._profiling_dir, self._rank_id).get_timeline_data(all_reduce_names)
239
- for timeline in timeline_list:
240
- timeline[self._tid_idx] = f"Stream #{timeline[self._tid_idx]}"
241
-
242
- cpu_timeline_generator = CpuTimelineGenerator(self._profiling_dir, self._rank_id, self._model)
243
- cpu_timeline_list = cpu_timeline_generator.get_timeline_data()
244
- if cpu_timeline_list:
245
- self._clock_synchronize_to_device(cpu_timeline_list, source_path)
246
- timeline_list.extend(cpu_timeline_list)
247
- timeline_list.sort(key=lambda x: float(x[self._start_time_idx]))
248
- self._max_scope_name_num = self._get_max_scope_name_num(timeline_list)
249
- self._timeline_summary['op_exe_times'] = len(timeline_list)
250
- self._timeline_summary['max_scope_name_num'] = self._max_scope_name_num
251
- return timeline_list
252
-
253
- def _clock_synchronize_to_device(self, timeline_list, source_path):
254
- """Synchronize the timestamp from host to device."""
255
- host_start_file_path = os.path.join(source_path, f"host_start.log.{self._device_id}")
256
- dev_start_file_path = os.path.join(source_path, f"dev_start.log.{self._device_id}")
257
- host_monotonic = 0
258
- dev_cntvct = 0
259
- try:
260
- with open(host_start_file_path) as f_obj:
261
- lines = f_obj.readlines()
262
- for line in lines:
263
- info = line.strip().split(':')
264
- if len(info) < 2 or info[0] != "clock_monotonic_raw":
265
- continue
266
- host_monotonic = int(info[1])
267
- break
268
-
269
- with open(dev_start_file_path) as f_obj:
270
- lines = f_obj.readlines()
271
- for line in lines:
272
- info = line.strip().split(':')
273
- if len(info) < 2 or info[0] != "cntvct":
274
- continue
275
- dev_cntvct = int(info[1])
276
- break
277
- except (IOError, OSError) as err:
278
- logger.critical('Error occurred when read dev_start.log: %s', err)
279
- raise ProfilerIOException()
280
- if host_monotonic == 0 or dev_cntvct == 0:
281
- logger.error('Error occurred when read host_monotonic or dev_cntvct time')
282
-
283
- factor = {"factor_ns_to_ms": 1e-6, "factor_ten_ns_to_ns": 10, "factor_ms_to_ns": 1e6}
284
- for idx, time_item in enumerate(timeline_list):
285
- host_time = int(float(time_item[self._start_time_idx]) * factor.get("factor_ms_to_ns"))
286
- device_time = dev_cntvct * factor.get("factor_ten_ns_to_ns") + (host_time - host_monotonic)
287
- timeline_list[idx][self._start_time_idx] = device_time * factor.get("factor_ns_to_ms")
288
-
289
- def _add_framework_info(self, framework_obj_list):
290
- """
291
- Add framework info into timeline metadata.
292
-
293
- Args:
294
- framework_obj_list (list): The framework metadata.
295
- """
296
- logger.debug('Start adding framework info into timeline...')
297
- # Get the framework info that will be written into timeline.
298
- framework_info_dict = {}
299
- for framework_obj in framework_obj_list:
300
- op_name = framework_obj[0]
301
- op_type = framework_obj[1]
302
- op_full_name = framework_obj[4]
303
- op_info = framework_obj[5]
304
- framework_info = {
305
- 'name': op_name,
306
- 'args': {
307
- 'type': op_type,
308
- 'fullname': op_full_name
309
- }
310
- }
311
- framework_info.get('args').update(op_info)
312
- framework_info_dict[op_full_name] = framework_info
313
-
314
- # Insert framework info into timeline.
315
- for timeline_item in self._timeline_meta:
316
- op_full_name = timeline_item.get('name')
317
- framework_item = framework_info_dict.get(op_full_name)
318
- if framework_item:
319
- timeline_item['name'] = framework_item.get('name')
320
- timeline_item['args'] = framework_item.get('args')
321
- logger.debug('Finished adding framework info into timeline...')
322
-
323
194
  def _produce_two_separated_timeline(self, timeline, op_name):
324
195
  """Produce two separated timeline based on op_name."""
325
196
  timeline_include_op_name = []
@@ -423,8 +294,10 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
423
294
  except IndexError as err:
424
295
  logger.error(err)
425
296
 
426
- metrices_per_step_list = [time_info.get("computation_time"), comm_alone_time, time_info.get("stage_time"),
427
- recieve_alone_time, collective_comm_alone_time]
297
+ metrices_per_step_list = [
298
+ time_info.get("computation_time"), comm_alone_time, time_info.get("stage_time"),
299
+ recieve_alone_time, collective_comm_alone_time
300
+ ]
428
301
  if step_num > 1:
429
302
  for metric in metrices_per_step_list:
430
303
  metric.append(sum(metric[1:]) / (step_num - 1))
@@ -432,7 +305,7 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
432
305
  self._write_cluster_metrices(metrices_per_step_list, is_pipeline_parallel, "Ascend", self._rank_id)
433
306
  except (IOError, OSError) as err:
434
307
  logger.warning(err)
435
- raise ProfilerIOException
308
+ raise ProfilerIOException from err
436
309
 
437
310
  def _compute_time_inside_step(self, metric_timeline, step_time_list):
438
311
  """Compute per step time of metric_timeline."""
@@ -487,52 +360,6 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
487
360
 
488
361
  return intersection_segment_display_list
489
362
 
490
- def _pynative_get_step_timeline_list(self, timeline_list):
491
- """Get step timeline list for pynative model."""
492
- step_list = []
493
- # The timeline starts with the GetNext op
494
- if len(timeline_list) < 2 or 'GetNext' not in timeline_list[0][self._op_name_idx] and \
495
- 'GetNext' not in timeline_list[1][self._op_name_idx]:
496
- return step_list
497
- step = [-1, -1]
498
- step_num = 0
499
- tid = "Steps"
500
- for timeline in timeline_list:
501
- if 'GetNext' not in timeline[self._op_name_idx]:
502
- continue
503
- start_time = float(timeline[self._start_time_idx])
504
- if step[0] == -1:
505
- step[0] = start_time
506
- else:
507
- step[1] = start_time - step[0]
508
- step_num = step_num + 1
509
- step_list.append([str(step_num), tid, float(step[0]), step[1]])
510
- step = [start_time, -1]
511
- if step[0] != -1 and step[1] == -1:
512
- step_num = step_num + 1
513
- step_list.append([str(step_num), tid, float(step[0]),
514
- float(timeline_list[-1][self._start_time_idx]) - step[0]])
515
- return step_list
516
-
517
- def _pynative_clock_synchronize(self, timeline_list):
518
- """Synchronize the timestamp from device to host."""
519
- start_time_file_path = os.path.join(self._profiling_dir, f"start_time_{self._rank_id}.txt")
520
- try:
521
- with open(start_time_file_path) as f_obj:
522
- lines = f_obj.readlines()
523
- # lines[0] stores the host monotonic time of start training.
524
- host_monotonic_start_time = int(lines[0].strip().split(':')[-1])
525
- # lines[1] stores the gpu time of start training.
526
- gpu_start_time = int(lines[1].strip().split(':')[-1])
527
- except (IOError, OSError) as err:
528
- logger.critical(f'Error occurred when read {start_time_file_path}: {err}')
529
- raise ProfilerIOException()
530
- time_diff = gpu_start_time * 1000 - host_monotonic_start_time
531
- for idx, time_item in enumerate(timeline_list):
532
- timeline_list[idx][self._start_time_idx] = int(time_item[self._start_time_idx]) + time_diff
533
- timeline_list[idx][self._start_time_idx] = timeline_list[idx][self._start_time_idx] / 1000000
534
- timeline_list[idx][self._duration_idx] = timeline_list[idx][self._duration_idx] / 1000
535
-
536
363
  def _set_step_start_and_end_op_name(self, timeline_list):
537
364
  """Set the start and end operator full name of each step."""
538
365
  if not timeline_list or len(timeline_list) < 2: