mindspore 2.0.0rc1__cp38-none-any.whl → 2.2.0__cp38-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 (870) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Third_Party_Open_Source_Software_Notice +2 -2
  3. mindspore/__init__.py +5 -2
  4. mindspore/_akg/akg/build_module.py +5 -6
  5. mindspore/_akg/akg/composite/build_module.py +49 -16
  6. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  7. mindspore/_akg/akg/config/repository.json +195 -0
  8. mindspore/_akg/akg/global_configs.py +5 -1
  9. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  10. mindspore/_akg/akg/tvm/api.py +4 -3
  11. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  12. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  13. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  14. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  15. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  16. mindspore/_akg/akg/tvm/build_module.py +16 -1
  17. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  18. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  19. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  20. mindspore/_akg/akg/tvm/module.py +1 -2
  21. mindspore/_akg/akg/tvm/stmt.py +2 -2
  22. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  23. mindspore/_akg/akg/utils/kernel_exec.py +58 -260
  24. mindspore/_akg/akg/utils/op_dsl.py +17 -1
  25. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  26. mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
  27. mindspore/_c_dataengine.cpython-38-aarch64-linux-gnu.so +0 -0
  28. mindspore/_c_expression.cpython-38-aarch64-linux-gnu.so +0 -0
  29. mindspore/_c_mindrecord.cpython-38-aarch64-linux-gnu.so +0 -0
  30. mindspore/_check_jit_forbidden_api.py +5 -1
  31. mindspore/_checkparam.py +79 -62
  32. mindspore/_extends/graph_kernel/__init__.py +0 -1
  33. mindspore/_extends/graph_kernel/model/graph_split.py +2 -0
  34. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  35. mindspore/_extends/graph_kernel/splitter.py +1 -9
  36. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +128 -21
  37. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
  38. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  39. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +18 -13
  40. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +13 -9
  41. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  42. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  43. mindspore/_extends/parse/__init__.py +19 -17
  44. mindspore/_extends/parse/namespace.py +7 -36
  45. mindspore/_extends/parse/parser.py +375 -189
  46. mindspore/_extends/parse/resources.py +36 -41
  47. mindspore/_extends/parse/standard_method.py +350 -245
  48. mindspore/_extends/parse/trope.py +2 -12
  49. mindspore/_extends/remote/kernel_build_server.py +24 -7
  50. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  51. mindspore/_install_custom.py +43 -0
  52. mindspore/_mindspore_offline_debug.cpython-38-aarch64-linux-gnu.so +0 -0
  53. mindspore/amp.py +85 -19
  54. mindspore/bin/cache_admin +0 -0
  55. mindspore/bin/cache_server +0 -0
  56. mindspore/boost/base.py +2 -2
  57. mindspore/boost/boost.py +27 -32
  58. mindspore/boost/boost_cell_wrapper.py +37 -13
  59. mindspore/boost/grad_accumulation.py +1 -1
  60. mindspore/boost/grad_freeze.py +34 -6
  61. mindspore/boost/group_loss_scale_manager.py +15 -14
  62. mindspore/boost/less_batch_normalization.py +28 -3
  63. mindspore/common/__init__.py +15 -11
  64. mindspore/common/_auto_dynamic.py +68 -0
  65. mindspore/common/_jit_fallback_utils.py +111 -0
  66. mindspore/common/_register_for_adapter.py +17 -5
  67. mindspore/common/_register_for_tensor.py +2 -2
  68. mindspore/common/_stub_tensor.py +18 -15
  69. mindspore/common/_utils.py +31 -7
  70. mindspore/common/api.py +269 -101
  71. mindspore/common/auto_dynamic_shape.py +498 -0
  72. mindspore/common/dtype.py +61 -21
  73. mindspore/common/dump.py +9 -7
  74. mindspore/common/initializer.py +106 -76
  75. mindspore/common/jit_config.py +35 -14
  76. mindspore/common/lazy_inline.py +187 -0
  77. mindspore/common/mindir_util.py +101 -0
  78. mindspore/common/mutable.py +10 -13
  79. mindspore/common/parameter.py +246 -55
  80. mindspore/common/seed.py +13 -7
  81. mindspore/common/sparse_tensor.py +29 -33
  82. mindspore/common/tensor.py +907 -251
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +84 -4
  85. mindspore/communication/management.py +160 -88
  86. mindspore/config/op_info.config +99 -75
  87. mindspore/config/super_bar_config.json +36 -4
  88. mindspore/context.py +526 -219
  89. mindspore/dataset/__init__.py +9 -46
  90. mindspore/dataset/audio/__init__.py +4 -19
  91. mindspore/dataset/audio/transforms.py +545 -233
  92. mindspore/dataset/audio/utils.py +21 -18
  93. mindspore/dataset/callback/ds_callback.py +42 -13
  94. mindspore/dataset/core/config.py +158 -100
  95. mindspore/dataset/core/validator_helpers.py +1 -63
  96. mindspore/dataset/debug/debug_hook.py +45 -13
  97. mindspore/dataset/debug/pre_defined_hook.py +5 -5
  98. mindspore/dataset/engine/__init__.py +0 -5
  99. mindspore/dataset/engine/cache_client.py +38 -15
  100. mindspore/dataset/engine/datasets.py +615 -278
  101. mindspore/dataset/engine/datasets_audio.py +154 -283
  102. mindspore/dataset/engine/datasets_standard_format.py +104 -116
  103. mindspore/dataset/engine/datasets_text.py +443 -326
  104. mindspore/dataset/engine/datasets_user_defined.py +251 -164
  105. mindspore/dataset/engine/datasets_vision.py +839 -1443
  106. mindspore/dataset/engine/iterators.py +11 -4
  107. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +7 -3
  108. mindspore/dataset/engine/obs/util.py +3 -0
  109. mindspore/dataset/engine/offload.py +6 -6
  110. mindspore/dataset/engine/queue.py +15 -14
  111. mindspore/dataset/engine/samplers.py +39 -23
  112. mindspore/dataset/engine/serializer_deserializer.py +22 -6
  113. mindspore/dataset/engine/validators.py +21 -331
  114. mindspore/dataset/text/__init__.py +5 -33
  115. mindspore/dataset/text/transforms.py +334 -165
  116. mindspore/dataset/text/utils.py +215 -145
  117. mindspore/dataset/transforms/__init__.py +1 -1
  118. mindspore/dataset/transforms/c_transforms.py +3 -2
  119. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  120. mindspore/dataset/transforms/transforms.py +174 -71
  121. mindspore/dataset/utils/browse_dataset.py +25 -17
  122. mindspore/dataset/utils/line_reader.py +24 -21
  123. mindspore/dataset/vision/__init__.py +5 -26
  124. mindspore/dataset/vision/c_transforms.py +177 -165
  125. mindspore/dataset/vision/py_transforms.py +114 -119
  126. mindspore/dataset/vision/py_transforms_util.py +54 -51
  127. mindspore/dataset/vision/transforms.py +1127 -381
  128. mindspore/dataset/vision/utils.py +54 -38
  129. mindspore/dataset/vision/validators.py +12 -2
  130. mindspore/experimental/map_parameter.py +38 -4
  131. mindspore/{dataset/datapreprocess → experimental/optim}/__init__.py +14 -4
  132. mindspore/experimental/optim/adam.py +192 -0
  133. mindspore/experimental/optim/adamw.py +181 -0
  134. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  135. mindspore/experimental/optim/optimizer.py +252 -0
  136. mindspore/experimental/optim/sgd.py +147 -0
  137. mindspore/gen_ops.py +273 -0
  138. mindspore/include/OWNERS +1 -2
  139. mindspore/include/api/context.h +21 -1
  140. mindspore/include/api/data_type.h +2 -1
  141. mindspore/include/api/graph.h +0 -15
  142. mindspore/include/api/kernel.h +2 -0
  143. mindspore/include/api/kernel_api.h +37 -12
  144. mindspore/include/api/model.h +29 -42
  145. mindspore/include/api/model_group.h +14 -3
  146. mindspore/include/api/model_parallel_runner.h +18 -2
  147. mindspore/include/api/serialization.h +26 -0
  148. mindspore/include/api/status.h +1 -0
  149. mindspore/include/api/types.h +38 -4
  150. mindspore/include/c_api/ms/abstract.h +67 -0
  151. mindspore/include/c_api/ms/attribute.h +197 -0
  152. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  153. mindspore/include/c_api/ms/base/macros.h +32 -0
  154. mindspore/include/c_api/ms/base/status.h +33 -0
  155. mindspore/include/c_api/ms/base/types.h +282 -0
  156. mindspore/include/c_api/ms/context.h +102 -0
  157. mindspore/include/c_api/ms/graph.h +160 -0
  158. mindspore/include/c_api/ms/node.h +606 -0
  159. mindspore/include/c_api/ms/tensor.h +161 -0
  160. mindspore/include/c_api/ms/value.h +84 -0
  161. mindspore/include/c_api/status_c.h +3 -0
  162. mindspore/include/dataset/constants.h +6 -12
  163. mindspore/include/dataset/execute.h +23 -13
  164. mindspore/include/dataset/text.h +26 -26
  165. mindspore/include/dataset/transforms.h +25 -31
  166. mindspore/include/dataset/vision.h +60 -60
  167. mindspore/include/dataset/vision_ascend.h +5 -6
  168. mindspore/include/dataset/vision_lite.h +17 -17
  169. mindspore/include/mindapi/base/format.h +0 -1
  170. mindspore/include/mindapi/base/type_id.h +2 -1
  171. mindspore/include/mindapi/base/types.h +5 -1
  172. mindspore/lib/libdnnl.so.2 +0 -0
  173. mindspore/lib/libjemalloc.so.2 +0 -0
  174. mindspore/lib/libmindspore.so +0 -0
  175. mindspore/lib/libmindspore_backend.so +0 -0
  176. mindspore/lib/libmindspore_common.so +0 -0
  177. mindspore/lib/libmindspore_core.so +0 -0
  178. mindspore/lib/libmindspore_glog.so.0 +0 -0
  179. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  180. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  181. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  182. mindspore/lib/libmindspore_shared_lib.so +0 -0
  183. mindspore/lib/libmpi_adapter.so +0 -0
  184. mindspore/lib/libnnacl.so +0 -0
  185. mindspore/lib/libopencv_core.so.4.5 +0 -0
  186. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  187. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  188. mindspore/lib/libps_cache.so +0 -0
  189. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  190. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  191. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +9000 -0
  192. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  193. mindspore/lib/plugin/ascend/libakg.so +0 -0
  194. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  195. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  196. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  197. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  198. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  199. mindspore/lib/plugin/cpu/libakg.so +0 -0
  200. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  201. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  202. mindspore/log.py +9 -6
  203. mindspore/mindrecord/filereader.py +33 -4
  204. mindspore/mindrecord/filewriter.py +70 -35
  205. mindspore/mindrecord/mindpage.py +40 -34
  206. mindspore/mindrecord/shardreader.py +1 -1
  207. mindspore/mindrecord/shardsegment.py +1 -1
  208. mindspore/mindrecord/tools/cifar100_to_mr.py +25 -18
  209. mindspore/mindrecord/tools/cifar10_to_mr.py +25 -18
  210. mindspore/mindrecord/tools/csv_to_mr.py +29 -13
  211. mindspore/mindrecord/tools/imagenet_to_mr.py +24 -10
  212. mindspore/mindrecord/tools/mnist_to_mr.py +24 -11
  213. mindspore/mindrecord/tools/tfrecord_to_mr.py +31 -26
  214. mindspore/nn/cell.py +463 -169
  215. mindspore/nn/dynamic_lr.py +47 -43
  216. mindspore/nn/layer/activation.py +225 -82
  217. mindspore/nn/layer/basic.py +121 -79
  218. mindspore/nn/layer/channel_shuffle.py +21 -21
  219. mindspore/nn/layer/combined.py +33 -26
  220. mindspore/nn/layer/container.py +277 -22
  221. mindspore/nn/layer/conv.py +441 -304
  222. mindspore/nn/layer/dense.py +19 -13
  223. mindspore/nn/layer/embedding.py +62 -49
  224. mindspore/nn/layer/flash_attention.py +264 -0
  225. mindspore/nn/layer/image.py +50 -39
  226. mindspore/nn/layer/math.py +62 -51
  227. mindspore/nn/layer/normalization.py +219 -167
  228. mindspore/nn/layer/padding.py +58 -70
  229. mindspore/nn/layer/pooling.py +334 -287
  230. mindspore/nn/layer/rnn_cells.py +53 -38
  231. mindspore/nn/layer/rnns.py +59 -56
  232. mindspore/nn/layer/thor_layer.py +52 -44
  233. mindspore/nn/layer/timedistributed.py +6 -4
  234. mindspore/nn/layer/transformer.py +284 -164
  235. mindspore/nn/learning_rate_schedule.py +34 -25
  236. mindspore/nn/loss/__init__.py +3 -2
  237. mindspore/nn/loss/loss.py +554 -311
  238. mindspore/nn/optim/ada_grad.py +12 -9
  239. mindspore/nn/optim/adadelta.py +14 -11
  240. mindspore/nn/optim/adafactor.py +19 -16
  241. mindspore/nn/optim/adam.py +62 -47
  242. mindspore/nn/optim/adamax.py +13 -10
  243. mindspore/nn/optim/adasum.py +12 -8
  244. mindspore/nn/optim/asgd.py +10 -9
  245. mindspore/nn/optim/ftrl.py +20 -17
  246. mindspore/nn/optim/lamb.py +16 -12
  247. mindspore/nn/optim/lars.py +8 -6
  248. mindspore/nn/optim/lazyadam.py +25 -20
  249. mindspore/nn/optim/momentum.py +10 -7
  250. mindspore/nn/optim/optimizer.py +61 -9
  251. mindspore/nn/optim/proximal_ada_grad.py +14 -13
  252. mindspore/nn/optim/rmsprop.py +17 -13
  253. mindspore/nn/optim/rprop.py +30 -17
  254. mindspore/nn/optim/sgd.py +40 -23
  255. mindspore/nn/optim/thor.py +24 -26
  256. mindspore/nn/probability/bijector/bijector.py +11 -11
  257. mindspore/nn/probability/bijector/exp.py +1 -1
  258. mindspore/nn/probability/bijector/gumbel_cdf.py +3 -3
  259. mindspore/nn/probability/bijector/invert.py +1 -1
  260. mindspore/nn/probability/bijector/power_transform.py +29 -29
  261. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  262. mindspore/nn/probability/bijector/softplus.py +5 -5
  263. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +4 -2
  264. mindspore/nn/probability/bnn_layers/conv_variational.py +13 -13
  265. mindspore/nn/probability/bnn_layers/dense_variational.py +12 -12
  266. mindspore/nn/probability/bnn_layers/layer_distribution.py +9 -8
  267. mindspore/nn/probability/distribution/_utils/custom_ops.py +19 -3
  268. mindspore/nn/probability/distribution/_utils/utils.py +1 -1
  269. mindspore/nn/probability/distribution/bernoulli.py +9 -9
  270. mindspore/nn/probability/distribution/beta.py +8 -8
  271. mindspore/nn/probability/distribution/categorical.py +23 -15
  272. mindspore/nn/probability/distribution/cauchy.py +5 -6
  273. mindspore/nn/probability/distribution/distribution.py +3 -3
  274. mindspore/nn/probability/distribution/exponential.py +4 -4
  275. mindspore/nn/probability/distribution/gamma.py +10 -10
  276. mindspore/nn/probability/distribution/geometric.py +8 -8
  277. mindspore/nn/probability/distribution/gumbel.py +8 -9
  278. mindspore/nn/probability/distribution/half_normal.py +5 -5
  279. mindspore/nn/probability/distribution/laplace.py +5 -5
  280. mindspore/nn/probability/distribution/log_normal.py +12 -11
  281. mindspore/nn/probability/distribution/logistic.py +8 -8
  282. mindspore/nn/probability/distribution/normal.py +6 -5
  283. mindspore/nn/probability/distribution/poisson.py +10 -11
  284. mindspore/nn/probability/distribution/student_t.py +8 -9
  285. mindspore/nn/probability/distribution/transformed_distribution.py +5 -5
  286. mindspore/nn/probability/distribution/uniform.py +11 -11
  287. mindspore/nn/reinforcement/tensor_array.py +2 -2
  288. mindspore/nn/sparse/sparse.py +9 -9
  289. mindspore/nn/wrap/cell_wrapper.py +188 -63
  290. mindspore/nn/wrap/grad_reducer.py +21 -12
  291. mindspore/nn/wrap/loss_scale.py +136 -49
  292. mindspore/numpy/__init__.py +4 -4
  293. mindspore/numpy/array_creations.py +55 -56
  294. mindspore/numpy/array_ops.py +134 -35
  295. mindspore/numpy/logic_ops.py +66 -20
  296. mindspore/numpy/math_ops.py +142 -139
  297. mindspore/numpy/utils_const.py +2 -2
  298. mindspore/offline_debug/convert_async.py +2 -2
  299. mindspore/ops/_grad_experimental/__init__.py +7 -5
  300. mindspore/ops/_grad_experimental/grad_array_ops.py +231 -348
  301. mindspore/ops/{_grad → _grad_experimental}/grad_base.py +1 -33
  302. mindspore/ops/{_grad → _grad_experimental}/grad_comm_ops.py +25 -13
  303. mindspore/ops/{_grad/__init__.py → _grad_experimental/grad_debug_ops.py} +15 -7
  304. mindspore/ops/{_grad → _grad_experimental}/grad_implementations.py +17 -11
  305. mindspore/ops/_grad_experimental/grad_inner_ops.py +33 -52
  306. mindspore/ops/_grad_experimental/grad_math_ops.py +151 -1224
  307. mindspore/ops/_grad_experimental/grad_nn_ops.py +141 -414
  308. mindspore/ops/{_grad → _grad_experimental}/grad_quant_ops.py +10 -6
  309. mindspore/ops/_grad_experimental/grad_sparse.py +317 -2
  310. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -13
  311. mindspore/ops/{_grad → _grad_experimental}/taylor_rule.py +1 -1
  312. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  313. mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
  314. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +406 -0
  315. mindspore/{_extends/graph_kernel/expanders/complex/__init__.py → ops/_op_impl/_custom_op/flash_attention/constants.py} +27 -8
  316. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +467 -0
  317. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +563 -0
  318. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +193 -0
  319. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +435 -0
  320. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  321. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +45 -0
  322. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +67 -0
  323. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +62 -0
  324. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  325. mindspore/ops/_op_impl/aicpu/__init__.py +41 -1
  326. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  327. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  328. mindspore/ops/_op_impl/aicpu/cast.py +52 -0
  329. mindspore/ops/_op_impl/aicpu/coalesce.py +2 -0
  330. mindspore/ops/_op_impl/aicpu/col2im.py +3 -1
  331. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  332. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +6 -0
  333. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  334. mindspore/ops/_op_impl/aicpu/eye.py +4 -4
  335. mindspore/ops/_op_impl/aicpu/fft_with_size.py +6 -0
  336. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +5 -0
  337. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  338. mindspore/ops/_op_impl/aicpu/im2col.py +3 -5
  339. mindspore/ops/_op_impl/aicpu/lgamma.py +1 -0
  340. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  341. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  342. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  343. mindspore/ops/_op_impl/aicpu/masked_scatter.py +1 -0
  344. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +3 -0
  345. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  346. mindspore/ops/_op_impl/aicpu/matrix_power.py +6 -1
  347. mindspore/ops/_op_impl/aicpu/median.py +1 -0
  348. mindspore/ops/_op_impl/aicpu/multinomial.py +9 -9
  349. mindspore/ops/_op_impl/aicpu/not_equal.py +0 -5
  350. mindspore/ops/_op_impl/aicpu/pad_v3.py +3 -1
  351. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +2 -0
  352. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  353. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  354. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  355. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  356. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  357. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +0 -1
  358. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +0 -6
  359. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +0 -7
  360. mindspore/ops/_op_impl/aicpu/scatter_nd.py +2 -0
  361. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  362. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  363. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  364. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  365. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -4
  366. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -4
  367. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  368. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  369. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  370. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  371. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  372. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +14 -6
  373. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +22 -8
  374. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +11 -6
  375. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +21 -10
  376. mindspore/ops/_op_impl/tbe/__init__.py +6 -4
  377. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  378. mindspore/ops/_op_impl/tbe/avg_pool.py +2 -2
  379. mindspore/ops/_op_impl/tbe/avg_pool_3d.py +3 -3
  380. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +4 -4
  381. mindspore/ops/_op_impl/tbe/avg_pool_ds.py +2 -2
  382. mindspore/ops/_op_impl/tbe/avg_pool_grad.py +3 -3
  383. mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +3 -3
  384. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  385. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +2 -2
  386. mindspore/ops/_op_impl/tbe/bn_infer.py +2 -2
  387. mindspore/ops/_op_impl/tbe/bn_infer_ds.py +3 -2
  388. mindspore/ops/_op_impl/tbe/broadcast_to.py +1 -1
  389. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +3 -3
  390. mindspore/ops/_op_impl/tbe/expand_dims.py +1 -1
  391. mindspore/ops/_op_impl/tbe/gather_v2.py +56 -0
  392. mindspore/ops/_op_impl/tbe/im2col.py +4 -4
  393. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  394. mindspore/ops/_op_impl/tbe/mem_set.py +38 -0
  395. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +3 -0
  396. mindspore/ops/_op_impl/tbe/scatter_nd_d.py +1 -1
  397. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  398. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +2 -2
  399. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  400. mindspore/ops/_primitive_cache.py +1 -1
  401. mindspore/ops/_tracefunc.py +241 -0
  402. mindspore/ops/_utils/utils.py +10 -2
  403. mindspore/ops/_vmap/vmap_array_ops.py +5 -3
  404. mindspore/ops/_vmap/vmap_base.py +5 -4
  405. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  406. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  407. mindspore/ops/_vmap/vmap_grad_nn_ops.py +11 -6
  408. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  409. mindspore/ops/_vmap/vmap_nn_ops.py +135 -11
  410. mindspore/ops/arg_dtype_cast.py +54 -0
  411. mindspore/ops/composite/__init__.py +7 -5
  412. mindspore/ops/composite/base.py +78 -34
  413. mindspore/ops/composite/math_ops.py +5 -695
  414. mindspore/ops/composite/multitype_ops/_compile_utils.py +403 -97
  415. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +28 -22
  416. mindspore/ops/composite/multitype_ops/add_impl.py +69 -7
  417. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  418. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  419. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -0
  420. mindspore/ops/composite/multitype_ops/div_impl.py +1 -0
  421. mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -0
  422. mindspore/ops/composite/multitype_ops/getitem_impl.py +48 -10
  423. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +2 -0
  424. mindspore/ops/composite/multitype_ops/greater_impl.py +2 -0
  425. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -0
  426. mindspore/ops/composite/multitype_ops/less_equal_impl.py +2 -0
  427. mindspore/ops/composite/multitype_ops/less_impl.py +2 -0
  428. mindspore/ops/composite/multitype_ops/logic_not_impl.py +2 -2
  429. mindspore/ops/composite/multitype_ops/mod_impl.py +1 -0
  430. mindspore/ops/composite/multitype_ops/mul_impl.py +1 -0
  431. mindspore/ops/composite/multitype_ops/negative_impl.py +1 -0
  432. mindspore/ops/composite/multitype_ops/not_in_impl.py +1 -0
  433. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  434. mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
  435. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -0
  436. mindspore/ops/composite/multitype_ops/setitem_impl.py +10 -7
  437. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -0
  438. mindspore/ops/composite/multitype_ops/uadd_impl.py +2 -0
  439. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  440. mindspore/ops/deprecated.py +304 -0
  441. mindspore/ops/function/__init__.py +41 -4
  442. mindspore/ops/function/array_func.py +1108 -467
  443. mindspore/ops/function/clip_func.py +94 -27
  444. mindspore/ops/function/debug_func.py +3 -1
  445. mindspore/ops/function/grad/grad_func.py +82 -73
  446. mindspore/ops/function/image_func.py +28 -12
  447. mindspore/ops/function/linalg_func.py +135 -39
  448. mindspore/ops/function/math_func.py +3779 -894
  449. mindspore/ops/function/nn_func.py +1584 -657
  450. mindspore/ops/function/parameter_func.py +13 -3
  451. mindspore/ops/function/random_func.py +247 -153
  452. mindspore/ops/function/sparse_func.py +14 -11
  453. mindspore/ops/function/sparse_unary_func.py +173 -47
  454. mindspore/ops/function/spectral_func.py +8 -4
  455. mindspore/ops/function/vmap_func.py +8 -7
  456. mindspore/ops/functional.py +47 -16
  457. mindspore/ops/op_info_register.py +346 -86
  458. mindspore/ops/operations/__init__.py +38 -22
  459. mindspore/ops/operations/_grad_ops.py +145 -149
  460. mindspore/ops/operations/_inner_ops.py +298 -56
  461. mindspore/ops/operations/_ms_kernel.py +3 -3
  462. mindspore/ops/operations/_quant_ops.py +24 -28
  463. mindspore/ops/operations/_rl_inner_ops.py +9 -7
  464. mindspore/ops/operations/_scalar_ops.py +115 -0
  465. mindspore/ops/operations/_sequence_ops.py +148 -10
  466. mindspore/ops/operations/_tensor_array.py +1 -1
  467. mindspore/ops/operations/_thor_ops.py +2 -2
  468. mindspore/ops/operations/array_ops.py +1239 -561
  469. mindspore/ops/operations/comm_ops.py +166 -90
  470. mindspore/ops/operations/control_ops.py +3 -3
  471. mindspore/ops/operations/custom_ops.py +124 -102
  472. mindspore/ops/operations/debug_ops.py +24 -11
  473. mindspore/ops/operations/image_ops.py +86 -71
  474. mindspore/ops/operations/inner_ops.py +18 -13
  475. mindspore/ops/operations/linalg_ops.py +30 -11
  476. mindspore/ops/operations/math_ops.py +1730 -435
  477. mindspore/ops/operations/nn_ops.py +1953 -943
  478. mindspore/ops/operations/other_ops.py +65 -43
  479. mindspore/ops/operations/random_ops.py +258 -98
  480. mindspore/ops/operations/rl_ops.py +4 -36
  481. mindspore/ops/operations/sparse_ops.py +38 -33
  482. mindspore/ops/operations/spectral_ops.py +8 -4
  483. mindspore/ops/primitive.py +66 -44
  484. mindspore/ops/signature.py +5 -5
  485. mindspore/parallel/_auto_parallel_context.py +80 -19
  486. mindspore/parallel/_cost_model_context.py +42 -0
  487. mindspore/parallel/_offload_context.py +162 -72
  488. mindspore/parallel/_parallel_serialization.py +2 -2
  489. mindspore/parallel/_ps_context.py +16 -4
  490. mindspore/parallel/_recovery_context.py +2 -1
  491. mindspore/parallel/_tensor.py +15 -13
  492. mindspore/parallel/_transformer/layers.py +8 -6
  493. mindspore/parallel/_transformer/loss.py +1 -0
  494. mindspore/parallel/_transformer/moe.py +7 -7
  495. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  496. mindspore/parallel/_transformer/transformer.py +34 -14
  497. mindspore/parallel/_utils.py +36 -14
  498. mindspore/parallel/algo_parameter_config.py +114 -20
  499. mindspore/parallel/checkpoint_transform.py +16 -18
  500. mindspore/parallel/shard.py +16 -13
  501. mindspore/profiler/__init__.py +1 -1
  502. mindspore/profiler/common/struct_type.py +3 -3
  503. mindspore/profiler/common/util.py +3 -2
  504. mindspore/profiler/envprofiling.py +11 -4
  505. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  506. mindspore/profiler/parser/ascend_flops_generator.py +94 -0
  507. mindspore/profiler/parser/ascend_fpbp_generator.py +76 -0
  508. mindspore/profiler/parser/ascend_hccl_generator.py +288 -0
  509. mindspore/profiler/parser/ascend_msprof_exporter.py +213 -0
  510. mindspore/profiler/parser/ascend_msprof_generator.py +199 -0
  511. mindspore/profiler/parser/ascend_op_generator.py +276 -0
  512. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  513. mindspore/profiler/parser/ascend_timeline_generator.py +110 -54
  514. mindspore/profiler/parser/base_timeline_generator.py +11 -7
  515. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +45 -46
  516. mindspore/profiler/parser/flops_parser.py +15 -11
  517. mindspore/profiler/parser/framework_parser.py +92 -73
  518. mindspore/profiler/parser/hccl_parser.py +16 -12
  519. mindspore/profiler/parser/integrator.py +22 -11
  520. mindspore/profiler/parser/memory_usage_parser.py +36 -11
  521. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  522. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  523. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  524. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  525. mindspore/profiler/parser/optime_parser.py +1 -1
  526. mindspore/profiler/parser/profiler_info.py +4 -5
  527. mindspore/profiler/parser/step_trace_parser.py +11 -14
  528. mindspore/profiler/profiling.py +678 -377
  529. mindspore/rewrite/api/node.py +211 -54
  530. mindspore/rewrite/api/node_type.py +5 -0
  531. mindspore/rewrite/api/pattern_engine.py +22 -23
  532. mindspore/rewrite/api/scoped_value.py +20 -17
  533. mindspore/rewrite/api/symbol_tree.py +252 -106
  534. mindspore/rewrite/api/tree_node_helper.py +3 -0
  535. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  536. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  537. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  538. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +97 -46
  539. mindspore/rewrite/common/rewrite_elog.py +5 -1
  540. mindspore/rewrite/namer.py +51 -51
  541. mindspore/rewrite/namespace.py +14 -5
  542. mindspore/{ops/bprop_mindir → rewrite/node}/__init__.py +9 -4
  543. mindspore/rewrite/node/call_function.py +79 -0
  544. mindspore/rewrite/node/cell_container.py +135 -0
  545. mindspore/rewrite/node/control_flow.py +88 -0
  546. mindspore/rewrite/{node.py → node/node.py} +313 -247
  547. mindspore/rewrite/node/node_manager.py +254 -0
  548. mindspore/rewrite/node/node_topological_manager.py +243 -0
  549. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  550. mindspore/rewrite/parsers/assign_parser.py +225 -239
  551. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  552. mindspore/rewrite/parsers/class_def_parser.py +179 -218
  553. mindspore/rewrite/parsers/constant_parser.py +9 -6
  554. mindspore/rewrite/parsers/container_parser.py +9 -7
  555. mindspore/rewrite/parsers/for_parser.py +36 -15
  556. mindspore/rewrite/parsers/function_def_parser.py +23 -20
  557. mindspore/rewrite/parsers/if_parser.py +28 -24
  558. mindspore/rewrite/parsers/module_parser.py +202 -25
  559. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  560. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  561. mindspore/rewrite/parsers/return_parser.py +6 -6
  562. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  563. mindspore/rewrite/sparsify/sparsify.py +4 -1
  564. mindspore/rewrite/sparsify/utils.py +11 -5
  565. mindspore/rewrite/symbol_tree.py +577 -732
  566. mindspore/rewrite/symbol_tree_builder.py +9 -175
  567. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  568. mindspore/run_check/_check_version.py +46 -39
  569. mindspore/run_check/run_check.py +3 -2
  570. mindspore/{scipy/sparse → safeguard}/__init__.py +4 -5
  571. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  572. mindspore/scipy/__init__.py +1 -1
  573. mindspore/scipy/linalg.py +67 -61
  574. mindspore/scipy/ops.py +5 -41
  575. mindspore/scipy/ops_grad.py +3 -2
  576. mindspore/scipy/ops_wrapper.py +5 -5
  577. mindspore/scipy/optimize/line_search.py +8 -8
  578. mindspore/scipy/optimize/linear_sum_assignment.py +4 -4
  579. mindspore/scipy/optimize/minimize.py +16 -12
  580. mindspore/scipy/utils.py +1 -52
  581. mindspore/scipy/utils_const.py +4 -4
  582. mindspore/train/__init__.py +4 -4
  583. mindspore/train/_utils.py +13 -5
  584. mindspore/train/amp.py +410 -148
  585. mindspore/train/anf_ir_pb2.py +16 -4
  586. mindspore/train/callback/_backup_and_restore.py +8 -11
  587. mindspore/train/callback/_callback.py +80 -3
  588. mindspore/train/callback/_checkpoint.py +82 -51
  589. mindspore/train/callback/_early_stop.py +12 -15
  590. mindspore/train/callback/_history.py +1 -1
  591. mindspore/train/callback/_lambda_callback.py +13 -13
  592. mindspore/train/callback/_landscape.py +21 -17
  593. mindspore/train/callback/_loss_monitor.py +9 -10
  594. mindspore/train/callback/_on_request_exit.py +16 -33
  595. mindspore/train/callback/_reduce_lr_on_plateau.py +21 -24
  596. mindspore/train/callback/_summary_collector.py +44 -30
  597. mindspore/train/callback/_time_monitor.py +62 -12
  598. mindspore/train/data_sink.py +10 -16
  599. mindspore/train/dataset_helper.py +154 -86
  600. mindspore/train/loss_scale_manager.py +14 -9
  601. mindspore/train/metrics/__init__.py +10 -2
  602. mindspore/train/metrics/accuracy.py +1 -1
  603. mindspore/train/metrics/auc.py +1 -1
  604. mindspore/train/metrics/bleu_score.py +2 -2
  605. mindspore/train/metrics/confusion_matrix.py +14 -14
  606. mindspore/train/metrics/cosine_similarity.py +3 -3
  607. mindspore/train/metrics/dice.py +1 -1
  608. mindspore/train/metrics/fbeta.py +1 -1
  609. mindspore/train/metrics/hausdorff_distance.py +8 -6
  610. mindspore/train/metrics/mean_surface_distance.py +5 -4
  611. mindspore/train/metrics/metric.py +49 -17
  612. mindspore/train/metrics/occlusion_sensitivity.py +4 -4
  613. mindspore/train/metrics/perplexity.py +1 -1
  614. mindspore/train/metrics/precision.py +2 -2
  615. mindspore/train/metrics/recall.py +2 -3
  616. mindspore/train/metrics/roc.py +7 -7
  617. mindspore/train/metrics/root_mean_square_surface_distance.py +5 -4
  618. mindspore/train/metrics/topk.py +7 -4
  619. mindspore/train/mind_ir_pb2.py +193 -48
  620. mindspore/train/model.py +377 -133
  621. mindspore/train/serialization.py +697 -245
  622. mindspore/train/summary/_summary_adapter.py +5 -2
  623. mindspore/train/summary/_writer_pool.py +4 -3
  624. mindspore/train/summary/summary_record.py +25 -23
  625. mindspore/train/train_thor/convert_utils.py +39 -23
  626. mindspore/train/train_thor/dataset_helper.py +4 -3
  627. mindspore/train/train_thor/model_thor.py +8 -8
  628. mindspore/version.py +1 -1
  629. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/METADATA +7 -8
  630. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/RECORD +633 -804
  631. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  632. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  633. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  634. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  635. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  636. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  637. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  638. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  639. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  640. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  641. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  642. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  643. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  644. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  645. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  646. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  647. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  648. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  649. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  650. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  651. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  652. mindspore/_extends/graph_kernel/expander.py +0 -80
  653. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -57
  654. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  655. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  656. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  657. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  658. mindspore/_extends/graph_kernel/expanders/bias_add_grad.py +0 -49
  659. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  660. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  661. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  662. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  663. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  664. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  665. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  666. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  667. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  668. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  669. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  670. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  671. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  672. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  673. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  674. mindspore/_extends/graph_kernel/expanders/gather.py +0 -43
  675. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  676. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  677. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  678. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  679. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  680. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  681. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  682. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  683. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  684. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  685. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  686. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  687. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  688. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  689. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  690. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  691. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  692. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  693. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  694. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  695. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  696. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  697. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  698. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  699. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  700. mindspore/_extends/graph_kernel/expanders/tile.py +0 -54
  701. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  702. mindspore/_extends/parse/jit_fallback_modules.py +0 -51
  703. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  704. mindspore/dataset/engine/graphdata.py +0 -1586
  705. mindspore/include/api/net.h +0 -142
  706. mindspore/ops/_grad/grad_array_ops.py +0 -1347
  707. mindspore/ops/_grad/grad_clip_ops.py +0 -84
  708. mindspore/ops/_grad/grad_debug_ops.py +0 -68
  709. mindspore/ops/_grad/grad_inner_ops.py +0 -235
  710. mindspore/ops/_grad/grad_math_ops.py +0 -1684
  711. mindspore/ops/_grad/grad_nn_ops.py +0 -1529
  712. mindspore/ops/_grad/grad_other_ops.py +0 -89
  713. mindspore/ops/_grad/grad_sequence_ops.py +0 -296
  714. mindspore/ops/_grad/grad_sparse.py +0 -323
  715. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -249
  716. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -195
  717. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  718. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  719. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  720. mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +0 -19
  721. mindspore/ops/bprop_mindir/Argmax_bprop.mindir +0 -15
  722. mindspore/ops/bprop_mindir/Argmin_bprop.mindir +0 -15
  723. mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +0 -19
  724. mindspore/ops/bprop_mindir/Assign_bprop.mindir +0 -17
  725. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +0 -150
  726. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +0 -66
  727. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  728. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -15
  729. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  730. mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +0 -28
  731. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  732. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +0 -33
  733. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +0 -306
  734. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -13
  735. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  736. mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
  737. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +0 -240
  738. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +0 -247
  739. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +0 -247
  740. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +0 -315
  741. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +0 -278
  742. mindspore/ops/bprop_mindir/DType_bprop.mindir +0 -14
  743. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +0 -58
  744. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -13
  745. mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +0 -23
  746. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  747. mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +0 -15
  748. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  749. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  750. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +0 -25
  751. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +0 -18
  752. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +0 -27
  753. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  754. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  755. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  756. mindspore/ops/bprop_mindir/DynamicShape_bprop.mindir +0 -14
  757. mindspore/ops/bprop_mindir/Elu_bprop.mindir +0 -16
  758. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  759. mindspore/ops/bprop_mindir/Equal_bprop.mindir +0 -19
  760. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +0 -58
  761. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +0 -16
  762. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +0 -54
  763. mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +0 -19
  764. mindspore/ops/bprop_mindir/GatherD_bprop.mindir +0 -26
  765. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +0 -57
  766. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  767. mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +0 -19
  768. mindspore/ops/bprop_mindir/Greater_bprop.mindir +0 -19
  769. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +0 -16
  770. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +0 -16
  771. mindspore/ops/bprop_mindir/IOU_bprop.mindir +0 -19
  772. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  773. mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +0 -15
  774. mindspore/ops/bprop_mindir/IsInf_bprop.mindir +0 -15
  775. mindspore/ops/bprop_mindir/IsNan_bprop.mindir +0 -15
  776. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +0 -126
  777. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +0 -15
  778. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +0 -30
  779. mindspore/ops/bprop_mindir/LRN_bprop.mindir +0 -43
  780. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  781. mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +0 -19
  782. mindspore/ops/bprop_mindir/Less_bprop.mindir +0 -19
  783. mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +0 -23
  784. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -13
  785. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +0 -23
  786. mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +0 -19
  787. mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +0 -15
  788. mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +0 -21
  789. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +0 -74
  790. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +0 -74
  791. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +0 -75
  792. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +0 -65
  793. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  794. mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
  795. mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
  796. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +0 -27
  797. mindspore/ops/bprop_mindir/Mish_bprop.mindir +0 -35
  798. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  799. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  800. mindspore/ops/bprop_mindir/NonZero_bprop.mindir +0 -14
  801. mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +0 -19
  802. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +0 -26
  803. mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +0 -14
  804. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  805. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  806. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  807. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +0 -29
  808. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +0 -82
  809. mindspore/ops/bprop_mindir/Range_bprop.mindir +0 -22
  810. mindspore/ops/bprop_mindir/Rank_bprop.mindir +0 -14
  811. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +0 -16
  812. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  813. mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +0 -19
  814. mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +0 -19
  815. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +0 -20
  816. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +0 -60
  817. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +0 -29
  818. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +0 -89
  819. mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +0 -52
  820. mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +0 -22
  821. mindspore/ops/bprop_mindir/Round_bprop.mindir +0 -15
  822. mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
  823. mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
  824. mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +0 -22
  825. mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +0 -24
  826. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -22
  827. mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
  828. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +0 -21
  829. mindspore/ops/bprop_mindir/Select_bprop.mindir +0 -31
  830. mindspore/ops/bprop_mindir/Shape_bprop.mindir +0 -14
  831. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +0 -21
  832. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  833. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +0 -16
  834. mindspore/ops/bprop_mindir/Sign_bprop.mindir +0 -15
  835. mindspore/ops/bprop_mindir/Slice_bprop.mindir +0 -26
  836. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +0 -36
  837. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  838. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +0 -16
  839. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +0 -33
  840. mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
  841. mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +0 -28
  842. mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +0 -23
  843. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  844. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  845. mindspore/ops/bprop_mindir/Split_bprop.mindir +0 -22
  846. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +0 -54
  847. mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +0 -95
  848. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +0 -98
  849. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -29
  850. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  851. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +0 -66
  852. mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +0 -22
  853. mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +0 -29
  854. mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +0 -14
  855. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  856. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  857. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -23
  858. mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +0 -19
  859. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -20
  860. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -16
  861. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -22
  862. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +0 -32
  863. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +0 -38
  864. mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +0 -15
  865. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  866. mindspore/rewrite/node_visitor.py +0 -44
  867. mindspore/rewrite/topological_manager.py +0 -203
  868. mindspore/scipy/sparse/linalg.py +0 -192
  869. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  870. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
