mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.11__cp38-cp38-manylinux1_x86_64.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 (589) 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 +139 -22
  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/cann_file_parser.py +76 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  25. mindspore/_akg/akg/utils/composite_op_helper.py +16 -12
  26. mindspore/_akg/akg/utils/dump_ascend_meta.py +22 -3
  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 +56 -1
  31. mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-38-x86_64-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 +13 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +67 -72
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +86 -106
  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-38-x86_64-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 +29 -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 +33 -7
  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 +8998 -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/gpu/libcuda_ops.so.10 +0 -0
  196. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  197. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  198. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  199. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  200. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  201. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  202. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  203. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  204. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  205. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  206. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  207. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  208. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  209. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  210. mindspore/nn/__init__.py +0 -2
  211. mindspore/nn/cell.py +313 -74
  212. mindspore/nn/dynamic_lr.py +21 -21
  213. mindspore/nn/layer/activation.py +22 -30
  214. mindspore/nn/layer/basic.py +15 -13
  215. mindspore/nn/layer/channel_shuffle.py +1 -1
  216. mindspore/nn/layer/container.py +271 -9
  217. mindspore/nn/layer/conv.py +323 -204
  218. mindspore/nn/layer/dense.py +8 -5
  219. mindspore/nn/layer/embedding.py +33 -27
  220. mindspore/nn/layer/flash_attention.py +61 -95
  221. mindspore/nn/layer/image.py +8 -6
  222. mindspore/nn/layer/math.py +16 -25
  223. mindspore/nn/layer/normalization.py +107 -66
  224. mindspore/nn/layer/padding.py +1 -1
  225. mindspore/nn/layer/pooling.py +131 -109
  226. mindspore/nn/layer/rnn_cells.py +27 -22
  227. mindspore/nn/layer/rnns.py +13 -16
  228. mindspore/nn/layer/thor_layer.py +1 -1
  229. mindspore/nn/layer/transformer.py +221 -154
  230. mindspore/nn/learning_rate_schedule.py +9 -1
  231. mindspore/nn/loss/loss.py +235 -174
  232. mindspore/nn/optim/ada_grad.py +2 -1
  233. mindspore/nn/optim/adadelta.py +1 -0
  234. mindspore/nn/optim/adafactor.py +2 -1
  235. mindspore/nn/optim/adam.py +7 -4
  236. mindspore/nn/optim/adamax.py +3 -2
  237. mindspore/nn/optim/adasum.py +2 -2
  238. mindspore/nn/optim/asgd.py +2 -3
  239. mindspore/nn/optim/ftrl.py +6 -5
  240. mindspore/nn/optim/lamb.py +7 -4
  241. mindspore/nn/optim/lars.py +1 -1
  242. mindspore/nn/optim/lazyadam.py +5 -3
  243. mindspore/nn/optim/momentum.py +2 -1
  244. mindspore/nn/optim/optimizer.py +53 -4
  245. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  246. mindspore/nn/optim/rmsprop.py +4 -3
  247. mindspore/nn/optim/rprop.py +23 -12
  248. mindspore/nn/optim/sgd.py +26 -11
  249. mindspore/nn/optim/thor.py +9 -7
  250. mindspore/nn/probability/bijector/bijector.py +5 -5
  251. mindspore/nn/probability/bijector/power_transform.py +27 -27
  252. mindspore/nn/probability/bijector/softplus.py +3 -3
  253. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  254. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  255. mindspore/nn/probability/distribution/beta.py +3 -3
  256. mindspore/nn/probability/distribution/categorical.py +7 -7
  257. mindspore/nn/probability/distribution/cauchy.py +0 -1
  258. mindspore/nn/probability/distribution/distribution.py +3 -3
  259. mindspore/nn/probability/distribution/gamma.py +3 -3
  260. mindspore/nn/probability/distribution/geometric.py +4 -4
  261. mindspore/nn/probability/distribution/gumbel.py +4 -4
  262. mindspore/nn/probability/distribution/log_normal.py +2 -2
  263. mindspore/nn/probability/distribution/logistic.py +2 -2
  264. mindspore/nn/probability/distribution/poisson.py +4 -4
  265. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  266. mindspore/nn/probability/distribution/uniform.py +6 -6
  267. mindspore/nn/wrap/__init__.py +4 -2
  268. mindspore/nn/wrap/cell_wrapper.py +87 -34
  269. mindspore/nn/wrap/grad_reducer.py +8 -5
  270. mindspore/nn/wrap/loss_scale.py +105 -42
  271. mindspore/numpy/array_creations.py +1 -2
  272. mindspore/numpy/array_ops.py +3 -2
  273. mindspore/numpy/utils_const.py +5 -5
  274. mindspore/offline_debug/convert_async.py +2 -2
  275. mindspore/ops/_grad_experimental/__init__.py +0 -5
  276. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  277. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  278. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  279. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  280. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  281. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  282. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  283. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  284. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  285. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  286. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  287. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  288. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  289. mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
  290. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  291. mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
  292. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  293. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  294. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  295. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  296. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  297. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  298. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  299. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  300. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  301. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  302. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  303. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  304. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  305. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  306. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  307. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  308. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  309. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  310. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  311. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  312. mindspore/ops/_primitive_cache.py +1 -1
  313. mindspore/ops/_tracefunc.py +45 -13
  314. mindspore/ops/_utils/utils.py +6 -1
  315. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  316. mindspore/ops/_vmap/vmap_base.py +3 -3
  317. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  318. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  319. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  320. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  321. mindspore/ops/arg_dtype_cast.py +54 -0
  322. mindspore/ops/composite/base.py +37 -10
  323. mindspore/ops/composite/math_ops.py +5 -4
  324. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  325. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  326. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  327. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  328. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  329. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  330. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  331. mindspore/ops/deprecated.py +304 -0
  332. mindspore/ops/function/__init__.py +4 -1
  333. mindspore/ops/function/array_func.py +174 -193
  334. mindspore/ops/function/clip_func.py +81 -13
  335. mindspore/ops/function/debug_func.py +1 -1
  336. mindspore/ops/function/grad/grad_func.py +18 -9
  337. mindspore/ops/function/image_func.py +10 -4
  338. mindspore/ops/function/linalg_func.py +5 -5
  339. mindspore/ops/function/math_func.py +575 -386
  340. mindspore/ops/function/nn_func.py +568 -260
  341. mindspore/ops/function/random_func.py +88 -57
  342. mindspore/ops/function/sparse_func.py +1 -1
  343. mindspore/ops/function/sparse_unary_func.py +14 -12
  344. mindspore/ops/function/vmap_func.py +6 -5
  345. mindspore/ops/functional.py +15 -10
  346. mindspore/ops/op_info_register.py +244 -25
  347. mindspore/ops/operations/__init__.py +31 -19
  348. mindspore/ops/operations/_grad_ops.py +71 -7
  349. mindspore/ops/operations/_inner_ops.py +350 -17
  350. mindspore/ops/operations/_quant_ops.py +4 -8
  351. mindspore/ops/operations/_sequence_ops.py +42 -0
  352. mindspore/ops/operations/array_ops.py +68 -282
  353. mindspore/ops/operations/comm_ops.py +107 -59
  354. mindspore/ops/operations/custom_ops.py +94 -70
  355. mindspore/ops/operations/debug_ops.py +8 -4
  356. mindspore/ops/operations/image_ops.py +18 -12
  357. mindspore/ops/operations/inner_ops.py +26 -3
  358. mindspore/ops/operations/math_ops.py +192 -144
  359. mindspore/ops/operations/nn_ops.py +857 -489
  360. mindspore/ops/operations/other_ops.py +0 -22
  361. mindspore/ops/operations/random_ops.py +53 -111
  362. mindspore/ops/operations/sparse_ops.py +3 -1
  363. mindspore/ops/primitive.py +24 -18
  364. mindspore/parallel/_auto_parallel_context.py +68 -8
  365. mindspore/parallel/_cost_model_context.py +2 -2
  366. mindspore/parallel/_offload_context.py +17 -3
  367. mindspore/parallel/_parallel_serialization.py +12 -5
  368. mindspore/parallel/_ps_context.py +12 -0
  369. mindspore/parallel/_tensor.py +18 -13
  370. mindspore/parallel/_transformer/layers.py +5 -3
  371. mindspore/parallel/_transformer/loss.py +1 -0
  372. mindspore/parallel/_transformer/moe.py +2 -2
  373. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  374. mindspore/parallel/_transformer/transformer.py +23 -3
  375. mindspore/parallel/_utils.py +11 -7
  376. mindspore/parallel/algo_parameter_config.py +85 -5
  377. mindspore/parallel/checkpoint_transform.py +19 -12
  378. mindspore/parallel/shard.py +21 -14
  379. mindspore/profiler/common/struct_type.py +3 -3
  380. mindspore/profiler/common/util.py +4 -2
  381. mindspore/profiler/envprofiling.py +1 -1
  382. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  383. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  384. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  385. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  386. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  387. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  388. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  389. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  390. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  391. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  392. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  393. mindspore/profiler/parser/flops_parser.py +15 -11
  394. mindspore/profiler/parser/framework_parser.py +38 -22
  395. mindspore/profiler/parser/hccl_parser.py +16 -12
  396. mindspore/profiler/parser/integrator.py +22 -11
  397. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  398. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  399. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  400. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  401. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  402. mindspore/profiler/parser/optime_parser.py +1 -1
  403. mindspore/profiler/parser/profiler_info.py +21 -2
  404. mindspore/profiler/parser/step_trace_parser.py +11 -14
  405. mindspore/profiler/profiling.py +179 -89
  406. mindspore/rewrite/api/node.py +102 -19
  407. mindspore/rewrite/api/node_type.py +5 -1
  408. mindspore/rewrite/api/pattern_engine.py +1 -1
  409. mindspore/rewrite/api/scoped_value.py +9 -17
  410. mindspore/rewrite/api/symbol_tree.py +131 -47
  411. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  412. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  413. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  414. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  415. mindspore/rewrite/common/rewrite_elog.py +5 -1
  416. mindspore/rewrite/namer.py +33 -24
  417. mindspore/rewrite/namespace.py +14 -5
  418. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  419. mindspore/rewrite/node/call_function.py +79 -0
  420. mindspore/rewrite/node/cell_container.py +135 -0
  421. mindspore/rewrite/node/control_flow.py +88 -0
  422. mindspore/rewrite/{node.py → node/node.py} +273 -234
  423. mindspore/rewrite/node/node_manager.py +254 -0
  424. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  425. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  426. mindspore/rewrite/parsers/assign_parser.py +216 -221
  427. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  428. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  429. mindspore/rewrite/parsers/constant_parser.py +9 -6
  430. mindspore/rewrite/parsers/container_parser.py +9 -7
  431. mindspore/rewrite/parsers/for_parser.py +42 -21
  432. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  433. mindspore/rewrite/parsers/if_parser.py +28 -24
  434. mindspore/rewrite/parsers/module_parser.py +196 -25
  435. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  436. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  437. mindspore/rewrite/parsers/return_parser.py +6 -6
  438. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  439. mindspore/rewrite/sparsify/utils.py +1 -1
  440. mindspore/rewrite/symbol_tree.py +523 -578
  441. mindspore/rewrite/symbol_tree_builder.py +9 -193
  442. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  443. mindspore/run_check/_check_version.py +6 -4
  444. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  445. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  446. mindspore/scipy/linalg.py +1 -1
  447. mindspore/scipy/ops.py +55 -5
  448. mindspore/scipy/optimize/__init__.py +3 -2
  449. mindspore/scipy/optimize/linear_sum_assignment.py +38 -33
  450. mindspore/scipy/optimize/minimize.py +7 -3
  451. mindspore/train/_utils.py +7 -3
  452. mindspore/train/amp.py +323 -123
  453. mindspore/train/anf_ir_pb2.py +14 -2
  454. mindspore/train/callback/_backup_and_restore.py +2 -12
  455. mindspore/train/callback/_callback.py +29 -4
  456. mindspore/train/callback/_checkpoint.py +23 -8
  457. mindspore/train/callback/_early_stop.py +2 -2
  458. mindspore/train/callback/_landscape.py +4 -4
  459. mindspore/train/callback/_loss_monitor.py +2 -2
  460. mindspore/train/callback/_on_request_exit.py +2 -2
  461. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  462. mindspore/train/callback/_summary_collector.py +15 -8
  463. mindspore/train/callback/_time_monitor.py +58 -5
  464. mindspore/train/data_sink.py +5 -11
  465. mindspore/train/dataset_helper.py +84 -57
  466. mindspore/train/loss_scale_manager.py +2 -2
  467. mindspore/train/metrics/__init__.py +3 -3
  468. mindspore/train/metrics/cosine_similarity.py +1 -1
  469. mindspore/train/metrics/hausdorff_distance.py +3 -2
  470. mindspore/train/metrics/mean_surface_distance.py +3 -2
  471. mindspore/train/metrics/metric.py +39 -19
  472. mindspore/train/metrics/roc.py +2 -2
  473. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  474. mindspore/train/mind_ir_pb2.py +85 -36
  475. mindspore/train/model.py +187 -47
  476. mindspore/train/serialization.py +487 -161
  477. mindspore/train/summary/_summary_adapter.py +1 -1
  478. mindspore/train/summary/_writer_pool.py +3 -2
  479. mindspore/train/summary/summary_record.py +37 -17
  480. mindspore/train/train_thor/convert_utils.py +3 -3
  481. mindspore/train/train_thor/dataset_helper.py +1 -1
  482. mindspore/version.py +1 -1
  483. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +8 -8
  484. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +488 -539
  485. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -1
  486. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  487. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  488. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  489. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  490. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  491. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  492. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  493. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  494. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  495. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  496. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  497. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  498. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  499. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  500. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  501. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  502. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  503. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  504. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  505. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  506. mindspore/_extends/graph_kernel/expander.py +0 -80
  507. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  508. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  509. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  510. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  511. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  512. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  513. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  514. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  516. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  517. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  518. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  519. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  520. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  521. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  522. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  523. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  524. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  525. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  526. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  527. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  528. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  529. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  530. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  531. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  532. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  533. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  534. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  535. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  536. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  537. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  538. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  539. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  540. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  541. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  542. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  543. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  544. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  545. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  546. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  547. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  548. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  549. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  550. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  551. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  552. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  553. mindspore/dataset/datapreprocess/__init__.py +0 -20
  554. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  555. mindspore/include/api/net.h +0 -142
  556. mindspore/nn/lr_scheduler.py +0 -262
  557. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  558. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  559. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  560. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  561. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  562. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
  563. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
  564. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
  565. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
  566. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
  567. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  568. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
  569. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
  570. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
  571. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  572. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  573. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  574. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  575. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  576. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  577. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  578. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  579. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  580. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  581. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  582. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  583. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  584. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  585. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  586. mindspore/rewrite/node_visitor.py +0 -44
  587. /mindspore/{ops/_op_impl/_custom_op/flash_attention → _akg/akg/utils/ascend_profilier}/__init__.py +0 -0
  588. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
  589. {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
@@ -48,12 +48,12 @@ from mindspore.profiler.parser.msadvisor_analyzer import Msadvisor
48
48
  from mindspore.profiler.parser.profiler_info import ProfilerInfo
49
49
  from mindspore.common.api import _pynative_executor
50
50
  from mindspore.profiler.parser.ascend_msprof_exporter import AscendMsprofExporter
51
- from mindspore.profiler.parser.ascend_msprof_generator import AscendMsprofDataGenerator
51
+ from mindspore.profiler.parser.ascend_msprof_generator import AscendMsprofDataGenerator, AscendMsprofDataGeneratorOld
52
52
  from mindspore.profiler.parser.ascend_fpbp_generator import AscendFPBPGenerator
53
53
  from mindspore.profiler.parser.ascend_op_generator import AscendOPGenerator
54
54
  from mindspore.profiler.parser.ascend_steptrace_generator import AscendStepTraceGenerator
55
55
  from mindspore.profiler.parser.ascend_flops_generator import AscendFlopsGenerator
56
- from mindspore.profiler.parser.ascend_hccl_generator import AscendHCCLGenerator
56
+ from mindspore.profiler.parser.ascend_hccl_generator import AscendHCCLGenerator, AscendHCCLGeneratorOld
57
57
 
58
58
  INIT_OP_NAME = 'Default/InitDataSetQueue'
59
59
 
@@ -71,15 +71,21 @@ AICORE_METRICS_DICT = {
71
71
  class DeviceSupportParam(Enum):
72
72
  """The device target enum."""
73
73
  CPU = ['start', 'start_profile', 'output_path', 'timeline_limit', 'profile_framework', 'op_time']
74
- GPU = ['start', 'start_profile', 'output_path', 'data_process', 'timeline_limit', 'sync_enable', 'op_time',
75
- 'profile_framework']
76
- ASCEND = ['start', 'start_profile', 'output_path', 'data_process', 'timeline_limit', 'profile_memory',
77
- 'parallel_strategy', 'profile_communication', 'aicore_metrics', 'l2_cache', 'op_time', 'ascend_job_id',
78
- 'profile_framework']
74
+ GPU = [
75
+ 'start', 'start_profile', 'output_path', 'data_process', 'timeline_limit', 'sync_enable', 'op_time',
76
+ 'profile_framework'
77
+ ]
78
+ ASCEND = [
79
+ 'start', 'start_profile', 'output_path', 'data_process', 'timeline_limit', 'profile_memory',
80
+ 'parallel_strategy', 'profile_communication', 'aicore_metrics', 'l2_cache', 'op_time', 'ascend_job_id',
81
+ 'profile_framework'
82
+ ]
79
83
 
80
84
 
81
- ALWAYS_VALID_PARAM = ['start', 'start_profile', 'output_path', 'data_process', 'parallel_strategy', 'l2_cache',
82
- 'ascend_job_id', 'op_time', 'profile_framework']
85
+ ALWAYS_VALID_PARAM = [
86
+ 'start', 'start_profile', 'output_path', 'data_process', 'parallel_strategy', 'l2_cache',
87
+ 'ascend_job_id', 'op_time', 'profile_framework'
88
+ ]
83
89
 
84
90
 
85
91
  def _environment_check():
@@ -161,6 +167,7 @@ def _calculate_dataset_execution_time(input_file, output_file):
161
167
  csv_writer.writerow(['Operation', 'Stage', 'Occurrences', 'Avg. time (us)', 'Custom Info'])
162
168
  for _, v in execution_time_map.items():
163
169
  csv_writer.writerow([v.event, v.stage, v.count, v.average_execution, v.custom_info])
170
+ os.chmod(output_file, modes)
164
171
  logger.info('Successfully calculate the execution time and write it to file: %s.', output_file)
165
172
 
166
173
 
@@ -188,8 +195,10 @@ def _extract_timeline_item(row, time_line, ts_map):
188
195
  # Put the instance event into timeline.
189
196
  elif start_end == '2':
190
197
  title = row['event'] + '::' + row['stage']
191
- event = {'name': title, 'cat': row['module_name'], 'ts': int(row['time_stamp(us)']), 'ph': 'i',
192
- 'pid': row['pid'], 'tid': row['tid'], 'args': {'parent_pid': row['parent_pid']}}
198
+ event = {
199
+ 'name': title, 'cat': row['module_name'], 'ts': int(row['time_stamp(us)']), 'ph': 'i',
200
+ 'pid': row['pid'], 'tid': row['tid'], 'args': {'parent_pid': row['parent_pid']}
201
+ }
193
202
  time_line.append(event)
194
203
  else:
195
204
  logger.warning("Can not map the start time for item: %s.", row)
@@ -209,8 +218,10 @@ def _parse_host_info(input_file, output_timeline_file, output_memory_file, is_de
209
218
  time_line = []
210
219
  # ts_map is used to store the start time of each event_stage_tid_pid
211
220
  ts_map = {}
212
- memory_header = ['tid', 'pid', 'parent_pid', 'module_name', 'event', 'stage', 'level', 'start_end', 'custom_info',
213
- 'memory_usage(kB)', 'time_stamp(us)']
221
+ memory_header = [
222
+ 'tid', 'pid', 'parent_pid', 'module_name', 'event', 'stage', 'level', 'start_end', 'custom_info',
223
+ 'memory_usage(kB)', 'time_stamp(us)'
224
+ ]
214
225
  memory_info = []
215
226
  with open(input_file, 'r') as f:
216
227
  for row in csv.DictReader(f):
@@ -226,12 +237,12 @@ def _parse_host_info(input_file, output_timeline_file, output_memory_file, is_de
226
237
  logger.error("Error occur when analyse line: %s, Details is: %s", row, e)
227
238
  continue
228
239
  if memory_info:
229
- with os.fdopen(os.open(output_memory_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR),
230
- 'w') as csv_file:
240
+ with os.fdopen(os.open(output_memory_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as csv_file:
231
241
  csv_writer = csv.DictWriter(csv_file, fieldnames=memory_header)
232
242
  csv_writer.writeheader()
233
243
  for item in memory_info:
234
244
  csv_writer.writerow(item)
245
+ os.chmod(output_memory_file, stat.S_IREAD | stat.S_IWRITE)
235
246
  else:
236
247
  logger.warning("No memory_usage is record in file: %s", input_file)
237
248
 
@@ -255,14 +266,28 @@ def _parse_host_info(input_file, output_timeline_file, output_memory_file, is_de
255
266
 
256
267
  if time_line:
257
268
  timeline_file = validate_and_normalize_path(output_timeline_file)
258
- with os.fdopen(os.open(timeline_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, stat.S_IWUSR | stat.S_IRUSR),
259
- 'w') as json_file:
269
+ with os.fdopen(os.open(timeline_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as json_file:
260
270
  json.dump(time_line, json_file)
271
+ os.chmod(timeline_file, stat.S_IREAD | stat.S_IWRITE)
261
272
  else:
262
273
  logger.warning("No valid time_stamp is record in file: %s", input_file)
263
274
 
264
275
 
265
- def _ascend_graph_msprof_analyse(source_path):
276
+ def _ascend_graph_msprof_generator(source_path, model_iteration_dict):
277
+ """Executing the msprof export mode."""
278
+ try:
279
+ ProfilerInfo.set_export_start_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
280
+ msprof_exporter = AscendMsprofExporter(source_path)
281
+ flag = msprof_exporter.export(model_iteration_dict)
282
+ ProfilerInfo.set_export_end_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
283
+ return flag
284
+
285
+ except ProfilerException as err:
286
+ logger.warning(err.message)
287
+ return False
288
+
289
+
290
+ def _ascend_graph_msprof_analyse(source_path, flag):
266
291
  """
267
292
  Ascend graph model msprof data analyse.
268
293
 
@@ -273,7 +298,10 @@ def _ascend_graph_msprof_analyse(source_path):
273
298
  df_op_statistic = []
274
299
  df_step_trace = []
275
300
  try:
276
- msprof_analyser = AscendMsprofDataGenerator(os.path.join(source_path, 'summary'))
301
+ if flag:
302
+ msprof_analyser = AscendMsprofDataGenerator(os.path.join(source_path, 'summary'))
303
+ else:
304
+ msprof_analyser = AscendMsprofDataGeneratorOld(os.path.join(source_path, 'summary'))
277
305
  df_op_summary, df_op_statistic, df_step_trace = msprof_analyser.parse()
278
306
  except ProfilerException as err:
279
307
  logger.warning(err.message)
@@ -287,7 +315,8 @@ class Profiler:
287
315
  This class to enable the profiling of MindSpore neural networks.
288
316
  MindSpore users can import the mindspore.Profiler, initialize the Profiler object to start profiling,
289
317
  and use Profiler.analyse() to stop profiling and analyse the results.
290
- Users can visualize the results using the MindInsight tool.
318
+ Users can visualize the results using the `MindSpore Insight
319
+ <https://www.mindspore.cn/mindinsight/docs/en/r2.2/index.html>`_ tool.
291
320
  Now, Profiler supports AICORE operator, AICPU operator, HostCPU operator, memory,
292
321
  correspondence, cluster, etc data analysis.
293
322
 
@@ -330,11 +359,16 @@ class Profiler:
330
359
  Default value: ``True`` .
331
360
  timeline_limit (int, optional): (Ascend/GPU) Set the maximum storage size of the timeline file (unit M).
332
361
  When using this parameter, `op_time` must be set to True. Default value: ``500`` .
333
- profile_framework (str, optional): (Ascend/GPU) Whether to collect host memory and time, it must be one of
334
- ["all", "time", "memory", None]. When is enabled, a subdirectory host_info will be generated in the
362
+ profile_framework (str, optional): (Ascend/GPU) The host information to collect, it must be one of
363
+ ["all", "time", "memory", None], When is not set to None, a subdirectory host_info will be generated in the
335
364
  specified profiler directory, which stores the collected memory and time files on the Host side.
336
365
  Default: "all".
337
366
 
367
+ - "all": Record both host timestamp and host memory usage.
368
+ - "time": Only record host timestamp.
369
+ - "memory": Only record host memory usage.
370
+ - None: Not record host information.
371
+
338
372
  Raises:
339
373
  RuntimeError: When the version of CANN does not match the version of MindSpore,
340
374
  MindSpore cannot parse the generated ascend_job_id directory structure.
@@ -407,9 +441,9 @@ class Profiler:
407
441
  self._rank_size = 1
408
442
  self._rank_id = 0
409
443
  self._ascend_profiler = None
410
- self._ascend_msprof_exporter = None
411
444
  self._timeline_size_limit_byte = 500 * 1024 * 1024 # 500MB
412
445
  self._parallel_strategy = True
446
+ self._model_iteration_dict = None
413
447
  _environment_check()
414
448
  # default aicore_metrics type is ArithmeticUtilization
415
449
  self._aicore_metrics_id = 0
@@ -476,6 +510,25 @@ class Profiler:
476
510
 
477
511
  return job_start_time
478
512
 
513
+ @staticmethod
514
+ def _parse_info_json(info_file):
515
+ """
516
+ Parse info log file, get the rank id and device id of the job.
517
+ Args:
518
+ input_file (str): The file path of the parse info log file.
519
+
520
+ Returns:
521
+ rank id, device id
522
+ """
523
+ with open(info_file, "r") as f:
524
+ info_dict = json.load(f)
525
+
526
+ rank_id = info_dict.get("rank_id", 0)
527
+ dev_info = info_dict.get("DeviceInfo", [])
528
+ dev_id = dev_info[0].get("id", -1)
529
+
530
+ return str(rank_id), str(dev_id)
531
+
479
532
  def op_analyse(self, op_name, device_id=None):
480
533
  """
481
534
  Profiler users can use this interface to obtain operator performance data.
@@ -487,8 +540,8 @@ class Profiler:
487
540
  parse. If this interface is used for offline data parsing, Default: ``0`` .
488
541
 
489
542
  Raises:
490
- TypeError: If the op_name parameter type is incorrect.
491
- TypeError: If the device_id parameter type is incorrect.
543
+ TypeError: If the `op_name` parameter type is incorrect.
544
+ TypeError: If the `device_id` parameter type is incorrect.
492
545
  RuntimeError: If MindSpore runs on Ascend, this interface cannot be used.
493
546
 
494
547
  Supported Platforms:
@@ -501,12 +554,12 @@ class Profiler:
501
554
  >>> # Profiler init.
502
555
  >>> profiler = Profiler()
503
556
  >>> # Train Model or eval Model, taking LeNet5 as an example.
504
- >>> # Refer to https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/lenet.py
557
+ >>> # Refer to https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/lenet.py
505
558
  >>> net = LeNet5()
506
559
  >>> optimizer = nn.Momentum(net.trainable_params(), learning_rate=0.1, momentum=0.9)
507
560
  >>> loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
508
561
  >>> # Create the dataset taking MNIST as an example.
509
- >>> # Refer to https://gitee.com/mindspore/docs/blob/r2.1/docs/mindspore/code/mnist.py
562
+ >>> # Refer to https://gitee.com/mindspore/docs/blob/r2.2/docs/mindspore/code/mnist.py
510
563
  >>> dataloader = create_dataset()
511
564
  >>> model = Model(net, loss, optimizer)
512
565
  >>> model.train(5, dataloader, dataset_sink_mode=False)
@@ -550,7 +603,34 @@ class Profiler:
550
603
  Offline mode isused in abnormal exit scenario. This parameter should be set to ``None``
551
604
  for online mode. Default: ``None``.
552
605
  """
606
+ self._analyse(offline_path=offline_path)
607
+
608
+ def _analyse(self, offline_path=None, model_iteration_dict=None):
609
+ """
610
+ Collect and analyze training performance data, support calls during and after training. The example shows above.
611
+
612
+ Args:
613
+ offline_path (Union[str, None], optional): The data path which need to be analysed with offline mode.
614
+ Offline mode isused in abnormal exit scenario. This parameter should be set to ``None``
615
+ for online mode. Default: ``None``.
616
+ model_iteration_dict: Dictionary with model id as the key and iteration id as the value, Default: ``None``.
617
+ """
618
+ self._model_iteration_dict = model_iteration_dict
619
+
620
+ self._init_profiler_info()
621
+ self._is_support_step_info_collect()
622
+ parallel_mode = get_auto_parallel_context("parallel_mode")
623
+ stage_num = get_auto_parallel_context("pipeline_stages")
624
+
625
+ ProfilerInfo.set_parallel_info(parallel_mode, stage_num)
626
+ ProfilerInfo.set_rank_size(self._rank_size)
627
+ ProfilerInfo.set_heterogeneous(self._is_heterogeneous)
553
628
  if offline_path:
629
+ if self._is_offline_parser():
630
+ ProfilerInfo.set_analyse_start_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
631
+ self._ascend_graph_analyse()
632
+ ProfilerInfo.set_analyse_end_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
633
+ ProfilerInfo.save(self._output_path)
554
634
  _offline_parse(offline_path)
555
635
  return
556
636
  if self._msprof_enable:
@@ -584,15 +664,7 @@ class Profiler:
584
664
  logger.warning("The parameter 'profile_framework' is not support for CPU, so there no host_info"
585
665
  " directory in the output path.")
586
666
  logger.info("Profiling: all the data have been analyzed.")
587
- self._init_profiler_info()
588
- self._is_support_step_info_collect()
589
- parallel_mode = get_auto_parallel_context("parallel_mode")
590
- stage_num = get_auto_parallel_context("pipeline_stages")
591
-
592
- ProfilerInfo.set_parallel_info(parallel_mode, stage_num)
593
667
  ProfilerInfo.set_analyse_end_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
594
- ProfilerInfo.set_rank_size(self._rank_size)
595
- ProfilerInfo.set_heterogeneous(self._is_heterogeneous)
596
668
  ProfilerInfo.save(self._output_path)
597
669
 
598
670
  def start(self):
@@ -602,7 +674,7 @@ class Profiler:
602
674
  Raises:
603
675
  RuntimeError: If the profiler has already started.
604
676
  RuntimeError: If MD profiling has stopped, repeated start action is not supported.
605
- RuntimeError: If the start_profile parameter is not set or is set to True.
677
+ RuntimeError: If the `start_profile` parameter is not set or is set to ``True``.
606
678
 
607
679
  Examples:
608
680
  >>> from mindspore.train import Callback
@@ -724,6 +796,8 @@ class Profiler:
724
796
 
725
797
  self._stop_time = int(time.time() * 10000000)
726
798
  ProfilerInfo.set_profiling_stop_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
799
+ self._init_profiler_info()
800
+ ProfilerInfo.save(self._output_path)
727
801
  logger.info("Profiling: stop time: %d", self._stop_time)
728
802
 
729
803
  def _profiler_init(self, kwargs):
@@ -749,7 +823,6 @@ class Profiler:
749
823
 
750
824
  if self._device_target == DeviceTarget.ASCEND.value:
751
825
  self._ascend_profiler = c_expression.Profiler.get_instance("Ascend")
752
- self._ascend_msprof_exporter = AscendMsprofExporter(self._output_path)
753
826
  self._get_devid_rankid_and_devtarget()
754
827
 
755
828
  def _init_profiler_info(self):
@@ -827,7 +900,6 @@ class Profiler:
827
900
  # use context interface to open profiling, for the new mindspore version(after 2020.5.21)
828
901
  self._ascend_profiler = c_expression.Profiler.get_instance("Ascend")
829
902
  self._ascend_profiler.init(self._output_path, int(self._dev_id), self._ascend_profiling_options)
830
- self._ascend_msprof_exporter = AscendMsprofExporter(self._output_path)
831
903
  base_profiling_container_path = os.path.join(self._output_path, "container")
832
904
  container_path = os.path.join(base_profiling_container_path, self._dev_id)
833
905
  data_path = os.path.join(container_path, "data")
@@ -965,8 +1037,6 @@ class Profiler:
965
1037
  else:
966
1038
  logger.info("No need to stop profiler because profiler has been stopped.")
967
1039
  # export op data before analyse
968
- if self._op_time:
969
- self._ascend_msprof_exporter.export(self._start_time, support_step_trace=False)
970
1040
  self._ascend_graph_analyse()
971
1041
 
972
1042
  def _minddata_analyse(self, source_path):
@@ -1040,8 +1110,11 @@ class Profiler:
1040
1110
  aicpu_intermediate_detail_path = validate_and_normalize_path(aicpu_intermediate_detail_path)
1041
1111
  framework_raw_path = validate_and_normalize_path(framework_raw_path)
1042
1112
 
1043
- output_timeline_data_path = os.path.join(self._output_path, f'output_timeline_data_{dev_id}.txt')
1044
- output_timeline_data_path = validate_and_normalize_path(output_timeline_data_path)
1113
+ if context.get_context("mode") == context.GRAPH_MODE:
1114
+ output_timeline_data_path = os.path.join(self._output_path, f'output_timeline_data_{dev_id}.txt')
1115
+ output_timeline_data_path = validate_and_normalize_path(output_timeline_data_path)
1116
+ else:
1117
+ output_timeline_data_path = None
1045
1118
 
1046
1119
  op_analyser = AscendOPGenerator(op_summary, op_statistic, dynamic_status)
1047
1120
  op_analyser.parse()
@@ -1070,7 +1143,7 @@ class Profiler:
1070
1143
  finally:
1071
1144
  pass
1072
1145
 
1073
- def _ascend_timeline_analyse(self, source_path, op_summary, steptrace):
1146
+ def _ascend_timeline_analyse(self, op_summary, steptrace):
1074
1147
  """Analyse timeline info."""
1075
1148
  try:
1076
1149
  logger.info("Profiling: analyzing the timeline data")
@@ -1098,7 +1171,7 @@ class Profiler:
1098
1171
 
1099
1172
  def _ascend_flops_analyse(self, op_summary):
1100
1173
  """Get op FLOPs from op_summary, write output_op_flops_x.csv."""
1101
- if len(op_summary.dtype) != 18:
1174
+ if 'vector_fops' not in op_summary.dtype.names and 'cube_fops' not in op_summary.dtype.names:
1102
1175
  logger.warning("[Profiler] Can not found cube fops and vector fops data in the op summary.")
1103
1176
  return
1104
1177
 
@@ -1135,21 +1208,24 @@ class Profiler:
1135
1208
  finally:
1136
1209
  pass
1137
1210
 
1138
- def _ascend_graph_hccl_analyse(self, source_path):
1211
+ def _ascend_graph_hccl_analyse(self, source_path, steptrace, flag):
1139
1212
  """Analyse hccl profiler info."""
1140
1213
  if not self._profile_communication:
1141
1214
  return
1142
1215
  if self._profile_communication and context.get_context("mode") == context.PYNATIVE_MODE:
1143
1216
  logger.warning("[Profiler]The parameter profile_communication is not supported on Ascend "
1144
1217
  "PyNative mode currently.")
1218
+ return
1145
1219
  try:
1146
1220
  logger.info("Profiling: analyzing the hccl profiler info.")
1147
1221
  dev_id = self._rank_id if self._device_target == DeviceTarget.ASCEND.value else self._dev_id
1148
1222
 
1149
1223
  hccl_raw_path = os.path.join(self._output_path, f'hccl_raw_{dev_id}.csv')
1150
1224
  hccl_raw_path = validate_and_normalize_path(hccl_raw_path)
1151
-
1152
- hccl_analyse = AscendHCCLGenerator(os.path.join(source_path, 'timeline'))
1225
+ if flag:
1226
+ hccl_analyse = AscendHCCLGenerator(os.path.join(source_path, 'timeline'), steptrace)
1227
+ else:
1228
+ hccl_analyse = AscendHCCLGeneratorOld(os.path.join(source_path, 'timeline'))
1153
1229
  hccl_analyse.parse()
1154
1230
  hccl_analyse.write(hccl_raw_path)
1155
1231
 
@@ -1191,9 +1267,14 @@ class Profiler:
1191
1267
  source_path = os.path.join(self._output_path, job_id)
1192
1268
  self._minddata_analyse(source_path)
1193
1269
  if self._op_time:
1194
- op_summary, op_statistic, steptrace = _ascend_graph_msprof_analyse(source_path)
1270
+ flag = _ascend_graph_msprof_generator(source_path, self._model_iteration_dict)
1271
+ if not flag:
1272
+ logger.warning('Current driver package not support all export mode, use single export mode, '
1273
+ 'this may lead to performance degradation. Suggest upgrading the driver package.')
1274
+ ProfilerInfo.set_export_flag(flag)
1275
+ op_summary, op_statistic, steptrace = _ascend_graph_msprof_analyse(source_path, flag)
1195
1276
  self._ascend_op_analyse(op_summary, op_statistic, self._dynamic_status)
1196
- self._ascend_timeline_analyse(source_path, op_summary, steptrace)
1277
+ self._ascend_timeline_analyse(op_summary, steptrace)
1197
1278
  graph_ids = np.unique(op_summary['Model ID']).tolist()
1198
1279
  points = self._ascend_fpbp_analyse(op_summary, steptrace)
1199
1280
  if len(graph_ids) == 1:
@@ -1202,7 +1283,7 @@ class Profiler:
1202
1283
  self._ascend_dynamic_net_analyse(op_summary)
1203
1284
  self._ascend_flops_analyse(op_summary)
1204
1285
  self._ascend_graph_memory_analyse(points)
1205
- self._ascend_graph_hccl_analyse(source_path)
1286
+ self._ascend_graph_hccl_analyse(source_path, steptrace, flag)
1206
1287
  self._ascend_graph_msadvisor_analyse(job_id)
1207
1288
  ProfilerInfo.set_graph_ids(graph_ids)
1208
1289
 
@@ -1326,29 +1407,37 @@ class Profiler:
1326
1407
  point_info_file_path = validate_and_normalize_path(point_info_file_path)
1327
1408
 
1328
1409
  if self._device_target and self._device_target == DeviceTarget.GPU.value:
1329
- input_file_path = os.path.join(self._output_path, f'step_trace_profiling_{self._dev_id}.txt')
1330
- input_file_path = validate_and_normalize_path(input_file_path)
1331
- parser = GpuStepTraceParser(input_dir=input_file_path,
1332
- output_file_path=step_trace_intermediate_file_path,
1333
- is_training_mode=is_training_mode_flag,
1334
- is_gpu_kernel_async_launch=is_gpu_kernel_async_launch_flag)
1335
- parser.parse_and_save()
1336
- point_info = parser.record_point_info(point_info_file_path)
1337
- else:
1338
- # whether keep the first step
1339
- skip_first_step_flag = framework_parser.check_op_name(INIT_OP_NAME)
1340
- point_info = framework_parser.point_info
1341
- # recognize inference or training mode
1342
- is_training_mode_flag = framework_parser.check_op_name("Gradients")
1343
- # parser the step trace files and save the result to disk
1344
- source_path = validate_and_normalize_path(source_path)
1345
- parser = AscendStepTraceParser(input_dir=source_path,
1346
- output_file_path=step_trace_intermediate_file_path,
1347
- skip_first_step=skip_first_step_flag,
1348
- is_training_mode=is_training_mode_flag)
1349
- parser.set_task_id_op_name_dict(framework_parser.to_task_id_full_op_name_dict())
1350
- parser.parse_and_save()
1351
- point_info = parser.record_point_info(point_info_file_path)
1410
+ if context.get_context("mode") != context.PYNATIVE_MODE:
1411
+ input_file_path = os.path.join(self._output_path, f'step_trace_profiling_{self._dev_id}.txt')
1412
+ input_file_path = validate_and_normalize_path(input_file_path)
1413
+ parser = GpuStepTraceParser(input_dir=input_file_path,
1414
+ output_file_path=step_trace_intermediate_file_path,
1415
+ is_training_mode=is_training_mode_flag,
1416
+ is_gpu_kernel_async_launch=is_gpu_kernel_async_launch_flag)
1417
+ parser.parse_and_save()
1418
+ point_info = parser.record_point_info(point_info_file_path)
1419
+ # print parser result
1420
+ parser.show()
1421
+ logger.info("Finish saving the intermediate result: %s", step_trace_intermediate_file_path)
1422
+ logger.info("The point info is: %s", point_info)
1423
+
1424
+ return point_info, is_training_mode_flag
1425
+ return {}, is_training_mode_flag
1426
+
1427
+ # whether keep the first step
1428
+ skip_first_step_flag = framework_parser.check_op_name(INIT_OP_NAME)
1429
+ # recognize inference or training mode
1430
+ is_training_mode_flag = framework_parser.check_op_name("Gradients")
1431
+ # parser the step trace files and save the result to disk
1432
+ source_path = validate_and_normalize_path(source_path)
1433
+ parser = AscendStepTraceParser(input_dir=source_path,
1434
+ output_file_path=step_trace_intermediate_file_path,
1435
+ skip_first_step=skip_first_step_flag,
1436
+ is_training_mode=is_training_mode_flag)
1437
+ parser.set_task_id_op_name_dict(framework_parser.to_task_id_full_op_name_dict())
1438
+ parser.parse_and_save()
1439
+ point_info = parser.record_point_info(point_info_file_path)
1440
+
1352
1441
  # print parser result
1353
1442
  parser.show()
1354
1443
  logger.info("Finish saving the intermediate result: %s", step_trace_intermediate_file_path)
@@ -1389,15 +1478,17 @@ class Profiler:
1389
1478
  job_id = self._ascend_job_id.rstrip('/').split('/')[-1]
1390
1479
  if job_id.startswith('PROF'):
1391
1480
  device_dir = [dir for dir in os.listdir(self._ascend_job_id) if dir.startswith('device')]
1481
+ info_file_path = get_file_path(os.path.join(self._ascend_job_id, device_dir[0]), "info.json")
1482
+ training_rank_id, _ = self._parse_info_json(info_file_path)
1483
+ self._rank_id = int(training_rank_id)
1392
1484
  return os.path.join(job_id, device_dir[0])
1393
1485
  return job_id
1394
1486
 
1395
1487
  job_id = ""
1396
- job_dirs = filter(lambda item: item.startswith('JOB') or item.startswith('PROF') and \
1397
- os.path.isdir(os.path.join(self._output_path, item)),
1398
- os.listdir(self._output_path))
1399
- sorted_job_dirs = sorted(job_dirs, key=lambda x: os.path.getmtime(os.path.join(self._output_path, x)),
1400
- reverse=True)
1488
+ job_dirs = filter(lambda item: item.startswith('JOB') or item.startswith('PROF') and os.path.isdir(
1489
+ os.path.join(self._output_path, item)), os.listdir(self._output_path))
1490
+ sorted_job_dirs = sorted(
1491
+ job_dirs, key=lambda x: os.path.getmtime(os.path.join(self._output_path, x)), reverse=True)
1401
1492
 
1402
1493
  for dir_name in sorted_job_dirs:
1403
1494
  if dir_name.startswith('PROF'):
@@ -1414,22 +1505,21 @@ class Profiler:
1414
1505
  "profiler will ignore this job dir.", job_dir)
1415
1506
  continue
1416
1507
 
1417
- training_device_id = start_file_path.split('.')[-1]
1508
+ info_file_path = get_file_path(job_dir, "info.json")
1509
+ if info_file_path is None:
1510
+ logger.warning("Find profiling job path %s, but info.json not exist, "
1511
+ "profiler will ignore this job dir.", job_dir)
1512
+ continue
1513
+
1514
+ job_start_time = self._parse_start_log(start_file_path)
1515
+ _, training_device_id = self._parse_info_json(info_file_path)
1516
+
1418
1517
  if self._dev_id != training_device_id:
1419
1518
  logger.debug("Find profiling find job path %s, but not current training device id. "
1420
1519
  "Current training device id %s, but job path device id: %s, "
1421
1520
  "profiler will ignore this job dir.", job_dir, self._dev_id, training_device_id)
1422
1521
  continue
1423
1522
 
1424
- if not os.listdir(os.path.join(job_dir, 'data')):
1425
- continue
1426
-
1427
- job_start_time = self._parse_start_log(start_file_path)
1428
- if not job_start_time:
1429
- logger.warning("Find profiling job path %s, but fail to get job start info, "
1430
- "profiler will ignore this job dir.", job_start_time)
1431
- continue
1432
-
1433
1523
  if int(job_start_time) < self._start_time:
1434
1524
  logger.warning("Find profiling job path %s, but start_time(%d) is earlier than this training "
1435
1525
  "start_time(%d), profiler will ignore this job dir.",
@@ -1586,7 +1676,7 @@ class Profiler:
1586
1676
  self._profile_framework = kwargs.pop("profile_framework", "all")
1587
1677
  if self._profile_framework not in ["memory", "time", "all", None]:
1588
1678
  logger.warning(f"For '{self.__class__.__name__}', the parameter profile_framework must be one of ['memory',"
1589
- f" 'time', 'all', None]but got {self._profile_framework}, it will be set to 'all'.")
1679
+ f" 'time', 'all', None], but got {self._profile_framework}, it will be set to 'all'.")
1590
1680
  self._profile_framework = "all"
1591
1681
 
1592
1682
  def _host_info_analyse(self):