mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.0__cp38-cp38-manylinux1_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (550) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +49 -16
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  20. mindspore/_akg/akg/utils/kernel_exec.py +58 -260
  21. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  22. mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
  23. mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
  24. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  25. mindspore/_c_mindrecord.cpython-38-x86_64-linux-gnu.so +0 -0
  26. mindspore/_check_jit_forbidden_api.py +3 -1
  27. mindspore/_checkparam.py +26 -32
  28. mindspore/_extends/graph_kernel/__init__.py +0 -1
  29. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  30. mindspore/_extends/graph_kernel/splitter.py +1 -9
  31. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  32. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
  33. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  34. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  35. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +4 -4
  36. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  37. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  38. mindspore/_extends/parse/__init__.py +12 -15
  39. mindspore/_extends/parse/namespace.py +7 -33
  40. mindspore/_extends/parse/parser.py +61 -71
  41. mindspore/_extends/parse/resources.py +1 -1
  42. mindspore/_extends/parse/standard_method.py +72 -95
  43. mindspore/_extends/parse/trope.py +1 -1
  44. mindspore/_extends/remote/kernel_build_server.py +24 -7
  45. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  46. mindspore/_install_custom.py +43 -0
  47. mindspore/_mindspore_offline_debug.cpython-38-x86_64-linux-gnu.so +0 -0
  48. mindspore/amp.py +47 -11
  49. mindspore/bin/cache_admin +0 -0
  50. mindspore/bin/cache_server +0 -0
  51. mindspore/boost/boost.py +1 -8
  52. mindspore/boost/boost_cell_wrapper.py +3 -2
  53. mindspore/boost/grad_accumulation.py +1 -1
  54. mindspore/boost/group_loss_scale_manager.py +8 -7
  55. mindspore/common/__init__.py +5 -3
  56. mindspore/common/_jit_fallback_utils.py +6 -0
  57. mindspore/common/_register_for_adapter.py +2 -0
  58. mindspore/common/_register_for_tensor.py +2 -2
  59. mindspore/common/_stub_tensor.py +13 -0
  60. mindspore/common/_utils.py +13 -0
  61. mindspore/common/api.py +173 -258
  62. mindspore/common/auto_dynamic_shape.py +498 -0
  63. mindspore/common/dtype.py +18 -11
  64. mindspore/common/dump.py +6 -4
  65. mindspore/common/initializer.py +14 -14
  66. mindspore/common/jit_config.py +33 -15
  67. mindspore/common/lazy_inline.py +126 -7
  68. mindspore/common/mindir_util.py +101 -0
  69. mindspore/common/parameter.py +51 -41
  70. mindspore/common/seed.py +4 -4
  71. mindspore/common/sparse_tensor.py +13 -14
  72. mindspore/common/tensor.py +240 -145
  73. mindspore/communication/__init__.py +7 -4
  74. mindspore/communication/_comm_helper.py +83 -4
  75. mindspore/communication/management.py +152 -84
  76. mindspore/config/op_info.config +13 -2
  77. mindspore/config/super_bar_config.json +4 -2
  78. mindspore/context.py +143 -59
  79. mindspore/dataset/__init__.py +5 -5
  80. mindspore/dataset/audio/__init__.py +2 -2
  81. mindspore/dataset/audio/transforms.py +52 -52
  82. mindspore/dataset/callback/ds_callback.py +16 -2
  83. mindspore/dataset/core/config.py +68 -51
  84. mindspore/dataset/engine/cache_client.py +28 -5
  85. mindspore/dataset/engine/datasets.py +250 -112
  86. mindspore/dataset/engine/datasets_audio.py +43 -211
  87. mindspore/dataset/engine/datasets_standard_format.py +11 -35
  88. mindspore/dataset/engine/datasets_text.py +43 -67
  89. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  90. mindspore/dataset/engine/datasets_vision.py +219 -1029
  91. mindspore/dataset/engine/iterators.py +11 -4
  92. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  93. mindspore/dataset/engine/obs/util.py +3 -0
  94. mindspore/dataset/engine/samplers.py +1 -1
  95. mindspore/dataset/engine/validators.py +19 -5
  96. mindspore/dataset/text/__init__.py +3 -3
  97. mindspore/dataset/text/transforms.py +101 -127
  98. mindspore/dataset/text/utils.py +205 -138
  99. mindspore/dataset/transforms/__init__.py +1 -1
  100. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  101. mindspore/dataset/transforms/transforms.py +95 -40
  102. mindspore/dataset/utils/browse_dataset.py +8 -2
  103. mindspore/dataset/utils/line_reader.py +17 -19
  104. mindspore/dataset/vision/__init__.py +3 -3
  105. mindspore/dataset/vision/c_transforms.py +6 -3
  106. mindspore/dataset/vision/transforms.py +409 -287
  107. mindspore/dataset/vision/utils.py +13 -14
  108. mindspore/dataset/vision/validators.py +11 -1
  109. mindspore/experimental/map_parameter.py +14 -0
  110. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  111. mindspore/{nn/optim_ex → experimental/optim}/adam.py +59 -66
  112. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  113. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  114. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  115. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  116. mindspore/gen_ops.py +273 -0
  117. mindspore/include/OWNERS +0 -1
  118. mindspore/include/api/data_type.h +2 -1
  119. mindspore/include/api/graph.h +0 -15
  120. mindspore/include/api/kernel.h +2 -0
  121. mindspore/include/api/kernel_api.h +37 -12
  122. mindspore/include/api/model.h +0 -14
  123. mindspore/include/api/types.h +37 -4
  124. mindspore/include/c_api/ms/abstract.h +67 -0
  125. mindspore/include/c_api/ms/attribute.h +197 -0
  126. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  127. mindspore/include/c_api/ms/base/macros.h +32 -0
  128. mindspore/include/c_api/ms/base/status.h +33 -0
  129. mindspore/include/c_api/ms/base/types.h +282 -0
  130. mindspore/include/c_api/ms/context.h +102 -0
  131. mindspore/include/c_api/ms/graph.h +160 -0
  132. mindspore/include/c_api/ms/node.h +606 -0
  133. mindspore/include/c_api/ms/tensor.h +161 -0
  134. mindspore/include/c_api/ms/value.h +84 -0
  135. mindspore/include/dataset/constants.h +6 -5
  136. mindspore/include/dataset/execute.h +23 -13
  137. mindspore/include/dataset/text.h +26 -26
  138. mindspore/include/dataset/transforms.h +13 -13
  139. mindspore/include/dataset/vision.h +60 -60
  140. mindspore/include/dataset/vision_ascend.h +5 -6
  141. mindspore/include/dataset/vision_lite.h +17 -17
  142. mindspore/include/mindapi/base/type_id.h +1 -0
  143. mindspore/include/mindapi/base/types.h +1 -0
  144. mindspore/lib/libdnnl.so.2 +0 -0
  145. mindspore/lib/libjemalloc.so.2 +0 -0
  146. mindspore/lib/libmindspore.so +0 -0
  147. mindspore/lib/libmindspore_backend.so +0 -0
  148. mindspore/lib/libmindspore_common.so +0 -0
  149. mindspore/lib/libmindspore_core.so +0 -0
  150. mindspore/lib/libmindspore_glog.so.0 +0 -0
  151. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  152. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  153. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  154. mindspore/lib/libmindspore_shared_lib.so +0 -0
  155. mindspore/lib/libnnacl.so +0 -0
  156. mindspore/lib/libopencv_core.so.4.5 +0 -0
  157. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  158. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  159. mindspore/lib/libps_cache.so +0 -0
  160. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  161. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  162. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +9000 -0
  163. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  164. mindspore/lib/plugin/ascend/libakg.so +0 -0
  165. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  166. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  167. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  168. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  169. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  170. mindspore/lib/plugin/cpu/libakg.so +0 -0
  171. mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
  172. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  173. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  174. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  175. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  176. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  177. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  178. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  179. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  180. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  181. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  182. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  183. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  184. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  185. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  186. mindspore/nn/__init__.py +0 -2
  187. mindspore/nn/cell.py +316 -74
  188. mindspore/nn/dynamic_lr.py +21 -21
  189. mindspore/nn/layer/activation.py +21 -28
  190. mindspore/nn/layer/basic.py +15 -13
  191. mindspore/nn/layer/channel_shuffle.py +1 -1
  192. mindspore/nn/layer/container.py +271 -9
  193. mindspore/nn/layer/conv.py +310 -207
  194. mindspore/nn/layer/dense.py +8 -5
  195. mindspore/nn/layer/embedding.py +33 -27
  196. mindspore/nn/layer/flash_attention.py +82 -41
  197. mindspore/nn/layer/image.py +8 -6
  198. mindspore/nn/layer/math.py +13 -18
  199. mindspore/nn/layer/normalization.py +107 -66
  200. mindspore/nn/layer/padding.py +1 -1
  201. mindspore/nn/layer/pooling.py +131 -109
  202. mindspore/nn/layer/rnn_cells.py +22 -17
  203. mindspore/nn/layer/rnns.py +13 -16
  204. mindspore/nn/layer/thor_layer.py +1 -1
  205. mindspore/nn/layer/transformer.py +221 -154
  206. mindspore/nn/learning_rate_schedule.py +9 -1
  207. mindspore/nn/loss/loss.py +235 -174
  208. mindspore/nn/optim/ada_grad.py +2 -1
  209. mindspore/nn/optim/adadelta.py +1 -0
  210. mindspore/nn/optim/adafactor.py +2 -1
  211. mindspore/nn/optim/adam.py +7 -4
  212. mindspore/nn/optim/adamax.py +3 -2
  213. mindspore/nn/optim/adasum.py +2 -2
  214. mindspore/nn/optim/asgd.py +2 -3
  215. mindspore/nn/optim/ftrl.py +6 -5
  216. mindspore/nn/optim/lamb.py +7 -4
  217. mindspore/nn/optim/lars.py +1 -1
  218. mindspore/nn/optim/lazyadam.py +5 -3
  219. mindspore/nn/optim/momentum.py +2 -1
  220. mindspore/nn/optim/optimizer.py +53 -4
  221. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  222. mindspore/nn/optim/rmsprop.py +4 -3
  223. mindspore/nn/optim/rprop.py +23 -12
  224. mindspore/nn/optim/sgd.py +26 -11
  225. mindspore/nn/optim/thor.py +9 -7
  226. mindspore/nn/probability/bijector/bijector.py +5 -5
  227. mindspore/nn/probability/bijector/power_transform.py +27 -27
  228. mindspore/nn/probability/bijector/softplus.py +3 -3
  229. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  230. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  231. mindspore/nn/probability/distribution/beta.py +3 -3
  232. mindspore/nn/probability/distribution/categorical.py +7 -7
  233. mindspore/nn/probability/distribution/cauchy.py +0 -1
  234. mindspore/nn/probability/distribution/distribution.py +3 -3
  235. mindspore/nn/probability/distribution/gamma.py +3 -3
  236. mindspore/nn/probability/distribution/geometric.py +4 -4
  237. mindspore/nn/probability/distribution/gumbel.py +4 -4
  238. mindspore/nn/probability/distribution/log_normal.py +2 -2
  239. mindspore/nn/probability/distribution/logistic.py +2 -2
  240. mindspore/nn/probability/distribution/poisson.py +4 -4
  241. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  242. mindspore/nn/probability/distribution/uniform.py +6 -6
  243. mindspore/nn/wrap/cell_wrapper.py +78 -34
  244. mindspore/nn/wrap/grad_reducer.py +8 -5
  245. mindspore/nn/wrap/loss_scale.py +105 -42
  246. mindspore/numpy/array_creations.py +1 -2
  247. mindspore/numpy/array_ops.py +3 -2
  248. mindspore/offline_debug/convert_async.py +2 -2
  249. mindspore/ops/_grad_experimental/__init__.py +0 -5
  250. mindspore/ops/_grad_experimental/grad_array_ops.py +1 -2
  251. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  252. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  253. mindspore/ops/_grad_experimental/grad_implementations.py +10 -0
  254. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  255. mindspore/ops/_grad_experimental/grad_math_ops.py +0 -181
  256. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  257. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  258. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  259. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  260. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  261. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  262. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  263. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  264. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  265. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  266. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  267. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  268. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  269. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  270. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  271. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  272. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  273. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  274. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  275. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  276. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  277. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  278. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  279. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  280. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  281. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  282. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  283. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  284. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  285. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  286. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  287. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  288. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  289. mindspore/ops/_primitive_cache.py +1 -1
  290. mindspore/ops/_tracefunc.py +45 -13
  291. mindspore/ops/_utils/utils.py +4 -1
  292. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  293. mindspore/ops/_vmap/vmap_base.py +3 -3
  294. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  295. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  296. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  297. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  298. mindspore/ops/arg_dtype_cast.py +54 -0
  299. mindspore/ops/composite/base.py +37 -10
  300. mindspore/ops/composite/math_ops.py +5 -4
  301. mindspore/ops/composite/multitype_ops/_compile_utils.py +273 -72
  302. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  303. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  304. mindspore/ops/composite/multitype_ops/getitem_impl.py +40 -2
  305. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  306. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  307. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  308. mindspore/ops/deprecated.py +304 -0
  309. mindspore/ops/function/__init__.py +4 -1
  310. mindspore/ops/function/array_func.py +167 -189
  311. mindspore/ops/function/clip_func.py +81 -13
  312. mindspore/ops/function/debug_func.py +1 -1
  313. mindspore/ops/function/grad/grad_func.py +18 -8
  314. mindspore/ops/function/image_func.py +10 -4
  315. mindspore/ops/function/linalg_func.py +5 -5
  316. mindspore/ops/function/math_func.py +575 -386
  317. mindspore/ops/function/nn_func.py +470 -251
  318. mindspore/ops/function/random_func.py +86 -56
  319. mindspore/ops/function/sparse_func.py +1 -1
  320. mindspore/ops/function/sparse_unary_func.py +14 -12
  321. mindspore/ops/function/vmap_func.py +6 -5
  322. mindspore/ops/functional.py +15 -10
  323. mindspore/ops/op_info_register.py +235 -19
  324. mindspore/ops/operations/__init__.py +25 -17
  325. mindspore/ops/operations/_grad_ops.py +52 -7
  326. mindspore/ops/operations/_inner_ops.py +213 -12
  327. mindspore/ops/operations/_quant_ops.py +4 -8
  328. mindspore/ops/operations/_sequence_ops.py +42 -0
  329. mindspore/ops/operations/array_ops.py +64 -280
  330. mindspore/ops/operations/comm_ops.py +105 -57
  331. mindspore/ops/operations/custom_ops.py +10 -3
  332. mindspore/ops/operations/debug_ops.py +8 -4
  333. mindspore/ops/operations/image_ops.py +18 -12
  334. mindspore/ops/operations/math_ops.py +185 -138
  335. mindspore/ops/operations/nn_ops.py +716 -492
  336. mindspore/ops/operations/other_ops.py +0 -22
  337. mindspore/ops/operations/random_ops.py +53 -111
  338. mindspore/ops/operations/sparse_ops.py +3 -1
  339. mindspore/ops/primitive.py +24 -18
  340. mindspore/parallel/_auto_parallel_context.py +68 -8
  341. mindspore/parallel/_cost_model_context.py +2 -2
  342. mindspore/parallel/_offload_context.py +17 -3
  343. mindspore/parallel/_parallel_serialization.py +2 -2
  344. mindspore/parallel/_ps_context.py +12 -0
  345. mindspore/parallel/_tensor.py +14 -12
  346. mindspore/parallel/_transformer/layers.py +5 -3
  347. mindspore/parallel/_transformer/loss.py +1 -0
  348. mindspore/parallel/_transformer/moe.py +2 -2
  349. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  350. mindspore/parallel/_transformer/transformer.py +23 -3
  351. mindspore/parallel/_utils.py +11 -7
  352. mindspore/parallel/algo_parameter_config.py +85 -5
  353. mindspore/parallel/checkpoint_transform.py +6 -10
  354. mindspore/parallel/shard.py +4 -4
  355. mindspore/profiler/common/struct_type.py +3 -3
  356. mindspore/profiler/common/util.py +3 -2
  357. mindspore/profiler/envprofiling.py +1 -1
  358. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  359. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  360. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  361. mindspore/profiler/parser/ascend_hccl_generator.py +17 -12
  362. mindspore/profiler/parser/ascend_msprof_exporter.py +104 -252
  363. mindspore/profiler/parser/ascend_msprof_generator.py +8 -8
  364. mindspore/profiler/parser/ascend_op_generator.py +5 -5
  365. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  366. mindspore/profiler/parser/ascend_timeline_generator.py +9 -6
  367. mindspore/profiler/parser/base_timeline_generator.py +9 -7
  368. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +14 -10
  369. mindspore/profiler/parser/flops_parser.py +15 -11
  370. mindspore/profiler/parser/framework_parser.py +37 -21
  371. mindspore/profiler/parser/hccl_parser.py +16 -12
  372. mindspore/profiler/parser/integrator.py +22 -11
  373. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  374. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  375. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  376. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  377. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  378. mindspore/profiler/parser/optime_parser.py +1 -1
  379. mindspore/profiler/parser/profiler_info.py +2 -2
  380. mindspore/profiler/parser/step_trace_parser.py +11 -14
  381. mindspore/profiler/profiling.py +139 -71
  382. mindspore/rewrite/api/node.py +102 -19
  383. mindspore/rewrite/api/node_type.py +5 -1
  384. mindspore/rewrite/api/scoped_value.py +9 -17
  385. mindspore/rewrite/api/symbol_tree.py +131 -47
  386. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  387. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  388. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  389. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  390. mindspore/rewrite/common/rewrite_elog.py +5 -1
  391. mindspore/rewrite/namer.py +33 -24
  392. mindspore/rewrite/namespace.py +14 -5
  393. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  394. mindspore/rewrite/node/call_function.py +79 -0
  395. mindspore/rewrite/node/cell_container.py +135 -0
  396. mindspore/rewrite/node/control_flow.py +88 -0
  397. mindspore/rewrite/{node.py → node/node.py} +273 -234
  398. mindspore/rewrite/node/node_manager.py +254 -0
  399. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  400. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  401. mindspore/rewrite/parsers/assign_parser.py +216 -221
  402. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  403. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  404. mindspore/rewrite/parsers/constant_parser.py +9 -6
  405. mindspore/rewrite/parsers/container_parser.py +9 -7
  406. mindspore/rewrite/parsers/for_parser.py +36 -15
  407. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  408. mindspore/rewrite/parsers/if_parser.py +28 -24
  409. mindspore/rewrite/parsers/module_parser.py +196 -25
  410. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  411. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  412. mindspore/rewrite/parsers/return_parser.py +6 -6
  413. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  414. mindspore/rewrite/sparsify/utils.py +1 -1
  415. mindspore/rewrite/symbol_tree.py +525 -577
  416. mindspore/rewrite/symbol_tree_builder.py +9 -193
  417. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  418. mindspore/run_check/_check_version.py +2 -2
  419. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  420. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  421. mindspore/scipy/linalg.py +1 -1
  422. mindspore/scipy/optimize/minimize.py +7 -3
  423. mindspore/train/_utils.py +7 -3
  424. mindspore/train/amp.py +323 -123
  425. mindspore/train/anf_ir_pb2.py +14 -2
  426. mindspore/train/callback/_backup_and_restore.py +2 -12
  427. mindspore/train/callback/_callback.py +29 -4
  428. mindspore/train/callback/_checkpoint.py +23 -8
  429. mindspore/train/callback/_early_stop.py +2 -2
  430. mindspore/train/callback/_landscape.py +4 -4
  431. mindspore/train/callback/_loss_monitor.py +2 -2
  432. mindspore/train/callback/_on_request_exit.py +2 -2
  433. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  434. mindspore/train/callback/_summary_collector.py +14 -7
  435. mindspore/train/callback/_time_monitor.py +58 -5
  436. mindspore/train/data_sink.py +5 -11
  437. mindspore/train/dataset_helper.py +83 -57
  438. mindspore/train/loss_scale_manager.py +2 -2
  439. mindspore/train/metrics/__init__.py +3 -3
  440. mindspore/train/metrics/cosine_similarity.py +1 -1
  441. mindspore/train/metrics/hausdorff_distance.py +3 -2
  442. mindspore/train/metrics/mean_surface_distance.py +3 -2
  443. mindspore/train/metrics/metric.py +39 -19
  444. mindspore/train/metrics/roc.py +2 -2
  445. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  446. mindspore/train/mind_ir_pb2.py +85 -36
  447. mindspore/train/model.py +185 -45
  448. mindspore/train/serialization.py +390 -150
  449. mindspore/train/summary/_writer_pool.py +3 -2
  450. mindspore/train/summary/summary_record.py +14 -10
  451. mindspore/train/train_thor/convert_utils.py +3 -3
  452. mindspore/train/train_thor/dataset_helper.py +1 -1
  453. mindspore/version.py +1 -1
  454. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/METADATA +6 -7
  455. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/RECORD +458 -518
  456. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  457. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  458. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  459. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  460. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  461. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  462. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  463. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  464. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  465. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  466. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  467. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  468. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  469. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  470. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  471. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  472. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  473. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  474. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  475. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  476. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  477. mindspore/_extends/graph_kernel/expander.py +0 -80
  478. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  479. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  480. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  481. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  482. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  483. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  484. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  485. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  486. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  487. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  488. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  489. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  490. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  491. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  492. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  493. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  494. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  495. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  496. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  497. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  498. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  499. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  500. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  501. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  502. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  503. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  504. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  505. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  506. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  507. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  508. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  509. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  510. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  511. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  512. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  513. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  514. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  515. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  516. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  517. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  518. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  519. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  520. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  521. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  522. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  523. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  524. mindspore/dataset/datapreprocess/__init__.py +0 -20
  525. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  526. mindspore/include/api/net.h +0 -142
  527. mindspore/nn/lr_scheduler.py +0 -262
  528. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  529. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  530. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  531. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  532. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  533. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  534. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  535. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  536. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  537. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  538. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  539. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  540. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  541. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  542. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  543. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  544. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  545. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  546. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  547. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  548. mindspore/rewrite/node_visitor.py +0 -44
  549. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  550. {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,498 @@
1
+ # This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
2
+ #
3
+ # Copyright 2020-2023 Huawei Technologies Co., Ltd
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ # ============================================================================
17
+ """Providing auto dynamic shape interface methods."""
18
+
19
+ import os
20
+ from mindspore import log as logger
21
+ from mindspore._c_expression import GraphExecutor_, Tensor
22
+ from mindspore.common._utils import is_shape_unknown, is_dim_unknown
23
+ from mindspore.common.parameter import Parameter
24
+
25
+ SHAPE_DIM_ANY = -1
26
+ SHAPE_RANK_ANY = -2
27
+
28
+ auto_dynamic_shepe_dict = {}
29
+
30
+ class _AutoDynamicShapeManager:
31
+ """
32
+ Represents a function to manage auto identify dynamic shape.
33
+ """
34
+ def __init__(self):
35
+ self.real_shape_cache = []
36
+ self.generalize_shape_cache = []
37
+ self.real_phase_and_compile_args_dict = {}
38
+ self.generalize_phase_and_compile_args_dict = {}
39
+ self._graph_executor = GraphExecutor_.get_instance()
40
+
41
+
42
+ def __del__(self):
43
+ self.real_shape_cache = []
44
+ self.generalize_shape_cache = []
45
+ self.real_phase_and_compile_args_dict = {}
46
+ self.generalize_phase_and_compile_args_dict = {}
47
+
48
+
49
+ @staticmethod
50
+ def is_tensor_equal(input_elem, cache_elem):
51
+ """check two tensor or param is equal"""
52
+ if input_elem.shape == cache_elem.shape and input_elem.dtype == cache_elem.dtype:
53
+ return True
54
+ return False
55
+
56
+
57
+ @staticmethod
58
+ def _get_input_generalize_number(arg_list, is_shape_input):
59
+ """check two tensor or param is equal"""
60
+ count = 0
61
+ if is_shape_input:
62
+ for arg in arg_list:
63
+ if is_shape_unknown(arg):
64
+ count = count + 1
65
+ else:
66
+ for arg in arg_list:
67
+ if isinstance(arg, Tensor) and is_shape_unknown(arg.shape):
68
+ count = count + 1
69
+ return count
70
+
71
+
72
+ def get_real_shape_cache_number(self):
73
+ """get real shape cache number"""
74
+ return len(self.real_shape_cache)
75
+
76
+
77
+ def get_real_shape_cache(self):
78
+ """get real shape cache"""
79
+ return self.real_shape_cache
80
+
81
+
82
+ def get_generalize_shape_cache_number(self):
83
+ """get generalize shape cache number"""
84
+ return len(self.generalize_shape_cache)
85
+
86
+
87
+ def get_generalize_shape_cache(self):
88
+ """get generalize shape cache"""
89
+ return self.generalize_shape_cache
90
+
91
+
92
+ def get_cache_by_type(self, cache_type):
93
+ """get cache by type"""
94
+ if cache_type == "real":
95
+ shape_cache = self.real_shape_cache
96
+ else:
97
+ shape_cache = self.generalize_shape_cache
98
+
99
+ return shape_cache
100
+
101
+
102
+ def get_compile_args_shape_without_sink(self, input_args, res_shape):
103
+ """get compile args shape with out sink mode"""
104
+ for input in input_args:
105
+ if isinstance(input, Tensor):
106
+ res_shape.append(input.shape)
107
+ elif isinstance(input, (int, float)):
108
+ res_shape.append([])
109
+ elif isinstance(input, (tuple, list)):
110
+ tmp_shape = []
111
+ self.get_compile_args_shape_without_sink(input, tmp_shape)
112
+ res_shape.append(tmp_shape)
113
+
114
+
115
+ def get_compile_args_shape(self, input_args, is_sink_mode):
116
+ """get compile args shape"""
117
+ if is_sink_mode:
118
+ return input_args
119
+
120
+ res_shape = []
121
+ self.get_compile_args_shape_without_sink(input_args, res_shape)
122
+ return res_shape
123
+
124
+
125
+ def find_compile_args_in_shape_cache(self, input_args, cache_type):
126
+ """find compile args in real or generalize shape cache"""
127
+ shape_cache = self.get_cache_by_type(cache_type)
128
+ for cache_args in shape_cache:
129
+ res = self._compare_input_args_and_cache_args(input_args, cache_args)
130
+ if res:
131
+ return True
132
+ return False
133
+
134
+
135
+ def update_phase_and_compile_args(self, compile_args, phase, save_cache_number, is_sink_mode, aux=None):
136
+ """update compile args and phase"""
137
+
138
+ if phase in self.real_phase_and_compile_args_dict:
139
+ logger.debug(f'phase=%r is in real phase and compile args dict.', phase)
140
+ return
141
+
142
+ if phase in self.generalize_phase_and_compile_args_dict:
143
+ logger.debug(f'phase=%r is in generalize phase and compile args dict.', phase)
144
+ return
145
+
146
+ if len(self.real_shape_cache) < 2:
147
+ logger.debug(f'The real shape cache number is {len(self.real_shape_cache)}, is less than 2,'
148
+ f'phase=%r should be saved in real shape cache.', phase)
149
+ self.real_phase_and_compile_args_dict[phase] = compile_args
150
+ self.real_shape_cache.append(compile_args)
151
+ return
152
+
153
+ max_save_cache_number = save_cache_number - 2
154
+
155
+ if len(self.generalize_phase_and_compile_args_dict) >= max_save_cache_number:
156
+ # step1: find delete phase
157
+ phase_list = list(self.generalize_phase_and_compile_args_dict.keys())
158
+ delete_phase = phase_list[0]
159
+ delete_compile_args = self.generalize_phase_and_compile_args_dict.get(delete_phase)
160
+
161
+ # step2: delete phase cache
162
+ if is_sink_mode:
163
+ if hasattr(aux, '__network_manage__') and delete_phase in aux.__network_manage__:
164
+ del aux.__network_manage__[delete_phase]
165
+ del self.generalize_phase_and_compile_args_dict[delete_phase]
166
+ else:
167
+ delete_cache = set()
168
+ delete_cache.add(delete_phase)
169
+ self._graph_executor.del_net_res(None, delete_cache)
170
+ del self.generalize_phase_and_compile_args_dict[delete_phase]
171
+
172
+ # step3: delete compile args
173
+ self.generalize_shape_cache.remove(delete_compile_args)
174
+
175
+ # step3 save phase and compile args into cache
176
+ logger.info(f'The generalize shape cache number is {len(self.generalize_shape_cache)}, is less than '
177
+ f'{max_save_cache_number}, phase=%r should be saved in generalize shape cache.', phase)
178
+ self.generalize_phase_and_compile_args_dict[phase] = compile_args
179
+ self.generalize_shape_cache.append(compile_args)
180
+
181
+
182
+ def check_tuple_of_scalar(self, input):
183
+ """check tuple of scalar"""
184
+ for elem in input:
185
+ if not isinstance(elem, int):
186
+ return False
187
+ return True
188
+
189
+
190
+ def _compare_input_args_and_cache_args(self, input_args, cache_args):
191
+ """compare input args and cache args"""
192
+ for (input, cache) in zip(input_args, cache_args):
193
+ if isinstance(input, Tensor) and isinstance(cache, Tensor):
194
+ if not self.is_tensor_equal(input, cache):
195
+ return False
196
+ elif isinstance(input, int) and isinstance(cache, int):
197
+ if input != cache:
198
+ return False
199
+ elif isinstance(input, (tuple, list)) and isinstance(cache, (tuple, list)):
200
+ if not self._compare_input_args_and_cache_args(input, cache):
201
+ return False
202
+ return True
203
+
204
+
205
+ class _AutoIdentifyDynamicShape:
206
+ """
207
+ Represents a function auto identify dynamic shape.
208
+ """
209
+ def __init__(self):
210
+ self.all_shape_cache = {}
211
+ self.is_sink_mode = False
212
+ self.is_enable_auto_dynamic_shape = True
213
+ self.save_cache_number = 3
214
+ self.enable_auto_identify = os.getenv('MS_AUTO_DYNAMIC_SHAPE_ENABLE')
215
+ self.auto_dynamic_shape_manager = _AutoDynamicShapeManager()
216
+
217
+
218
+ def __del__(self):
219
+ self.all_shape_cache = {}
220
+ self.is_sink_mode = False
221
+ self.is_enable_auto_dynamic_shape = True
222
+ self.save_cache_number = 3
223
+
224
+
225
+ def _check_input_args_number(self, args_list):
226
+ """check input arg number"""
227
+ if self.auto_dynamic_shape_manager.get_real_shape_cache_number() > 0:
228
+ first_real_cache = self.auto_dynamic_shape_manager.get_real_shape_cache()[0]
229
+ if len(first_real_cache) != len(args_list):
230
+ return False
231
+ return True
232
+
233
+
234
+ def _check_input_tensor_type(self, args_list, cache_list):
235
+ """check input args type"""
236
+ for (input, cache) in zip(args_list, cache_list):
237
+ if isinstance(input, Tensor) and isinstance(cache, Tensor):
238
+ if input.dtype != cache.dtype:
239
+ logger.debug((f'input tensor type = {input.dtype}, cache tensor type = {cache.dtype}, '
240
+ f'tensor types are not same.'))
241
+ return False
242
+ elif isinstance(input, (tuple, list)) and isinstance(cache, (tuple, list)):
243
+ res = self._check_input_tensor_type(input, cache)
244
+ if not res:
245
+ return False
246
+ elif (isinstance(input, int) and isinstance(cache, int)) or \
247
+ (isinstance(input, float) and isinstance(cache, float)):
248
+ if input != cache:
249
+ return False
250
+ elif (isinstance(input, Tensor) and not isinstance(cache, Tensor)) or \
251
+ (isinstance(input, (int, float)) and not isinstance(cache, (int, float))) or \
252
+ (isinstance(input, (tuple, list))) and not isinstance(cache, (tuple, list)):
253
+ return False
254
+ return True
255
+
256
+
257
+ def _check_input_number_and_type(self, args_list):
258
+ """check input number and type"""
259
+ res = self._check_input_args_number(args_list)
260
+ if not res:
261
+ return False
262
+
263
+ if self.auto_dynamic_shape_manager.get_real_shape_cache_number() > 0:
264
+ cache_list = self.auto_dynamic_shape_manager.get_real_shape_cache()[0]
265
+ res = self._check_input_tensor_type(args_list, cache_list)
266
+ if not res:
267
+ return False
268
+ return True
269
+
270
+
271
+ def _is_enable_auto_dynamic_shape(self, args_list, is_sink_mode):
272
+ """is enable auto identify shape"""
273
+ if not is_sink_mode and not args_list:
274
+ return False
275
+
276
+ if not self.enable_auto_identify:
277
+ self.enable_auto_identify = "0"
278
+
279
+ if self.enable_auto_identify == "0":
280
+ return False
281
+
282
+ for elem in args_list:
283
+ if elem is None:
284
+ continue
285
+ if not isinstance(elem, (list, tuple, Tensor, int, float)):
286
+ return False
287
+ if isinstance(elem, Tensor) and (is_shape_unknown(elem.shape) or (not elem.shape)):
288
+ return False
289
+ if not is_sink_mode and isinstance(elem, (list, tuple)):
290
+ return self._is_enable_auto_dynamic_shape(elem, is_sink_mode)
291
+ return True
292
+
293
+
294
+ @staticmethod
295
+ def _do_generalize_in_sink(input, cache, input_index, cache_index, cache_type):
296
+ """do generalize in sink, input rank must be 2"""
297
+ if not input:
298
+ raise ValueError("In sink mode, cell input can not be scalar.")
299
+
300
+ if input == cache:
301
+ return cache
302
+
303
+ shape_value = []
304
+ if len(input) != len(cache):
305
+ shape_value.append(SHAPE_RANK_ANY)
306
+ else:
307
+ for _ in input:
308
+ shape_value.append(SHAPE_DIM_ANY)
309
+ logger.info((f'In the {cache_type} cache[{cache_index}], the {input_index}th input tensor shape is {input},'
310
+ f'cache shape is {cache}, not equal, need generalize to {shape_value}.'))
311
+ return shape_value
312
+
313
+ def update_phase_and_compile_args(self, args, phase, is_sink_mode, aux=None):
314
+ """save compile args and phase into dict"""
315
+ if not self.is_enable_auto_dynamic_shape:
316
+ return
317
+ self.auto_dynamic_shape_manager.update_phase_and_compile_args(args, phase, self.save_cache_number,
318
+ is_sink_mode, aux)
319
+
320
+
321
+
322
+ def auto_dynamic_generate_compile_args(self, args_list, is_sink_mode):
323
+ """generate compile args in auto dynamic shape"""
324
+ if not self._check_input_number_and_type(args_list) or \
325
+ not self._is_enable_auto_dynamic_shape(args_list, is_sink_mode):
326
+ self.is_enable_auto_dynamic_shape = False
327
+ return args_list
328
+ self.is_sink_mode = is_sink_mode
329
+
330
+ res_shape = self.auto_dynamic_shape_manager.get_compile_args_shape(args_list, is_sink_mode)
331
+ logger.debug((f'input args list shape = {res_shape}.'))
332
+
333
+ # step1: find cache in real_shape_cache.
334
+ real_cache_number = self.auto_dynamic_shape_manager.get_real_shape_cache_number()
335
+ if real_cache_number < 2:
336
+ logger.info((f'real shape cache cap is {real_cache_number}, smaller than 2, '
337
+ f'compile args shape={res_shape}.'))
338
+ return args_list
339
+
340
+ is_real_shape_exist = self.auto_dynamic_shape_manager.find_compile_args_in_shape_cache(args_list, "real")
341
+ if is_real_shape_exist:
342
+ logger.debug((f'find compile args in real shape cache, compile args shape={res_shape}'))
343
+ return args_list
344
+
345
+ # step2: if can not find cache in real_shape_cache, then generate it
346
+ generalize_shape_args, can_generalize = self._do_generalize_shape("real", args_list, is_sink_mode)
347
+ if not can_generalize:
348
+ return args_list
349
+
350
+ if self.auto_dynamic_shape_manager.get_generalize_shape_cache_number() == 0:
351
+ res_shape = self.auto_dynamic_shape_manager.get_compile_args_shape(generalize_shape_args, is_sink_mode)
352
+ logger.info((f'generalize shape cache cap is smaller than 1, compile args shape = {res_shape}.'))
353
+ return generalize_shape_args
354
+
355
+ # step3: find generalize_shape in generalize_shape_cache
356
+ is_generalize_shape_exist = \
357
+ self.auto_dynamic_shape_manager.find_compile_args_in_shape_cache(generalize_shape_args, "generalize")
358
+
359
+ # step 4: if can not find cache in generalize_shape_cache, then generate it again
360
+ if not is_generalize_shape_exist:
361
+ new_generalize_shape, can_generalize = self._do_generalize_shape("generalize", generalize_shape_args,
362
+ is_sink_mode)
363
+ if not can_generalize:
364
+ return args_list
365
+
366
+ res_shape = self.auto_dynamic_shape_manager.get_compile_args_shape(new_generalize_shape, is_sink_mode)
367
+ logger.info((f'generalize with generalize shape cache, compile args shape = {res_shape}'))
368
+ return new_generalize_shape
369
+
370
+ res_shape = self.auto_dynamic_shape_manager.get_compile_args_shape(generalize_shape_args, is_sink_mode)
371
+ logger.debug((f'find compile args in generalize shape cache, compile args shape={res_shape}'))
372
+ return generalize_shape_args
373
+
374
+
375
+ def _cal_unknown_shape_count(self, generalize_shape_args, is_sink_mode):
376
+ """generalize shape by compare with real shape cache, and return the least generalize input."""
377
+ unknown_shape_count = 0
378
+ unknown_rank_count = 0
379
+ for elem in generalize_shape_args:
380
+ if isinstance(elem, (list, tuple)):
381
+ rank_count, shape_count = self._cal_unknown_shape_count(elem, is_sink_mode)
382
+ unknown_rank_count = unknown_rank_count + rank_count
383
+ unknown_shape_count = unknown_shape_count + shape_count
384
+ if isinstance(elem, Tensor):
385
+ if is_shape_unknown(elem.shape):
386
+ unknown_shape_count = unknown_shape_count + 1
387
+ if is_dim_unknown(elem.shape):
388
+ unknown_rank_count = unknown_rank_count + 1
389
+ if is_sink_mode and isinstance(elem, int):
390
+ if elem == SHAPE_DIM_ANY:
391
+ unknown_shape_count = unknown_shape_count + 1
392
+ if elem == SHAPE_RANK_ANY:
393
+ unknown_rank_count = unknown_rank_count + 1
394
+ return unknown_rank_count, unknown_shape_count
395
+
396
+
397
+ def _do_generalize_one_input_shape(self, input_args, cache_args, cache_type, index, is_sink_mode):
398
+ """do generalize shape one input by cache"""
399
+ generalize_one_shape = []
400
+ for i, (input, cache) in enumerate(zip(input_args, cache_args)):
401
+ if isinstance(input, Parameter) and isinstance(cache, Parameter):
402
+ if self.auto_dynamic_shape_manager.is_tensor_equal(input, cache):
403
+ generalize_one_shape.append(input)
404
+ continue
405
+ else:
406
+ logger.info("In auto dynamic shape mode, parameter must be equal, it can not be generalize.")
407
+ return input_args, False
408
+
409
+ if isinstance(input, Tensor) and isinstance(cache, Tensor):
410
+ if self.auto_dynamic_shape_manager.is_tensor_equal(input, cache):
411
+ generalize_one_shape.append(input)
412
+ else:
413
+ shape_value = []
414
+ if len(input.shape) != len(cache.shape):
415
+ shape_value.append(SHAPE_RANK_ANY)
416
+ else:
417
+ for _ in range(len(input.shape)):
418
+ shape_value.append(SHAPE_DIM_ANY)
419
+ shape_tuple = tuple(shape_value)
420
+ generalize_one_shape.append(Tensor(shape=shape_tuple, dtype=input.dtype))
421
+ logger.info((f'In the {cache_type} cache[{index}], the {i}th input tensor shape is {input.shape},'
422
+ f'cache shape is {cache.shape}, not equal, need generalize to {shape_tuple}.'))
423
+
424
+ elif isinstance(input, (tuple, list)) and isinstance(cache, (tuple, list)):
425
+ if is_sink_mode:
426
+ # when is_sink_mode=True, input must be the shape of Tensor.
427
+ res = self._do_generalize_in_sink(input, cache, i, index, cache_type)
428
+ generalize_one_shape.append(res)
429
+ else:
430
+ res = self._do_generalize_one_input_shape(input, cache, cache_type, index, is_sink_mode)
431
+ generalize_one_shape.append(res)
432
+ elif isinstance(input, int) and isinstance(cache, int):
433
+ # when is_sink_mode=False, the input must may be scalar, or the value of list/tuple.
434
+ # is_sink_mode can not be True
435
+ if input == cache:
436
+ generalize_one_shape.append(input)
437
+ else:
438
+ logger.info("In auto dynamic shape mode, scalar/tuple/list must be equal, it can not be " \
439
+ "generalize.")
440
+ return input_args, False
441
+ elif input is None and cache is None:
442
+ generalize_one_shape.append(input)
443
+
444
+ return generalize_one_shape, True
445
+
446
+
447
+ def _do_generalize_shape(self, cache_type, input_args, is_sink_mode):
448
+ """do generalize shape by cache"""
449
+ shape_cache = self.auto_dynamic_shape_manager.get_cache_by_type(cache_type)
450
+ all_generalize_shape_args = []
451
+ for index, cache_args in enumerate(shape_cache):
452
+ generalize_shape, can_generalize = self._do_generalize_one_input_shape(input_args, cache_args, cache_type,
453
+ index, is_sink_mode)
454
+ if not can_generalize:
455
+ return generalize_shape, False
456
+ all_generalize_shape_args.append(tuple(generalize_shape))
457
+
458
+ unknown_shape_dict = {}
459
+ for generalize_shape_args in all_generalize_shape_args:
460
+ unknown_rank_count, unknown_shape_count = self._cal_unknown_shape_count(generalize_shape_args, is_sink_mode)
461
+ unknown_count = (unknown_rank_count, unknown_shape_count)
462
+ if unknown_count not in unknown_shape_dict:
463
+ unknown_shape_dict[unknown_count] = generalize_shape_args
464
+
465
+ keys = list(unknown_shape_dict.keys())
466
+ keys.sort(key=lambda x: (x[0], x[1]))
467
+ index = keys[0]
468
+ return unknown_shape_dict.get(index), True
469
+
470
+ _auto_dynamic_shape = _AutoIdentifyDynamicShape()
471
+
472
+
473
+ def get_auto_dynamic_shape_args(compile_args, key_id):
474
+ """get auto dynamic shape args."""
475
+ if key_id not in auto_dynamic_shepe_dict:
476
+ auto_dynamic_shepe_dict[key_id] = _AutoIdentifyDynamicShape()
477
+ compile_args = auto_dynamic_shepe_dict[key_id].auto_dynamic_generate_compile_args(compile_args, False)
478
+ return compile_args
479
+
480
+
481
+ def update_auto_dynamic_shape_phase(compile_args, key_id, phase):
482
+ """update auto dynamic shape phase."""
483
+ if key_id in auto_dynamic_shepe_dict:
484
+ auto_dynamic_shepe_dict[key_id].update_phase_and_compile_args(compile_args, phase, False)
485
+
486
+
487
+ def get_auto_dynamic_shape_args_with_check_input_signature(compile_args, key_id, input_signature):
488
+ """get auto dynamic shape args."""
489
+ if input_signature is None:
490
+ return get_auto_dynamic_shape_args(compile_args, key_id)
491
+ return compile_args
492
+
493
+
494
+ def update_auto_dynamic_shape_phase_with_check_input_signature(compile_args, key_id, phase, input_signature):
495
+ """update auto dynamic shape phase."""
496
+ if input_signature is None:
497
+ if key_id in auto_dynamic_shepe_dict:
498
+ auto_dynamic_shepe_dict[key_id].update_phase_and_compile_args(compile_args, phase, False)
mindspore/common/dtype.py CHANGED
@@ -42,7 +42,8 @@ __dtype__ = [
42
42
  "string", "type_none",
43
43
  "TensorType", "_null",
44
44
  "Type", "Int",
45
- "complex64", "complex128"
45
+ "complex64", "complex128",
46
+ "bfloat16"
46
47
  ]
47
48
 
48
49
  __method__ = [
@@ -81,6 +82,7 @@ float32 = typing.Float(32)
81
82
  single = float32
82
83
  float64 = typing.Float(64)
83
84
  double = float64
85
+ bfloat16 = typing.BFloat(16)
84
86
  complex64 = typing.Complex(64)
85
87
  complex128 = typing.Complex(128)
86
88
 
@@ -136,6 +138,7 @@ number_type = (int8,
136
138
  float16,
137
139
  float32,
138
140
  float64,
141
+ bfloat16,
139
142
  complex64,
140
143
  complex128,)
141
144
 
@@ -144,9 +147,9 @@ uint_type = (uint8, uint16, uint32, uint64,)
144
147
  float_type = (float16, float32, float64,)
145
148
  signed_type = (int8, byte, int16, short, int32, intc, int64,
146
149
  intp, float16, half, float32, single, float64,
147
- double, complex64, complex128)
150
+ double, bfloat16, complex64, complex128)
148
151
  complex_type = (complex64, complex128,)
149
- all_types = (bool_, int8, uint8, int16, int32, int64, float16, float32, float64, complex64, complex128)
152
+ all_types = (bool_, int8, uint8, int16, int32, int64, float16, float32, float64, bfloat16, complex64, complex128)
150
153
  implicit_conversion_seq = {t: idx for idx, t in enumerate(all_types)}
151
154
 
152
155
  _simple_types = {
@@ -189,8 +192,9 @@ def pytype_to_dtype(obj):
189
192
 
190
193
  Examples:
191
194
  >>> import mindspore as ms
192
- >>> ms.dtype_to_nptype(bool)
193
- mindspore.bool_
195
+ >>> out = ms.pytype_to_dtype(bool)
196
+ >>> print(out)
197
+ Bool
194
198
  """
195
199
 
196
200
  if isinstance(obj, np.dtype):
@@ -240,11 +244,11 @@ def get_py_obj_dtype(obj):
240
244
 
241
245
 
242
246
  def dtype_to_nptype(type_):
243
- """
247
+ r"""
244
248
  Convert MindSpore dtype to numpy data type.
245
249
 
246
250
  Args:
247
- type_ (:class:`mindspore.dtype`): MindSpore's dtype.
251
+ type\_ (:class:`mindspore.dtype`): MindSpore's dtype.
248
252
 
249
253
  Returns:
250
254
  The data type of numpy.
@@ -270,22 +274,24 @@ def dtype_to_nptype(type_):
270
274
  float64: np.float64,
271
275
  complex64: np.complex64,
272
276
  complex128: np.complex128,
277
+ bfloat16: np.float32,
273
278
  }[type_]
274
279
 
275
280
 
276
281
  def dtype_to_pytype(type_):
277
- """
282
+ r"""
278
283
  Convert MindSpore dtype to python data type.
279
284
 
280
285
  Args:
281
- type_ (:class:`mindspore.dtype`): MindSpore's dtype.
286
+ type\_ (:class:`mindspore.dtype`): MindSpore's dtype.
282
287
 
283
288
  Returns:
284
289
  Type of python.
285
290
 
286
291
  Examples:
287
292
  >>> import mindspore as ms
288
- >>> ms.dtype_to_nptype(ms.bool_)
293
+ >>> out = ms.dtype_to_pytype(ms.bool_)
294
+ >>> print(out)
289
295
  <class 'bool'>
290
296
  """
291
297
 
@@ -304,6 +310,7 @@ def dtype_to_pytype(type_):
304
310
  float16: float,
305
311
  float32: float,
306
312
  float64: float,
313
+ bfloat16: float,
307
314
  list_: list,
308
315
  tuple_: tuple,
309
316
  string: str,
@@ -341,7 +348,7 @@ class QuantDtype(enum.Enum):
341
348
  """
342
349
  An enum for quant datatype, contains `INT1` ~ `INT16`, `UINT1` ~ `UINT16`.
343
350
 
344
- `QuantDtype` is defined in `dtype.py <https://gitee.com/mindspore/mindspore/blob/r2.1/mindspore/python/mindspore/
351
+ `QuantDtype` is defined in `dtype.py <https://gitee.com/mindspore/mindspore/tree/r2.2/mindspore/python/mindspore/
345
352
  common/dtype.py>`_, use command below to import:
346
353
 
347
354
  .. code-block::
mindspore/common/dump.py CHANGED
@@ -27,7 +27,7 @@ def set_dump(target, enabled=True):
27
27
  `target` should be an instance of :class:`mindspore.nn.Cell` or :class:`mindspore.ops.Primitive` .
28
28
  Please note that this API takes effect only when Asynchronous Dump is enabled and the `dump_mode`
29
29
  field in dump config file is ``"2"`` . See the `dump document <https://www.mindspore.cn/tutorials/
30
- experts/en/r2.1/debug/dump.html>`_ for details. The default enabled status for
30
+ experts/en/r2.2/debug/dump.html>`_ for details. The default enabled status for
31
31
  a :class:`mindspore.nn.Cell` or :class:`mindspore.ops.Primitive` is False.
32
32
 
33
33
  .. warning::
@@ -57,9 +57,11 @@ def set_dump(target, enabled=True):
57
57
  ``Ascend``
58
58
 
59
59
  Examples:
60
- >>> # Please set the dump config file and environment variable before
61
- >>> # running this example to actually get the dump data.
62
- >>> # See the document of this API for details.
60
+ .. node::
61
+ Please set environment variable `MINDSPORE_DUMP_CONFIG` to the dump config file and set `dump_mode` field
62
+ in dump config file to 2 before running this example.
63
+ See `dump document <https://www.mindspore.cn/tutorials/experts/en/r2.2/debug/dump.html>`_ for details.
64
+
63
65
  >>> import numpy as np
64
66
  >>> import mindspore as ms
65
67
  >>> import mindspore.nn as nn