@@ -14,27 +14,28 @@
14
14
  # ============================================================================
15
15
  """The parser for parsing framework files."""
16
16
  import csv
17
+ import glob
18
+ import json
17
19
  import os
20
+ import stat
18
21
  import re
19
22
  import struct
20
- import json
21
- from pathlib import Path
22
- from typing import List
23
23
  from collections import defaultdict
24
24
  from collections import namedtuple
25
- import glob
26
- import numpy as np
25
+ from pathlib import Path
26
+ from typing import List
27
27
 
28
+ import numpy as np
28
29
  from mindspore import log as logger
29
- from mindspore.profiler.parser.framework_struct import TASK_DESC_STRUCT, TENSOR_DATA_STRUCT, STEP_INFO_STRUCT
30
- from mindspore.profiler.parser.framework_enum import VmDataType, VmFormat, FileDataType, MSPROF_DIFFERENCE
31
- from mindspore.profiler.parser.framework_enum import MSPROF_MIX_DATA_STRING
32
- from mindspore.profiler.common.struct_type import StructType
33
- from mindspore.profiler.common.util import combine_stream_task_id
34
30
  from mindspore.profiler.common.exceptions.exceptions import ProfilerDirNotFoundException
35
31
  from mindspore.profiler.common.exceptions.exceptions import ProfilerFileNotFoundException
