mindspore 2.0.0a0__cp39-cp39-win_amd64.whl → 2.0.0rc1__cp39-cp39-win_amd64.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 (655) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -2
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +102 -0
  7. mindspore/_checkparam.py +1066 -1001
  8. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +4 -3
  9. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -48
  10. mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -4
  11. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -4
  12. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
  13. mindspore/_extends/parse/__init__.py +5 -3
  14. mindspore/_extends/parse/namespace.py +16 -1
  15. mindspore/_extends/parse/parser.py +107 -22
  16. mindspore/_extends/parse/resources.py +0 -7
  17. mindspore/_extends/parse/standard_method.py +885 -413
  18. mindspore/amp.py +52 -57
  19. mindspore/boost/boost.py +2 -2
  20. mindspore/boost/boost_cell_wrapper.py +38 -20
  21. mindspore/boost/dim_reduce.py +3 -3
  22. mindspore/boost/group_loss_scale_manager.py +1 -1
  23. mindspore/common/__init__.py +4 -6
  24. mindspore/common/_decorator.py +2 -0
  25. mindspore/common/_register_for_adapter.py +55 -0
  26. mindspore/common/_stub_tensor.py +201 -0
  27. mindspore/common/_utils.py +41 -7
  28. mindspore/common/api.py +215 -141
  29. mindspore/common/dtype.py +8 -1
  30. mindspore/common/dump.py +2 -2
  31. mindspore/common/initializer.py +4 -2
  32. mindspore/common/jit_config.py +17 -13
  33. mindspore/common/mutable.py +33 -13
  34. mindspore/common/parameter.py +23 -21
  35. mindspore/common/seed.py +8 -24
  36. mindspore/common/sparse_tensor.py +62 -41
  37. mindspore/common/tensor.py +852 -1154
  38. mindspore/communication/__init__.py +2 -2
  39. mindspore/communication/_comm_helper.py +11 -4
  40. mindspore/communication/management.py +22 -21
  41. mindspore/config/op_info.config +501 -1008
  42. mindspore/context.py +201 -23
  43. mindspore/dataset/__init__.py +6 -6
  44. mindspore/dataset/audio/__init__.py +7 -7
  45. mindspore/dataset/audio/transforms.py +670 -30
  46. mindspore/dataset/audio/utils.py +47 -4
  47. mindspore/dataset/audio/validators.py +223 -1
  48. mindspore/dataset/callback/ds_callback.py +2 -2
  49. mindspore/dataset/core/config.py +210 -14
  50. mindspore/dataset/core/validator_helpers.py +2 -2
  51. mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
  52. mindspore/dataset/debug/debug_hook.py +65 -0
  53. mindspore/dataset/debug/pre_defined_hook.py +67 -0
  54. mindspore/dataset/engine/__init__.py +7 -3
  55. mindspore/dataset/engine/cache_client.py +1 -1
  56. mindspore/dataset/engine/datasets.py +322 -66
  57. mindspore/dataset/engine/datasets_audio.py +80 -76
  58. mindspore/dataset/engine/datasets_standard_format.py +51 -38
  59. mindspore/dataset/engine/datasets_text.py +232 -118
  60. mindspore/dataset/engine/datasets_user_defined.py +41 -17
  61. mindspore/dataset/engine/datasets_vision.py +746 -225
  62. mindspore/dataset/engine/graphdata.py +75 -10
  63. mindspore/dataset/engine/iterators.py +45 -5
  64. mindspore/dataset/engine/offload.py +48 -28
  65. mindspore/dataset/engine/validators.py +117 -8
  66. mindspore/dataset/text/__init__.py +6 -5
  67. mindspore/dataset/text/transforms.py +86 -3
  68. mindspore/dataset/text/utils.py +6 -4
  69. mindspore/dataset/text/validators.py +25 -0
  70. mindspore/dataset/transforms/__init__.py +3 -2
  71. mindspore/dataset/transforms/c_transforms.py +1 -1
  72. mindspore/dataset/transforms/transforms.py +2 -2
  73. mindspore/dataset/utils/__init__.py +2 -1
  74. mindspore/dataset/utils/line_reader.py +121 -0
  75. mindspore/dataset/vision/__init__.py +2 -3
  76. mindspore/dataset/vision/c_transforms.py +9 -9
  77. mindspore/dataset/vision/py_transforms.py +5 -5
  78. mindspore/dataset/vision/py_transforms_util.py +2 -0
  79. mindspore/dataset/vision/transforms.py +160 -161
  80. mindspore/dataset/vision/utils.py +3 -3
  81. mindspore/experimental/map_parameter.py +38 -26
  82. mindspore/include/OWNERS +0 -1
  83. mindspore/include/api/callback/callback.h +9 -13
  84. mindspore/include/api/callback/ckpt_saver.h +2 -2
  85. mindspore/include/api/callback/loss_monitor.h +2 -2
  86. mindspore/include/api/callback/lr_scheduler.h +5 -5
  87. mindspore/include/api/callback/time_monitor.h +2 -2
  88. mindspore/include/api/callback/train_accuracy.h +4 -6
  89. mindspore/include/api/cfg.h +19 -6
  90. mindspore/include/api/context.h +44 -9
  91. mindspore/include/api/delegate.h +1 -1
  92. mindspore/include/api/metrics/accuracy.h +2 -2
  93. mindspore/include/api/metrics/metrics.h +4 -3
  94. mindspore/include/api/model.h +9 -4
  95. mindspore/include/api/model_parallel_runner.h +2 -2
  96. mindspore/include/api/net.h +12 -11
  97. mindspore/include/api/serialization.h +19 -3
  98. mindspore/include/api/types.h +3 -3
  99. mindspore/include/dataset/constants.h +7 -0
  100. mindspore/include/dataset/text.h +59 -0
  101. mindspore/jpeg62.dll +0 -0
  102. mindspore/log.py +1 -1
  103. mindspore/mindrecord/filereader.py +18 -0
  104. mindspore/mindrecord/filewriter.py +197 -34
  105. mindspore/mindrecord/shardreader.py +9 -0
  106. mindspore/mindrecord/shardwriter.py +1 -1
  107. mindspore/mindrecord/tools/cifar100_to_mr.py +3 -3
  108. mindspore/mindrecord/tools/cifar10_to_mr.py +3 -3
  109. mindspore/mindrecord/tools/csv_to_mr.py +3 -3
  110. mindspore/mindrecord/tools/imagenet_to_mr.py +16 -11
  111. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  112. mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
  113. mindspore/mindspore_backend.dll +0 -0
  114. mindspore/mindspore_common.dll +0 -0
  115. mindspore/mindspore_core.dll +0 -0
  116. mindspore/mindspore_glog.dll +0 -0
  117. mindspore/mindspore_shared_lib.dll +0 -0
  118. mindspore/nn/__init__.py +0 -4
  119. mindspore/nn/cell.py +204 -132
  120. mindspore/nn/dynamic_lr.py +1 -1
  121. mindspore/nn/grad/cell_grad.py +7 -6
  122. mindspore/nn/layer/__init__.py +5 -4
  123. mindspore/nn/layer/activation.py +40 -89
  124. mindspore/nn/layer/basic.py +255 -624
  125. mindspore/nn/layer/channel_shuffle.py +7 -6
  126. mindspore/nn/layer/combined.py +1 -1
  127. mindspore/nn/layer/container.py +41 -4
  128. mindspore/nn/layer/conv.py +64 -28
  129. mindspore/nn/layer/dense.py +9 -8
  130. mindspore/nn/layer/embedding.py +27 -25
  131. mindspore/nn/layer/image.py +53 -46
  132. mindspore/nn/layer/math.py +97 -105
  133. mindspore/nn/layer/normalization.py +117 -86
  134. mindspore/nn/layer/padding.py +185 -95
  135. mindspore/nn/layer/pooling.py +817 -414
  136. mindspore/nn/layer/rnn_cells.py +10 -15
  137. mindspore/nn/layer/rnns.py +37 -38
  138. mindspore/nn/layer/thor_layer.py +11 -12
  139. mindspore/nn/layer/timedistributed.py +5 -5
  140. mindspore/nn/layer/transformer.py +701 -0
  141. mindspore/nn/learning_rate_schedule.py +8 -8
  142. mindspore/nn/loss/__init__.py +5 -4
  143. mindspore/nn/loss/loss.py +334 -199
  144. mindspore/nn/optim/ada_grad.py +6 -6
  145. mindspore/nn/optim/adadelta.py +2 -3
  146. mindspore/nn/optim/adafactor.py +4 -5
  147. mindspore/nn/optim/adam.py +126 -62
  148. mindspore/nn/optim/adamax.py +3 -4
  149. mindspore/nn/optim/adasum.py +6 -6
  150. mindspore/nn/optim/asgd.py +2 -2
  151. mindspore/nn/optim/ftrl.py +67 -38
  152. mindspore/nn/optim/lamb.py +4 -5
  153. mindspore/nn/optim/lars.py +2 -2
  154. mindspore/nn/optim/lazyadam.py +43 -4
  155. mindspore/nn/optim/momentum.py +6 -5
  156. mindspore/nn/optim/optimizer.py +3 -1
  157. mindspore/nn/optim/proximal_ada_grad.py +2 -2
  158. mindspore/nn/optim/rmsprop.py +1 -1
  159. mindspore/nn/optim/rprop.py +8 -9
  160. mindspore/nn/optim/sgd.py +19 -13
  161. mindspore/nn/optim/thor.py +10 -15
  162. mindspore/nn/probability/__init__.py +0 -2
  163. mindspore/nn/probability/bijector/bijector.py +4 -4
  164. mindspore/nn/probability/bijector/invert.py +1 -1
  165. mindspore/nn/probability/bijector/softplus.py +2 -2
  166. mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
  167. mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
  168. mindspore/nn/probability/distribution/_utils/utils.py +9 -15
  169. mindspore/nn/probability/distribution/bernoulli.py +3 -3
  170. mindspore/nn/probability/distribution/beta.py +1 -1
  171. mindspore/nn/probability/distribution/categorical.py +5 -7
  172. mindspore/nn/probability/distribution/cauchy.py +3 -3
  173. mindspore/nn/probability/distribution/distribution.py +2 -2
  174. mindspore/nn/probability/distribution/exponential.py +2 -2
  175. mindspore/nn/probability/distribution/gamma.py +3 -3
  176. mindspore/nn/probability/distribution/geometric.py +1 -1
  177. mindspore/nn/probability/distribution/gumbel.py +3 -3
  178. mindspore/nn/probability/distribution/half_normal.py +15 -11
  179. mindspore/nn/probability/distribution/laplace.py +16 -13
  180. mindspore/nn/probability/distribution/logistic.py +2 -2
  181. mindspore/nn/probability/distribution/normal.py +1 -1
  182. mindspore/nn/probability/distribution/poisson.py +1 -1
  183. mindspore/nn/probability/distribution/student_t.py +20 -15
  184. mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
  185. mindspore/nn/probability/distribution/uniform.py +2 -2
  186. mindspore/nn/reinforcement/_tensors_queue.py +3 -3
  187. mindspore/nn/reinforcement/tensor_array.py +2 -2
  188. mindspore/nn/sparse/sparse.py +2 -2
  189. mindspore/nn/wrap/cell_wrapper.py +27 -10
  190. mindspore/nn/wrap/grad_reducer.py +2 -2
  191. mindspore/nn/wrap/loss_scale.py +40 -24
  192. mindspore/numpy/array_creations.py +33 -22
  193. mindspore/numpy/array_ops.py +35 -30
  194. mindspore/numpy/logic_ops.py +6 -27
  195. mindspore/numpy/math_ops.py +22 -19
  196. mindspore/numpy/utils.py +1 -1
  197. mindspore/numpy/utils_const.py +108 -58
  198. mindspore/opencv_core452.dll +0 -0
  199. mindspore/opencv_imgcodecs452.dll +0 -0
  200. mindspore/opencv_imgproc452.dll +0 -0
  201. mindspore/ops/_constants.py +0 -6
  202. mindspore/ops/_grad/__init__.py +2 -1
  203. mindspore/ops/_grad/grad_array_ops.py +86 -117
  204. mindspore/ops/_grad/grad_base.py +23 -1
  205. mindspore/ops/_grad/grad_clip_ops.py +2 -3
  206. mindspore/ops/_grad/grad_comm_ops.py +34 -24
  207. mindspore/ops/_grad/grad_implementations.py +9 -45
  208. mindspore/ops/_grad/grad_inner_ops.py +47 -4
  209. mindspore/ops/_grad/grad_math_ops.py +142 -117
  210. mindspore/ops/_grad/grad_nn_ops.py +71 -165
  211. mindspore/ops/_grad/grad_sequence_ops.py +296 -0
  212. mindspore/ops/_grad/grad_sparse.py +7 -6
  213. mindspore/ops/_grad_experimental/__init__.py +1 -0
  214. mindspore/ops/_grad_experimental/grad_array_ops.py +150 -15
  215. mindspore/ops/_grad_experimental/grad_image_ops.py +16 -7
  216. mindspore/ops/_grad_experimental/grad_inner_ops.py +1 -22
  217. mindspore/ops/_grad_experimental/grad_linalg_ops.py +4 -11
  218. mindspore/ops/_grad_experimental/grad_math_ops.py +210 -89
  219. mindspore/ops/_grad_experimental/grad_nn_ops.py +26 -22
  220. mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
  221. mindspore/ops/_grad_experimental/grad_sparse_ops.py +49 -8
  222. mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
  223. mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +2 -2
  224. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
  225. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
  226. mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +4 -4
  227. mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
  228. mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
  229. mindspore/ops/_op_impl/_custom_op/correction_mul.py +2 -2
  230. mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
  231. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -5
  232. mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
  233. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
  234. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
  235. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
  236. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
  237. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
  238. mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
  239. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
  240. mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
  241. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
  242. mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
  243. mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
  244. mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
  245. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  246. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
  247. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
  248. mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
  249. mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
  250. mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -4
  251. mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
  252. mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
  253. mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
  254. mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
  255. mindspore/ops/_op_impl/aicpu/__init__.py +236 -4
  256. mindspore/ops/_op_impl/aicpu/abs.py +36 -0
  257. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_v1.py → adaptive_avg_pool_2d.py} +6 -5
  258. mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
  259. mindspore/ops/_op_impl/aicpu/add.py +43 -0
  260. mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
  261. mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
  262. mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
  263. mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -43
  264. mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
  265. mindspore/{compression/common/__init__.py → ops/_op_impl/aicpu/bessel_i0.py} +15 -8
  266. mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
  267. mindspore/ops/_op_impl/aicpu/conj.py +11 -0
  268. mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +0 -3
  269. mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
  270. mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
  271. mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_grad_v1.py → digamma.py} +7 -9
  272. mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
  273. mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
  274. mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
  275. mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
  276. mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
  277. mindspore/ops/_op_impl/aicpu/greater.py +41 -0
  278. mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
  279. mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
  280. mindspore/ops/_op_impl/aicpu/less.py +41 -0
  281. mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/lgamma.py} +16 -10
  282. mindspore/ops/_op_impl/aicpu/mirror_pad.py +0 -4
  283. mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
  284. mindspore/ops/_op_impl/aicpu/mul.py +3 -1
  285. mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
  286. mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
  287. mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
  288. mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
  289. mindspore/ops/_op_impl/aicpu/polar.py +32 -0
  290. mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
  291. mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
  292. mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
  293. mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
  294. mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
  295. mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
  296. mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
  297. mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
  298. mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
  299. mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
  300. mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
  301. mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
  302. mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
  303. mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
  304. mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
  305. mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
  306. mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
  307. mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
  308. mindspore/ops/_op_impl/aicpu/sparse_slice.py +4 -0
  309. mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +6 -0
  310. mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
  311. mindspore/ops/_op_impl/aicpu/trans_data.py +1 -0
  312. mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
  313. mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
  314. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
  315. mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
  316. mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
  317. mindspore/ops/_op_impl/cpu/sparse_slice.py +4 -0
  318. mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +6 -0
  319. mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
  320. mindspore/ops/_op_impl/tbe/__init__.py +27 -611
  321. mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
  322. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  323. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
  324. mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +1 -0
  325. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  326. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
  327. mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
  328. mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
  329. mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
  330. mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
  331. mindspore/ops/_op_impl/tbe/cast.py +0 -2
  332. mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
  333. mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
  334. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +2 -2
  335. mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
  336. mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
  337. mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
  338. mindspore/ops/_op_impl/tbe/matmul_ds.py +2 -0
  339. mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
  340. mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
  341. mindspore/ops/_op_impl/tbe/scatter_mul.py +2 -0
  342. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -2
  343. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  344. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
  345. mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
  346. mindspore/ops/_register_for_op.py +1 -0
  347. mindspore/ops/_utils/__init__.py +1 -2
  348. mindspore/ops/_utils/utils.py +19 -40
  349. mindspore/ops/_vmap/vmap_array_ops.py +116 -38
  350. mindspore/ops/_vmap/vmap_base.py +16 -9
  351. mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
  352. mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
  353. mindspore/ops/_vmap/vmap_grad_nn_ops.py +7 -5
  354. mindspore/ops/_vmap/vmap_image_ops.py +12 -5
  355. mindspore/ops/_vmap/vmap_math_ops.py +46 -5
  356. mindspore/ops/_vmap/vmap_nn_ops.py +15 -21
  357. mindspore/ops/_vmap/vmap_random_ops.py +1 -1
  358. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  359. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  360. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
  361. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
  362. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  363. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  364. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  365. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
  366. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +220 -106
  367. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  368. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
  369. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
  370. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
  371. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
  372. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
  373. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
  374. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
  375. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  376. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  377. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -23
  378. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -17
  379. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
  380. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  381. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  382. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  383. mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
  384. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  385. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +39 -41
  386. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
  387. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +41 -43
  388. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +51 -57
  389. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  390. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
  391. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
  392. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  393. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
  394. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
  395. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
  396. mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
  397. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  398. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
  399. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
  400. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
  401. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
  402. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
  403. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  404. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
  405. mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
  406. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  407. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  408. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +24 -25
  409. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  410. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  411. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  412. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
  413. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
  414. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
  415. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  416. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +18 -19
  417. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +53 -53
  418. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
  419. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +77 -85
  420. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
  421. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
  422. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  423. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
  424. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
  425. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  426. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
  427. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
  428. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  429. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +37 -39
  430. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +70 -72
  431. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  432. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
  433. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  434. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  435. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +17 -17
  436. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
  437. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
  438. mindspore/ops/bprop_mindir/generate_mindir.py +2 -0
  439. mindspore/ops/composite/__init__.py +7 -8
  440. mindspore/ops/composite/base.py +101 -47
  441. mindspore/ops/composite/math_ops.py +188 -158
  442. mindspore/ops/composite/multitype_ops/_compile_utils.py +415 -170
  443. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +142 -87
  444. mindspore/ops/composite/multitype_ops/add_impl.py +6 -1
  445. mindspore/ops/composite/multitype_ops/div_impl.py +2 -3
  446. mindspore/ops/composite/multitype_ops/getitem_impl.py +31 -3
  447. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
  448. mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
  449. mindspore/ops/composite/multitype_ops/in_impl.py +9 -0
  450. mindspore/ops/composite/multitype_ops/less_equal_impl.py +31 -0
  451. mindspore/ops/composite/multitype_ops/less_impl.py +31 -0
  452. mindspore/ops/composite/multitype_ops/mul_impl.py +21 -5
  453. mindspore/ops/composite/multitype_ops/not_in_impl.py +9 -0
  454. mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
  455. mindspore/ops/composite/multitype_ops/setitem_impl.py +21 -3
  456. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -1
  457. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +35 -4
  458. mindspore/ops/function/__init__.py +152 -8
  459. mindspore/ops/function/array_func.py +2555 -674
  460. mindspore/ops/function/clip_func.py +209 -13
  461. mindspore/ops/function/debug_func.py +2 -2
  462. mindspore/ops/function/grad/__init__.py +2 -1
  463. mindspore/ops/function/grad/grad_func.py +147 -62
  464. mindspore/ops/function/image_func.py +54 -38
  465. mindspore/ops/function/linalg_func.py +167 -16
  466. mindspore/ops/function/math_func.py +4849 -1492
  467. mindspore/ops/function/nn_func.py +2573 -988
  468. mindspore/ops/function/other_func.py +115 -0
  469. mindspore/ops/function/parameter_func.py +3 -3
  470. mindspore/ops/function/random_func.py +790 -73
  471. mindspore/ops/function/sparse_func.py +98 -78
  472. mindspore/ops/function/sparse_unary_func.py +54 -53
  473. mindspore/ops/function/spectral_func.py +27 -24
  474. mindspore/ops/function/vmap_func.py +22 -2
  475. mindspore/ops/functional.py +97 -37
  476. mindspore/ops/op_info_register.py +70 -28
  477. mindspore/ops/operations/__init__.py +47 -14
  478. mindspore/ops/operations/_csr_ops.py +7 -7
  479. mindspore/ops/operations/_embedding_cache_ops.py +5 -5
  480. mindspore/ops/operations/_grad_ops.py +276 -187
  481. mindspore/ops/operations/_inner_ops.py +319 -113
  482. mindspore/ops/operations/_ms_kernel.py +10 -8
  483. mindspore/ops/operations/_ocr_ops.py +9 -9
  484. mindspore/ops/operations/_opaque_predicate_registry.py +4 -0
  485. mindspore/ops/operations/_quant_ops.py +137 -102
  486. mindspore/ops/operations/_rl_inner_ops.py +121 -60
  487. mindspore/ops/operations/_scalar_ops.py +466 -0
  488. mindspore/ops/operations/_sequence_ops.py +1004 -2
  489. mindspore/ops/operations/_tensor_array.py +10 -11
  490. mindspore/ops/operations/_thor_ops.py +1 -1
  491. mindspore/ops/operations/array_ops.py +801 -466
  492. mindspore/ops/operations/comm_ops.py +51 -49
  493. mindspore/ops/operations/control_ops.py +2 -2
  494. mindspore/ops/operations/custom_ops.py +123 -44
  495. mindspore/ops/operations/debug_ops.py +24 -24
  496. mindspore/ops/operations/image_ops.py +240 -153
  497. mindspore/ops/operations/inner_ops.py +34 -50
  498. mindspore/ops/operations/linalg_ops.py +31 -9
  499. mindspore/ops/operations/math_ops.py +988 -757
  500. mindspore/ops/operations/nn_ops.py +965 -819
  501. mindspore/ops/operations/other_ops.py +51 -40
  502. mindspore/ops/operations/random_ops.py +204 -122
  503. mindspore/ops/operations/rl_ops.py +8 -9
  504. mindspore/ops/operations/sparse_ops.py +254 -93
  505. mindspore/ops/operations/spectral_ops.py +35 -3
  506. mindspore/ops/primitive.py +111 -9
  507. mindspore/parallel/_auto_parallel_context.py +189 -83
  508. mindspore/parallel/_offload_context.py +185 -0
  509. mindspore/parallel/_parallel_serialization.py +99 -7
  510. mindspore/parallel/_ps_context.py +9 -5
  511. mindspore/parallel/_recovery_context.py +1 -1
  512. mindspore/parallel/_tensor.py +7 -1
  513. mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
  514. mindspore/{nn/transformer → parallel/_transformer}/layers.py +6 -37
  515. mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
  516. mindspore/{nn/transformer → parallel/_transformer}/moe.py +20 -16
  517. mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
  518. mindspore/{nn/transformer → parallel/_transformer}/transformer.py +48 -111
  519. mindspore/parallel/_utils.py +1 -2
  520. mindspore/parallel/algo_parameter_config.py +1 -1
  521. mindspore/parallel/checkpoint_transform.py +37 -34
  522. mindspore/parallel/shard.py +17 -18
  523. mindspore/profiler/common/validator/validate_path.py +2 -2
  524. mindspore/profiler/envprofiling.py +69 -47
  525. mindspore/profiler/parser/ascend_timeline_generator.py +49 -42
  526. mindspore/profiler/parser/base_timeline_generator.py +49 -56
  527. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +98 -78
  528. mindspore/profiler/parser/hwts_log_parser.py +1 -1
  529. mindspore/profiler/parser/integrator.py +15 -14
  530. mindspore/profiler/parser/minddata_analyzer.py +2 -2
  531. mindspore/profiler/parser/msadvisor_analyzer.py +12 -25
  532. mindspore/profiler/parser/msadvisor_parser.py +2 -4
  533. mindspore/profiler/parser/optime_parser.py +17 -18
  534. mindspore/profiler/parser/profiler_info.py +2 -1
  535. mindspore/profiler/profiling.py +218 -186
  536. mindspore/rewrite/__init__.py +3 -1
  537. mindspore/rewrite/api/node.py +1 -114
  538. mindspore/rewrite/api/node_type.py +3 -0
  539. mindspore/rewrite/api/pattern_engine.py +31 -1
  540. mindspore/rewrite/api/scoped_value.py +4 -4
  541. mindspore/rewrite/api/symbol_tree.py +3 -78
  542. mindspore/rewrite/api/tree_node_helper.py +1 -1
  543. mindspore/rewrite/ast_creator_register.py +1 -0
  544. mindspore/rewrite/ast_helpers/__init__.py +2 -2
  545. mindspore/rewrite/ast_helpers/ast_creator.py +1 -2
  546. mindspore/rewrite/ast_helpers/ast_finder.py +65 -0
  547. mindspore/rewrite/ast_helpers/ast_modifier.py +11 -3
  548. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +18 -2
  549. mindspore/rewrite/namespace.py +0 -2
  550. mindspore/rewrite/node.py +157 -11
  551. mindspore/rewrite/parsers/assign_parser.py +231 -53
  552. mindspore/rewrite/parsers/class_def_parser.py +187 -109
  553. mindspore/rewrite/parsers/for_parser.py +24 -14
  554. mindspore/rewrite/parsers/function_def_parser.py +21 -4
  555. mindspore/rewrite/parsers/if_parser.py +6 -2
  556. mindspore/rewrite/sparsify/__init__.py +0 -0
  557. mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
  558. mindspore/rewrite/sparsify/sparsify.py +109 -0
  559. mindspore/rewrite/sparsify/utils.py +173 -0
  560. mindspore/rewrite/symbol_tree.py +256 -133
  561. mindspore/rewrite/symbol_tree_builder.py +38 -1
  562. mindspore/run_check/_check_version.py +69 -63
  563. mindspore/run_check/run_check.py +2 -1
  564. mindspore/tinyxml2.dll +0 -0
  565. mindspore/train/__init__.py +1 -1
  566. mindspore/train/_utils.py +28 -5
  567. mindspore/train/amp.py +273 -102
  568. mindspore/train/callback/_backup_and_restore.py +5 -5
  569. mindspore/train/callback/_callback.py +2 -2
  570. mindspore/train/callback/_checkpoint.py +3 -3
  571. mindspore/train/callback/_early_stop.py +3 -3
  572. mindspore/train/callback/_lambda_callback.py +2 -2
  573. mindspore/train/callback/_landscape.py +29 -31
  574. mindspore/train/callback/_loss_monitor.py +3 -3
  575. mindspore/train/callback/_on_request_exit.py +3 -3
  576. mindspore/train/callback/_reduce_lr_on_plateau.py +4 -4
  577. mindspore/train/callback/_summary_collector.py +23 -16
  578. mindspore/train/callback/_time_monitor.py +3 -3
  579. mindspore/train/checkpoint_pb2.py +68 -8
  580. mindspore/train/data_sink.py +15 -3
  581. mindspore/train/dataset_helper.py +10 -15
  582. mindspore/train/loss_scale_manager.py +8 -11
  583. mindspore/train/metrics/__init__.py +1 -1
  584. mindspore/train/metrics/bleu_score.py +1 -1
  585. mindspore/train/metrics/confusion_matrix.py +1 -1
  586. mindspore/train/metrics/cosine_similarity.py +1 -1
  587. mindspore/train/metrics/dice.py +2 -2
  588. mindspore/train/metrics/fbeta.py +1 -1
  589. mindspore/train/metrics/hausdorff_distance.py +4 -3
  590. mindspore/train/metrics/mean_surface_distance.py +2 -2
  591. mindspore/train/metrics/occlusion_sensitivity.py +1 -1
  592. mindspore/train/metrics/perplexity.py +1 -1
  593. mindspore/train/metrics/precision.py +1 -1
  594. mindspore/train/metrics/recall.py +1 -1
  595. mindspore/train/metrics/roc.py +2 -2
  596. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  597. mindspore/train/mind_ir_pb2.py +116 -37
  598. mindspore/train/model.py +45 -28
  599. mindspore/train/serialization.py +295 -188
  600. mindspore/train/summary/_summary_adapter.py +1 -1
  601. mindspore/train/summary/summary_record.py +43 -13
  602. mindspore/train/train_thor/convert_utils.py +2 -2
  603. mindspore/train/train_thor/dataset_helper.py +3 -3
  604. mindspore/turbojpeg.dll +0 -0
  605. mindspore/version.py +1 -1
  606. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +3 -2
  607. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +610 -541
  608. mindspore/compression/__init__.py +0 -19
  609. mindspore/compression/common/constant.py +0 -124
  610. mindspore/compression/export/__init__.py +0 -19
  611. mindspore/compression/export/quant_export.py +0 -515
  612. mindspore/compression/quant/__init__.py +0 -28
  613. mindspore/compression/quant/qat.py +0 -634
  614. mindspore/compression/quant/quant_utils.py +0 -462
  615. mindspore/compression/quant/quantizer.py +0 -68
  616. mindspore/nn/layer/quant.py +0 -1868
  617. mindspore/nn/layer/rnn_utils.py +0 -90
  618. mindspore/nn/probability/dpn/__init__.py +0 -22
  619. mindspore/nn/probability/dpn/vae/__init__.py +0 -25
  620. mindspore/nn/probability/dpn/vae/cvae.py +0 -140
  621. mindspore/nn/probability/dpn/vae/vae.py +0 -124
  622. mindspore/nn/probability/infer/__init__.py +0 -22
  623. mindspore/nn/probability/infer/variational/elbo.py +0 -70
  624. mindspore/nn/probability/infer/variational/svi.py +0 -84
  625. mindspore/nn/probability/toolbox/__init__.py +0 -22
  626. mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
  627. mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -364
  628. mindspore/nn/probability/transforms/__init__.py +0 -22
  629. mindspore/nn/probability/transforms/transform_bnn.py +0 -262
  630. mindspore/nn/probability/zhusuan/__init__.py +0 -18
  631. mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
  632. mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
  633. mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
  634. mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
  635. mindspore/ops/_op_impl/aicpu/parallel_concat.py +0 -42
  636. mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
  637. mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -19
  638. mindspore/ops/bprop_mindir/Cast_bprop.mindir +0 -19
  639. mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -19
  640. mindspore/ops/bprop_mindir/MatMul_bprop.mindir +0 -0
  641. mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -17
  642. mindspore/ops/bprop_mindir/Transpose_bprop.mindir +0 -0
  643. mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -15
  644. mindspore/ops/composite/array_ops.py +0 -241
  645. mindspore/ops/composite/clip_ops.py +0 -134
  646. mindspore/ops/composite/random_ops.py +0 -426
  647. mindspore/ops/composite/vmap_ops.py +0 -38
  648. mindspore/parallel/nn/__init__.py +0 -42
  649. mindspore/parallel/nn/loss.py +0 -22
  650. mindspore/parallel/nn/moe.py +0 -21
  651. mindspore/parallel/nn/op_parallel_config.py +0 -22
  652. mindspore/parallel/nn/transformer.py +0 -31
  653. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
  654. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
  655. {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -16,53 +16,63 @@
16
16
  import json
17
17
  import os
18
18
  import time
19
- from enum import Enum
20
19
  from mindspore.profiler import Profiler
21
- from mindspore.profiler.profiling import AICORE_METRICS_DICT
20
+ from mindspore.profiler.profiling import AICORE_METRICS_DICT, DeviceSupportParam, ALWAYS_VALID_PARAM
22
21
  from mindspore.profiler.common.validator.validate_path import validate_and_normalize_path
23
22
  from mindspore.profiler.parser.integrator import DeviceTarget
24
23
 
25
24
  from mindspore import log as logger, context
26
25
 
27
26
 
28
- class DeviceSupportParam(Enum):
29
- """The device target enum."""
30
- CPU = ['start', 'output_path']
31
- GPU = ['start', 'output_path', 'data_process', 'timeline_limit', 'sync_enable']
32
- ASCEND = ['start', 'output_path', 'data_process', 'timeline_limit', 'profile_memory', 'parallel_strategy',
33
- 'profile_communication', 'aicore_metrics', 'l2_cache']
34
-
35
-
36
27
  def get_profiling_options():
37
28
  """Get profiling options."""
38
29
  try:
39
30
  options = json.loads(os.environ.get("MS_PROFILER_OPTIONS", "{}"))
40
31
  except json.JSONDecodeError:
41
- return None
32
+ return {"error": True}
42
33
  return options
43
34
 
44
35
 
45
- def parse_device_support_param(options):
36
+ def parse_device_support_param(origin_options, final_options, factor_s_to_us=1e6):
46
37
  """Parse platform support parameters."""
47
38
  device_target = context.get_context("device_target").upper()
48
- for param in options.keys():
49
- if param not in DeviceSupportParam.__getattr__(f'{device_target}').value:
50
- logger.warning(f"The parameter '{param}' is not supported on {device_target} currently.")
39
+ op_time = final_options.get("op_time")
40
+ support_list = DeviceSupportParam.__getattr__(f'{device_target}').value
41
+ all_param = list(set(origin_options) | set(final_options))
42
+ for param in all_param:
43
+ if param not in support_list and param in list(origin_options.keys()):
44
+ logger.warning(f"[Profiler]'{param}' is an invalid param which doesn't work.")
45
+ if param in support_list:
46
+ if not op_time and param in origin_options.keys() and param not in ALWAYS_VALID_PARAM:
47
+ logger.warning(f"When op_time is set to False, the parameter '{param}' setting is invalid.")
48
+ if param not in support_list and final_options.get(param):
49
+ final_options.pop(param)
50
+
51
+ simple_options = {
52
+ "start_time": int(time.time() * factor_s_to_us),
53
+ "file_output_path": "",
54
+ "pid": os.getpid(),
55
+ }
56
+ final_options.update(simple_options)
57
+ return final_options
51
58
 
52
59
 
53
60
  def construct_profiling_options():
54
61
  """Construct profiling options to determine which profiling data should be collected."""
55
62
  profiling_options = get_profiling_options()
56
- if profiling_options is None:
57
- raise RuntimeError(
63
+ if profiling_options.get('error'):
64
+ error_config = {"start": False}
65
+ if os.getenv("MS_PROFILER_RUN_CONFIG"):
66
+ return error_config
67
+ os.environ["MS_PROFILER_RUN_CONFIG"] = json.dumps(error_config)
68
+ logger.error(
58
69
  "The format of MS_PROFILER_OPTIONS is incorrect. "
59
70
  "The MS_PROFILER_OPTIONS parameter configuration may refer to "
60
71
  "'https://www.mindspore.cn/mindinsight/docs/zh-CN/master/performance_profiling_ascend.html'."
61
72
  )
62
- options = combine_profile_options(profiling_options)
63
- conbine_options = parse_profiling_args(options)
73
+ return error_config
74
+ conbine_options = combine_profile_options(profiling_options)
64
75
  if conbine_options.get("start"):
65
- parse_device_support_param(profiling_options)
66
76
  output_path = conbine_options.get("output_path")
67
77
  if not output_path:
68
78
  output_path = os.path.join(os.getcwd(), "data")
@@ -87,11 +97,20 @@ def parse_pubilc_args(options):
87
97
  "The 'data_process' parameter of the environment variable MS_PROFILE_OPTIONS must be bool,"
88
98
  f" but got type {type(options.get('data_process'))}, it will be set to true.")
89
99
  options["data_process"] = True
90
- if not isinstance(options.get("timeline_limit"), int):
100
+ if not isinstance(options.get("op_time"), bool):
101
+ logger.warning(
102
+ "The 'op_time' parameter of the environment variable MS_PROFILE_OPTIONS must be bool,"
103
+ f" but got type {type(options.get('op_time'))}, it will be set to true.")
104
+ options["op_time"] = True
105
+ if isinstance(options.get("timeline_limit"), bool) or not isinstance(options.get("timeline_limit"), int):
91
106
  logger.warning(
92
107
  "The 'timeline_limit' parameter of the environment variable MS_PROFILE_OPTIONS must be int,"
93
108
  f" but got type {type(options.get('timeline_limit'))}, it will be set to 500.")
94
109
  options["timeline_limit"] = 500
110
+ if options.get('timeline_limit') <= 0:
111
+ logger.warning(
112
+ "The 'timeline_limit' parameter of the environment variable MS_PROFILE_OPTIONS must be greater than 0.")
113
+ options["timeline_limit"] = 500
95
114
  absolute_path = os.path.join(os.getcwd(), "data")
96
115
  if not isinstance(options.get("output_path"), str):
97
116
  logger.warning(
@@ -160,28 +179,25 @@ def parse_profiling_args(options):
160
179
 
161
180
  def combine_profile_options(profiling_options):
162
181
  """Combined profiling options."""
163
- factor_s_to_us = 1e7
164
182
  output_path = os.path.join(os.getcwd(), "data")
165
- if context.get_context("device_target").upper() == "GPU":
166
- sync_enable = profiling_options.get("sync_enable", True)
167
- else:
168
- sync_enable = profiling_options.get("sync_enable", False)
169
- options = {
183
+ config_options = {
170
184
  "start": profiling_options.get('start', False),
171
- "start_time": int(time.time() * factor_s_to_us),
172
- "pid": os.getpid(),
173
185
  "output_path": profiling_options.get('output_path', output_path),
174
- "file_output_path": "",
175
186
  "profile_memory": profiling_options.get("profile_memory", False),
176
187
  "profile_communication": profiling_options.get("profile_communication", False),
177
188
  "aicore_metrics": profiling_options.get("aicore_metrics", 0),
178
189
  "l2_cache": profiling_options.get("l2_cache", False),
179
- "sync_enable": sync_enable,
190
+ "sync_enable": profiling_options.get("sync_enable", True),
180
191
  "data_process": profiling_options.get("data_process", True),
181
192
  "timeline_limit": profiling_options.get("timeline_limit", 500),
182
193
  "parallel_strategy": profiling_options.get("parallel_strategy", True),
194
+ 'op_time': profiling_options.get("op_time", True)
183
195
  }
184
- return options
196
+ combine_options = parse_profiling_args(config_options)
197
+ if combine_options.get("start"):
198
+ final_options = parse_device_support_param(profiling_options, combine_options)
199
+ return final_options
200
+ return combine_options
185
201
 
186
202
 
187
203
  class EnvProfiler:
@@ -190,17 +206,22 @@ class EnvProfiler:
190
206
  def __init__(self):
191
207
  self._profiling_options = {}
192
208
 
193
- def analyse(self):
194
- """Determine whether to stop collecting and parsing performance data based on environment variables."""
209
+ def need_analyse(self):
210
+ """Determine whether the data needs to be parsed."""
195
211
  if not os.getenv("MS_PROFILER_OPTIONS"):
196
- return
212
+ return False
197
213
  self._profiling_options = json.loads(os.getenv("MS_PROFILER_RUN_CONFIG", "{}"))
198
214
  if not self._profiling_options.get("pid", 0) == os.getpid():
199
- return
215
+ return False
200
216
  if not self._profiling_options.get("start"):
201
- return
202
- profiler = Profiler(env_enable=self._profiling_options)
203
- profiler.analyse()
217
+ return False
218
+ return True
219
+
220
+ def analyse(self):
221
+ """Determine whether to stop collecting and parsing performance data based on environment variables."""
222
+ if self.need_analyse():
223
+ profiler = Profiler(env_enable=self._profiling_options)
224
+ profiler.analyse()
204
225
 
205
226
 
206
227
  def profiler_check_env():
@@ -214,14 +235,15 @@ def profiler_check_env():
214
235
  if not config.get("start"):
215
236
  return
216
237
  Profiler(output_path=config.get("output_path"),
217
- profile_memory=config.get("profile_memory"),
218
- profile_communication=config.get("profile_communication"),
219
- data_process=config.get("data_process"),
220
- parallel_strategy=config.get("parallel_strategy"),
221
- aicore_metrics=config.get("aicore_metrics"),
222
- l2_cache=config.get("l2_cache"),
223
- sync_enable=config.get("sync_enable"),
224
- timeline_limit=config.get("timeline_limit"))
238
+ profile_memory=config.get("profile_memory", False),
239
+ profile_communication=config.get("profile_communication", False),
240
+ data_process=config.get("data_process", False),
241
+ parallel_strategy=config.get("parallel_strategy", False),
242
+ aicore_metrics=config.get("aicore_metrics", 0),
243
+ l2_cache=config.get("l2_cache", False),
244
+ sync_enable=config.get("sync_enable", False),
245
+ op_time=config.get("op_time", False),
246
+ timeline_limit=config.get("timeline_limit", 500))
225
247
 
226
248
 
227
249
  profiler_check_env()
@@ -65,8 +65,7 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
65
65
 
66
66
  logger.info('Initiating timeline...')
67
67
  timeline_list = []
68
- op_timeline_list = self._get_op_timeline(communication_info, source_path)
69
- timeline_list.extend(op_timeline_list)
68
+ timeline_list.extend(self._get_op_timeline(communication_info, source_path))
70
69
 
71
70
  # Generate step time.
72
71
  self._set_step_start_and_end_op_name(timeline_list)
@@ -116,10 +115,9 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
116
115
  self._format_meta_data_list.extend(self._timeline_meta)
117
116
  self._timeline_meta = self._format_meta_data_list
118
117
  # Get framework metadata.
119
- framework_obj_list = framework_info.get('object')
120
118
  # The length of list is the number of operators.
121
- self._timeline_summary['num_of_ops'] += len(framework_obj_list)
122
- self._add_framework_info(framework_obj_list)
119
+ self._timeline_summary['num_of_ops'] += len(framework_info.get('object'))
120
+ self._add_framework_info(framework_info.get('object'))
123
121
  logger.info('Finished adding info into timeline...')
124
122
 
125
123
  # Update timeline summary info
@@ -212,28 +210,24 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
212
210
 
213
211
  try:
214
212
  with open(host_start_file_path) as f_obj:
215
- lines = f_obj.readlines()
216
- # lines[2] stores host monotonic_raw time of start training.
217
- host_monotonic = int(lines[2].strip().split(':')[1])
213
+ # f_obj.readlines()[2] stores host monotonic_raw time of start training.
214
+ host_monotonic = int(f_obj.readlines()[2].strip().split(':')[1])
218
215
  except (IOError, OSError) as err:
219
216
  logger.critical('Error occurred when read host_start.log: %s', err)
220
217
  raise ProfilerIOException()
221
218
  try:
222
219
  with open(dev_start_file_path) as f_obj:
223
- lines = f_obj.readlines()
224
- # lines[2] stores device cycle counter of start training.
225
- dev_cntvct = int(lines[2].strip().split(':')[1])
220
+ # f_obj.readlines()[2] stores device cycle counter of start training.
221
+ dev_cntvct = int(f_obj.readlines()[2].strip().split(':')[1])
226
222
  except (IOError, OSError) as err:
227
223
  logger.critical('Error occurred when read dev_start.log: %s', err)
228
224
  raise ProfilerIOException()
229
225
 
230
- factor_ns_to_ms = 1e-6
231
- factor_ten_ns_to_ns = 10
232
- factor_ms_to_ns = 1e6
226
+ factor = {"factor_ns_to_ms": 1e-6, "factor_ten_ns_to_ns": 10, "factor_ms_to_ns": 1e6}
233
227
  for idx, time_item in enumerate(timeline_list):
234
- host_time = int(float(time_item[self._start_time_idx]) * factor_ms_to_ns)
235
- device_time = dev_cntvct * factor_ten_ns_to_ns + (host_time - host_monotonic)
236
- timeline_list[idx][self._start_time_idx] = device_time * factor_ns_to_ms
228
+ host_time = int(float(time_item[self._start_time_idx]) * factor.get("factor_ms_to_ns"))
229
+ device_time = dev_cntvct * factor.get("factor_ten_ns_to_ns") + (host_time - host_monotonic)
230
+ timeline_list[idx][self._start_time_idx] = device_time * factor.get("factor_ns_to_ms")
237
231
 
238
232
  def _add_framework_info(self, framework_obj_list):
239
233
  """
@@ -297,30 +291,33 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
297
291
  that communication inside each stage slow down the training.
298
292
  """
299
293
  is_pipeline_parallel = False
300
- comm_merged_timeline, _, comm_display_timeline = self._get_merged_time_list(
294
+ time_info = {"receive_op_not_overlapped_timeline": [], "collective_comm_not_overlapped_timeline": [],
295
+ "comm_not_overlapped_timeline": []}
296
+ comm_timeline = self._get_merged_time_list(
301
297
  comm_info, display_name="communication"
302
298
  )
303
- aicore_timeline_interval, _, aicore_display_timeline = self._get_merged_time_list(
299
+ aicore_timeline = self._get_merged_time_list(
304
300
  aicore_info, get_interval_time=True
305
301
  )
306
302
  # Consider if the overlap will be 0 or not.
307
- comm_not_overlapped_timeline = self._get_intersection_time(
308
- aicore_timeline_interval, comm_merged_timeline
303
+ time_info["comm_not_overlapped_timeline"] = self._get_intersection_time(
304
+ aicore_timeline[0], comm_timeline[0]
309
305
  )
310
306
 
311
307
  # Process receive part.
312
308
  all_timeline = aicore_info + comm_info
313
309
  all_timeline.sort(key=lambda x: float(x[self._start_time_idx]))
314
- receive_op_timeline, timeline_exclude_receive_op = self._produce_two_separated_timeline(
310
+ receive_timeline = self._produce_two_separated_timeline(
315
311
  all_timeline, "Receive-op"
316
312
  )
317
- if receive_op_timeline:
313
+ if receive_timeline[0]:
318
314
  is_pipeline_parallel = True
319
- receive_op_merged_timeline = self._get_merged_time_list(receive_op_timeline)[0]
315
+ receive_op_merged_timeline = self._get_merged_time_list(receive_timeline[0])[0]
320
316
  timeline_exclude_receive_op_interval = self._get_merged_time_list(
321
- timeline_exclude_receive_op, get_interval_time=True
317
+ receive_timeline[1], get_interval_time=True
322
318
  )[0]
323
- receive_op_not_overlapped_timeline = self._get_intersection_time(
319
+
320
+ time_info["receive_op_not_overlapped_timeline"] = self._get_intersection_time(
324
321
  timeline_exclude_receive_op_interval, receive_op_merged_timeline
325
322
  )
326
323
 
@@ -328,9 +325,9 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
328
325
  collective_comm_timeline = self._produce_two_separated_timeline(
329
326
  comm_info, "Receive-op"
330
327
  )[-1]
331
- collective_comm_merged_timeline = self._get_merged_time_list(collective_comm_timeline)[0]
332
- collective_comm_not_overlapped_timeline = self._get_intersection_time(
333
- aicore_timeline_interval, collective_comm_merged_timeline
328
+
329
+ time_info["collective_comm_not_overlapped_timeline"] = self._get_intersection_time(
330
+ aicore_timeline[0], self._get_merged_time_list(collective_comm_timeline)[0]
334
331
  )
335
332
 
336
333
  # Generate free time that exclude computation and communication time.
@@ -338,41 +335,51 @@ class AscendTimelineGenerator(BaseTimelineGenerator):
338
335
  all_timeline, get_interval_time=True, display_name="free_time"
339
336
  )[1]
340
337
 
341
- self._parse_cluster_metrices(step_info, receive_op_not_overlapped_timeline, comm_not_overlapped_timeline
342
- , collective_comm_not_overlapped_timeline, is_pipeline_parallel)
338
+ self._parse_cluster_metrices(step_info, time_info.get("receive_op_not_overlapped_timeline"),
339
+ time_info.get("comm_not_overlapped_timeline"),
340
+ time_info.get("collective_comm_not_overlapped_timeline"), is_pipeline_parallel)
343
341
 
344
342
  res_timeline = []
345
- res_timeline.extend(comm_not_overlapped_timeline)
346
- res_timeline.extend(aicore_display_timeline)
347
- res_timeline.extend(comm_display_timeline)
343
+ res_timeline.extend(time_info.get("comm_not_overlapped_timeline"))
344
+ res_timeline.extend(aicore_timeline[2])
345
+ res_timeline.extend(comm_timeline[2])
348
346
  res_timeline.extend(free_timeline)
349
347
 
350
348
  return res_timeline
351
349
 
352
- def _parse_cluster_metrices(self, step_info, receive_op_not_overlapped_timeline, comm_not_overlapped_timeline
353
- , collective_comm_not_overlapped_timeline, is_pipeline_parallel):
350
+ def _parse_cluster_metrices(self, step_info, receive_op_not_overlapped_timeline, comm_not_overlapped_timeline,
351
+ collective_comm_not_overlapped_timeline, is_pipeline_parallel):
354
352
  """Write the cluster metrices"""
355
- step_num = len(step_info)
356
353
  # Compute these five metrics mentioned above per step.
357
354
  recieve_alone_time = self._compute_time_inside_step(receive_op_not_overlapped_timeline, step_info)
358
- stage_time, computation_time = [], []
355
+ time_info = {"stage_time": [], "computation_time": []}
359
356
  comm_alone_time = self._compute_time_inside_step(comm_not_overlapped_timeline, step_info)
360
357
  collective_comm_alone_time = self._compute_time_inside_step(
361
358
  collective_comm_not_overlapped_timeline, step_info
362
359
  )
360
+ step_num = len(step_info)
363
361
  for step in range(step_num):
364
362
  try:
365
363
  if is_pipeline_parallel:
366
- stage_time.append(step_info[step][self._duration_idx] - recieve_alone_time[step])
367
- computation_time.append(step_info[step][self._duration_idx] - comm_alone_time[step])
364
+ time_info.get("stage_time").append(step_info[step][self._duration_idx] - recieve_alone_time[step])
368
365
  except IndexError as err:
369
366
  logger.error(err)
370
- metrices_per_step_list = [computation_time, comm_alone_time, stage_time,
367
+
368
+ try:
369
+ time_info.get("computation_time").append(step_info[step][self._duration_idx] - comm_alone_time[step])
370
+ except IndexError as err:
371
+ logger.error(err)
372
+
373
+ metrices_per_step_list = [time_info.get("computation_time"), comm_alone_time, time_info.get("stage_time"),
371
374
  recieve_alone_time, collective_comm_alone_time]
372
375
  if step_num > 1:
373
376
  for metric in metrices_per_step_list:
374
377
  metric.append(sum(metric[1:]) / (step_num - 1))
375
- self._write_cluster_metrices(metrices_per_step_list, is_pipeline_parallel, "Ascend", self._rank_id)
378
+ try:
379
+ self._write_cluster_metrices(metrices_per_step_list, is_pipeline_parallel, "Ascend", self._rank_id)
380
+ except (IOError, OSError) as err:
381
+ logger.warning(err)
382
+ raise ProfilerIOException
376
383
 
377
384
  def _compute_time_inside_step(self, metric_timeline, step_time_list):
378
385
  """Compute per step time of metric_timeline."""
@@ -107,8 +107,8 @@ class BaseTimelineGenerator:
107
107
  def get_parallel_context():
108
108
  """Get parallel context."""
109
109
  try:
110
- parallel_mode = get_auto_parallel_context("parallel_mode")
111
- stage_num = get_auto_parallel_context("pipeline_stages")
110
+ parallel_mode, stage_num = get_auto_parallel_context("parallel_mode"), get_auto_parallel_context(
111
+ "pipeline_stages")
112
112
  except RuntimeError:
113
113
  logger.warning("[profiler] the feature of cluster bottleneck analyse "
114
114
  "is not supported in offline parse mode.")
@@ -231,10 +231,11 @@ class BaseTimelineGenerator:
231
231
  with os.fdopen(os.open(timeline_summary_file_path,
232
232
  os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o660), 'w') as json_file:
233
233
  json.dump(self._timeline_summary, json_file)
234
- os.chmod(timeline_summary_file_path, stat.S_IREAD | stat.S_IWRITE)
235
234
  except (IOError, OSError) as err:
236
235
  logger.critical('Error occurred when write timeline summary file: %s', err)
237
236
  raise ProfilerIOException()
237
+ if os.path.exists(timeline_summary_file_path):
238
+ os.chmod(timeline_summary_file_path, stat.S_IREAD | stat.S_IWRITE)
238
239
 
239
240
  def _get_device_process_label(self):
240
241
  """Get device process label."""
@@ -274,27 +275,27 @@ class BaseTimelineGenerator:
274
275
  )
275
276
 
276
277
  # merged_display_list data used for ui page.
277
- merged_display_list = [
278
- [display_name, tid, time_merged_segment_list[i * 2],
279
- (time_merged_segment_list[i * 2 + 1] - time_merged_segment_list[i * 2]) * factor, pid] for i in \
280
- range(len(time_merged_segment_list) // 2)
281
- ]
278
+ merged_display_list = []
279
+ for i in range(len(time_merged_segment_list) // 2):
280
+ merged_display_list.append([display_name, tid, time_merged_segment_list[i * 2],
281
+ (time_merged_segment_list[i * 2 + 1] - time_merged_segment_list[
282
+ i * 2]) * factor, pid])
282
283
 
283
284
  if get_interval_time:
284
285
  time_merged_segment_list = time_merged_segment_list[1:-1]
285
286
 
286
287
  # merged_res_list data used to compute overlap with other time_list.
287
- merged_res_list = [
288
- [display_name, tid, time_merged_segment_list[i * 2], time_merged_segment_list[i * 2 + 1], pid] for i in \
289
- range(len(time_merged_segment_list) // 2)
290
- ]
288
+ merged_res_list = []
289
+ for i in range(len(time_merged_segment_list) // 2):
290
+ merged_res_list.append(
291
+ [display_name, tid, time_merged_segment_list[i * 2], time_merged_segment_list[i * 2 + 1], pid])
291
292
 
292
293
  # interval_display_list is interval time used for ui page.
293
- interval_display_list = [
294
- [display_name, tid, time_merged_segment_list[i * 2],
295
- (time_merged_segment_list[i * 2 + 1] - time_merged_segment_list[i * 2]) * factor, pid]
296
- for i in range(len(time_merged_segment_list) // 2)
297
- ]
294
+ interval_display_list = []
295
+ for i in range(len(time_merged_segment_list) // 2):
296
+ interval_display_list.append([display_name, tid, time_merged_segment_list[i * 2],
297
+ (time_merged_segment_list[i * 2 + 1] - time_merged_segment_list[
298
+ i * 2]) * factor, pid])
298
299
 
299
300
  return merged_res_list, interval_display_list, merged_display_list
300
301
 
@@ -327,17 +328,16 @@ class BaseTimelineGenerator:
327
328
 
328
329
  thread_name_meta_data["tid"] = tid
329
330
  thread_name_meta_data.get("args")["name"] = tid_name
330
- thread_sort_meta_data = thread_name_meta_data.copy()
331
- thread_sort_meta_data['name'] = "thread_sort_index"
332
- thread_sort_meta_data["args"] = {"sort_index": sort_index}
331
+ self._format_meta_data_list.append(thread_name_meta_data)
332
+
333
+ thread_name_meta_data['name'] = "thread_sort_index"
334
+ thread_name_meta_data["args"] = {"sort_index": sort_index}
335
+ self._format_meta_data_list.append(thread_name_meta_data)
333
336
  timeline_dict["tid"] = tid
334
337
 
335
338
  if tid_name in self._thread_processed_list:
336
339
  return
337
-
338
340
  self._thread_processed_list.append(tid_name)
339
- self._format_meta_data_list.append(thread_name_meta_data)
340
- self._format_meta_data_list.append(thread_sort_meta_data)
341
341
 
342
342
  def _get_max_scope_name_num(self, timeline_list):
343
343
  """Get the max number of scope level from all operator."""
@@ -354,12 +354,11 @@ class BaseTimelineGenerator:
354
354
  # start and end index of time_item in timeline_list.
355
355
  scope_name_start_duration_dict = {}
356
356
  scope_name_time_list = []
357
- op_full_name_idx, scope_name_idx, invalid_idx = 0, 0, -1
358
- tid = "Scope Name"
357
+ sort_idx = {"op_full_name_idx": 0, "scope_name_idx": 0, "invalid_idx": -1}
359
358
  for idx, time_item in enumerate(timeline_list):
360
- scope_name_list = time_item[op_full_name_idx].split('/')[:-1]
359
+ scope_name_list = time_item[sort_idx.get("op_full_name_idx")].split('/')[:-1]
361
360
  # skip Default/InitDataSetQueue operator.
362
- if time_item[op_full_name_idx].startswith("Default/InitDataSetQueue"):
361
+ if time_item[sort_idx.get("op_full_name_idx")].startswith("Default/InitDataSetQueue"):
363
362
  scope_name_list = []
364
363
  # process scope name of subgraph(Default/Gradients/recompute_Default) only.
365
364
  if scope_name_list and scope_name_list[0] != subgraph:
@@ -370,34 +369,32 @@ class BaseTimelineGenerator:
370
369
 
371
370
  # update the start and end index of time_item according to current scope_name
372
371
  for scope_name in scope_name_list:
373
- init_start_end_idx_dict = {'start_item_idx': idx, 'end_item_idx': idx}
374
372
  if scope_name not in scope_name_start_duration_dict:
375
- scope_name_start_duration_dict[scope_name] = init_start_end_idx_dict
376
- if scope_name_start_duration_dict.get(scope_name)['start_item_idx'] == invalid_idx:
377
- scope_name_start_duration_dict[scope_name] = init_start_end_idx_dict
373
+ scope_name_start_duration_dict[scope_name] = {'start_item_idx': idx, 'end_item_idx': idx}
374
+ if scope_name_start_duration_dict.get(scope_name)['start_item_idx'] == sort_idx.get("invalid_idx"):
375
+ scope_name_start_duration_dict[scope_name] = {'start_item_idx': idx, 'end_item_idx': idx}
378
376
  else:
379
377
  scope_name_start_duration_dict.get(scope_name)['end_item_idx'] = idx
380
378
  # if the key(scope name) in scope_name_start_duration_dict does not appear in scope_name_list,
381
379
  # it means this key(scope name) is end and it is append to scope_name_time_list.
382
380
  for key, val in scope_name_start_duration_dict.items():
383
- if val['start_item_idx'] == invalid_idx:
381
+ if val['start_item_idx'] == sort_idx.get("invalid_idx"):
384
382
  continue
385
383
  if (key not in scope_name_list) \
386
384
  or idx == (len(timeline_list) - 1) \
387
- or time_item[op_full_name_idx] == self._step_end_op_name:
385
+ or time_item[sort_idx.get("op_full_name_idx")] == self._step_end_op_name:
388
386
  start_time = timeline_list[val['start_item_idx']][self._start_time_idx]
389
387
  duration = (float(timeline_list[val['end_item_idx']][self._start_time_idx]) - float(start_time)) * \
390
388
  factor_start_time_to_duration + \
391
389
  float(timeline_list[val['end_item_idx']][self._duration_idx])
392
- scope_name_time_item = [key, tid, start_time, duration]
393
- scope_name_time_list.append(scope_name_time_item)
394
- scope_name_start_duration_dict.get(key)['start_item_idx'] = invalid_idx
390
+ scope_name_time_list.append([key, "Scope Name", start_time, duration])
391
+ scope_name_start_duration_dict.get(key)['start_item_idx'] = sort_idx.get("invalid_idx")
395
392
 
396
393
  # x[scope_name_idx] is a scope name like "0-Default".
397
394
  # if two element in scope_name_time_list have the same start time,
398
395
  # the previous element in list will displayed at the higher line in UI page.
399
396
  scope_name_time_list.sort(
400
- key=lambda x: (float(x[self._start_time_idx]), int(x[scope_name_idx].split('-')[0]))
397
+ key=lambda x: (float(x[self._start_time_idx]), int(x[sort_idx.get("scope_name_idx")].split('-')[0]))
401
398
  )
402
399
 
403
400
  return scope_name_time_list
@@ -451,25 +448,21 @@ class BaseTimelineGenerator:
451
448
  )
452
449
  cluster_analyse_file_path = validate_and_normalize_path(cluster_analyse_file_path)
453
450
 
454
- try:
455
- with os.fdopen(os.open(cluster_analyse_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o660),
456
- 'w') as file_handle:
457
- csv_writer = csv.writer(file_handle)
458
- if is_pipeline_parallel:
459
- header = ['computation_time', 'communication_alone_time', 'stage_time',
460
- 'receive_alone_time', 'collective_communication_alone_time']
461
- zip_metrices = zip(metrices[0], metrices[1], metrices[2], metrices[3], metrices[4])
462
- else:
463
- header = ['computation_time', 'communication_alone_time']
464
- zip_metrices = zip(metrices[0], metrices[1])
465
- csv_writer.writerow(header)
466
- for row_data in zip_metrices:
467
- row_data = [round(val / unit, time_decimal_digits) for val in row_data]
468
- csv_writer.writerow(row_data)
469
- os.chmod(cluster_analyse_file_path, stat.S_IREAD | stat.S_IWRITE)
470
- except (IOError, OSError) as err:
471
- logger.warning(f'Failed to save {cluster_analyse_file_path}. {err}')
472
- raise ProfilerIOException
451
+ with os.fdopen(os.open(cluster_analyse_file_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0o660),
452
+ 'w') as file_handle:
453
+ csv_writer = csv.writer(file_handle)
454
+ if is_pipeline_parallel:
455
+ header = ['computation_time', 'communication_alone_time', 'stage_time',
456
+ 'receive_alone_time', 'collective_communication_alone_time']
457
+ zip_metrices = zip(metrices[0], metrices[1], metrices[2], metrices[3], metrices[4])
458
+ else:
459
+ header = ['computation_time', 'communication_alone_time']
460
+ zip_metrices = zip(metrices[0], metrices[1])
461
+ csv_writer.writerow(header)
462
+ for row_data in zip_metrices:
463
+ row_data = [round(val / unit, time_decimal_digits) for val in row_data]
464
+ csv_writer.writerow(row_data)
465
+ os.chmod(cluster_analyse_file_path, stat.S_IREAD | stat.S_IWRITE)
473
466
 
474
467
  def _register_op_name(self, timeline_list):
475
468
  """Register op name to op name list."""