36
32
  from mindspore.profiler.common.exceptions.exceptions import ProfilerParamValueErrorException
33
+ from mindspore.profiler.common.struct_type import StructType
34
+ from mindspore.profiler.common.util import combine_stream_task_id
37
35
  from mindspore.profiler.common.validator.validate_path import validate_and_normalize_path
36
+ from mindspore.profiler.parser.framework_enum import MSPROF_MIX_DATA_STRING
37
+ from mindspore.profiler.parser.framework_enum import VmDataType, VmFormat, FileDataType, MSPROF_DIFFERENCE
38
+ from mindspore.profiler.parser.framework_struct import TASK_DESC_STRUCT, TENSOR_DATA_STRUCT, STEP_INFO_STRUCT
38
39
  from mindspore.profiler.parser.profiler_info import ProfilerInfo
39
40
 
40
41
  FILE_DATA_STRUCT_DICT = {
@@ -43,8 +44,19 @@ FILE_DATA_STRUCT_DICT = {
43
44
  FileDataType.TASK_DESC_INFO.value: TASK_DESC_STRUCT
44
45
  }
45
46
 
46
- COL_NAMES = ['task_id', 'stream_id', 'block_dim', 'full_op_name', 'op_name', 'op_type', 'subgraph', 'op_info',
47
- 'graph_id']
47
+ TASK_TYPE_TO_KERNEL_TYPE = {
48
+ 0: 'AI_CORE',
49
+ 1: 'AI_CPU',
50
+ 2: 'MSPROF_AIV',
51
+ 10: 'MSPROF_HCCL',
52
+ 11: 'MSPROF_RTS',
53
+ 1000: 'MSPROF_UNKNOWN_TYPE'
54
+ }
55
+
56
+ COL_NAMES = [
57
+ 'task_id', 'stream_id', 'block_dim', 'full_op_name', 'op_name', 'op_type', 'subgraph', 'op_info',
58
+ 'graph_id', 'kernel_type'
59
+ ]
48
60
  OpData = namedtuple('OpData', field_names=COL_NAMES)
49
61
 
50
62
 
@@ -58,6 +70,8 @@ class FrameworkParser:
58
70
  output_path (str): The directory of the parsed file. Default: `./`.
59
71
  """
60
72
  _regex_framework = r'Framework\.(?P<data_type>.+)\.(?P<device_id>\d).+'
73
+ _host_regex_framework = r'Framework\.(?P<data_type>.+)\.+'
74
+ _match_framework_file = r'Framework*[0-9]'
61
75
  _graph_attr_name = [
62
76
  'input_format', 'input_data_type', 'input_shape', 'output_format',
63
77
  'output_data_type', 'output_shape'
@@ -211,10 +225,11 @@ class FrameworkParser:
211
225
 
212
226
  @staticmethod
213
227
  def _write_framework_to_file(all_op_data: List[OpData], output_file):
214
- with open(output_file, 'w') as file_handler:
228
+ with os.fdopen(os.open(output_file, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as file_handler:
215
229
  csv_writer = csv.writer(file_handler)
216
230
  csv_writer.writerow(COL_NAMES)
217
231
  csv_writer.writerows(all_op_data)
232
+ os.chmod(output_file, stat.S_IREAD | stat.S_IWRITE)
218
233
 
219
234
  @staticmethod
220
235
  def _get_subgraph_name(full_op_name):
@@ -239,7 +254,7 @@ class FrameworkParser:
239
254
  Args:
240
255
  op_name (str): The operator name or operator name prefix.
241
256
  is_prefix (bool): `True` if the op_name is prefix, else `False`.
242
- Default: True.
257
+ Default: ``True``.
243
258
 
244
259
  Returns:
245
260
  bool, `True` if the operator name does exist in framework file, else
@@ -297,17 +312,25 @@ class FrameworkParser:
297
312
  ProfilerFileNotFoundException: If the framework files are not found.
298
313
  """
299
314
  data_dir = os.path.join(profiling_path, 'data')
300
- if not os.path.isdir(data_dir):
315
+ host_data_dir = os.path.join(profiling_path, '../host/data')
316
+ if not os.path.isdir(data_dir) and not os.path.isdir(host_data_dir):
301
317
  raise ProfilerDirNotFoundException(data_dir)
302
318
 
303
319
  framework_path_dict = defaultdict(list)
304
- for file in Path(data_dir).glob(r'Framework*[0-9]'):
320
+ file_list = [f for f in Path(data_dir).glob(self._match_framework_file)]
321
+ if not file_list:
322
+ file_list = [f for f in Path(host_data_dir).glob(self._match_framework_file)]
323
+
324
+ for file in file_list:
305
325
  file_name = file.name
326
+
306
327
  match = re.search(self._regex_framework, file_name)
307
328
  if match is None:
308
- logger.warning("Profiler does not support to analyse file(%s), this file name format is not %s, "
309
- "skip this file.", file.resolve(), self._regex_framework)
310
- continue
329
+ match = re.search(self._host_regex_framework, file_name)
330
+ if match is None:
331
+ logger.warning("Profiler does not support to analyse file(%s), this file name format is not %s, "
332
+ "skip this file.", file.resolve(), self._regex_framework)
333
+ continue
311
334
 
312
335
  if match['data_type'] not in FileDataType.members():
313
336
  logger.warning("Profiler does not support to analyse file(%s), this file data type is %s, "
@@ -405,8 +428,10 @@ class FrameworkParser:
405
428
  op_type=task_desc['opType'],
406
429
  subgraph=subgraph,
407
430
  op_info=json.dumps(task_id_op_attr_dict.get(combined_task_id, {})),
408
- graph_id=task_desc['modelId'])
409
- graph_ids.add(task_desc['modelId'])
431
+ graph_id=task_desc['modelId'],
432
+ kernel_type=TASK_TYPE_TO_KERNEL_TYPE.get(task_desc.get('taskType')))
433
+ if not task_desc['opType'].startswith("InitDataSetQueue") and not task_desc['opType'].startswith("GetNext"):
434
+ graph_ids.add(task_desc['modelId'])
410
435
  all_op_data.append(op_data)
411
436
  ProfilerInfo.set_graph_ids(list(graph_ids))
412
437
  return all_op_data
@@ -524,14 +549,18 @@ class GpuFrameWorkParser:
524
549
  op_total_time = float(line_info[-4])
525
550
  if not self.op_detail.get(op_name):
526
551
  # line_info[4]: op_occurrences, line_info[5]: op_detail_time(us), line_info[6]: op_avg_time(us);
527
- self.op_detail[op_name] = [op_occurrences, op_total_time,
528
- round(op_total_time / op_occurrences, 4), op_side]
552
+ self.op_detail[op_name] = [
553
+ op_occurrences, op_total_time,
554
+ round(op_total_time / op_occurrences, 4), op_side
555
+ ]
529
556
  else:
530
557
  self.op_detail.get(op_name)[1] += op_total_time
531
558
  self.op_detail.get(op_name)[2] = self.op_detail.get(op_name)[1] / self.op_detail.get(op_name)[0]
532
- self.op_detail[op_name] = [self.op_detail.get(op_name)[0],
533
- round(self.op_detail.get(op_name)[1], 4),
534
- round(self.op_detail.get(op_name)[2], 4), op_side]
559
+ self.op_detail[op_name] = [
560
+ self.op_detail.get(op_name)[0],
561
+ round(self.op_detail.get(op_name)[1], 4),
562
+ round(self.op_detail.get(op_name)[2], 4), op_side
563
+ ]
535
564
 
536
565
  def combine_performance_data(self, op_name):
537
566
  """Combine operator detail info with framework info."""
@@ -554,8 +583,10 @@ class GpuFrameWorkParser:
554
583
  op_shape_dict.get(op_shape)[0] += op_occurrences
555
584
  op_shape_dict.get(op_shape)[1] += op_total_time
556
585
  op_shape_dict.get(op_shape)[2] = op_shape_dict.get(op_shape)[1] / op_shape_dict.get(op_shape)[0]
557
- op_shape_dict[op_shape] = [op_shape_dict.get(op_shape)[0], round(op_shape_dict.get(op_shape)[1], 4),
558
- round(op_shape_dict.get(op_shape)[2], 4), op_side]
586
+ op_shape_dict[op_shape] = [
587
+ op_shape_dict.get(op_shape)[0], round(op_shape_dict.get(op_shape)[1], 4),
588
+ round(op_shape_dict.get(op_shape)[2], 4), op_side
589
+ ]
559
590
  else:
560
591
  op_shape_dict[op_shape] = [op_occurrences, op_total_time, op_avg_time, op_side]
561
592
 
@@ -648,8 +679,9 @@ class GpuFrameWorkParser:
648
679
  "kernel_type": kernel_type_step_time,
649
680
  }
650
681
  dynamic_shape_file_path = os.path.join(self._output_path, output_dynamic_shape_file_name)
651
- with os.fdopen(os.open(dynamic_shape_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o660), 'w') as fp:
682
+ with os.fdopen(os.open(dynamic_shape_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as fp:
652
683
  json.dump(result, fp)
684
+ os.chmod(dynamic_shape_file_path, stat.S_IREAD | stat.S_IWRITE)
653
685
 
654
686
  def get_graph_ids(self):
655
687
  """Get gpu graph ids."""
@@ -661,7 +693,7 @@ class GpuFrameWorkParser:
661
693
  with open(gpu_framework_file[0], 'r') as f_obj:
662
694
  framework_info = f_obj.readlines()
663
695
  for line_info in framework_info:
664
- if line_info.startswith("InitDataSetQueue"):
696
+ if line_info.startswith("InitDataSetQueue") or line_info.startswith("GetNext"):
665
697
  continue
666
698
  line_info = line_info.strip(' ').strip('\n').split(';')
667
699
  if len(line_info) > 2 and line_info[2].isdigit():
@@ -681,13 +713,14 @@ class GpuFrameWorkParser:
681
713
  "grid_dim": args.get('grid_dim')
682
714
  }
683
715
  else:
716
+ op_step_shape = self.op_step_shape_info.get(op_info.get('name'))
684
717
  item = {
685
718
  "step": step,
686
719
  "op_side": self.op_step_shape_info.get(op_info.get('name'))[0],
687
720
  "op_type": op_info.get('name').split('-')[0],
688
721
  "op_name": op_info.get('name'),
689
722
  "dur": op_info.get('dur'),
690
- "shape_info": self.op_step_shape_info.get(op_info.get('name'))[step],
723
+ "shape_info": op_step_shape[step] if len(op_step_shape) > step else [],
691
724
  }
692
725
  return item
693
726
 
@@ -702,10 +735,12 @@ class GpuFrameWorkParser:
702
735
  else:
703
736
  self.one_step_op_time[sort_type][0] += duration
704
737
  self.one_step_op_time[sort_type][1] += 1
705
- self.one_step_op_time[sort_type] = [self.one_step_op_time[sort_type][0],
706
- self.one_step_op_time[sort_type][1],
707
- round(self.one_step_op_time[sort_type][0] /
708
- self.one_step_op_time[sort_type][1], 4)]
738
+ self.one_step_op_time[sort_type] = [
739
+ self.one_step_op_time[sort_type][0],
740
+ self.one_step_op_time[sort_type][1],
741
+ round(self.one_step_op_time[sort_type][0] /
742
+ self.one_step_op_time[sort_type][1], 4)
743
+ ]
709
744
  else:
710
745
  sort_type = item.get("op_name")
711
746
  op_full_name = item.get("op_full_name")
@@ -715,11 +750,13 @@ class GpuFrameWorkParser:
715
750
  else:
716
751
  self.one_step_kernel_time[sort_type][0] += duration
717
752
  self.one_step_kernel_time[sort_type][1] += 1
718
- self.one_step_kernel_time[sort_type] = [self.one_step_kernel_time[sort_type][0],
719
- self.one_step_kernel_time[sort_type][1],
720
- round(self.one_step_kernel_time[sort_type][0] /
721
- self.one_step_kernel_time[sort_type][1], 4),
722
- op_full_name]
753
+ self.one_step_kernel_time[sort_type] = [
754
+ self.one_step_kernel_time[sort_type][0],
755
+ self.one_step_kernel_time[sort_type][1],
756
+ round(self.one_step_kernel_time[sort_type][0] /
757
+ self.one_step_kernel_time[sort_type][1], 4),
758
+ op_full_name
759
+ ]
723
760
 
724
761
 
725
762
  class DynamicFrameWorkParser:
@@ -743,9 +780,9 @@ class DynamicFrameWorkParser:
743
780
  self._dynamic_shape_info = defaultdict(list)
744
781
  self._step = 0
745
782
 
746
- def write_dynamic_shape_data(self):
783
+ def write_dynamic_shape_data(self, df_op_summary):
747
784
  """Analyze dynamic shape data and write to dynamic shape file."""
748
- self._get_total_step_num()
785
+ self._get_total_step_num(df_op_summary)
749
786
  output_dynamic_shape_file_name = f'dynamic_shape_info_{self._rank_id}.json'
750
787
  for op_name in self._exe_time_and_shape_detail:
751
788
  if self._exe_time_and_shape_detail[op_name]['op_exe_occurrences'] == self._step:
@@ -766,41 +803,23 @@ class DynamicFrameWorkParser:
766
803
  len(self._op_type_exe_time[op_type]), 4)).tolist()
767
804
  self._dynamic_shape_info['op_type'] = self._op_info.get("op_type")
768
805
  dynamic_shape_file_path = os.path.join(self._output_path, output_dynamic_shape_file_name)
769
- with os.fdopen(os.open(dynamic_shape_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o660), 'w') as fp:
806
+ with os.fdopen(os.open(dynamic_shape_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as fp:
770
807
  json.dump(self._dynamic_shape_info, fp)
808
+ os.chmod(dynamic_shape_file_path, stat.S_IREAD | stat.S_IWRITE)
771
809
 
772
- def _analyse_op_execute_time(self):
810
+ def _analyse_op_execute_time(self, op_summary):
773
811
  """Obtain the execution time of aicpu operator and aicore operator."""
774
- timeline_origin_file_name = f'output_timeline_data_{self._rank_id}.txt'
775
- aicpu_file_name = f'aicpu_intermediate_{self._rank_id}.csv'
776
- timeline_origin_file_path = os.path.join(self._output_path, timeline_origin_file_name)
777
- timeline_origin_file_path = validate_and_normalize_path(timeline_origin_file_path)
778
- aicpu_file_path = os.path.join(self._output_path, aicpu_file_name)
779
-
780
- def read_file(file_path):
781
- """Read file data."""
782
- with open(file_path, 'r') as fp:
783
- file_info = fp.readlines()[1:]
784
- return file_info
785
-
786
- timeline_info = read_file(timeline_origin_file_path)
787
- for line_info in timeline_info:
788
- line_info = line_info.strip('\n').split(',')
789
- op_name = line_info[0].split('/')[-1]
790
- op_exe_time = float(line_info[3])
791
- self._all_op_exe_time[op_name].append(op_exe_time)
792
- if os.path.exists(aicpu_file_path):
793
- aicpu_info = read_file(aicpu_file_path)
794
- for line_info in aicpu_info:
795
- line_info = line_info.strip('\n').split(',')
796
- op_name = line_info[1]
797
- op_exe_time = float(line_info[3])
798
- self._all_op_exe_time[op_name].append(op_exe_time)
812
+ timeline_info = defaultdict(list)
813
+ for row in op_summary:
814
+ key = row['Op Name'].split('/')[-1]
815
+ timeline_info[key].append(row['Task Duration'])
816
+
817
+ self._all_op_exe_time = timeline_info
799
818
 
800
- def _get_dynamic_shape_info(self):
819
+ def _get_dynamic_shape_info(self, op_summary):
801
820
  """Get the shape information of AICPU and aicore."""
802
821
  framework_file_name = f'framework_raw_{self._rank_id}.csv'
803
- self._analyse_op_execute_time()
822
+ self._analyse_op_execute_time(op_summary)
804
823
  framework_file_path = os.path.join(self._output_path, framework_file_name)
805
824
  framework_file_path = validate_and_normalize_path(framework_file_path)
806
825
  with open(framework_file_path, 'r') as f_obj:
@@ -811,9 +830,9 @@ class DynamicFrameWorkParser:
811
830
  shape_info = ','.join(line_info[7:]).replace('"', '')
812
831
  self._op_shape_info[op_name].append(shape_info)
813
832
 
814
- def _get_total_step_num(self):
833
+ def _get_total_step_num(self, op_summary):
815
834
  """Get the number of steps."""
816
- self._get_dynamic_shape_info()
835
+ self._get_dynamic_shape_info(op_summary)
817
836
  all_exe_occurrences = list()
818
837
  for op_name in self._all_op_exe_time:
819
838
  op_shape = self._op_shape_info.get(op_name)
@@ -36,9 +36,9 @@ class CommunicationInfo(Enum):
36
36
  RDMA: Communication link between servers in cluster training.
37
37
  SDMA: Communication link inside server in cluster training.
38
38
  LOCAL: The operation of this card has no transmission process.
39
- RDMASENDCommunication operator of RDMA link.
40
- REDUCE_INLINECommunication operator of SDMA link.
41
- MEMCPYCommunication operator of SDMA link.
39
+ RDMASEND: Communication operator of RDMA link.
40
+ REDUCE_INLINE: Communication operator of SDMA link.
41
+ MEMCPY: Communication operator of SDMA link.
42
42
  NOTIFY_RECORD: Communication operator of SDMA link.
43
43
  NOTIFY_WAIT: operator of LOCAL.
44
44
  """
@@ -269,15 +269,17 @@ class HcclParser:
269
269
 
270
270
  # index_0:step_num, index_1:start_point, index_2:end_point
271
271
  # The unit of time stamp is 10ns. To convert it to μs, you need to divide it by 100.
272
- step_timestamps_info = [[info[0], float(info[1]) / 100, float(info[2]) / 100]
273
- for info in csv_reader if info[0].isdigit()]
272
+ step_timestamps_info = [
273
+ [info[0], float(info[1]) / 100, float(info[2]) / 100]
274
+ for info in csv_reader if info[0].isdigit()
275
+ ]
274
276
 
275
277
  return [communication_operators_names, step_timestamps_info]
276
278
 
277
279
  def _get_communication_operator_name_mapping_info(self):
278
280
  """Get the name of communication operators mapping between hccl and step trace."""
279
281
  dir_path = self._validate_dir_path(self._source_dir)
280
- # The name of the operator in hccl is likeoperatorName_{Ordered_number}_xx_xx.
282
+ # The name of the operator in hccl is like: operatorName_{Ordered_number}_xx_xx.
281
283
  operators_names_in_hccl = [entry.name for entry in os.scandir(dir_path) if entry.is_dir()]
282
284
  operators_names_in_hccl_set = set({i.split('_')[0] for i in operators_names_in_hccl})
283
285
  op_names_in_hccl_dic = dict()
@@ -294,8 +296,10 @@ class HcclParser:
294
296
  for op_name in operators_names_in_step_trace})
295
297
  op_names_in_step_trace_dic = dict()
296
298
  for item in op_names_in_step_trace_set:
297
- op_names_in_step_trace_dic[item] = [op_name for op_name in operators_names_in_step_trace
298
- if op_name.split('/')[-1].split('-')[0].split('_')[-1] == item]
299
+ op_names_in_step_trace_dic[item] = [
300
+ op_name for op_name in operators_names_in_step_trace
301
+ if op_name.split('/')[-1].split('-')[0].split('_')[-1] == item
302
+ ]
299
303
 
300
304
  communication_operator_mapping_info = dict()
301
305
  for hccl_key, hccl_value in op_names_in_hccl_dic.items():
@@ -548,9 +552,9 @@ class HcclParser:
548
552
  """Validate file path."""
549
553
  try:
550
554
  file_path = validate_and_normalize_path(file_path)
551
- except RuntimeError:
555
+ except RuntimeError as err:
552
556
  logger.warning('file path is invalid.')
553
- raise ProfilerPathErrorException('file path is invalid.')
557
+ raise ProfilerPathErrorException('file path is invalid.') from err
554
558
  if not os.path.isfile(file_path):
555
559
  logger.warning('The file <%s> not found.', file_path)
556
560
  raise ProfilerFileNotFoundException(file_path)
@@ -560,9 +564,9 @@ class HcclParser:
560
564
  """Validate dir path."""
561
565
  try:
562
566
  dir_path = validate_and_normalize_path(dir_path)
563
- except RuntimeError:
567
+ except RuntimeError as err:
564
568
  logger.warning('dir path is invalid.')
565
- raise ProfilerPathErrorException('dir path is invalid.')
569
+ raise ProfilerPathErrorException('dir path is invalid.') from err
566
570
  if not os.path.isdir(dir_path):
567
571
  logger.warning('The dir <%s> not found.', dir_path)
568
572
  raise ProfilerDirNotFoundException(dir_path)
@@ -16,6 +16,7 @@
16
16
  import csv
17
17
  import json
18
18
  import os
19
+ import stat
19
20
  from decimal import Decimal
20
21
  from enum import Enum
21
22
  import sys
@@ -39,8 +40,10 @@ class Integrator:
39
40
  _file_name_framework = 'framework_raw_{}.csv'
40
41
  _header_aicore_type = ['op_type', 'total_time', 'execution_frequency', 'percent']
41
42
  _header_aicore_detail = ['full_op_name', 'execution_time', 'execution_frequency']
42
- _header_aicpu = ['serial_number', 'op_type', 'total_time', 'dispatch_time',
43
- 'execution_time', 'run_start', 'run_end']
43
+ _header_aicpu = [
44
+ 'serial_number', 'op_type', 'total_time', 'dispatch_time',
45
+ 'execution_time', 'run_start', 'run_end'
46
+ ]
44
47
 
45
48
  _file_name_aicore_type_time = 'aicore_intermediate_{}_type.csv'
46
49
  _file_name_aicore_detail_info = 'aicore_intermediate_{}_detail.csv'
@@ -153,7 +156,7 @@ class Integrator:
153
156
  op_type_time[1] += op_info[1]
154
157
  op_type_file_name = 'aicore_intermediate_' + self._device_id + '_type.csv'
155
158
  op_type_file_path = os.path.join(self._profiling_dir, op_type_file_name)
156
- with open(op_type_file_path, 'w') as type_file:
159
+ with os.fdopen(os.open(op_type_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as type_file:
157
160
  csv_writer = csv.writer(type_file)
158
161
  csv_writer.writerow(self._header_aicore_type)
159
162
 
@@ -164,6 +167,7 @@ class Integrator:
164
167
  round((op_type_time_info[0] / total_time) * 100, 2)
165
168
  ]
166
169
  csv_writer.writerow(type_info)
170
+ os.chmod(op_type_file_path, stat.S_IREAD | stat.S_IWRITE)
167
171
 
168
172
  def _parse_aicore_detail_time(self):
169
173
  """Parse the parsed AICORE operator time file."""
@@ -188,8 +192,8 @@ class Integrator:
188
192
  _ = src_file.readline()
189
193
  else:
190
194
  return
191
-
192
- with open(op_detail_file_path, 'w') as detail_file:
195
+ with os.fdopen(os.open(op_detail_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600),
196
+ 'w') as detail_file:
193
197
  csv_writer = csv.writer(detail_file)
194
198
  csv_writer.writerow(self._header_aicore_detail)
195
199
 
@@ -204,6 +208,7 @@ class Integrator:
204
208
  continue
205
209
  self._op_time_cache[op_infos[0]] = [Decimal(op_infos[1]), int(op_infos[3])]
206
210
  csv_writer.writerow([op_infos[0], op_infos[1], op_infos[3]])
211
+ os.chmod(op_detail_file_path, stat.S_IREAD | stat.S_IWRITE)
207
212
 
208
213
  def _parse_aicpu_time(self):
209
214
  """Parse the parsed AICPU operator time file."""
@@ -221,7 +226,7 @@ class Integrator:
221
226
  row = src_file.readline()
222
227
  if not row.startswith('serial_number'):
223
228
  return
224
- with open(save_file_path, 'w') as save_file:
229
+ with os.fdopen(os.open(save_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as save_file:
225
230
  csv_writer = csv.writer(save_file)
226
231
  csv_writer.writerow(self._header_aicpu)
227
232
 
@@ -233,6 +238,7 @@ class Integrator:
233
238
  if infos[0] == 'AI':
234
239
  continue
235
240
  csv_writer.writerow(infos)
241
+ os.chmod(save_file_path, stat.S_IREAD | stat.S_IWRITE)
236
242
 
237
243
  def _aicore_data_load(self):
238
244
  """Load data according to the parsed AICORE operator types file."""
@@ -276,7 +282,8 @@ class Integrator:
276
282
  _ = next(csv_reader)
277
283
  for info in csv_reader:
278
284
  framework_infos[info[3]] = [
279
- info[3], info[4], info[5], info[6], json.loads(info[7]) if info[7] else None]
285
+ info[3], info[4], info[5], info[6], json.loads(info[7]) if info[7] else None
286
+ ]
280
287
 
281
288
  with open(op_detail_file_path, 'r') as file:
282
289
  csv_reader = csv.reader(file)
@@ -374,8 +381,10 @@ class Integrator:
374
381
  factor = 1e5 # convert time unit from 10ns to 1ms
375
382
  reduce_pid = 10000
376
383
  reduce_info = []
377
- reduce_fields = [field_name for field_name in self._column
378
- if field_name.startswith('stream_') and not field_name.endswith('point')]
384
+ reduce_fields = [
385
+ field_name for field_name in self._column
386
+ if field_name.startswith('stream_') and not field_name.endswith('point')
387
+ ]
379
388
  for reduce_field in reduce_fields:
380
389
  reduce_start = row_info_dict.get(reduce_field + '_start_point')
381
390
  reduce_start = reduce_start / factor \
@@ -388,8 +397,10 @@ class Integrator:
388
397
  cur_stream_id = reduce_field.split('_', 3)[1]
389
398
  if reduce_field.split('_', 2)[1] == 'ops':
390
399
  cur_stream_id = reduce_field.split('_', 3)[2]
391
- reduce_meta = [reduce_field, int(cur_stream_id), reduce_start,
392
- reduce_duration, reduce_pid]
400
+ reduce_meta = [
401
+ reduce_field, int(cur_stream_id), reduce_start,
402
+ reduce_duration, reduce_pid
403
+ ]
393
404
  reduce_info.append(reduce_meta)
394
405
 
395
406
  return reduce_info
@@ -147,9 +147,9 @@ class MemoryUsageParser:
147
147
  continue
148
148
 
149
149
  graph_parser = GraphMemoryParser(graph_proto, self._points, self._framework)
150
- graph = graph_parser.parse_graph()
151
- if graph:
152
- self._graphs_dict[graph_id] = graph
150
+ graph, model_id = graph_parser.parse_graph()
151
+ if graph and model_id != -1:
152
+ self._graphs_dict[model_id] = graph
153
153
 
154
154
  # update global memory usage data
155
155
  self._peak_mem = max(self._peak_mem, graph_parser.peak_mem)
@@ -163,9 +163,9 @@ class MemoryUsageParser:
163
163
  file_path = validate_and_normalize_path(file_path)
164
164
 
165
165
  try:
166
- with open(file_path, 'w') as json_file:
166
+ with os.fdopen(os.open(file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as json_file:
167
167
  json.dump(content, json_file)
168
- os.chmod(file_path, stat.S_IREAD | stat.S_IWRITE)
168
+ os.chmod(file_path, stat.S_IREAD | stat.S_IWRITE)
169
169
  except (IOError, OSError) as err:
170
170
  logger.critical('Fail to write memory file.\n%s', err)
171
171
  raise ProfilerIOException from err
@@ -191,6 +191,12 @@ class GraphMemoryParser:
191
191
  self._mem_change = []
192
192
  self.breakdowns = []
193
193
  self._lifetime = []
194
+ # compatible with original mode
195
+ self._multi_graph = False
196
+ if not isinstance(self._points, dict):
197
+ raise TypeError("Input points data must be dict!")
198
+ if not self._points.get("fp_start"):
199
+ self._multi_graph = True
194
200
 
195
201
  @staticmethod
196
202
  def _remove_duplicate_tensors(node):
@@ -221,12 +227,13 @@ class GraphMemoryParser:
221
227
  def parse_graph(self):
222
228
  """Parse memory usage data for subgraphs."""
223
229
  graph_dict = {}
230
+ model_id = -1
224
231
  self.graph = Graph(self._graph_proto)
225
232
  # process tensors in the graph
226
233
  tensors_proto = self._graph_proto.tensor_mems
227
234
  if not tensors_proto:
228
235
  logger.info('No tensor in graph %s, skipped.', self.graph.graph_id)
229
- return graph_dict
236
+ return graph_dict, model_id
230
237
  self._parse_tensors(tensors_proto)
231
238
 
232
239
  # calculate memory usage of the graph by number of nodes and details of tensors
@@ -251,7 +258,7 @@ class GraphMemoryParser:
251
258
  self.graph.breakdowns = [self.breakdowns[self.tensor_node_id]]
252
259
 
253
260
  # update fp_start and bp_end
254
- point_id = self._locate_fp_bp_id()
261
+ point_id, model_id = self._locate_fp_bp_id()
255
262
  self.graph.fp_start = point_id.get('fp_start')
256
263
  self.graph.bp_end = point_id.get('bp_end')
257
264
 
@@ -262,7 +269,7 @@ class GraphMemoryParser:
262
269
  self.deallocations = len(self.tensors)
263
270
  self.peak_mem = max(max(self._mem_change), self.peak_mem)
264
271
 
265
- return graph_dict
272
+ return graph_dict, model_id
266
273
 
267
274
  def _parse_tensors(self, tensors_proto):
268
275
  """Parse tensors."""
@@ -371,12 +378,30 @@ class GraphMemoryParser:
371
378
 
372
379
  def _locate_fp_bp_id(self):
373
380
  """Locate the node id of fp_start and bp_end in graph."""
381
+ model_id = 0
382
+ if not self._multi_graph:
383
+ point_id = self._match_graph_fpbp(self._points)
384
+ else:
385
+ for mod_id, points in self._points.items():
386
+ if not isinstance(points, dict) or not mod_id.startswith("model"):
387
+ raise RuntimeError("Inputs points is invalid!")
388
+ point_id = self._match_graph_fpbp(points)
389
+ if point_id.get("fp_start"):
390
+ model_id = int(mod_id.split("_")[-1])
391
+ break
392
+ if not point_id.get("fp_start") or not point_id.get("bp_end"):
393
+ model_id = -1
394
+
395
+ return point_id, model_id
396
+
397
+ def _match_graph_fpbp(self, points):
398
+ "Match model_id and graph_id"
374
399
  point_id = {
375
400
  'fp_start': None,
376
401
  'bp_end': None
377
402
  }
378
- fp_start = self._points.get('fp_start') if self._points else None
379
- bp_end = self._points.get('bp_end') if self._points else None
403
+ fp_start = points.get('fp_start')
404
+ bp_end = points.get('bp_end')
380
405
  fp_name = fp_start.split('/')[-1] if fp_start else ""
381
406
  bp_name = bp_end.split('/')[-1] if bp_end else ""
382
407
  if fp_name in self.nodes:
@@ -388,7 +413,7 @@ class GraphMemoryParser:
388
413
 
389
414
  def _process_memory_breakdowns(self):
390
415
  """Process memory breakdowns for each node."""
391
- self.breakdowns = [[] for _ in range(len(self.nodes))]
416
+ self.breakdowns = [[] for _ in range(len(self._lifetime))]
392
417
  for index, breakdown in enumerate(self._lifetime):
393
418
  for t_id in breakdown:
394
419
  tensor = self.tensors.get(t_id)
@@ -557,21 +557,19 @@ class MinddataProfilingAnalyzer:
557
557
  output_csv_path_filename = os.path.join(self._output_path, summary_templatename.format(self._device_id))
558
558
 
559
559
  # Open file for writing
560
- data_file = open(output_csv_path_filename, 'w')
560
+ with os.fdopen(os.open(output_csv_path_filename, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600),
561
+ 'w') as data_file:
561
562
 
562
- # Create CSV writer object
563
- csv_writer = csv.writer(data_file)
563
+ # Create CSV writer object
564
+ csv_writer = csv.writer(data_file)
564
565
 
565
- # Write the dictionary information to CSV file
566
- # Create deepcopy of input data_dict so zip processing in this function does NOT change the data_dict
567
- temp_dict = copy.deepcopy(data_dict)
568
- for data_key, data_value in zip(temp_dict.keys(), temp_dict.values()):
569
- # Begin/prefix the data value with the data key
570
- data_value.insert(0, data_key)
571
- csv_writer.writerow(data_value)
572
-
573
- # Close file for writing
574
- data_file.close()
566
+ # Write the dictionary information to CSV file
567
+ # Create deepcopy of input data_dict so zip processing in this function does NOT change the data_dict
568
+ temp_dict = copy.deepcopy(data_dict)
569
+ for data_key, data_value in zip(temp_dict.keys(), temp_dict.values()):
570
+ # Begin/prefix the data value with the data key
571
+ data_value.insert(0, data_key)
572
+ csv_writer.writerow(data_value)
575
573
 
576
574
  # Update file permissions
577
575
  os.chmod(output_csv_path_filename, stat.S_IREAD | stat.S_IWRITE)
@@ -625,7 +623,7 @@ class MinddataProfilingAnalyzer:
625
623
  logger.warning(warning_msg)
626
624
 
627
625
  # Save summary output dictionary to JSON output file (format#1)
628
- with open(self._save_path, 'w') as save_file:
626
+ with os.fdopen(os.open(self._save_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as save_file:
629
627
  json.dump(summary_dict, save_file)
630
628
 
631
629
  os.chmod(self._save_path, stat.S_IREAD | stat.S_IWRITE)
@@ -166,7 +166,7 @@ class MinddataPipelineParser:
166
166
  )
167
167
  op_id_info_cache[item.get('op_id')] = item
168
168
 
169
- with open(self._save_path, 'w') as save_file:
169
+ with os.fdopen(os.open(self._save_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o600), 'w') as save_file:
170
170
  csv_writer = csv.writer(save_file)
171
171
  csv_writer.writerow(self._col_names)
172
172
  self._parse_and_save_op_info(