mindspore 2.2.14__cp39-cp39-win_amd64.whl → 2.4.0__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 (1217) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +8 -5
  5. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  8. mindspore/_checkparam.py +124 -25
  9. mindspore/_extends/builtin_operations.py +2 -1
  10. mindspore/_extends/graph_kernel/model/graph_parallel.py +16 -6
  11. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +3 -16
  12. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +16 -4
  13. mindspore/_extends/parallel_compile/akg_compiler/compiler.py +1 -0
  14. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
  15. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +2 -1
  16. mindspore/_extends/parallel_compile/akg_compiler/util.py +5 -2
  17. mindspore/_extends/parse/__init__.py +18 -14
  18. mindspore/_extends/parse/compile_config.py +299 -0
  19. mindspore/_extends/parse/namespace.py +2 -2
  20. mindspore/_extends/parse/parser.py +182 -68
  21. mindspore/_extends/parse/resources.py +45 -14
  22. mindspore/_extends/parse/standard_method.py +192 -252
  23. mindspore/{ops/_op_impl/tbe/atomic_addr_clean.py → _extends/pijit/__init__.py} +6 -16
  24. mindspore/_extends/pijit/pijit_func_white_list.py +669 -0
  25. mindspore/_extends/remote/kernel_build_server.py +2 -0
  26. mindspore/_profiler.py +30 -0
  27. mindspore/amp.py +67 -26
  28. mindspore/atlprov.dll +0 -0
  29. mindspore/avcodec-59.dll +0 -0
  30. mindspore/avdevice-59.dll +0 -0
  31. mindspore/avfilter-8.dll +0 -0
  32. mindspore/avformat-59.dll +0 -0
  33. mindspore/avutil-57.dll +0 -0
  34. mindspore/boost/adasum.py +1 -1
  35. mindspore/boost/base.py +1 -1
  36. mindspore/boost/boost_cell_wrapper.py +2 -2
  37. mindspore/boost/grad_freeze.py +2 -2
  38. mindspore/boost/group_loss_scale_manager.py +1 -1
  39. mindspore/boost/less_batch_normalization.py +9 -6
  40. mindspore/c1.dll +0 -0
  41. mindspore/c1xx.dll +0 -0
  42. mindspore/c2.dll +0 -0
  43. mindspore/common/__init__.py +20 -7
  44. mindspore/common/_jit_fallback_utils.py +2 -3
  45. mindspore/common/_pijit_context.py +190 -0
  46. mindspore/common/_register_for_adapter.py +7 -0
  47. mindspore/common/_register_for_recompute.py +48 -0
  48. mindspore/common/_register_for_tensor.py +10 -10
  49. mindspore/common/_stub_tensor.py +7 -1
  50. mindspore/common/_tensor_overload.py +139 -0
  51. mindspore/common/_utils.py +5 -17
  52. mindspore/common/api.py +449 -129
  53. mindspore/common/auto_dynamic_shape.py +27 -14
  54. mindspore/common/dtype.py +17 -10
  55. mindspore/common/dump.py +8 -11
  56. mindspore/common/file_system.py +48 -0
  57. mindspore/common/generator.py +254 -0
  58. mindspore/common/hook_handle.py +65 -30
  59. mindspore/common/initializer.py +1 -1
  60. mindspore/common/jit_config.py +34 -14
  61. mindspore/common/lazy_inline.py +72 -19
  62. mindspore/common/mindir_util.py +12 -2
  63. mindspore/common/mutable.py +79 -14
  64. mindspore/common/no_inline.py +54 -0
  65. mindspore/common/np_dtype.py +25 -0
  66. mindspore/common/parameter.py +73 -21
  67. mindspore/common/recompute.py +292 -0
  68. mindspore/common/seed.py +9 -9
  69. mindspore/common/sparse_tensor.py +276 -24
  70. mindspore/common/symbol.py +122 -0
  71. mindspore/common/tensor.py +668 -514
  72. mindspore/communication/__init__.py +6 -11
  73. mindspore/communication/_comm_helper.py +43 -3
  74. mindspore/communication/comm_func.py +1395 -0
  75. mindspore/communication/management.py +117 -104
  76. mindspore/config/op_info.config +22 -54
  77. mindspore/context.py +455 -71
  78. mindspore/dataset/__init__.py +5 -5
  79. mindspore/dataset/audio/__init__.py +6 -6
  80. mindspore/dataset/audio/transforms.py +711 -158
  81. mindspore/dataset/callback/ds_callback.py +2 -2
  82. mindspore/dataset/core/config.py +7 -0
  83. mindspore/dataset/core/validator_helpers.py +7 -0
  84. mindspore/dataset/engine/cache_client.py +2 -2
  85. mindspore/dataset/engine/datasets.py +201 -116
  86. mindspore/dataset/engine/datasets_audio.py +14 -14
  87. mindspore/dataset/engine/datasets_standard_format.py +83 -3
  88. mindspore/dataset/engine/datasets_text.py +39 -39
  89. mindspore/dataset/engine/datasets_user_defined.py +230 -141
  90. mindspore/dataset/engine/datasets_vision.py +78 -74
  91. mindspore/dataset/engine/iterators.py +29 -0
  92. mindspore/dataset/engine/obs/util.py +7 -0
  93. mindspore/dataset/engine/offload.py +5 -7
  94. mindspore/dataset/engine/queue.py +138 -66
  95. mindspore/dataset/engine/serializer_deserializer.py +2 -2
  96. mindspore/dataset/engine/validators.py +41 -15
  97. mindspore/dataset/text/__init__.py +2 -5
  98. mindspore/dataset/text/transforms.py +408 -121
  99. mindspore/dataset/text/utils.py +9 -9
  100. mindspore/dataset/transforms/__init__.py +0 -3
  101. mindspore/dataset/transforms/transforms.py +261 -76
  102. mindspore/dataset/utils/browse_dataset.py +9 -9
  103. mindspore/dataset/utils/line_reader.py +2 -0
  104. mindspore/dataset/vision/__init__.py +7 -10
  105. mindspore/dataset/vision/c_transforms.py +10 -10
  106. mindspore/dataset/vision/py_transforms_util.py +1 -1
  107. mindspore/dataset/vision/transforms.py +2844 -549
  108. mindspore/dataset/vision/utils.py +161 -10
  109. mindspore/dataset/vision/validators.py +16 -3
  110. mindspore/dnnl.dll +0 -0
  111. mindspore/dpcmi.dll +0 -0
  112. mindspore/{rewrite/ast_creator_register.py → experimental/es/__init__.py} +5 -20
  113. mindspore/experimental/es/embedding_service.py +883 -0
  114. mindspore/experimental/es/embedding_service_layer.py +581 -0
  115. mindspore/experimental/llm_boost/__init__.py +21 -0
  116. mindspore/experimental/llm_boost/atb/__init__.py +23 -0
  117. mindspore/experimental/llm_boost/atb/boost_base.py +211 -0
  118. mindspore/experimental/llm_boost/atb/llama_boost.py +115 -0
  119. mindspore/experimental/llm_boost/atb/qwen_boost.py +101 -0
  120. mindspore/experimental/llm_boost/register.py +129 -0
  121. mindspore/experimental/llm_boost/utils.py +31 -0
  122. mindspore/experimental/optim/__init__.py +12 -2
  123. mindspore/experimental/optim/adadelta.py +161 -0
  124. mindspore/experimental/optim/adagrad.py +168 -0
  125. mindspore/experimental/optim/adam.py +35 -34
  126. mindspore/experimental/optim/adamax.py +170 -0
  127. mindspore/experimental/optim/adamw.py +124 -15
  128. mindspore/experimental/optim/asgd.py +153 -0
  129. mindspore/experimental/optim/lr_scheduler.py +66 -121
  130. mindspore/experimental/optim/nadam.py +157 -0
  131. mindspore/experimental/optim/optimizer.py +18 -8
  132. mindspore/experimental/optim/radam.py +194 -0
  133. mindspore/experimental/optim/rmsprop.py +154 -0
  134. mindspore/experimental/optim/rprop.py +164 -0
  135. mindspore/experimental/optim/sgd.py +28 -19
  136. mindspore/hal/__init__.py +40 -0
  137. mindspore/hal/_ascend.py +57 -0
  138. mindspore/hal/_base.py +57 -0
  139. mindspore/hal/_cpu.py +56 -0
  140. mindspore/hal/_gpu.py +57 -0
  141. mindspore/hal/contiguous_tensors_handle.py +175 -0
  142. mindspore/hal/device.py +356 -0
  143. mindspore/hal/event.py +179 -0
  144. mindspore/hal/memory.py +326 -0
  145. mindspore/hal/stream.py +357 -0
  146. mindspore/include/api/data_type.h +2 -2
  147. mindspore/include/api/dual_abi_helper.h +16 -3
  148. mindspore/include/api/model.h +4 -3
  149. mindspore/include/api/model_group.h +13 -1
  150. mindspore/include/api/status.h +14 -0
  151. mindspore/include/api/types.h +10 -10
  152. mindspore/include/c_api/model_c.h +173 -0
  153. mindspore/include/c_api/types_c.h +19 -0
  154. mindspore/include/dataset/config.h +2 -2
  155. mindspore/include/dataset/constants.h +2 -2
  156. mindspore/include/dataset/execute.h +3 -5
  157. mindspore/include/dataset/vision.h +58 -2
  158. mindspore/jpeg62.dll +0 -0
  159. mindspore/log.py +3 -3
  160. mindspore/mindrecord/__init__.py +5 -1
  161. mindspore/mindrecord/config.py +809 -0
  162. mindspore/mindrecord/filereader.py +25 -0
  163. mindspore/mindrecord/filewriter.py +138 -103
  164. mindspore/mindrecord/mindpage.py +40 -6
  165. mindspore/mindrecord/shardutils.py +3 -2
  166. mindspore/mindrecord/shardwriter.py +7 -0
  167. mindspore/mindrecord/tools/cifar100_to_mr.py +8 -13
  168. mindspore/mindrecord/tools/cifar10_to_mr.py +9 -15
  169. mindspore/mindrecord/tools/csv_to_mr.py +4 -9
  170. mindspore/mindrecord/tools/imagenet_to_mr.py +3 -8
  171. mindspore/mindrecord/tools/mnist_to_mr.py +7 -12
  172. mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -6
  173. mindspore/mindspore_backend.dll +0 -0
  174. mindspore/mindspore_common.dll +0 -0
  175. mindspore/mindspore_core.dll +0 -0
  176. mindspore/mindspore_glog.dll +0 -0
  177. mindspore/mindspore_np_dtype.dll +0 -0
  178. mindspore/mindspore_ops.dll +0 -0
  179. mindspore/mint/__init__.py +1586 -0
  180. mindspore/mint/distributed/__init__.py +31 -0
  181. mindspore/mint/distributed/distributed.py +254 -0
  182. mindspore/{rewrite/ast_transformers → mint/linalg}/__init__.py +9 -4
  183. mindspore/mint/nn/__init__.py +757 -0
  184. mindspore/mint/nn/functional.py +679 -0
  185. mindspore/mint/nn/layer/__init__.py +39 -0
  186. mindspore/mint/nn/layer/activation.py +133 -0
  187. mindspore/mint/nn/layer/normalization.py +477 -0
  188. mindspore/mint/nn/layer/pooling.py +110 -0
  189. mindspore/mint/optim/__init__.py +24 -0
  190. mindspore/mint/optim/adamw.py +206 -0
  191. mindspore/mint/special/__init__.py +63 -0
  192. mindspore/msobj140.dll +0 -0
  193. mindspore/mspdb140.dll +0 -0
  194. mindspore/mspdbcore.dll +0 -0
  195. mindspore/mspdbst.dll +0 -0
  196. mindspore/mspft140.dll +0 -0
  197. mindspore/msvcdis140.dll +0 -0
  198. mindspore/msvcp140_1.dll +0 -0
  199. mindspore/msvcp140_2.dll +0 -0
  200. mindspore/msvcp140_atomic_wait.dll +0 -0
  201. mindspore/msvcp140_codecvt_ids.dll +0 -0
  202. mindspore/multiprocessing/__init__.py +73 -0
  203. mindspore/nn/cell.py +461 -323
  204. mindspore/nn/dynamic_lr.py +2 -2
  205. mindspore/nn/layer/activation.py +292 -135
  206. mindspore/nn/layer/basic.py +288 -83
  207. mindspore/nn/layer/channel_shuffle.py +3 -16
  208. mindspore/nn/layer/container.py +3 -3
  209. mindspore/nn/layer/conv.py +75 -66
  210. mindspore/nn/layer/embedding.py +221 -45
  211. mindspore/nn/layer/image.py +4 -7
  212. mindspore/nn/layer/math.py +1 -1
  213. mindspore/nn/layer/normalization.py +150 -68
  214. mindspore/nn/layer/padding.py +64 -87
  215. mindspore/nn/layer/pooling.py +175 -12
  216. mindspore/nn/layer/rnn_cells.py +6 -16
  217. mindspore/nn/layer/rnns.py +6 -5
  218. mindspore/nn/layer/thor_layer.py +1 -2
  219. mindspore/nn/layer/timedistributed.py +1 -1
  220. mindspore/nn/layer/transformer.py +55 -53
  221. mindspore/nn/learning_rate_schedule.py +6 -5
  222. mindspore/nn/loss/__init__.py +2 -2
  223. mindspore/nn/loss/loss.py +145 -88
  224. mindspore/nn/optim/__init__.py +2 -1
  225. mindspore/nn/optim/ada_grad.py +4 -2
  226. mindspore/nn/optim/adadelta.py +4 -2
  227. mindspore/nn/optim/adafactor.py +1 -1
  228. mindspore/nn/optim/adam.py +102 -181
  229. mindspore/nn/optim/adamax.py +4 -2
  230. mindspore/nn/optim/adasum.py +3 -3
  231. mindspore/nn/optim/asgd.py +4 -2
  232. mindspore/nn/optim/ftrl.py +31 -61
  233. mindspore/nn/optim/lamb.py +5 -3
  234. mindspore/nn/optim/lars.py +2 -2
  235. mindspore/nn/optim/lazyadam.py +6 -4
  236. mindspore/nn/optim/momentum.py +13 -25
  237. mindspore/nn/optim/optimizer.py +6 -3
  238. mindspore/nn/optim/proximal_ada_grad.py +4 -2
  239. mindspore/nn/optim/rmsprop.py +9 -3
  240. mindspore/nn/optim/rprop.py +4 -2
  241. mindspore/nn/optim/sgd.py +5 -3
  242. mindspore/nn/optim/tft_wrapper.py +127 -0
  243. mindspore/nn/optim/thor.py +2 -2
  244. mindspore/nn/probability/distribution/_utils/custom_ops.py +2 -2
  245. mindspore/nn/probability/distribution/beta.py +2 -2
  246. mindspore/nn/probability/distribution/categorical.py +4 -6
  247. mindspore/nn/probability/distribution/cauchy.py +2 -2
  248. mindspore/nn/probability/distribution/exponential.py +2 -2
  249. mindspore/nn/probability/distribution/geometric.py +1 -1
  250. mindspore/nn/probability/distribution/gumbel.py +2 -2
  251. mindspore/nn/probability/distribution/logistic.py +1 -1
  252. mindspore/nn/probability/distribution/poisson.py +2 -2
  253. mindspore/nn/probability/distribution/uniform.py +2 -2
  254. mindspore/nn/reinforcement/_tensors_queue.py +13 -1
  255. mindspore/nn/wrap/__init__.py +2 -1
  256. mindspore/nn/wrap/cell_wrapper.py +46 -12
  257. mindspore/nn/wrap/grad_reducer.py +148 -8
  258. mindspore/nn/wrap/loss_scale.py +44 -7
  259. mindspore/numpy/__init__.py +2 -0
  260. mindspore/numpy/array_creations.py +67 -68
  261. mindspore/numpy/array_ops.py +70 -66
  262. mindspore/numpy/dtypes.py +3 -3
  263. mindspore/numpy/fft.py +966 -0
  264. mindspore/numpy/logic_ops.py +11 -10
  265. mindspore/numpy/math_ops.py +147 -152
  266. mindspore/numpy/utils.py +3 -0
  267. mindspore/numpy/utils_const.py +4 -4
  268. mindspore/opencv_core452.dll +0 -0
  269. mindspore/opencv_imgcodecs452.dll +0 -0
  270. mindspore/opencv_imgproc452.dll +0 -0
  271. mindspore/ops/__init__.py +9 -6
  272. mindspore/ops/_grad_experimental/grad_array_ops.py +4 -129
  273. mindspore/ops/_grad_experimental/grad_comm_ops.py +135 -36
  274. mindspore/ops/_grad_experimental/grad_math_ops.py +61 -298
  275. mindspore/ops/_grad_experimental/grad_nn_ops.py +0 -53
  276. mindspore/ops/_grad_experimental/grad_quant_ops.py +3 -3
  277. mindspore/ops/_grad_experimental/grad_sparse.py +1 -1
  278. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  279. mindspore/ops/_op_impl/__init__.py +0 -1
  280. mindspore/ops/_op_impl/aicpu/gamma.py +2 -0
  281. mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +1 -1
  282. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +1 -3
  283. mindspore/ops/_op_impl/aicpu/poisson.py +2 -0
  284. mindspore/ops/_op_impl/cpu/__init__.py +1 -3
  285. mindspore/ops/_op_impl/cpu/adam.py +2 -2
  286. mindspore/ops/_op_impl/cpu/adam_weight_decay.py +3 -2
  287. mindspore/ops/_op_impl/cpu/maximum_grad.py +16 -14
  288. mindspore/ops/_op_impl/cpu/minimum_grad.py +8 -0
  289. mindspore/ops/_vmap/vmap_array_ops.py +162 -101
  290. mindspore/ops/_vmap/vmap_base.py +8 -1
  291. mindspore/ops/_vmap/vmap_grad_math_ops.py +95 -9
  292. mindspore/ops/_vmap/vmap_grad_nn_ops.py +143 -58
  293. mindspore/ops/_vmap/vmap_image_ops.py +70 -13
  294. mindspore/ops/_vmap/vmap_math_ops.py +147 -59
  295. mindspore/ops/_vmap/vmap_nn_ops.py +292 -117
  296. mindspore/ops/_vmap/vmap_other_ops.py +1 -1
  297. mindspore/ops/auto_generate/__init__.py +31 -0
  298. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +309 -0
  299. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +252 -0
  300. mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
  301. mindspore/ops/auto_generate/gen_extend_func.py +1701 -0
  302. mindspore/ops/auto_generate/gen_ops_def.py +8482 -0
  303. mindspore/ops/auto_generate/gen_ops_prim.py +16704 -0
  304. mindspore/ops/auto_generate/pyboost_inner_prim.py +549 -0
  305. mindspore/ops/composite/__init__.py +5 -2
  306. mindspore/ops/composite/base.py +201 -66
  307. mindspore/ops/composite/math_ops.py +10 -49
  308. mindspore/ops/composite/multitype_ops/_compile_utils.py +192 -618
  309. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +25 -134
  310. mindspore/ops/composite/multitype_ops/add_impl.py +6 -0
  311. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +6 -0
  312. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +6 -0
  313. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +6 -0
  314. mindspore/ops/composite/multitype_ops/div_impl.py +8 -0
  315. mindspore/ops/composite/multitype_ops/equal_impl.py +6 -0
  316. mindspore/ops/composite/multitype_ops/floordiv_impl.py +8 -0
  317. mindspore/ops/composite/multitype_ops/getitem_impl.py +6 -0
  318. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +6 -0
  319. mindspore/ops/composite/multitype_ops/greater_impl.py +6 -0
  320. mindspore/ops/composite/multitype_ops/in_impl.py +8 -2
  321. mindspore/ops/composite/multitype_ops/left_shift_impl.py +6 -0
  322. mindspore/ops/composite/multitype_ops/less_equal_impl.py +6 -0
  323. mindspore/ops/composite/multitype_ops/less_impl.py +6 -0
  324. mindspore/ops/composite/multitype_ops/logic_not_impl.py +6 -0
  325. mindspore/ops/composite/multitype_ops/logical_and_impl.py +6 -0
  326. mindspore/ops/composite/multitype_ops/logical_or_impl.py +6 -0
  327. mindspore/ops/composite/multitype_ops/mod_impl.py +6 -0
  328. mindspore/ops/composite/multitype_ops/mul_impl.py +6 -0
  329. mindspore/ops/composite/multitype_ops/negative_impl.py +9 -3
  330. mindspore/ops/composite/multitype_ops/not_equal_impl.py +6 -0
  331. mindspore/ops/composite/multitype_ops/not_in_impl.py +8 -3
  332. mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -2
  333. mindspore/ops/composite/multitype_ops/pow_impl.py +6 -0
  334. mindspore/ops/composite/multitype_ops/right_shift_impl.py +6 -0
  335. mindspore/ops/composite/multitype_ops/setitem_impl.py +32 -21
  336. mindspore/ops/composite/multitype_ops/sub_impl.py +6 -0
  337. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +6 -3
  338. mindspore/ops/deprecated.py +14 -3
  339. mindspore/ops/function/__init__.py +53 -11
  340. mindspore/ops/function/array_func.py +1269 -1821
  341. mindspore/ops/function/clip_func.py +19 -31
  342. mindspore/ops/function/debug_func.py +114 -5
  343. mindspore/ops/function/fft_func.py +44 -0
  344. mindspore/ops/function/grad/grad_func.py +30 -22
  345. mindspore/ops/function/image_func.py +27 -21
  346. mindspore/ops/function/linalg_func.py +35 -68
  347. mindspore/ops/function/math_func.py +1170 -2697
  348. mindspore/ops/function/nn_func.py +2116 -1128
  349. mindspore/ops/function/other_func.py +8 -8
  350. mindspore/ops/function/parameter_func.py +5 -93
  351. mindspore/ops/function/random_func.py +435 -113
  352. mindspore/ops/function/reshard_func.py +104 -0
  353. mindspore/ops/function/sparse_func.py +4 -4
  354. mindspore/ops/function/sparse_unary_func.py +9 -16
  355. mindspore/ops/function/spectral_func.py +1 -1
  356. mindspore/ops/function/vmap_func.py +16 -15
  357. mindspore/ops/functional.py +355 -346
  358. mindspore/ops/op_info_register.py +18 -45
  359. mindspore/ops/operations/__init__.py +38 -24
  360. mindspore/ops/operations/_grad_ops.py +21 -927
  361. mindspore/ops/operations/_infer_ops.py +19 -0
  362. mindspore/ops/operations/_inner_ops.py +173 -607
  363. mindspore/ops/operations/_rl_inner_ops.py +2 -2
  364. mindspore/ops/operations/_scalar_ops.py +5 -480
  365. mindspore/ops/operations/_sequence_ops.py +6 -36
  366. mindspore/ops/operations/_tensor_array.py +8 -8
  367. mindspore/ops/operations/array_ops.py +106 -2837
  368. mindspore/ops/operations/comm_ops.py +799 -127
  369. mindspore/ops/operations/custom_ops.py +124 -119
  370. mindspore/ops/operations/debug_ops.py +142 -41
  371. mindspore/ops/operations/image_ops.py +1 -217
  372. mindspore/ops/operations/inner_ops.py +5 -40
  373. mindspore/ops/operations/linalg_ops.py +1 -49
  374. mindspore/ops/operations/manually_defined/__init__.py +24 -0
  375. mindspore/ops/operations/manually_defined/_inner.py +73 -0
  376. mindspore/ops/operations/manually_defined/ops_def.py +2271 -0
  377. mindspore/ops/operations/math_ops.py +666 -4972
  378. mindspore/ops/operations/nn_ops.py +205 -2213
  379. mindspore/ops/operations/other_ops.py +60 -49
  380. mindspore/ops/operations/random_ops.py +50 -54
  381. mindspore/ops/operations/reshard_ops.py +53 -0
  382. mindspore/ops/operations/sparse_ops.py +4 -4
  383. mindspore/ops/primitive.py +216 -103
  384. mindspore/ops_generate/__init__.py +27 -0
  385. mindspore/ops_generate/arg_dtype_cast.py +252 -0
  386. mindspore/ops_generate/arg_handler.py +197 -0
  387. mindspore/ops_generate/gen_aclnn_implement.py +263 -0
  388. mindspore/ops_generate/gen_constants.py +36 -0
  389. mindspore/ops_generate/gen_ops.py +1099 -0
  390. mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
  391. mindspore/ops_generate/gen_pyboost_func.py +1052 -0
  392. mindspore/ops_generate/gen_utils.py +209 -0
  393. mindspore/ops_generate/op_proto.py +145 -0
  394. mindspore/ops_generate/pyboost_utils.py +367 -0
  395. mindspore/ops_generate/template.py +261 -0
  396. mindspore/parallel/__init__.py +8 -4
  397. mindspore/parallel/_auto_parallel_context.py +100 -10
  398. mindspore/parallel/_cell_wrapper.py +99 -9
  399. mindspore/parallel/_cost_model_context.py +1 -1
  400. mindspore/parallel/_dp_allreduce_fusion.py +159 -159
  401. mindspore/parallel/_parallel_serialization.py +67 -23
  402. mindspore/parallel/_ps_context.py +1 -1
  403. mindspore/parallel/_recovery_context.py +1 -1
  404. mindspore/parallel/_tensor.py +99 -22
  405. mindspore/parallel/_transformer/__init__.py +1 -1
  406. mindspore/parallel/_transformer/layers.py +1 -1
  407. mindspore/parallel/_transformer/loss.py +1 -1
  408. mindspore/parallel/_transformer/moe.py +1 -1
  409. mindspore/parallel/_transformer/op_parallel_config.py +1 -1
  410. mindspore/parallel/_transformer/transformer.py +2 -2
  411. mindspore/parallel/_utils.py +173 -6
  412. mindspore/parallel/algo_parameter_config.py +8 -10
  413. mindspore/parallel/checkpoint_transform.py +204 -38
  414. mindspore/parallel/cluster/__init__.py +15 -0
  415. mindspore/parallel/cluster/process_entity/__init__.py +18 -0
  416. mindspore/parallel/cluster/process_entity/_api.py +352 -0
  417. mindspore/parallel/cluster/process_entity/_utils.py +101 -0
  418. mindspore/parallel/cluster/run.py +136 -0
  419. mindspore/parallel/mpi/__init__.py +1 -1
  420. mindspore/parallel/mpi/_mpi_config.py +1 -1
  421. mindspore/parallel/parameter_broadcast.py +151 -0
  422. mindspore/parallel/shard.py +279 -37
  423. mindspore/parallel/transform_safetensors.py +993 -0
  424. mindspore/pgodb140.dll +0 -0
  425. mindspore/pgort140.dll +0 -0
  426. mindspore/profiler/__init__.py +4 -2
  427. mindspore/profiler/common/constant.py +29 -0
  428. mindspore/profiler/common/process_pool.py +41 -0
  429. mindspore/profiler/common/registry.py +47 -0
  430. mindspore/profiler/common/singleton.py +28 -0
  431. mindspore/profiler/common/util.py +153 -0
  432. mindspore/profiler/dynamic_profiler.py +694 -0
  433. mindspore/profiler/envprofiling.py +18 -20
  434. mindspore/{_extends/parallel_compile/tbe_compiler → profiler/parser/ascend_analysis}/__init__.py +1 -1
  435. mindspore/profiler/parser/ascend_analysis/constant.py +71 -0
  436. mindspore/profiler/parser/ascend_analysis/file_manager.py +180 -0
  437. mindspore/profiler/parser/ascend_analysis/function_event.py +185 -0
  438. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +136 -0
  439. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +131 -0
  440. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +104 -0
  441. mindspore/profiler/parser/ascend_analysis/path_manager.py +313 -0
  442. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +123 -0
  443. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
  444. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +75 -0
  445. mindspore/profiler/parser/ascend_cluster_generator.py +14 -9
  446. mindspore/profiler/parser/ascend_communicate_generator.py +0 -1
  447. mindspore/profiler/parser/ascend_flops_generator.py +20 -4
  448. mindspore/profiler/parser/ascend_hccl_generator.py +29 -278
  449. mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
  450. mindspore/profiler/parser/ascend_memory_generator.py +185 -0
  451. mindspore/profiler/parser/ascend_msprof_exporter.py +148 -146
  452. mindspore/profiler/parser/ascend_msprof_generator.py +73 -283
  453. mindspore/profiler/parser/ascend_op_generator.py +92 -42
  454. mindspore/profiler/parser/ascend_timeline_generator.py +298 -133
  455. mindspore/profiler/parser/base_timeline_generator.py +25 -25
  456. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +25 -12
  457. mindspore/profiler/parser/framework_parser.py +4 -393
  458. mindspore/profiler/parser/gpu_analysis/__init__.py +14 -0
  459. mindspore/profiler/parser/gpu_analysis/function_event.py +44 -0
  460. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +89 -0
  461. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +72 -0
  462. mindspore/profiler/parser/integrator.py +3 -1
  463. mindspore/profiler/parser/memory_usage_parser.py +0 -154
  464. mindspore/profiler/parser/minddata_parser.py +72 -3
  465. mindspore/profiler/parser/profiler_info.py +94 -7
  466. mindspore/profiler/profiler.py +153 -0
  467. mindspore/profiler/profiling.py +631 -508
  468. mindspore/rewrite/__init__.py +2 -14
  469. mindspore/rewrite/api/node.py +122 -36
  470. mindspore/rewrite/api/pattern_engine.py +2 -3
  471. mindspore/rewrite/api/scoped_value.py +16 -15
  472. mindspore/rewrite/api/symbol_tree.py +45 -29
  473. mindspore/rewrite/ast_helpers/__init__.py +3 -6
  474. mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
  475. mindspore/rewrite/ast_helpers/ast_finder.py +48 -0
  476. mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
  477. mindspore/rewrite/ast_helpers/ast_modifier.py +160 -92
  478. mindspore/rewrite/common/__init__.py +1 -2
  479. mindspore/rewrite/common/config.py +24 -0
  480. mindspore/rewrite/common/{rewrite_elog.py → error_log.py} +39 -39
  481. mindspore/rewrite/{namer.py → common/namer.py} +63 -18
  482. mindspore/rewrite/common/namespace.py +118 -0
  483. mindspore/rewrite/node/__init__.py +5 -5
  484. mindspore/rewrite/node/call_function.py +23 -7
  485. mindspore/rewrite/node/cell_container.py +7 -3
  486. mindspore/rewrite/node/control_flow.py +53 -28
  487. mindspore/rewrite/node/node.py +212 -196
  488. mindspore/rewrite/node/node_manager.py +51 -22
  489. mindspore/rewrite/node/node_topological_manager.py +3 -23
  490. mindspore/rewrite/parsers/__init__.py +12 -0
  491. mindspore/rewrite/parsers/arguments_parser.py +8 -9
  492. mindspore/rewrite/parsers/assign_parser.py +637 -413
  493. mindspore/rewrite/parsers/attribute_parser.py +3 -4
  494. mindspore/rewrite/parsers/class_def_parser.py +115 -148
  495. mindspore/rewrite/parsers/constant_parser.py +5 -5
  496. mindspore/rewrite/parsers/container_parser.py +4 -6
  497. mindspore/rewrite/parsers/expr_parser.py +55 -0
  498. mindspore/rewrite/parsers/for_parser.py +31 -98
  499. mindspore/rewrite/parsers/function_def_parser.py +13 -5
  500. mindspore/rewrite/parsers/if_parser.py +28 -10
  501. mindspore/rewrite/parsers/module_parser.py +8 -182
  502. mindspore/rewrite/parsers/parser.py +1 -5
  503. mindspore/rewrite/parsers/parser_register.py +1 -1
  504. mindspore/rewrite/parsers/return_parser.py +5 -10
  505. mindspore/rewrite/parsers/while_parser.py +59 -0
  506. mindspore/rewrite/sparsify/utils.py +1 -1
  507. mindspore/rewrite/symbol_tree/__init__.py +20 -0
  508. mindspore/rewrite/{symbol_tree.py → symbol_tree/symbol_tree.py} +705 -186
  509. mindspore/rewrite/{symbol_tree_builder.py → symbol_tree/symbol_tree_builder.py} +8 -8
  510. mindspore/rewrite/{symbol_tree_dumper.py → symbol_tree/symbol_tree_dumper.py} +4 -4
  511. mindspore/run_check/_check_version.py +40 -115
  512. mindspore/run_check/run_check.py +1 -1
  513. mindspore/safeguard/rewrite_obfuscation.py +597 -263
  514. mindspore/swresample-4.dll +0 -0
  515. mindspore/swscale-6.dll +0 -0
  516. mindspore/tbbmalloc.dll +0 -0
  517. mindspore/tinyxml2.dll +0 -0
  518. mindspore/train/__init__.py +7 -5
  519. mindspore/train/_utils.py +204 -4
  520. mindspore/train/amp.py +335 -295
  521. mindspore/train/anf_ir_pb2.py +14 -2
  522. mindspore/train/callback/__init__.py +5 -2
  523. mindspore/train/callback/_backup_and_restore.py +5 -5
  524. mindspore/train/callback/_callback.py +4 -4
  525. mindspore/train/callback/_checkpoint.py +220 -43
  526. mindspore/train/callback/_cluster_monitor.py +201 -0
  527. mindspore/train/callback/_early_stop.py +2 -2
  528. mindspore/train/callback/_flops_collector.py +239 -0
  529. mindspore/train/callback/_landscape.py +15 -9
  530. mindspore/train/callback/_loss_monitor.py +5 -5
  531. mindspore/train/callback/_on_request_exit.py +136 -33
  532. mindspore/train/callback/_reduce_lr_on_plateau.py +2 -2
  533. mindspore/train/callback/_summary_collector.py +12 -12
  534. mindspore/train/callback/_tft_register.py +352 -0
  535. mindspore/train/callback/_time_monitor.py +3 -3
  536. mindspore/train/data_sink.py +6 -5
  537. mindspore/train/dataset_helper.py +66 -23
  538. mindspore/train/loss_scale_manager.py +2 -2
  539. mindspore/train/metrics/accuracy.py +7 -7
  540. mindspore/train/metrics/confusion_matrix.py +8 -6
  541. mindspore/train/metrics/cosine_similarity.py +6 -4
  542. mindspore/train/metrics/error.py +2 -2
  543. mindspore/train/metrics/metric.py +3 -3
  544. mindspore/train/metrics/perplexity.py +2 -1
  545. mindspore/train/metrics/roc.py +4 -4
  546. mindspore/train/metrics/topk.py +2 -2
  547. mindspore/train/mind_ir_pb2.py +116 -37
  548. mindspore/train/model.py +382 -76
  549. mindspore/train/serialization.py +787 -288
  550. mindspore/train/summary/_summary_adapter.py +1 -1
  551. mindspore/train/summary/summary_record.py +51 -28
  552. mindspore/train/train_thor/convert_utils.py +3 -3
  553. mindspore/turbojpeg.dll +0 -0
  554. mindspore/utils/__init__.py +21 -0
  555. mindspore/utils/utils.py +60 -0
  556. mindspore/vcmeta.dll +0 -0
  557. mindspore/vcruntime140.dll +0 -0
  558. mindspore/vcruntime140_1.dll +0 -0
  559. mindspore/version.py +1 -1
  560. {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/METADATA +8 -4
  561. mindspore-2.4.0.dist-info/RECORD +1406 -0
  562. {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/entry_points.txt +1 -0
  563. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +0 -662
  564. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +0 -377
  565. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +0 -201
  566. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +0 -515
  567. mindspore/gen_ops.py +0 -273
  568. mindspore/include/c_api/ms/abstract.h +0 -67
  569. mindspore/include/c_api/ms/attribute.h +0 -197
  570. mindspore/include/c_api/ms/base/handle_types.h +0 -43
  571. mindspore/include/c_api/ms/base/macros.h +0 -32
  572. mindspore/include/c_api/ms/base/status.h +0 -33
  573. mindspore/include/c_api/ms/base/types.h +0 -282
  574. mindspore/include/c_api/ms/context.h +0 -102
  575. mindspore/include/c_api/ms/graph.h +0 -160
  576. mindspore/include/c_api/ms/node.h +0 -606
  577. mindspore/include/c_api/ms/tensor.h +0 -161
  578. mindspore/include/c_api/ms/value.h +0 -84
  579. mindspore/mindspore_shared_lib.dll +0 -0
  580. mindspore/nn/layer/flash_attention.py +0 -189
  581. mindspore/ops/_op_impl/aicpu/strided_slice_v2.py +0 -93
  582. mindspore/ops/_op_impl/aicpu/strided_slice_v2_grad.py +0 -66
  583. mindspore/ops/_op_impl/cpu/concat.py +0 -39
  584. mindspore/ops/_op_impl/cpu/tensor_shape.py +0 -42
  585. mindspore/ops/_op_impl/tbe/__init__.py +0 -47
  586. mindspore/ops/_op_impl/tbe/abs.py +0 -38
  587. mindspore/ops/_op_impl/tbe/abs_ds.py +0 -39
  588. mindspore/ops/_op_impl/tbe/abs_grad.py +0 -43
  589. mindspore/ops/_op_impl/tbe/abs_grad_ds.py +0 -44
  590. mindspore/ops/_op_impl/tbe/accumulate_n_v2.py +0 -41
  591. mindspore/ops/_op_impl/tbe/accumulate_n_v2_ds.py +0 -42
  592. mindspore/ops/_op_impl/tbe/acos.py +0 -37
  593. mindspore/ops/_op_impl/tbe/acos_ds.py +0 -38
  594. mindspore/ops/_op_impl/tbe/acos_grad.py +0 -43
  595. mindspore/ops/_op_impl/tbe/acos_grad_ds.py +0 -44
  596. mindspore/ops/_op_impl/tbe/acosh.py +0 -37
  597. mindspore/ops/_op_impl/tbe/acosh_ds.py +0 -38
  598. mindspore/ops/_op_impl/tbe/acosh_grad.py +0 -43
  599. mindspore/ops/_op_impl/tbe/acosh_grad_ds.py +0 -44
  600. mindspore/ops/_op_impl/tbe/act_ulq_clamp_max_grad.py +0 -38
  601. mindspore/ops/_op_impl/tbe/act_ulq_clamp_min_grad.py +0 -38
  602. mindspore/ops/_op_impl/tbe/acts_ulq.py +0 -45
  603. mindspore/ops/_op_impl/tbe/acts_ulq_input_grad.py +0 -38
  604. mindspore/ops/_op_impl/tbe/adam_apply_one.py +0 -50
  605. mindspore/ops/_op_impl/tbe/adam_apply_one_assign.py +0 -53
  606. mindspore/ops/_op_impl/tbe/adam_apply_one_ds.py +0 -51
  607. mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay.py +0 -54
  608. mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_assign.py +0 -54
  609. mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_ds.py +0 -55
  610. mindspore/ops/_op_impl/tbe/adaptive_max_pool2d.py +0 -37
  611. mindspore/ops/_op_impl/tbe/add.py +0 -42
  612. mindspore/ops/_op_impl/tbe/add_ds.py +0 -43
  613. mindspore/ops/_op_impl/tbe/add_n.py +0 -39
  614. mindspore/ops/_op_impl/tbe/add_n_ds.py +0 -40
  615. mindspore/ops/_op_impl/tbe/addcdiv.py +0 -41
  616. mindspore/ops/_op_impl/tbe/addcdiv_ds.py +0 -42
  617. mindspore/ops/_op_impl/tbe/addcmul.py +0 -43
  618. mindspore/ops/_op_impl/tbe/addcmul_ds.py +0 -44
  619. mindspore/ops/_op_impl/tbe/apply_ada_max.py +0 -68
  620. mindspore/ops/_op_impl/tbe/apply_ada_max_ds.py +0 -69
  621. mindspore/ops/_op_impl/tbe/apply_adadelta.py +0 -66
  622. mindspore/ops/_op_impl/tbe/apply_adadelta_ds.py +0 -67
  623. mindspore/ops/_op_impl/tbe/apply_adagrad.py +0 -55
  624. mindspore/ops/_op_impl/tbe/apply_adagrad_d_a.py +0 -67
  625. mindspore/ops/_op_impl/tbe/apply_adagrad_ds.py +0 -56
  626. mindspore/ops/_op_impl/tbe/apply_adagrad_v2.py +0 -48
  627. mindspore/ops/_op_impl/tbe/apply_adagrad_v2_ds.py +0 -49
  628. mindspore/ops/_op_impl/tbe/apply_adam.py +0 -79
  629. mindspore/ops/_op_impl/tbe/apply_adam_ds.py +0 -80
  630. mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad.py +0 -60
  631. mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad_ds.py +0 -61
  632. mindspore/ops/_op_impl/tbe/apply_add_sign.py +0 -65
  633. mindspore/ops/_op_impl/tbe/apply_add_sign_ds.py +0 -66
  634. mindspore/ops/_op_impl/tbe/apply_centered_rms_prop.py +0 -77
  635. mindspore/ops/_op_impl/tbe/apply_centered_rms_prop_ds.py +0 -78
  636. mindspore/ops/_op_impl/tbe/apply_ftrl.py +0 -67
  637. mindspore/ops/_op_impl/tbe/apply_ftrl_ds.py +0 -68
  638. mindspore/ops/_op_impl/tbe/apply_gradient_descent.py +0 -44
  639. mindspore/ops/_op_impl/tbe/apply_gradient_descent_ds.py +0 -45
  640. mindspore/ops/_op_impl/tbe/apply_keras_momentum.py +0 -49
  641. mindspore/ops/_op_impl/tbe/apply_momentum.py +0 -64
  642. mindspore/ops/_op_impl/tbe/apply_momentum_ds.py +0 -65
  643. mindspore/ops/_op_impl/tbe/apply_power_sign.py +0 -65
  644. mindspore/ops/_op_impl/tbe/apply_power_sign_ds.py +0 -66
  645. mindspore/ops/_op_impl/tbe/apply_proximal_adagrad.py +0 -57
  646. mindspore/ops/_op_impl/tbe/apply_proximal_adagrad_ds.py +0 -58
  647. mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent.py +0 -54
  648. mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent_ds.py +0 -55
  649. mindspore/ops/_op_impl/tbe/apply_rms_prop.py +0 -52
  650. mindspore/ops/_op_impl/tbe/approximate_equal.py +0 -39
  651. mindspore/ops/_op_impl/tbe/approximate_equal_ds.py +0 -40
  652. mindspore/ops/_op_impl/tbe/arg_max.py +0 -38
  653. mindspore/ops/_op_impl/tbe/arg_max_with_value.py +0 -38
  654. mindspore/ops/_op_impl/tbe/arg_max_with_value_ds.py +0 -39
  655. mindspore/ops/_op_impl/tbe/arg_min.py +0 -38
  656. mindspore/ops/_op_impl/tbe/arg_min_v2_ds.py +0 -40
  657. mindspore/ops/_op_impl/tbe/arg_min_with_value.py +0 -38
  658. mindspore/ops/_op_impl/tbe/arg_min_with_value_ds.py +0 -39
  659. mindspore/ops/_op_impl/tbe/asin.py +0 -37
  660. mindspore/ops/_op_impl/tbe/asin_ds.py +0 -38
  661. mindspore/ops/_op_impl/tbe/asin_grad.py +0 -43
  662. mindspore/ops/_op_impl/tbe/asin_grad_ds.py +0 -44
  663. mindspore/ops/_op_impl/tbe/asinh.py +0 -37
  664. mindspore/ops/_op_impl/tbe/asinh_ds.py +0 -38
  665. mindspore/ops/_op_impl/tbe/asinh_grad.py +0 -43
  666. mindspore/ops/_op_impl/tbe/asinh_grad_ds.py +0 -44
  667. mindspore/ops/_op_impl/tbe/assign.py +0 -79
  668. mindspore/ops/_op_impl/tbe/assign_add.py +0 -59
  669. mindspore/ops/_op_impl/tbe/assign_add_ds.py +0 -60
  670. mindspore/ops/_op_impl/tbe/assign_ds.py +0 -80
  671. mindspore/ops/_op_impl/tbe/assign_sub.py +0 -55
  672. mindspore/ops/_op_impl/tbe/assign_sub_ds.py +0 -56
  673. mindspore/ops/_op_impl/tbe/atan.py +0 -37
  674. mindspore/ops/_op_impl/tbe/atan2.py +0 -38
  675. mindspore/ops/_op_impl/tbe/atan2_ds.py +0 -39
  676. mindspore/ops/_op_impl/tbe/atan_ds.py +0 -38
  677. mindspore/ops/_op_impl/tbe/atan_grad.py +0 -43
  678. mindspore/ops/_op_impl/tbe/atan_grad_ds.py +0 -44
  679. mindspore/ops/_op_impl/tbe/atanh.py +0 -37
  680. mindspore/ops/_op_impl/tbe/atanh_ds.py +0 -38
  681. mindspore/ops/_op_impl/tbe/avg_pool.py +0 -43
  682. mindspore/ops/_op_impl/tbe/avg_pool_3d.py +0 -44
  683. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +0 -45
  684. mindspore/ops/_op_impl/tbe/avg_pool_ds.py +0 -44
  685. mindspore/ops/_op_impl/tbe/avg_pool_grad.py +0 -42
  686. mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +0 -42
  687. mindspore/ops/_op_impl/tbe/basic_lstm_cell.py +0 -57
  688. mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad.py +0 -50
  689. mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -51
  690. mindspore/ops/_op_impl/tbe/basic_lstm_cell_input_grad.py +0 -42
  691. mindspore/ops/_op_impl/tbe/basic_lstm_cell_weight_grad.py +0 -41
  692. mindspore/ops/_op_impl/tbe/batch_matmul.py +0 -42
  693. mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +0 -41
  694. mindspore/ops/_op_impl/tbe/batch_matmul_v2.py +0 -47
  695. mindspore/ops/_op_impl/tbe/batch_to_space.py +0 -38
  696. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +0 -38
  697. mindspore/ops/_op_impl/tbe/batch_to_space_nd_ds.py +0 -39
  698. mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +0 -41
  699. mindspore/ops/_op_impl/tbe/batchnorm.py +0 -58
  700. mindspore/ops/_op_impl/tbe/batchnorm_grad.py +0 -58
  701. mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +0 -42
  702. mindspore/ops/_op_impl/tbe/bessel_i0e.py +0 -37
  703. mindspore/ops/_op_impl/tbe/bessel_i0e_ds.py +0 -38
  704. mindspore/ops/_op_impl/tbe/bessel_i1e.py +0 -37
  705. mindspore/ops/_op_impl/tbe/bessel_i1e_ds.py +0 -38
  706. mindspore/ops/_op_impl/tbe/bias_add.py +0 -38
  707. mindspore/ops/_op_impl/tbe/bias_add_ds.py +0 -39
  708. mindspore/ops/_op_impl/tbe/bias_add_grad.py +0 -53
  709. mindspore/ops/_op_impl/tbe/binary_cross_entropy.py +0 -39
  710. mindspore/ops/_op_impl/tbe/binary_cross_entropy_ds.py +0 -40
  711. mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad.py +0 -44
  712. mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad_ds.py +0 -45
  713. mindspore/ops/_op_impl/tbe/bitwise_and.py +0 -39
  714. mindspore/ops/_op_impl/tbe/bitwise_and_ds.py +0 -40
  715. mindspore/ops/_op_impl/tbe/bitwise_or.py +0 -39
  716. mindspore/ops/_op_impl/tbe/bitwise_or_ds.py +0 -40
  717. mindspore/ops/_op_impl/tbe/bitwise_xor.py +0 -39
  718. mindspore/ops/_op_impl/tbe/bitwise_xor_ds.py +0 -40
  719. mindspore/ops/_op_impl/tbe/bn_infer.py +0 -43
  720. mindspore/ops/_op_impl/tbe/bn_infer_ds.py +0 -45
  721. mindspore/ops/_op_impl/tbe/bn_infer_grad.py +0 -41
  722. mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +0 -40
  723. mindspore/ops/_op_impl/tbe/bn_inference.py +0 -50
  724. mindspore/ops/_op_impl/tbe/bn_training_reduce.py +0 -38
  725. mindspore/ops/_op_impl/tbe/bn_training_reduce_ds.py +0 -39
  726. mindspore/ops/_op_impl/tbe/bn_training_reduce_grad.py +0 -46
  727. mindspore/ops/_op_impl/tbe/bn_training_reduce_grad_ds.py +0 -47
  728. mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -52
  729. mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -53
  730. mindspore/ops/_op_impl/tbe/bn_training_update_grad.py +0 -44
  731. mindspore/ops/_op_impl/tbe/bn_training_update_grad_ds.py +0 -45
  732. mindspore/ops/_op_impl/tbe/bn_training_update_v2.py +0 -48
  733. mindspore/ops/_op_impl/tbe/bn_training_update_v3.py +0 -51
  734. mindspore/ops/_op_impl/tbe/bounding_box_decode.py +0 -41
  735. mindspore/ops/_op_impl/tbe/bounding_box_decode_ds.py +0 -42
  736. mindspore/ops/_op_impl/tbe/bounding_box_encode.py +0 -38
  737. mindspore/ops/_op_impl/tbe/broadcast_to.py +0 -40
  738. mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +0 -44
  739. mindspore/ops/_op_impl/tbe/cast.py +0 -55
  740. mindspore/ops/_op_impl/tbe/cast_ds.py +0 -58
  741. mindspore/ops/_op_impl/tbe/cdist.py +0 -38
  742. mindspore/ops/_op_impl/tbe/cdist_grad.py +0 -42
  743. mindspore/ops/_op_impl/tbe/ceil.py +0 -37
  744. mindspore/ops/_op_impl/tbe/ceil_ds.py +0 -38
  745. mindspore/ops/_op_impl/tbe/celu.py +0 -39
  746. mindspore/ops/_op_impl/tbe/centralization.py +0 -39
  747. mindspore/ops/_op_impl/tbe/check_valid.py +0 -38
  748. mindspore/ops/_op_impl/tbe/check_valid_ds.py +0 -39
  749. mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum.py +0 -41
  750. mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum_ds.py +0 -42
  751. mindspore/ops/_op_impl/tbe/clip_by_value.py +0 -41
  752. mindspore/ops/_op_impl/tbe/clip_by_value_ds.py +0 -42
  753. mindspore/ops/_op_impl/tbe/concat.py +0 -40
  754. mindspore/ops/_op_impl/tbe/concat_ds.py +0 -38
  755. mindspore/ops/_op_impl/tbe/confusion_matrix.py +0 -63
  756. mindspore/ops/_op_impl/tbe/confusion_mul_grad.py +0 -40
  757. mindspore/ops/_op_impl/tbe/confusion_softmax_grad.py +0 -41
  758. mindspore/ops/_op_impl/tbe/confusion_transpose_d.py +0 -39
  759. mindspore/ops/_op_impl/tbe/conv2d.py +0 -47
  760. mindspore/ops/_op_impl/tbe/conv2d_backprop_filter.py +0 -42
  761. mindspore/ops/_op_impl/tbe/conv2d_backprop_filter_ds.py +0 -43
  762. mindspore/ops/_op_impl/tbe/conv2d_backprop_input.py +0 -42
  763. mindspore/ops/_op_impl/tbe/conv2d_backprop_input_ds.py +0 -44
  764. mindspore/ops/_op_impl/tbe/conv2d_ds.py +0 -47
  765. mindspore/ops/_op_impl/tbe/conv2d_transpose.py +0 -48
  766. mindspore/ops/_op_impl/tbe/conv3d.py +0 -45
  767. mindspore/ops/_op_impl/tbe/conv3d_backprop_filter.py +0 -42
  768. mindspore/ops/_op_impl/tbe/conv3d_backprop_input.py +0 -42
  769. mindspore/ops/_op_impl/tbe/conv3d_transpose.py +0 -47
  770. mindspore/ops/_op_impl/tbe/conv3d_transpose_ds.py +0 -48
  771. mindspore/ops/_op_impl/tbe/cos.py +0 -37
  772. mindspore/ops/_op_impl/tbe/cos_ds.py +0 -38
  773. mindspore/ops/_op_impl/tbe/cosh.py +0 -37
  774. mindspore/ops/_op_impl/tbe/cosh_ds.py +0 -38
  775. mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -42
  776. mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -44
  777. mindspore/ops/_op_impl/tbe/cum_sum.py +0 -42
  778. mindspore/ops/_op_impl/tbe/cum_sum_ds.py +0 -44
  779. mindspore/ops/_op_impl/tbe/cummin.py +0 -41
  780. mindspore/ops/_op_impl/tbe/cumprod.py +0 -42
  781. mindspore/ops/_op_impl/tbe/data_format_dim_map.py +0 -38
  782. mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +0 -40
  783. mindspore/ops/_op_impl/tbe/deformable_offsets.py +0 -45
  784. mindspore/ops/_op_impl/tbe/deformable_offsets_grad.py +0 -48
  785. mindspore/ops/_op_impl/tbe/depth_to_space_ds.py +0 -49
  786. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +0 -44
  787. mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_filter.py +0 -41
  788. mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_input.py +0 -41
  789. mindspore/ops/_op_impl/tbe/diag.py +0 -38
  790. mindspore/ops/_op_impl/tbe/diag_part.py +0 -38
  791. mindspore/ops/_op_impl/tbe/dilation.py +0 -40
  792. mindspore/ops/_op_impl/tbe/div.py +0 -41
  793. mindspore/ops/_op_impl/tbe/div_ds.py +0 -42
  794. mindspore/ops/_op_impl/tbe/div_no_nan.py +0 -41
  795. mindspore/ops/_op_impl/tbe/div_no_nan_ds.py +0 -42
  796. mindspore/ops/_op_impl/tbe/dropout_do_mask.py +0 -38
  797. mindspore/ops/_op_impl/tbe/dropout_do_mask_ds.py +0 -39
  798. mindspore/ops/_op_impl/tbe/dropout_do_mask_v3.py +0 -39
  799. mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +0 -34
  800. mindspore/ops/_op_impl/tbe/dynamic_gru_v2.py +0 -95
  801. mindspore/ops/_op_impl/tbe/dynamic_rnn.py +0 -82
  802. mindspore/ops/_op_impl/tbe/elu.py +0 -38
  803. mindspore/ops/_op_impl/tbe/elu_ds.py +0 -39
  804. mindspore/ops/_op_impl/tbe/elu_grad.py +0 -43
  805. mindspore/ops/_op_impl/tbe/elu_grad_ds.py +0 -44
  806. mindspore/ops/_op_impl/tbe/equal.py +0 -42
  807. mindspore/ops/_op_impl/tbe/equal_ds.py +0 -42
  808. mindspore/ops/_op_impl/tbe/erf.py +0 -37
  809. mindspore/ops/_op_impl/tbe/erf_ds.py +0 -38
  810. mindspore/ops/_op_impl/tbe/erfc.py +0 -37
  811. mindspore/ops/_op_impl/tbe/erfc_ds.py +0 -38
  812. mindspore/ops/_op_impl/tbe/erfinv.py +0 -36
  813. mindspore/ops/_op_impl/tbe/exp.py +0 -40
  814. mindspore/ops/_op_impl/tbe/exp_ds.py +0 -41
  815. mindspore/ops/_op_impl/tbe/expand_dims.py +0 -38
  816. mindspore/ops/_op_impl/tbe/expm1.py +0 -37
  817. mindspore/ops/_op_impl/tbe/expm1_ds.py +0 -38
  818. mindspore/ops/_op_impl/tbe/extract_image_patches.py +0 -41
  819. mindspore/ops/_op_impl/tbe/extract_volume_patches.py +0 -39
  820. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars.py +0 -39
  821. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_gradient.py +0 -43
  822. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel.py +0 -39
  823. mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel_gradient.py +0 -43
  824. mindspore/ops/_op_impl/tbe/fast_gelu.py +0 -37
  825. mindspore/ops/_op_impl/tbe/fast_gelu_ds.py +0 -38
  826. mindspore/ops/_op_impl/tbe/fast_gelu_grad.py +0 -41
  827. mindspore/ops/_op_impl/tbe/fast_gelu_grad_ds.py +0 -42
  828. mindspore/ops/_op_impl/tbe/fill.py +0 -56
  829. mindspore/ops/_op_impl/tbe/fill_ds.py +0 -42
  830. mindspore/ops/_op_impl/tbe/flatten.py +0 -48
  831. mindspore/ops/_op_impl/tbe/floor.py +0 -37
  832. mindspore/ops/_op_impl/tbe/floor_div.py +0 -41
  833. mindspore/ops/_op_impl/tbe/floor_div_ds.py +0 -42
  834. mindspore/ops/_op_impl/tbe/floor_ds.py +0 -38
  835. mindspore/ops/_op_impl/tbe/floor_mod.py +0 -39
  836. mindspore/ops/_op_impl/tbe/floor_mod_ds.py +0 -40
  837. mindspore/ops/_op_impl/tbe/fused_dbn_dw.py +0 -52
  838. mindspore/ops/_op_impl/tbe/fused_mul_add.py +0 -38
  839. mindspore/ops/_op_impl/tbe/fused_mul_add_n.py +0 -48
  840. mindspore/ops/_op_impl/tbe/fused_mul_add_n_l2loss.py +0 -53
  841. mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum.py +0 -57
  842. mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum_extern.py +0 -67
  843. mindspore/ops/_op_impl/tbe/gather_nd.py +0 -52
  844. mindspore/ops/_op_impl/tbe/gather_nd_ds.py +0 -48
  845. mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
  846. mindspore/ops/_op_impl/tbe/gather_v2_ds.py +0 -68
  847. mindspore/ops/_op_impl/tbe/gelu.py +0 -37
  848. mindspore/ops/_op_impl/tbe/gelu_ds.py +0 -38
  849. mindspore/ops/_op_impl/tbe/gelu_grad.py +0 -42
  850. mindspore/ops/_op_impl/tbe/gelu_grad_ds.py +0 -43
  851. mindspore/ops/_op_impl/tbe/ger.py +0 -43
  852. mindspore/ops/_op_impl/tbe/ger_ds.py +0 -44
  853. mindspore/ops/_op_impl/tbe/greater.py +0 -43
  854. mindspore/ops/_op_impl/tbe/greater_equal.py +0 -41
  855. mindspore/ops/_op_impl/tbe/greater_equal_ds.py +0 -42
  856. mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad.py +0 -51
  857. mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad_cell.py +0 -52
  858. mindspore/ops/_op_impl/tbe/hard_swish.py +0 -37
  859. mindspore/ops/_op_impl/tbe/hard_swish_ds.py +0 -38
  860. mindspore/ops/_op_impl/tbe/hard_swish_grad.py +0 -41
  861. mindspore/ops/_op_impl/tbe/hard_swish_grad_ds.py +0 -42
  862. mindspore/ops/_op_impl/tbe/histogram_fixed_width.py +0 -40
  863. mindspore/ops/_op_impl/tbe/hshrink.py +0 -33
  864. mindspore/ops/_op_impl/tbe/hshrink_grad.py +0 -37
  865. mindspore/ops/_op_impl/tbe/hsigmoid.py +0 -45
  866. mindspore/ops/_op_impl/tbe/hsigmoid_grad.py +0 -39
  867. mindspore/ops/_op_impl/tbe/ifmr.py +0 -47
  868. mindspore/ops/_op_impl/tbe/ifmr_ds.py +0 -48
  869. mindspore/ops/_op_impl/tbe/im2col.py +0 -42
  870. mindspore/ops/_op_impl/tbe/in_top_k.py +0 -37
  871. mindspore/ops/_op_impl/tbe/inplace_add.py +0 -39
  872. mindspore/ops/_op_impl/tbe/inplace_index_add.py +0 -46
  873. mindspore/ops/_op_impl/tbe/inplace_sub.py +0 -39
  874. mindspore/ops/_op_impl/tbe/inplace_update.py +0 -39
  875. mindspore/ops/_op_impl/tbe/inplace_update_ds.py +0 -40
  876. mindspore/ops/_op_impl/tbe/inv.py +0 -38
  877. mindspore/ops/_op_impl/tbe/inv_ds.py +0 -39
  878. mindspore/ops/_op_impl/tbe/inv_grad.py +0 -40
  879. mindspore/ops/_op_impl/tbe/inv_grad_ds.py +0 -41
  880. mindspore/ops/_op_impl/tbe/invert.py +0 -37
  881. mindspore/ops/_op_impl/tbe/invert_ds.py +0 -38
  882. mindspore/ops/_op_impl/tbe/iou.py +0 -38
  883. mindspore/ops/_op_impl/tbe/iou_ds.py +0 -39
  884. mindspore/ops/_op_impl/tbe/is_close.py +0 -40
  885. mindspore/ops/_op_impl/tbe/kl_div_loss.py +0 -38
  886. mindspore/ops/_op_impl/tbe/kl_div_loss_ds.py +0 -39
  887. mindspore/ops/_op_impl/tbe/kl_div_loss_grad.py +0 -40
  888. mindspore/ops/_op_impl/tbe/l2_loss.py +0 -36
  889. mindspore/ops/_op_impl/tbe/l2_loss_ds.py +0 -37
  890. mindspore/ops/_op_impl/tbe/l2_normalize.py +0 -38
  891. mindspore/ops/_op_impl/tbe/l2_normalize_grad.py +0 -40
  892. mindspore/ops/_op_impl/tbe/lamb_apply_optimizer_assign.py +0 -55
  893. mindspore/ops/_op_impl/tbe/lamb_apply_weight_assign.py +0 -42
  894. mindspore/ops/_op_impl/tbe/lamb_next_mv.py +0 -59
  895. mindspore/ops/_op_impl/tbe/lamb_next_mv_with_decay.py +0 -59
  896. mindspore/ops/_op_impl/tbe/lamb_next_right.py +0 -44
  897. mindspore/ops/_op_impl/tbe/lamb_update_with_lr.py +0 -48
  898. mindspore/ops/_op_impl/tbe/lamb_update_with_lr_v2.py +0 -44
  899. mindspore/ops/_op_impl/tbe/lars_update.py +0 -50
  900. mindspore/ops/_op_impl/tbe/lars_update_ds.py +0 -51
  901. mindspore/ops/_op_impl/tbe/layer_norm.py +0 -46
  902. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop.py +0 -44
  903. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_ds.py +0 -45
  904. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -40
  905. mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2_ds.py +0 -41
  906. mindspore/ops/_op_impl/tbe/layer_norm_ds.py +0 -47
  907. mindspore/ops/_op_impl/tbe/layer_norm_grad.py +0 -48
  908. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop.py +0 -43
  909. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_ds.py +0 -44
  910. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2.py +0 -45
  911. mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2_ds.py +0 -45
  912. mindspore/ops/_op_impl/tbe/lerp.py +0 -38
  913. mindspore/ops/_op_impl/tbe/less.py +0 -41
  914. mindspore/ops/_op_impl/tbe/less_ds.py +0 -42
  915. mindspore/ops/_op_impl/tbe/less_equal.py +0 -41
  916. mindspore/ops/_op_impl/tbe/less_equal_ds.py +0 -42
  917. mindspore/ops/_op_impl/tbe/log.py +0 -40
  918. mindspore/ops/_op_impl/tbe/log1p.py +0 -37
  919. mindspore/ops/_op_impl/tbe/log1p_ds.py +0 -38
  920. mindspore/ops/_op_impl/tbe/log_ds.py +0 -41
  921. mindspore/ops/_op_impl/tbe/logical_and.py +0 -37
  922. mindspore/ops/_op_impl/tbe/logical_and_ds.py +0 -38
  923. mindspore/ops/_op_impl/tbe/logical_not.py +0 -36
  924. mindspore/ops/_op_impl/tbe/logical_not_ds.py +0 -37
  925. mindspore/ops/_op_impl/tbe/logical_or.py +0 -37
  926. mindspore/ops/_op_impl/tbe/logical_or_ds.py +0 -38
  927. mindspore/ops/_op_impl/tbe/logsoftmax.py +0 -37
  928. mindspore/ops/_op_impl/tbe/logsoftmax_ds.py +0 -38
  929. mindspore/ops/_op_impl/tbe/logsoftmax_grad.py +0 -38
  930. mindspore/ops/_op_impl/tbe/logsoftmax_grad_ds.py +0 -39
  931. mindspore/ops/_op_impl/tbe/lp_norm.py +0 -40
  932. mindspore/ops/_op_impl/tbe/lp_norm_ds.py +0 -41
  933. mindspore/ops/_op_impl/tbe/lrn.py +0 -41
  934. mindspore/ops/_op_impl/tbe/lrn_grad.py +0 -42
  935. mindspore/ops/_op_impl/tbe/lstm_input_grad.py +0 -51
  936. mindspore/ops/_op_impl/tbe/masked_fill.py +0 -40
  937. mindspore/ops/_op_impl/tbe/masked_fill_ds.py +0 -41
  938. mindspore/ops/_op_impl/tbe/matmul.py +0 -53
  939. mindspore/ops/_op_impl/tbe/matmul_ds.py +0 -47
  940. mindspore/ops/_op_impl/tbe/matmul_v2.py +0 -50
  941. mindspore/ops/_op_impl/tbe/matrix_diag.py +0 -45
  942. mindspore/ops/_op_impl/tbe/matrix_diag_part.py +0 -45
  943. mindspore/ops/_op_impl/tbe/matrix_set_diag.py +0 -46
  944. mindspore/ops/_op_impl/tbe/max_pool.py +0 -39
  945. mindspore/ops/_op_impl/tbe/max_pool3d.py +0 -44
  946. mindspore/ops/_op_impl/tbe/max_pool3d_grad.py +0 -43
  947. mindspore/ops/_op_impl/tbe/max_pool3d_grad_grad.py +0 -44
  948. mindspore/ops/_op_impl/tbe/max_pool_ds.py +0 -40
  949. mindspore/ops/_op_impl/tbe/max_pool_grad.py +0 -43
  950. mindspore/ops/_op_impl/tbe/max_pool_grad_grad.py +0 -41
  951. mindspore/ops/_op_impl/tbe/max_pool_grad_grad_with_argmax.py +0 -41
  952. mindspore/ops/_op_impl/tbe/max_pool_grad_with_argmax.py +0 -42
  953. mindspore/ops/_op_impl/tbe/max_pool_with_argmax.py +0 -40
  954. mindspore/ops/_op_impl/tbe/maximum.py +0 -39
  955. mindspore/ops/_op_impl/tbe/maximum_ds.py +0 -40
  956. mindspore/ops/_op_impl/tbe/maximum_grad.py +0 -46
  957. mindspore/ops/_op_impl/tbe/maximum_grad_ds.py +0 -47
  958. mindspore/ops/_op_impl/tbe/mem_set.py +0 -38
  959. mindspore/ops/_op_impl/tbe/minimum.py +0 -40
  960. mindspore/ops/_op_impl/tbe/minimum_ds.py +0 -41
  961. mindspore/ops/_op_impl/tbe/minimum_grad.py +0 -46
  962. mindspore/ops/_op_impl/tbe/minimum_grad_ds.py +0 -47
  963. mindspore/ops/_op_impl/tbe/mish.py +0 -37
  964. mindspore/ops/_op_impl/tbe/mod.py +0 -41
  965. mindspore/ops/_op_impl/tbe/mod_ds.py +0 -42
  966. mindspore/ops/_op_impl/tbe/mul.py +0 -37
  967. mindspore/ops/_op_impl/tbe/mul_ds.py +0 -38
  968. mindspore/ops/_op_impl/tbe/mul_no_nan.py +0 -39
  969. mindspore/ops/_op_impl/tbe/mul_no_nan_ds.py +0 -40
  970. mindspore/ops/_op_impl/tbe/multilabel_margin_loss.py +0 -39
  971. mindspore/ops/_op_impl/tbe/neg.py +0 -39
  972. mindspore/ops/_op_impl/tbe/neg_ds.py +0 -40
  973. mindspore/ops/_op_impl/tbe/new_im2col.py +0 -40
  974. mindspore/ops/_op_impl/tbe/nll_loss.py +0 -41
  975. mindspore/ops/_op_impl/tbe/nll_loss_grad.py +0 -44
  976. mindspore/ops/_op_impl/tbe/nms_with_mask.py +0 -39
  977. mindspore/ops/_op_impl/tbe/not_equal.py +0 -41
  978. mindspore/ops/_op_impl/tbe/not_equal_ds.py +0 -42
  979. mindspore/ops/_op_impl/tbe/npu_alloc_float_status.py +0 -34
  980. mindspore/ops/_op_impl/tbe/npu_clear_float_status.py +0 -35
  981. mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +0 -35
  982. mindspore/ops/_op_impl/tbe/npu_get_float_status.py +0 -35
  983. mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +0 -35
  984. mindspore/ops/_op_impl/tbe/one_hot.py +0 -48
  985. mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -45
  986. mindspore/ops/_op_impl/tbe/ones_like.py +0 -40
  987. mindspore/ops/_op_impl/tbe/ones_like_ds.py +0 -41
  988. mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling.py +0 -40
  989. mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling_grad.py +0 -40
  990. mindspore/ops/_op_impl/tbe/pack.py +0 -58
  991. mindspore/ops/_op_impl/tbe/pack_ds.py +0 -59
  992. mindspore/ops/_op_impl/tbe/pad_d.py +0 -40
  993. mindspore/ops/_op_impl/tbe/pad_d_ds.py +0 -41
  994. mindspore/ops/_op_impl/tbe/parallel_concat.py +0 -70
  995. mindspore/ops/_op_impl/tbe/parallel_resize_bilinear.py +0 -45
  996. mindspore/ops/_op_impl/tbe/parallel_resize_bilinear_grad.py +0 -44
  997. mindspore/ops/_op_impl/tbe/pdist.py +0 -36
  998. mindspore/ops/_op_impl/tbe/pooling.py +0 -46
  999. mindspore/ops/_op_impl/tbe/population_count.py +0 -38
  1000. mindspore/ops/_op_impl/tbe/pow.py +0 -41
  1001. mindspore/ops/_op_impl/tbe/pow_ds.py +0 -42
  1002. mindspore/ops/_op_impl/tbe/prelu.py +0 -37
  1003. mindspore/ops/_op_impl/tbe/prelu_ds.py +0 -38
  1004. mindspore/ops/_op_impl/tbe/prelu_grad.py +0 -40
  1005. mindspore/ops/_op_impl/tbe/range.py +0 -39
  1006. mindspore/ops/_op_impl/tbe/real_div.py +0 -38
  1007. mindspore/ops/_op_impl/tbe/real_div_ds.py +0 -39
  1008. mindspore/ops/_op_impl/tbe/reciprocal.py +0 -36
  1009. mindspore/ops/_op_impl/tbe/reciprocal_ds.py +0 -37
  1010. mindspore/ops/_op_impl/tbe/reciprocal_grad.py +0 -38
  1011. mindspore/ops/_op_impl/tbe/reciprocal_grad_ds.py +0 -39
  1012. mindspore/ops/_op_impl/tbe/reduce_all.py +0 -38
  1013. mindspore/ops/_op_impl/tbe/reduce_all_ds.py +0 -39
  1014. mindspore/ops/_op_impl/tbe/reduce_any.py +0 -38
  1015. mindspore/ops/_op_impl/tbe/reduce_any_ds.py +0 -39
  1016. mindspore/ops/_op_impl/tbe/reduce_max.py +0 -43
  1017. mindspore/ops/_op_impl/tbe/reduce_max_ds.py +0 -41
  1018. mindspore/ops/_op_impl/tbe/reduce_mean.py +0 -40
  1019. mindspore/ops/_op_impl/tbe/reduce_mean_ds.py +0 -42
  1020. mindspore/ops/_op_impl/tbe/reduce_min.py +0 -41
  1021. mindspore/ops/_op_impl/tbe/reduce_min_ds.py +0 -41
  1022. mindspore/ops/_op_impl/tbe/reduce_prod.py +0 -42
  1023. mindspore/ops/_op_impl/tbe/reduce_prod_ds.py +0 -41
  1024. mindspore/ops/_op_impl/tbe/reduce_std.py +0 -44
  1025. mindspore/ops/_op_impl/tbe/reduce_sum.py +0 -39
  1026. mindspore/ops/_op_impl/tbe/reduce_sum_ds.py +0 -41
  1027. mindspore/ops/_op_impl/tbe/relu.py +0 -39
  1028. mindspore/ops/_op_impl/tbe/relu6.py +0 -38
  1029. mindspore/ops/_op_impl/tbe/relu6_ds.py +0 -39
  1030. mindspore/ops/_op_impl/tbe/relu6_grad.py +0 -43
  1031. mindspore/ops/_op_impl/tbe/relu6_grad_ds.py +0 -44
  1032. mindspore/ops/_op_impl/tbe/relu_ds.py +0 -40
  1033. mindspore/ops/_op_impl/tbe/relu_grad.py +0 -41
  1034. mindspore/ops/_op_impl/tbe/relu_grad_ds.py +0 -42
  1035. mindspore/ops/_op_impl/tbe/relu_grad_v2.py +0 -40
  1036. mindspore/ops/_op_impl/tbe/relu_grad_v2_ds.py +0 -41
  1037. mindspore/ops/_op_impl/tbe/relu_v2.py +0 -40
  1038. mindspore/ops/_op_impl/tbe/relu_v2_ds.py +0 -41
  1039. mindspore/ops/_op_impl/tbe/renorm.py +0 -39
  1040. mindspore/ops/_op_impl/tbe/resize_bilinear.py +0 -40
  1041. mindspore/ops/_op_impl/tbe/resize_bilinear_grad.py +0 -41
  1042. mindspore/ops/_op_impl/tbe/resize_bilinear_v2.py +0 -43
  1043. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor.py +0 -40
  1044. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_ds.py +0 -40
  1045. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad.py +0 -39
  1046. mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad_ds.py +0 -42
  1047. mindspore/ops/_op_impl/tbe/reverse_v2_d.py +0 -37
  1048. mindspore/ops/_op_impl/tbe/rint.py +0 -37
  1049. mindspore/ops/_op_impl/tbe/rint_ds.py +0 -38
  1050. mindspore/ops/_op_impl/tbe/roi_align.py +0 -43
  1051. mindspore/ops/_op_impl/tbe/roi_align_ds.py +0 -44
  1052. mindspore/ops/_op_impl/tbe/roi_align_grad.py +0 -43
  1053. mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +0 -44
  1054. mindspore/ops/_op_impl/tbe/roll.py +0 -42
  1055. mindspore/ops/_op_impl/tbe/round.py +0 -38
  1056. mindspore/ops/_op_impl/tbe/round_ds.py +0 -39
  1057. mindspore/ops/_op_impl/tbe/rsqrt.py +0 -37
  1058. mindspore/ops/_op_impl/tbe/rsqrt_ds.py +0 -38
  1059. mindspore/ops/_op_impl/tbe/rsqrt_grad.py +0 -40
  1060. mindspore/ops/_op_impl/tbe/rsqrt_grad_ds.py +0 -41
  1061. mindspore/ops/_op_impl/tbe/scatter_add.py +0 -44
  1062. mindspore/ops/_op_impl/tbe/scatter_div.py +0 -46
  1063. mindspore/ops/_op_impl/tbe/scatter_max.py +0 -45
  1064. mindspore/ops/_op_impl/tbe/scatter_min.py +0 -45
  1065. mindspore/ops/_op_impl/tbe/scatter_mul.py +0 -44
  1066. mindspore/ops/_op_impl/tbe/scatter_nd.py +0 -41
  1067. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -45
  1068. mindspore/ops/_op_impl/tbe/scatter_nd_d.py +0 -41
  1069. mindspore/ops/_op_impl/tbe/scatter_nd_ds.py +0 -49
  1070. mindspore/ops/_op_impl/tbe/scatter_nd_sub.py +0 -47
  1071. mindspore/ops/_op_impl/tbe/scatter_nd_sub_ds.py +0 -48
  1072. mindspore/ops/_op_impl/tbe/scatter_nd_update.py +0 -47
  1073. mindspore/ops/_op_impl/tbe/scatter_nd_update_ds.py +0 -48
  1074. mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add.py +0 -39
  1075. mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add_ds.py +0 -40
  1076. mindspore/ops/_op_impl/tbe/scatter_sub.py +0 -47
  1077. mindspore/ops/_op_impl/tbe/scatter_sub_ds.py +0 -48
  1078. mindspore/ops/_op_impl/tbe/scatter_update.py +0 -43
  1079. mindspore/ops/_op_impl/tbe/select.py +0 -38
  1080. mindspore/ops/_op_impl/tbe/select_ds.py +0 -39
  1081. mindspore/ops/_op_impl/tbe/selu.py +0 -39
  1082. mindspore/ops/_op_impl/tbe/selu_ds.py +0 -40
  1083. mindspore/ops/_op_impl/tbe/sgd.py +0 -62
  1084. mindspore/ops/_op_impl/tbe/sigmoid.py +0 -37
  1085. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py +0 -41
  1086. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_ds.py +0 -42
  1087. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py +0 -42
  1088. mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad_ds.py +0 -43
  1089. mindspore/ops/_op_impl/tbe/sigmoid_ds.py +0 -38
  1090. mindspore/ops/_op_impl/tbe/sigmoid_grad.py +0 -39
  1091. mindspore/ops/_op_impl/tbe/sigmoid_grad_ds.py +0 -40
  1092. mindspore/ops/_op_impl/tbe/sign.py +0 -38
  1093. mindspore/ops/_op_impl/tbe/sign_ds.py +0 -39
  1094. mindspore/ops/_op_impl/tbe/sin.py +0 -37
  1095. mindspore/ops/_op_impl/tbe/sin_ds.py +0 -38
  1096. mindspore/ops/_op_impl/tbe/sinh.py +0 -37
  1097. mindspore/ops/_op_impl/tbe/sinh_ds.py +0 -38
  1098. mindspore/ops/_op_impl/tbe/slice.py +0 -58
  1099. mindspore/ops/_op_impl/tbe/smooth_l1_loss.py +0 -45
  1100. mindspore/ops/_op_impl/tbe/smooth_l1_loss_ds.py +0 -46
  1101. mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad.py +0 -46
  1102. mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad_ds.py +0 -47
  1103. mindspore/ops/_op_impl/tbe/soft_margin_loss.py +0 -38
  1104. mindspore/ops/_op_impl/tbe/soft_margin_loss_grad.py +0 -39
  1105. mindspore/ops/_op_impl/tbe/soft_shrink.py +0 -36
  1106. mindspore/ops/_op_impl/tbe/soft_shrink_grad.py +0 -38
  1107. mindspore/ops/_op_impl/tbe/softmax.py +0 -37
  1108. mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits.py +0 -38
  1109. mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits_ds.py +0 -39
  1110. mindspore/ops/_op_impl/tbe/softmax_ds.py +0 -38
  1111. mindspore/ops/_op_impl/tbe/softmax_grad_ext.py +0 -42
  1112. mindspore/ops/_op_impl/tbe/softmax_v2_with_dropout_do_mask_v3.py +0 -39
  1113. mindspore/ops/_op_impl/tbe/softplus.py +0 -37
  1114. mindspore/ops/_op_impl/tbe/softplus_ds.py +0 -38
  1115. mindspore/ops/_op_impl/tbe/softplus_grad.py +0 -38
  1116. mindspore/ops/_op_impl/tbe/softplus_grad_ds.py +0 -38
  1117. mindspore/ops/_op_impl/tbe/softsign.py +0 -37
  1118. mindspore/ops/_op_impl/tbe/softsign_ds.py +0 -38
  1119. mindspore/ops/_op_impl/tbe/sort.py +0 -38
  1120. mindspore/ops/_op_impl/tbe/sort_ds.py +0 -39
  1121. mindspore/ops/_op_impl/tbe/space_to_batch.py +0 -38
  1122. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +0 -38
  1123. mindspore/ops/_op_impl/tbe/space_to_depth.py +0 -47
  1124. mindspore/ops/_op_impl/tbe/sparse_apply_adadelta.py +0 -56
  1125. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad.py +0 -45
  1126. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_ds.py +0 -46
  1127. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2.py +0 -46
  1128. mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2_ds.py +0 -47
  1129. mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d.py +0 -53
  1130. mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d_ds.py +0 -50
  1131. mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_v2.py +0 -50
  1132. mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad.py +0 -66
  1133. mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad_ds.py +0 -67
  1134. mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop.py +0 -57
  1135. mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop_ds.py +0 -58
  1136. mindspore/ops/_op_impl/tbe/sparse_gather_v2.py +0 -56
  1137. mindspore/ops/_op_impl/tbe/sparse_gather_v2_ds.py +0 -58
  1138. mindspore/ops/_op_impl/tbe/split_d.py +0 -38
  1139. mindspore/ops/_op_impl/tbe/split_d_ds.py +0 -39
  1140. mindspore/ops/_op_impl/tbe/split_v.py +0 -39
  1141. mindspore/ops/_op_impl/tbe/splitv.py +0 -39
  1142. mindspore/ops/_op_impl/tbe/sqrt.py +0 -37
  1143. mindspore/ops/_op_impl/tbe/sqrt_ds.py +0 -38
  1144. mindspore/ops/_op_impl/tbe/sqrt_grad.py +0 -43
  1145. mindspore/ops/_op_impl/tbe/sqrt_grad_ds.py +0 -44
  1146. mindspore/ops/_op_impl/tbe/square.py +0 -38
  1147. mindspore/ops/_op_impl/tbe/square_ds.py +0 -39
  1148. mindspore/ops/_op_impl/tbe/square_sum_all.py +0 -40
  1149. mindspore/ops/_op_impl/tbe/square_sum_all_ds.py +0 -41
  1150. mindspore/ops/_op_impl/tbe/square_sum_v1.py +0 -38
  1151. mindspore/ops/_op_impl/tbe/square_sum_v1_ds.py +0 -39
  1152. mindspore/ops/_op_impl/tbe/square_sum_v2.py +0 -39
  1153. mindspore/ops/_op_impl/tbe/squared_difference.py +0 -39
  1154. mindspore/ops/_op_impl/tbe/squared_difference_ds.py +0 -41
  1155. mindspore/ops/_op_impl/tbe/squeeze.py +0 -37
  1156. mindspore/ops/_op_impl/tbe/strided_read.py +0 -38
  1157. mindspore/ops/_op_impl/tbe/strided_slice_d.py +0 -44
  1158. mindspore/ops/_op_impl/tbe/strided_slice_ds.py +0 -71
  1159. mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +0 -51
  1160. mindspore/ops/_op_impl/tbe/strided_slice_grad_ds.py +0 -57
  1161. mindspore/ops/_op_impl/tbe/strided_write.py +0 -38
  1162. mindspore/ops/_op_impl/tbe/sub.py +0 -39
  1163. mindspore/ops/_op_impl/tbe/sub_ds.py +0 -40
  1164. mindspore/ops/_op_impl/tbe/tan.py +0 -38
  1165. mindspore/ops/_op_impl/tbe/tan_ds.py +0 -39
  1166. mindspore/ops/_op_impl/tbe/tanh.py +0 -37
  1167. mindspore/ops/_op_impl/tbe/tanh_ds.py +0 -38
  1168. mindspore/ops/_op_impl/tbe/tanh_grad.py +0 -39
  1169. mindspore/ops/_op_impl/tbe/tanh_grad_ds.py +0 -40
  1170. mindspore/ops/_op_impl/tbe/tensor_move.py +0 -49
  1171. mindspore/ops/_op_impl/tbe/tensor_move_ds.py +0 -50
  1172. mindspore/ops/_op_impl/tbe/tensor_scatter_update.py +0 -41
  1173. mindspore/ops/_op_impl/tbe/tile.py +0 -37
  1174. mindspore/ops/_op_impl/tbe/tile_ds.py +0 -42
  1175. mindspore/ops/_op_impl/tbe/top_k.py +0 -42
  1176. mindspore/ops/_op_impl/tbe/top_k_ds.py +0 -43
  1177. mindspore/ops/_op_impl/tbe/trans_data.py +0 -167
  1178. mindspore/ops/_op_impl/tbe/trans_data_ds.py +0 -180
  1179. mindspore/ops/_op_impl/tbe/trans_data_rnn.py +0 -44
  1180. mindspore/ops/_op_impl/tbe/transpose.py +0 -60
  1181. mindspore/ops/_op_impl/tbe/transpose_d.py +0 -47
  1182. mindspore/ops/_op_impl/tbe/transpose_nod.py +0 -60
  1183. mindspore/ops/_op_impl/tbe/trunc.py +0 -39
  1184. mindspore/ops/_op_impl/tbe/truncate_div.py +0 -41
  1185. mindspore/ops/_op_impl/tbe/truncate_div_ds.py +0 -42
  1186. mindspore/ops/_op_impl/tbe/truncate_mod.py +0 -41
  1187. mindspore/ops/_op_impl/tbe/truncate_mod_ds.py +0 -42
  1188. mindspore/ops/_op_impl/tbe/unpack.py +0 -38
  1189. mindspore/ops/_op_impl/tbe/unpack_ds.py +0 -39
  1190. mindspore/ops/_op_impl/tbe/unsorted_segment_max.py +0 -49
  1191. mindspore/ops/_op_impl/tbe/unsorted_segment_max_ds.py +0 -40
  1192. mindspore/ops/_op_impl/tbe/unsorted_segment_min.py +0 -49
  1193. mindspore/ops/_op_impl/tbe/unsorted_segment_min_ds.py +0 -40
  1194. mindspore/ops/_op_impl/tbe/unsorted_segment_prod.py +0 -49
  1195. mindspore/ops/_op_impl/tbe/unsorted_segment_prod_ds.py +0 -38
  1196. mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +0 -38
  1197. mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +0 -41
  1198. mindspore/ops/_op_impl/tbe/wts_arq.py +0 -40
  1199. mindspore/ops/_op_impl/tbe/xdivy.py +0 -38
  1200. mindspore/ops/_op_impl/tbe/xdivy_ds.py +0 -39
  1201. mindspore/ops/_op_impl/tbe/xlogy.py +0 -38
  1202. mindspore/ops/_op_impl/tbe/xlogy_ds.py +0 -39
  1203. mindspore/ops/_op_impl/tbe/zeros_like.py +0 -41
  1204. mindspore/ops/_op_impl/tbe/zeros_like_ds.py +0 -42
  1205. mindspore/ops/_tracefunc.py +0 -241
  1206. mindspore/ops/arg_dtype_cast.py +0 -54
  1207. mindspore/ops/silent_check.py +0 -162
  1208. mindspore/profiler/parser/msadvisor_analyzer.py +0 -82
  1209. mindspore/profiler/parser/msadvisor_parser.py +0 -240
  1210. mindspore/rewrite/api/tree_node_helper.py +0 -60
  1211. mindspore/rewrite/ast_helpers/ast_creator.py +0 -115
  1212. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +0 -267
  1213. mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +0 -228
  1214. mindspore/rewrite/namespace.py +0 -53
  1215. mindspore-2.2.14.dist-info/RECORD +0 -1924
  1216. {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/WHEEL +0 -0
  1217. {mindspore-2.2.14.dist-info → mindspore-2.4.0.dist-info}/top_level.txt +0 -0
@@ -51,17 +51,12 @@ class ReduceOp:
51
51
  .. note::
52
52
  Before running the following examples, you need to configure the communication environment variables.
53
53
 
54
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
55
- Please see the `rank table Startup
56
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
54
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
55
+ without any third-party or configuration file dependencies.
56
+ Please see the `msrun start up
57
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
57
58
  for more details.
58
59
 
59
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
60
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
61
-
62
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
63
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
64
-
65
60
  This example should be run with multiple devices.
66
61
 
67
62
  >>> import numpy as np
@@ -94,7 +89,7 @@ class ReduceOp:
94
89
 
95
90
  def check_collective_target_dtype(data_name, data_dtype, prim_name):
96
91
  """Check if data type is valid."""
97
- default_target_dtypes = (mstype.int8, mstype.uint8, mstype.int32, mstype.float16, mstype.bfloat16, mstype.float32)
92
+ default_target_dtypes = (mstype.int8, mstype.int32, mstype.float16, mstype.float32, mstype.bfloat16)
98
93
  gpu_target_dtypes = (mstype.bool_, mstype.int8, mstype.int32, mstype.int64, mstype.uint32, mstype.uint64,
99
94
  mstype.float16, mstype.float32, mstype.float64)
100
95
 
@@ -113,15 +108,16 @@ def check_hcom_group_valid(group, prim_name=None):
113
108
 
114
109
  class AllReduce(Primitive):
115
110
  """
116
- Reduces the tensor data across all devices in such a way that all devices will get the same final result.
111
+ Reduces tensors across all devices in such a way that all devices will get the same final result,
112
+ returns the tensor which is all reduced.
117
113
 
118
114
  Note:
119
115
  The tensors must have the same shape and format in all processes of the collection.
120
116
 
121
117
  Args:
122
- op (str): Specifies an operation used for element-wise reductions, like sum, prod, max, and min.
118
+ op (str, optional): Specifies an operation used for element-wise reductions, like sum, prod, max, and min.
123
119
  On the CPU, only 'sum' is supported. Default: ``ReduceOp.SUM`` .
124
- group (str): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` , which
120
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` , which
125
121
  means ``"hccl_world_group"`` in Ascend, and ``"nccl_world_group"`` in GPU.
126
122
 
127
123
  Inputs:
@@ -132,8 +128,8 @@ class AllReduce(Primitive):
132
128
  The contents depend on the specified operation.
133
129
 
134
130
  Raises:
135
- TypeError: If any of `op` and `group` is not a str,
136
- or fusion is not an integer, or the input's dtype is bool.
131
+ TypeError: If any of `op` and `group` is not a str or the input's dtype is bool.
132
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
137
133
 
138
134
  Supported Platforms:
139
135
  ``Ascend`` ``GPU`` ``CPU``
@@ -142,17 +138,12 @@ class AllReduce(Primitive):
142
138
  .. note::
143
139
  Before running the following examples, you need to configure the communication environment variables.
144
140
 
145
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
146
- Please see the `rank table Startup
147
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
141
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
142
+ without any third-party or configuration file dependencies.
143
+ Please see the `msrun start up
144
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
148
145
  for more details.
149
146
 
150
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
151
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
152
-
153
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
154
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
155
-
156
147
  This example should be run with 2 devices.
157
148
 
158
149
  >>> import numpy as np
@@ -160,7 +151,7 @@ class AllReduce(Primitive):
160
151
  >>> from mindspore import Tensor
161
152
  >>> from mindspore.ops import ReduceOp
162
153
  >>> import mindspore.nn as nn
163
- >>> import mindspore.ops as ops
154
+ >>> from mindspore import ops
164
155
  >>>
165
156
  >>> init()
166
157
  >>> class Net(nn.Cell):
@@ -180,36 +171,125 @@ class AllReduce(Primitive):
180
171
 
181
172
  Tutorial Examples:
182
173
  - `Distributed Set Communication Primitives - AllReduce
183
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#allreduce>`_
174
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#allreduce>`_
184
175
 
185
176
  """
186
177
 
187
178
  @prim_attr_register
188
179
  def __init__(self, op=ReduceOp.SUM, group=GlobalComm.WORLD_COMM_GROUP):
189
180
  """Initialize AllReduce."""
181
+ self.group = _get_group(group)
190
182
  if not isinstance(op, type(ReduceOp.SUM)):
191
183
  raise TypeError(f"For '{self.name}', the 'op' must be str, but got {type(op).__name__}.")
192
- if not isinstance(_get_group(group), str):
184
+ if not isinstance(self.group, str):
193
185
  raise TypeError(f"For '{self.name}', the 'group' must be str, "
194
- f"but got {type(_get_group(group)).__name__}.")
195
- check_hcom_group_valid(group, prim_name=self.name)
186
+ f"but got {type(self.group).__name__}.")
187
+ check_hcom_group_valid(self.group, prim_name=self.name)
196
188
  self.op = op
197
- self.add_prim_attr('group', _get_group(group))
189
+ self.add_prim_attr('group', self.group)
198
190
  self.add_prim_attr('fusion', 0)
199
191
  self.add_prim_attr('index', 0)
200
192
  self.add_prim_attr('no_eliminate', True)
201
193
 
202
194
 
195
+ class Reduce(PrimitiveWithInfer):
196
+ """
197
+ Reduces tensors across the processes in the specified communication group, sends the result
198
+ to the target dest_rank(local rank), and returns the tensor which is sent to the target process.
199
+
200
+ Note:
201
+ Only process with destination rank receives the reduced output.
202
+ Support PyNative mode and Graph mode, but Graph mode only supports scenes with a graph compilation level of O0.
203
+ Other processes only get a tensor with shape [1], which has no mathematical meaning.
204
+
205
+ Args:
206
+ dest_rank (int): The target process(local rank) in the specific group that receives the reduced output.
207
+ op (str, optional): Specifies an operation used for element-wise reductions, like sum, prod, max, and min.
208
+ On the CPU, only 'sum' is supported. Default: ``ReduceOp.SUM`` .
209
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` , which
210
+ means ``"hccl_world_group"`` in Ascend, and ``"nccl_world_group"`` in GPU.
211
+
212
+ Inputs:
213
+ - **input_x** (Tensor) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
214
+
215
+ Outputs:
216
+ Tensor. Return the tensor in the specific rank of the process after reduction.
217
+ The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
218
+
219
+ Raises:
220
+ TypeError: If the type of the first input parameter is not Tensor,
221
+ or any of `op` and `group` is not a str.
222
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
223
+
224
+ Supported Platforms:
225
+ ``Ascend``
226
+
227
+ Examples:
228
+ .. note::
229
+ Before running the following examples, you need to configure the communication environment variables.
230
+
231
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method without any third-party
232
+ or configuration file dependencies.
233
+ Please see the `msrun start up
234
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
235
+ for more details.
236
+
237
+ This example should be run with 4 devices.
238
+
239
+ >>> from mindspore import ops
240
+ >>> import mindspore.nn as nn
241
+ >>> from mindspore.communication import init
242
+ >>> from mindspore import Tensor
243
+ >>> import numpy as np
244
+ >>> # Launch 4 processes.
245
+ >>> init()
246
+ >>> class ReduceNet(nn.Cell):
247
+ >>> def __init__(self):
248
+ >>> super(Net, self).__init__()
249
+ >>> self.reduce = ops.Reduce(dest_rank=1)
250
+ >>>
251
+ >>> def construct(self, x):
252
+ >>> out = self.reduce(x)
253
+ >>> return out
254
+ >>> input = Tensor(np.ones([2, 8]).astype(np.float32))
255
+ >>> net = ReduceNet()
256
+ >>> output = net(input)
257
+ >>> print(output)
258
+ Process with rank 1: [[4. 4. 4. 4. 4. 4. 4. 4.]
259
+ [4. 4. 4. 4. 4. 4. 4. 4.]],
260
+ Other proesses: [0.].
261
+ """
262
+
263
+ @prim_attr_register
264
+ def __init__(self, dest_rank, op=ReduceOp.SUM, group=GlobalComm.WORLD_COMM_GROUP):
265
+ validator.check_value_type('group', _get_group(group), (str,), self.name)
266
+ validator.check_value_type('op', op, (type(ReduceOp.SUM),), self.name)
267
+ self.dest_rank = dest_rank
268
+ self.op = op
269
+ self.group = _get_group(group)
270
+ self.add_prim_attr('group', _get_group(group))
271
+ self.add_prim_attr('dest_rank', dest_rank)
272
+
273
+ def infer_shape(self, x_shape):
274
+ # The process with dest_rank returns the reduced output.
275
+ # Other processes only gets a tensor with shape [1], which has no mathematical meaning.
276
+ if self.dest_rank == get_rank():
277
+ return x_shape
278
+ return [1]
279
+
280
+ def infer_dtype(self, x_dtype):
281
+ return x_dtype
282
+
283
+
203
284
  class AllGather(PrimitiveWithInfer):
204
285
  """
205
- Gathers tensors from the specified communication group.
286
+ Gathers tensors from the specified communication group and returns the tensor which is all gathered.
206
287
 
207
288
  Note:
208
289
  - The tensors must have the same shape and format in all processes of the collection.
209
- - Currently only supports GRAPH_MODE and it should be called in Cell.
210
290
 
211
291
  Args:
212
- group (str): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` , which
292
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` , which
213
293
  means ``"hccl_world_group"`` in Ascend, and ``"nccl_world_group"`` in GPU.
214
294
 
215
295
  Inputs:
@@ -223,6 +303,7 @@ class AllGather(PrimitiveWithInfer):
223
303
  TypeError: If `group` is not a str.
224
304
  ValueError: If the local rank id of the calling process in the group
225
305
  is larger than the group's rank size.
306
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
226
307
 
227
308
  Supported Platforms:
228
309
  ``Ascend`` ``GPU``
@@ -231,22 +312,17 @@ class AllGather(PrimitiveWithInfer):
231
312
  .. note::
232
313
  Before running the following examples, you need to configure the communication environment variables.
233
314
 
234
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
235
- Please see the `rank table Startup
236
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
315
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
316
+ without any third-party or configuration file dependencies.
317
+ Please see the `msrun start up
318
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
237
319
  for more details.
238
320
 
239
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
240
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
241
-
242
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
243
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
244
-
245
321
  This example should be run with 2 devices.
246
322
 
247
323
  >>> import numpy as np
248
324
  >>> import mindspore as ms
249
- >>> import mindspore.ops as ops
325
+ >>> from mindspore import ops
250
326
  >>> import mindspore.nn as nn
251
327
  >>> from mindspore.communication import init
252
328
  >>> from mindspore import Tensor
@@ -272,19 +348,20 @@ class AllGather(PrimitiveWithInfer):
272
348
 
273
349
  Tutorial Examples:
274
350
  - `Distributed Set Communication Primitives - AllGather
275
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#allgather>`_
351
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#allgather>`_
276
352
 
277
353
  """
278
354
 
279
355
  @prim_attr_register
280
356
  def __init__(self, group=GlobalComm.WORLD_COMM_GROUP):
281
357
  """Initialize AllGather."""
282
- validator.check_value_type('group', _get_group(group), (str,), self.name)
283
- self.rank = get_rank(_get_group(group))
284
- self.rank_size = get_group_size(_get_group(group))
358
+ self.group = _get_group(group)
359
+ validator.check_value_type('group', self.group, (str,), self.name)
360
+ self.rank = get_rank(self.group)
361
+ self.rank_size = get_group_size(self.group)
285
362
  validator.check('rank', self.rank, 'rank_size', self.rank_size, validator.LT, self.name)
286
363
  self.add_prim_attr('rank_size', self.rank_size)
287
- self.add_prim_attr('group', _get_group(group))
364
+ self.add_prim_attr('group', self.group)
288
365
  self.add_prim_attr('fusion', 0)
289
366
  self.add_prim_attr('mean_flag', False)
290
367
  self.add_prim_attr('no_eliminate', True)
@@ -427,7 +504,8 @@ class _HostAllGather(PrimitiveWithInfer):
427
504
 
428
505
  class ReduceScatter(Primitive):
429
506
  r"""
430
- Reduces and scatters tensors from the specified communication group.
507
+ Reduces and scatters tensors from the specified communication group
508
+ and returns the tensor which is reduced and scattered.
431
509
 
432
510
  Note:
433
511
  The tensors must have the same shape and format in all processes of the collection.
@@ -448,6 +526,7 @@ class ReduceScatter(Primitive):
448
526
  Raises:
449
527
  TypeError: If any of operation and group is not a string.
450
528
  ValueError: If the first dimension of the input cannot be divided by the rank_size.
529
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
451
530
 
452
531
  Supported Platforms:
453
532
  ``Ascend`` ``GPU``
@@ -456,17 +535,12 @@ class ReduceScatter(Primitive):
456
535
  .. note::
457
536
  Before running the following examples, you need to configure the communication environment variables.
458
537
 
459
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
460
- Please see the `rank table Startup
461
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
538
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
539
+ without any third-party or configuration file dependencies.
540
+ Please see the `msrun start up
541
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
462
542
  for more details.
463
543
 
464
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
465
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
466
-
467
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
468
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
469
-
470
544
  This example should be run with 2 devices.
471
545
 
472
546
  >>> import mindspore as ms
@@ -474,7 +548,7 @@ class ReduceScatter(Primitive):
474
548
  >>> from mindspore.communication import init
475
549
  >>> from mindspore.ops import ReduceOp
476
550
  >>> import mindspore.nn as nn
477
- >>> import mindspore.ops as ops
551
+ >>> from mindspore import ops
478
552
  >>> import numpy as np
479
553
  >>>
480
554
  >>> ms.set_context(mode=ms.GRAPH_MODE)
@@ -498,7 +572,7 @@ class ReduceScatter(Primitive):
498
572
 
499
573
  Tutorial Examples:
500
574
  - `Distributed Set Communication Primitives - ReduceScatter
501
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#reducescatter>`_
575
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#reducescatter>`_
502
576
 
503
577
  """
504
578
 
@@ -506,11 +580,12 @@ class ReduceScatter(Primitive):
506
580
  def __init__(self, op=ReduceOp.SUM, group=GlobalComm.WORLD_COMM_GROUP):
507
581
  """Initialize ReduceScatter."""
508
582
  validator.check_value_type('op', op, (type(ReduceOp.SUM),), self.name)
509
- validator.check_value_type('group', _get_group(group), (str,), self.name)
583
+ self.group = _get_group(group)
584
+ validator.check_value_type('group', self.group, (str,), self.name)
510
585
  self.op = op
511
- self.rank_size = get_group_size(_get_group(group))
586
+ self.rank_size = get_group_size(self.group)
512
587
  self.add_prim_attr('rank_size', self.rank_size)
513
- self.add_prim_attr('group', _get_group(group))
588
+ self.add_prim_attr('group', self.group)
514
589
  self.add_prim_attr('fusion', 0)
515
590
  self.add_prim_attr('no_eliminate', True)
516
591
 
@@ -577,12 +652,12 @@ class Broadcast(PrimitiveWithInfer):
577
652
  The tensors must have the same shape and format in all processes of the collection.
578
653
 
579
654
  Args:
580
- root_rank (int): Source rank. Required in all processes except the one
581
- that is sending the data.
655
+ root_rank (int): Specifies the rank(global rank) of the process that broadcast the tensor.
656
+ And only process `root_rank` will broadcast the tensor.
582
657
  group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` .
583
658
 
584
659
  Inputs:
585
- - **input_x** (tuple[Tensor]) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
660
+ - **input_x** (Tensor) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
586
661
 
587
662
  Outputs:
588
663
  tuple[Tensor], Tensor has the same shape of the input, i.e., :math:`(x_1, x_2, ..., x_R)`.
@@ -598,24 +673,19 @@ class Broadcast(PrimitiveWithInfer):
598
673
  .. note::
599
674
  Before running the following examples, you need to configure the communication environment variables.
600
675
 
601
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
602
- Please see the `rank table Startup
603
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
676
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
677
+ without any third-party or configuration file dependencies.
678
+ Please see the `msrun start up
679
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
604
680
  for more details.
605
681
 
606
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
607
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
608
-
609
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
610
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
611
-
612
- This example should be run with multiple devices.
682
+ This example should be run with 2 devices.
613
683
 
614
684
  >>> import mindspore as ms
615
685
  >>> from mindspore import Tensor
616
686
  >>> from mindspore.communication import init
617
687
  >>> import mindspore.nn as nn
618
- >>> import mindspore.ops as ops
688
+ >>> from mindspore import ops
619
689
  >>> import numpy as np
620
690
  >>>
621
691
  >>> ms.set_context(mode=ms.GRAPH_MODE)
@@ -638,7 +708,7 @@ class Broadcast(PrimitiveWithInfer):
638
708
 
639
709
  Tutorial Examples:
640
710
  - `Distributed Set Communication Primitives - Broadcast
641
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#broadcast>`_
711
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#broadcast>`_
642
712
 
643
713
  """
644
714
 
@@ -651,16 +721,6 @@ class Broadcast(PrimitiveWithInfer):
651
721
  self.add_prim_attr('group', _get_group(group))
652
722
  self.add_prim_attr('no_eliminate', True)
653
723
 
654
- def infer_shape(self, x_shape):
655
- return x_shape
656
-
657
- def infer_dtype(self, x_dtype):
658
- if not isinstance(x_dtype, tuple):
659
- raise TypeError(f"For '{self.name}', the 'input_x' must be a tuple, but got {type(x_dtype).__name__}!")
660
- for _ele in x_dtype:
661
- check_collective_target_dtype('tuple input_x', _ele, self.name)
662
- return x_dtype
663
-
664
724
 
665
725
  class _AllSwap(PrimitiveWithCheck):
666
726
  """
@@ -728,11 +788,11 @@ class NeighborExchange(Primitive):
728
788
  The user needs to preset
729
789
  communication environment variables before running the following example, please check the details on the
730
790
  official website of `MindSpore \
731
- <https://www.mindspore.cn/docs/en/r2.2/api_python/mindspore.ops.primitive.html#communication-operator>`_.
791
+ <https://www.mindspore.cn/docs/en/master/api_python/mindspore.ops.primitive.html#communication-operator>`_.
732
792
 
733
793
  This operator requires a full-mesh network topology, each device has the same vlan id, and the ip & mask are
734
794
  in the same subnet, please check the `details \
735
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#notes>`_.
795
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#notes>`_.
736
796
 
737
797
  Args:
738
798
  send_rank_ids (list(int)): Ranks which the data is sent to.
@@ -758,7 +818,7 @@ class NeighborExchange(Primitive):
758
818
  >>> from mindspore import Tensor
759
819
  >>> from mindspore.communication import init
760
820
  >>> import mindspore.nn as nn
761
- >>> import mindspore.ops as ops
821
+ >>> from mindspore import ops
762
822
  >>> import numpy as np
763
823
  >>> class Net(nn.Cell):
764
824
  ... def __init__(self):
@@ -781,7 +841,7 @@ class NeighborExchange(Primitive):
781
841
 
782
842
  Tutorial Examples:
783
843
  - `Distributed Set Communication Primitives - NeighborExchange
784
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#neighborexchange>`_
844
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#neighborexchange>`_
785
845
 
786
846
  """
787
847
 
@@ -814,7 +874,7 @@ class AlltoAll(PrimitiveWithInfer):
814
874
  Note:
815
875
  This operator requires a full-mesh network topology, each device has the same vlan id, and the ip & mask are
816
876
  in the same subnet, please check the `details \
817
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#notes>`_.
877
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#notes>`_.
818
878
 
819
879
  Args:
820
880
  split_count (int): On each process, divide blocks into split_count number.
@@ -843,17 +903,12 @@ class AlltoAll(PrimitiveWithInfer):
843
903
  .. note::
844
904
  Before running the following examples, you need to configure the communication environment variables.
845
905
 
846
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
847
- Please see the `rank table Startup
848
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
906
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
907
+ without any third-party or configuration file dependencies.
908
+ Please see the `msrun start up
909
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
849
910
  for more details.
850
911
 
851
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
852
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
853
-
854
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
855
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
856
-
857
912
  This example should be run with 8 devices.
858
913
 
859
914
  >>> import os
@@ -861,7 +916,7 @@ class AlltoAll(PrimitiveWithInfer):
861
916
  >>> from mindspore import Tensor
862
917
  >>> from mindspore.communication import init
863
918
  >>> import mindspore.nn as nn
864
- >>> import mindspore.ops as ops
919
+ >>> from mindspore import ops
865
920
  >>> import numpy as np
866
921
  >>> class Net(nn.Cell):
867
922
  ... def __init__(self):
@@ -883,7 +938,7 @@ class AlltoAll(PrimitiveWithInfer):
883
938
 
884
939
  Tutorial Examples:
885
940
  - `Distributed Set Communication Primitives - AlltoAll
886
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#alltoall>`_
941
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#alltoall>`_
887
942
 
888
943
  """
889
944
 
@@ -905,20 +960,20 @@ class AlltoAll(PrimitiveWithInfer):
905
960
  if self.split_count != rank_size:
906
961
  raise ValueError(f"For '{self.name}', the 'split_count' must be equal to 'rank_size', "
907
962
  f"but got 'split_count': {self.split_count}, 'rank_size': {rank_size}.")
908
- if x_shape[self.split_dim] % self.split_count != 0:
909
- raise ValueError(f"For '{self.name}', the 'split_count' must be divisible by 'rank_size', "
910
- f"but got 'split_count' {self.split_count}, 'rank_size' {x_shape[self.split_dim]}.")
911
- x_shape[self.concat_dim] = x_shape[self.concat_dim] * self.split_count
912
- x_shape[self.split_dim] = int(x_shape[self.split_dim] / self.split_count)
963
+ if x_shape[self.split_dim] >= 0 and x_shape[self.split_dim] % self.split_count != 0:
964
+ raise ValueError(f"For '{self.name}', the 'x_shape[self.split_dim]' must be divisible by 'split_count', "
965
+ f"but got 'x_shape[self.split_dim]' {x_shape[self.split_dim]}, "
966
+ f"'split_count' {self.split_count}.")
967
+ if x_shape[self.concat_dim] >= 0:
968
+ x_shape[self.concat_dim] = x_shape[self.concat_dim] * self.split_count
969
+ if x_shape[self.split_dim] >= 0:
970
+ x_shape[self.split_dim] = int(x_shape[self.split_dim] / self.split_count)
913
971
  return x_shape
914
972
 
915
973
  def infer_dtype(self, x_dtype):
916
974
  check_collective_target_dtype('x', x_dtype, self.name)
917
975
  return x_dtype
918
976
 
919
- def __call__(self, tensor):
920
- raise NotImplementedError
921
-
922
977
 
923
978
  class NeighborExchangeV2(Primitive):
924
979
  r"""
@@ -931,7 +986,7 @@ class NeighborExchangeV2(Primitive):
931
986
  Note:
932
987
  This operator requires a full-mesh network topology, each device has the same vlan id, and the ip & mask are
933
988
  in the same subnet, please check the `details \
934
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#notes>`_.
989
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#notes>`_.
935
990
 
936
991
  Args:
937
992
  send_rank_ids (list(int)): Ranks which the data is sent to. 8 rank_ids represents 8 directions, if one
@@ -967,24 +1022,19 @@ class NeighborExchangeV2(Primitive):
967
1022
  .. note::
968
1023
  Before running the following examples, you need to configure the communication environment variables.
969
1024
 
970
- For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
971
- Please see the `rank table Startup
972
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/rank_table.html>`_
1025
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1026
+ without any third-party or configuration file dependencies.
1027
+ Please see the `msrun start up
1028
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
973
1029
  for more details.
974
1030
 
975
- For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun Startup
976
- <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/mpirun.html>`_ .
977
-
978
- For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
979
- Startup <https://www.mindspore.cn/tutorials/experts/en/r2.2/parallel/dynamic_cluster.html>`_ .
980
-
981
1031
  This example should be run with 2 devices.
982
1032
 
983
1033
  >>> import os
984
1034
  >>> import mindspore as ms
985
1035
  >>> from mindspore.communication import init
986
1036
  >>> import mindspore.nn as nn
987
- >>> import mindspore.ops as ops
1037
+ >>> from mindspore import ops
988
1038
  >>> import numpy as np
989
1039
  >>>
990
1040
  >>> class Net0(nn.Cell):
@@ -998,7 +1048,6 @@ class NeighborExchangeV2(Primitive):
998
1048
  ... def construct(self, x):
999
1049
  ... out = self.neighbor_exchangev2(x)
1000
1050
  ... return out
1001
- >>>
1002
1051
  ... class Net1(nn.Cell):
1003
1052
  ... def __init__(self):
1004
1053
  ... super(Net1, self).__init__()
@@ -1028,7 +1077,7 @@ class NeighborExchangeV2(Primitive):
1028
1077
 
1029
1078
  Tutorial Examples:
1030
1079
  - `Distributed Set Communication Primitives - NeighborExchangeV2
1031
- <https://www.mindspore.cn/docs/en/r2.2/api_python/samples/ops/communicate_ops.html#neighborexchangev2>`_
1080
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#neighborexchangev2>`_
1032
1081
 
1033
1082
  """
1034
1083
 
@@ -1057,6 +1106,414 @@ class NeighborExchangeV2(Primitive):
1057
1106
  raise NotImplementedError
1058
1107
 
1059
1108
 
1109
+ class CollectiveScatter(Primitive):
1110
+ r"""
1111
+ Scatter tensor evently across the processes in the specified communication group.
1112
+
1113
+ Note:
1114
+ The interface behavior only support Tensor input and scatter evenly.
1115
+ Only the tensor in process `src_rank` (global rank) will do scatter.
1116
+
1117
+ Args:
1118
+ src_rank (int, optional): Specifies the rank of the process that send the tensor.
1119
+ And only process `src_rank` will send the tensor.
1120
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``.
1121
+
1122
+ Inputs:
1123
+ - **input_x** (Tensor) - The input tensor to be scattered. The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
1124
+
1125
+ Outputs:
1126
+ Tensor, the shape of output is :math:`(x_1/src\_rank, x_2, ..., x_R)`. The dimension 0 of data is equal to
1127
+ the dimension of input tensor divided by `src`, and the other dimension keep the same.
1128
+
1129
+ Raises:
1130
+ TypeError: If `group` is not a str.
1131
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
1132
+ ValueError: If the local rank id of the calling process in the group
1133
+ is larger than the group's rank size.
1134
+
1135
+ Supported Platforms:
1136
+ ``Ascend``
1137
+
1138
+ Examples:
1139
+ .. note::
1140
+ Before running the following examples, you need to configure the communication environment variables.
1141
+
1142
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1143
+ without any third-party or configuration file dependencies.
1144
+ Please see the `msrun start up
1145
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1146
+ for more details.
1147
+
1148
+ This example should be run with 2 devices.
1149
+
1150
+ >>> import numpy as np
1151
+ >>> import mindspore.nn as nn
1152
+ >>> from mindspore import Tensor
1153
+ >>> from mindspore.communication.management import init, get_rank
1154
+ >>> from mindspore import ops
1155
+ >>> # Launch 2 processes.
1156
+ >>> init()
1157
+ >>> class CollectiveScatterNet(nn.Cell):
1158
+ >>> def __init__(self):
1159
+ >>> super(CollectiveScatter, self).__init__()
1160
+ >>> self.collective_scatter = ops.CollectiveScatter(src_rank=0)
1161
+ >>>
1162
+ >>> def construct(self, x):
1163
+ >>> return self.collective_scatter(x)
1164
+ >>>
1165
+ >>> input = Tensor(np.arange(8).reshape([4, 2]).astype(np.float32))
1166
+ >>> net = CollectiveScatterNet()
1167
+ >>> output = net(input)
1168
+ >>> print(output)
1169
+ Process with rank 0: [[0. 1.],
1170
+ [2. 3.]]
1171
+ Process with rank 1: [[4. 5.],
1172
+ [6. 7.]]
1173
+
1174
+ Tutorial Examples:
1175
+ - `Distributed Set Communication Primitives - CollectiveScatter
1176
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#reducescatter>`_
1177
+
1178
+ """
1179
+
1180
+ @prim_attr_register
1181
+ def __init__(self, src_rank=0, group=GlobalComm.WORLD_COMM_GROUP):
1182
+ validator.check_value_type('group', _get_group(group), (str,), self.name)
1183
+ self.rank_id = get_rank(_get_group(group))
1184
+ self.src_rank = src_rank
1185
+ self.rank_size = get_group_size(_get_group(group))
1186
+ validator.check('rank', self.rank_id, 'rank_size', self.rank_size, validator.LT, self.name)
1187
+ self.add_prim_attr('rank_id', self.rank_id)
1188
+ self.add_prim_attr('src_rank', self.src_rank)
1189
+ self.add_prim_attr('rank_size', self.rank_size)
1190
+ self.add_prim_attr('group', _get_group(group))
1191
+
1192
+
1193
+ class CollectiveGather(Primitive):
1194
+ r"""
1195
+ Gathers tensors from the specified communication group. The operation will gather the tensor
1196
+ from processes according to dimension 0.
1197
+
1198
+ Note:
1199
+ Only the tensor in process `dest_rank` (global rank) will keep the gathered tensor. The other process
1200
+ will keep a tensor with shape [1], which has no mathematical meaning.
1201
+
1202
+ Args:
1203
+ dest_rank(int): Specifies the rank of the process that receive the tensor.
1204
+ And only process `dest_rank` will receive the gathered tensor.
1205
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``.
1206
+
1207
+ Inputs:
1208
+ - **input_x** (Tensor) - The tensor to be gathered. The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
1209
+
1210
+ Outputs:
1211
+ Tensor, the shape of output is :math:`(\sum x_1, x_2, ..., x_R)`. The dimension 0 of data is equal to
1212
+ sum of the dimension of input tensor, and the other dimension keep the same.
1213
+
1214
+ Raises:
1215
+ TypeError: If `group` is not a str.
1216
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
1217
+ ValueError: If the local rank id of the calling process in the group
1218
+ is larger than the group's rank size.
1219
+
1220
+ Supported Platforms:
1221
+ ``Ascend``
1222
+
1223
+ Examples:
1224
+ .. note::
1225
+ Before running the following examples, you need to configure the communication environment variables.
1226
+
1227
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1228
+ without any third-party or configuration file dependencies.
1229
+ Please see the `msrun start up
1230
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1231
+ for more details.
1232
+
1233
+ This example should be run with 4 devices.
1234
+
1235
+ >>> import numpy as np
1236
+ >>> import mindspore as ms
1237
+ >>> import mindspore.nn as nn
1238
+ >>> from mindspore.communication import init
1239
+ >>> from mindspore import Tensor
1240
+ >>> from mindspore import ops
1241
+ >>> # Launch 2 processes.
1242
+ >>>
1243
+ >>> ms.set_context(mode=ms.GRAPH_MODE)
1244
+ >>> init()
1245
+ >>> class CollectiveGatherNet(nn.Cell):
1246
+ ... def __init__(self):
1247
+ ... super(CollectiveGatherNet, self).__init__()
1248
+ ... self.collective_gather = ops.CollectiveGather(dest_rank=0)
1249
+ ...
1250
+ ... def construct(self, x):
1251
+ ... return self.collective_gather(x)
1252
+ ...
1253
+ >>> input = Tensor(np.arange(4).reshape([2, 2]).astype(np.float32))
1254
+ >>> net = CollectiveGatherNet()
1255
+ >>> output = net(input)
1256
+ >>> print(output)
1257
+ Process with rank 0: [[0. 1.],
1258
+ [2. 3.],
1259
+ [0. 1.],
1260
+ [2. 3.]]
1261
+ Process with rank 1: [0.]
1262
+
1263
+ Tutorial Examples:
1264
+ - `Distributed Set Communication Primitives - CollectiveGather
1265
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#collectivegather>`_
1266
+
1267
+ """
1268
+
1269
+ @prim_attr_register
1270
+ def __init__(self, dest_rank, group=GlobalComm.WORLD_COMM_GROUP):
1271
+ """Initialize Gather."""
1272
+ validator.check_value_type('group', _get_group(group), (str,), self.name)
1273
+ self.rank_id = get_rank(_get_group(group))
1274
+ self.dest_rank = dest_rank
1275
+ self.rank_size = get_group_size(_get_group(group))
1276
+ validator.check('rank', self.rank_id, 'rank_size', self.rank_size, validator.LT, self.name)
1277
+ self.add_prim_attr('rank_size', self.rank_size)
1278
+ self.add_prim_attr('group', _get_group(group))
1279
+ self.add_prim_attr('dest_rank', self.dest_rank)
1280
+ self.add_prim_attr('rank_id', self.rank_id)
1281
+
1282
+
1283
+ class Barrier(PrimitiveWithInfer):
1284
+ """
1285
+ Synchronizes all processes in the specified group. Once the process call this operation, it will be blocked until
1286
+ all processes call this operation. After all processes finish calling the operations, the blocked processes
1287
+ will be waken and continue their task.
1288
+
1289
+ Args:
1290
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``.
1291
+
1292
+ Raises:
1293
+ TypeError: If `group` is not a str.
1294
+ RuntimeError: If backend is invalid, or distributed initialization fails.
1295
+
1296
+ Supported Platforms:
1297
+ ``Ascend``
1298
+
1299
+ Examples:
1300
+ .. note::
1301
+ Before running the following examples, you need to configure the communication environment variables.
1302
+
1303
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1304
+ without any third-party or configuration file dependencies.
1305
+ Please see the `msrun start up
1306
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1307
+ for more details.
1308
+
1309
+ This example should be run with 2 devices.
1310
+
1311
+ >>> import numpy as np
1312
+ >>> import mindspore.nn as nn
1313
+ >>> from mindspore.communication import init
1314
+ >>> from mindspore import Tensor
1315
+ >>> from mindspore import ops
1316
+ >>> # Launch 4 processes.
1317
+ >>> init()
1318
+ >>> class BarrierNet(nn.Cell):
1319
+ >>> def __init__(self):
1320
+ >>> super(BarrierNet, self).__init__()
1321
+ >>> self.barrier = ops.Barrier()
1322
+ >>>
1323
+ >>> def construct(self):
1324
+ >>> self.barrier()
1325
+ >>> net = BarrierNet()
1326
+ >>> net()
1327
+
1328
+ Tutorial Examples:
1329
+ - `Distributed Set Communication Primitives - Barrier
1330
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#barrier>`_
1331
+
1332
+ """
1333
+
1334
+ @prim_attr_register
1335
+ def __init__(self, group=GlobalComm.WORLD_COMM_GROUP):
1336
+ self.group = group
1337
+ self.add_prim_attr("side_effect_mem", True)
1338
+
1339
+ def infer_shape(self):
1340
+ return [1]
1341
+
1342
+ def infer_dtype(self):
1343
+ return mstype.float32
1344
+
1345
+
1346
+ class Send(PrimitiveWithInfer):
1347
+ """
1348
+ Send tensors to the specified dest_rank.
1349
+
1350
+ Note:
1351
+ Send and Receive must be used in combination and have same sr_tag.
1352
+
1353
+ Args:
1354
+ sr_tag (int): The tag to identify the send/recv message. The message will
1355
+ be received by the Receive op with the same "sr_tag".
1356
+ dest_rank (int): A required integer identifying the destination rank.
1357
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``.
1358
+ group_back (str, optional): The communication group for backpropagation.
1359
+ Default: ``GlobalComm.WORLD_COMM_GROUP``.
1360
+
1361
+ Inputs:
1362
+ - **input_x** (Tensor) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
1363
+
1364
+ Raises:
1365
+ TypeError: If `group` is not a str.
1366
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
1367
+ ValueError: If the local rank id of the calling process in the group
1368
+ is larger than the group's rank size.
1369
+
1370
+ Supported Platforms:
1371
+ ``Ascend`` ``GPU``
1372
+
1373
+ Examples:
1374
+ .. note::
1375
+ Before running the following examples, you need to configure the communication environment variables.
1376
+
1377
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1378
+ without any third-party or configuration file dependencies.
1379
+ Please see the `msrun start up
1380
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1381
+ for more details.
1382
+
1383
+ This example should be run with 2 devices.
1384
+
1385
+ >>> import numpy as np
1386
+ >>> import mindspore.nn as nn
1387
+ >>> from mindspore.communication import init
1388
+ >>> from mindspore import Tensor
1389
+ >>> from mindspore import ops
1390
+ >>>
1391
+ >>> init()
1392
+ >>> class SendNet(nn.Cell):
1393
+ >>> def __init__(self):
1394
+ >>> super(SendNet, self).__init__()
1395
+ >>> self.depend = ops.Depend()
1396
+ >>> self.send = ops.Send(st_tag=0, dest_rank=8, group="hccl_world_group")
1397
+ >>>
1398
+ >>> def construct(self, x):
1399
+ >>> out = self.depend(x, self.send(x))
1400
+ >>> return out
1401
+ >>>
1402
+ >>> input_ = Tensor(np.ones([2, 8]).astype(np.float32))
1403
+ >>> net = Net()
1404
+ >>> output = net(input_)
1405
+
1406
+ Tutorial Examples:
1407
+ - `Distributed Set Communication Primitives - Send
1408
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#send>`_
1409
+
1410
+ """
1411
+
1412
+ @prim_attr_register
1413
+ def __init__(self, sr_tag, dest_rank, group=GlobalComm.WORLD_COMM_GROUP, group_back=GlobalComm.WORLD_COMM_GROUP):
1414
+ self.rank = dest_rank
1415
+ self.sr_tag = sr_tag
1416
+ self.group = _get_group(group)
1417
+ self.add_prim_attr("no_eliminate", True)
1418
+
1419
+ def infer_shape(self, x_shape):
1420
+ self.add_prim_attr("shape", x_shape)
1421
+ return x_shape
1422
+
1423
+ def infer_dtype(self, x_dtype):
1424
+ return x_dtype
1425
+
1426
+
1427
+ class Receive(PrimitiveWithInfer):
1428
+ """
1429
+ Receive tensors from src_rank.
1430
+
1431
+ Note:
1432
+ Send and Receive must be used in combination and have same sr_tag.
1433
+
1434
+ Args:
1435
+ sr_tag (int): A required integer identifying the send/recv message tag. The message will
1436
+ will be send by the Send op with the same "sr_tag".
1437
+ src_rank (int): A required integer identifying the source rank.
1438
+ shape (list[int]): A required list identifying the shape of the tensor to be received.
1439
+ dtype (Type): A required Type identifying the type of the tensor to be received. The supported types:
1440
+ int8/int16/int32/float16/float32.
1441
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``.
1442
+ group_back (str, optional): The communication group for backpropagation.
1443
+ Default: ``GlobalComm.WORLD_COMM_GROUP``.
1444
+
1445
+ Outputs:
1446
+ Tensor, output has the same shape as the Tensor sent by `Send` operation.
1447
+
1448
+ Raises:
1449
+ TypeError: If `group` is not a str.
1450
+ RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
1451
+ ValueError: If the local rank id of the calling process in the group
1452
+ is larger than the group's rank size.
1453
+
1454
+ Supported Platforms:
1455
+ ``Ascend`` ``GPU``
1456
+
1457
+ Examples:
1458
+ .. note::
1459
+ Before running the following examples, you need to configure the communication environment variables.
1460
+
1461
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1462
+ without any third-party or configuration file dependencies.
1463
+ Please see the `msrun start up
1464
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1465
+ for more details.
1466
+
1467
+ This example should be run with 2 devices.
1468
+
1469
+ >>> import numpy as np
1470
+ >>> import mindspore.nn as nn
1471
+ >>> from mindspore.communication import init
1472
+ >>> from mindspore import Tensor
1473
+ >>> from mindspore import ops
1474
+ >>>
1475
+ >>> init()
1476
+ >>> class ReceiveNet(nn.Cell):
1477
+ >>> def __init__(self):
1478
+ >>> super(ReceiveNet, self).__init__()
1479
+ >>> self.recv = ops.Receive(sr_tag=0, src_rank=0, shape=[2, 8], dtype=ms.float32,
1480
+ >>> group="hccl_world_group")
1481
+ >>>
1482
+ >>> def construct(self):
1483
+ >>> out = self.recv()
1484
+ >>> return out
1485
+ >>>
1486
+ >>> net = Net()
1487
+ >>> output = net()
1488
+
1489
+ Tutorial Examples:
1490
+ - `Distributed Set Communication Primitives - Receive
1491
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#receive>`_
1492
+
1493
+ """
1494
+
1495
+ @prim_attr_register
1496
+ def __init__(self, sr_tag, src_rank, shape, dtype, group=GlobalComm.WORLD_COMM_GROUP,
1497
+ group_back=GlobalComm.WORLD_COMM_GROUP):
1498
+ self.rank = src_rank
1499
+ self.tag = sr_tag
1500
+ self.shape = shape
1501
+ self.dtype = dtype
1502
+ self.group = _get_group(group)
1503
+ self.add_prim_attr("no_eliminate", True)
1504
+ valid_type = [mstype.float16, mstype.float32, mstype.float64, mstype.bfloat16,
1505
+ mstype.int8, mstype.int16, mstype.int32, mstype.int64,
1506
+ mstype.uint8, mstype.uint16, mstype.uint32, mstype.uint64]
1507
+ args = {"dtype": dtype}
1508
+ validator.check_scalar_or_tensor_types_same(args, valid_type, self.name)
1509
+
1510
+ def infer_shape(self, x_shape=None):
1511
+ return self.get_attr_dict()['shape']
1512
+
1513
+ def infer_dtype(self, x_dtype=None):
1514
+ return self.get_attr_dict()['dtype']
1515
+
1516
+
1060
1517
  class _MirrorOperator(PrimitiveWithInfer):
1061
1518
  """
1062
1519
  Auto parallel virtual operator. Do nothing in forward, do all reduce and mean in backward. It is only for
@@ -1306,8 +1763,223 @@ class _GetTensorSlice(PrimitiveWithInfer):
1306
1763
  """Initialize _GetTensorSlice."""
1307
1764
  self.add_prim_attr('order_enforce_skip', True)
1308
1765
 
1309
- def infer_value(self, x, dev_mat, tensor_map):
1766
+ def infer_value(self, x, dev_mat, tensor_map, slice_shape, full_shape):
1310
1767
  from mindspore.parallel._tensor import _load_tensor
1311
1768
  validator.check_value_type("dev_mat", dev_mat, [tuple], self.name)
1312
1769
  validator.check_value_type("tensor_map", tensor_map, [tuple], self.name)
1313
- return Tensor(_load_tensor(x, dev_mat, tensor_map), x.dtype)
1770
+ tensor_slice = _load_tensor(x, dev_mat, tensor_map, full_shape)
1771
+ if tensor_slice.shape != slice_shape:
1772
+ tensor_slice = tensor_slice.reshape(slice_shape)
1773
+ return Tensor(tensor_slice, x.dtype)
1774
+
1775
+
1776
+ class BatchISendIRecv(PrimitiveWithInfer):
1777
+ """
1778
+ Batch send and recv tensors asynchronously.
1779
+
1780
+ Note:
1781
+ - The ``isend`` and ``irecv`` in ``op_types`` between ranks need to match each other.
1782
+ - ``isend`` and ``irecv`` in a batch can only be used in the same communication group.
1783
+
1784
+ Args:
1785
+ op_types(Union[tuple[str], list[str]]): "isend" or "irecv" to indicate the order and number of communication.
1786
+ remote_ranks(Union[tuple[int], list[int]]): src or dst rank that matches the op_types.
1787
+ receive_shapes(Union[tuple[int], list[int]]): receive tensor shapes that matches "irecv" in op_types.
1788
+ receive_types(Union[tuple[mindspore.dtype], list[mindspore.dtype]]): receive tensor dtype
1789
+ that matches "irecv" in op_types.
1790
+ group (str): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``, which
1791
+ means ``"hccl_world_group"`` in Ascend, and ``"nccl_world_group"`` in GPU.
1792
+
1793
+ Inputs:
1794
+ - **input_x** (Union[tuple[Tensor], list[Tensor], tuple(None)]) -
1795
+ The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
1796
+
1797
+ Outputs:
1798
+ tuple(Tensor). Output tensors is corresponding to ``op_types``:
1799
+ At ``"isend"`` position, output tensor is a fake tensor with scalar, which has no meaning.
1800
+ At ``"irecv"`` position, output tensor is a tensor received from remote end.
1801
+
1802
+
1803
+ Raises:
1804
+ TypeError: If ``group`` is not a str.
1805
+ TypeError: If ``op_types``, ``receive_shapes``, ``receive_dtypes``, ``remote_ranks`` are not tuple or list.
1806
+ ValueError: If the length of ``receive_shapes`` and ``receive_dtypes`` are not the same.
1807
+ ValueError: If the length of ``op_types`` and ``remote_ranks`` are not the same.
1808
+ RuntimeError: If the length of input tensors and ``"isend"`` count are not the same.
1809
+
1810
+ Supported Platforms:
1811
+ ``Ascend``
1812
+
1813
+ Examples:
1814
+ .. note::
1815
+ Before running the following examples, you need to configure the communication environment variables.
1816
+
1817
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1818
+ without any third-party or configuration file dependencies.
1819
+
1820
+ Please see the `msrun start up
1821
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1822
+ for more details.
1823
+
1824
+ This example should be run with 2 devices.
1825
+
1826
+ >>> import numpy as np
1827
+ >>> import mindspore as ms
1828
+ >>> from mindspore import ops
1829
+ >>> import mindspore.nn as nn
1830
+ >>> from mindspore.communication import init, get_rank
1831
+ >>> from mindspore import Tensor
1832
+ >>>
1833
+ >>> init()
1834
+ >>> rank = get_rank()
1835
+ >>> class Net(nn.Cell):
1836
+ ... def __init__(self):
1837
+ ... super(Net, self).__init__()
1838
+ ... if rank == 0:
1839
+ ... remote_rank = [1, 1]
1840
+ ... else:
1841
+ ... remote_rank = [0, 0]
1842
+ ... self.batchisendirecv = ops.BatchISendIRecv(("isend", "irecv"), remote_rank, [()], (ms.float32,))
1843
+ ...
1844
+ ... def construct(self, x):
1845
+ ... if isinstance(x, Tensor):
1846
+ ... x = (x,)
1847
+ ... return self.batchisendirecv(x)
1848
+ ...
1849
+ >>> send_x = Tensor(rank + 1).astype(ms.float32)
1850
+ >>> net = Net()
1851
+ >>> output = net(send_x)
1852
+ >>> print(output)
1853
+ rank 0:
1854
+ (Tensor(shape=[], dtype=Float32, value= 0), Tensor(shape=[], dtype=Float32, value= 2))
1855
+ rank 1:
1856
+ (Tensor(shape=[], dtype=Float32, value= 0), Tensor(shape=[], dtype=Float32, value= 1))
1857
+
1858
+ Tutorial Examples:
1859
+ - `Distributed Set Communication Primitives - BatchISendIRecv
1860
+ <https://www.mindspore.cn/docs/en/master/api_python/samples/ops/communicate_ops.html#allgather>`_
1861
+
1862
+ """
1863
+
1864
+ @prim_attr_register
1865
+ def __init__(self, op_types, remote_ranks, receive_shapes=None,
1866
+ receive_dtypes=None, group=GlobalComm.WORLD_COMM_GROUP):
1867
+ if receive_shapes is None:
1868
+ receive_shapes = ()
1869
+ else:
1870
+ validator.check_value_type("receive_shapes", receive_shapes, [tuple, list], self.name)
1871
+
1872
+ if receive_dtypes is None:
1873
+ receive_dtypes = ()
1874
+ else:
1875
+ validator.check_value_type("receive_dtypes", receive_dtypes, [tuple, list], self.name)
1876
+
1877
+ validator.check_value_type("op_types", op_types, [tuple, list], self.name)
1878
+ validator.check_value_type("remote_ranks", remote_ranks, [tuple, list], self.name)
1879
+
1880
+ if len(receive_shapes) != len(receive_dtypes):
1881
+ raise ValueError("length of receive_shapes and receive_shapes must be the same, "
1882
+ f"but got receive_shapes: {len(receive_shapes)} "
1883
+ f" and receive_shapes: {receive_dtypes}")
1884
+
1885
+ if len(op_types) != len(remote_ranks):
1886
+ raise ValueError("length of op_types and remote_ranks must be the same.")
1887
+
1888
+ if group is None:
1889
+ group = GlobalComm.WORLD_COMM_GROUP
1890
+ self.add_prim_attr('group', group)
1891
+ self.add_prim_attr('op_types', op_types)
1892
+ self.add_prim_attr('remote_ranks', remote_ranks)
1893
+ self.add_prim_attr('receive_shapes', receive_shapes)
1894
+ self.add_prim_attr('receive_dtypes', receive_dtypes)
1895
+ self.add_prim_attr('no_eliminate', True)
1896
+
1897
+
1898
+ class AlltoAllV(PrimitiveWithInfer):
1899
+ """
1900
+ AllToAll which support uneven split.
1901
+
1902
+ Note:
1903
+ - Only support flatten tensor as input. input tensor should be flattened and
1904
+ concatenated before call this primitive.
1905
+
1906
+ Args:
1907
+ send_numel_list(Union[tuple[int], list[int]]): split numel to scatter to different remote rank.
1908
+ recv_numel_list(Union[tuple[int], list[int]]): split numel to gather from different remote rank.
1909
+ group (str): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``, which
1910
+ means ``"hccl_world_group"`` in Ascend, and ``"nccl_world_group"`` in GPU.
1911
+ TODO:
1912
+
1913
+ Inputs:
1914
+ - **input_x** (Tensor) - flatten tensor to scatter. The shape of tensor is :math:`(x_1)`.
1915
+
1916
+ Outputs:
1917
+ Tensor. flattened and concatenated tensor gather from remote ranks.
1918
+ If gather result is empty, it will return a Tensor with value 0, which has no actual meaning.
1919
+
1920
+ Raises:
1921
+ TypeError: If 'send_numel_list' or 'recv_numel_list' is not type of tuple and list.
1922
+
1923
+ Supported Platforms:
1924
+ ``Ascend``
1925
+
1926
+ Examples:
1927
+ .. note::
1928
+ Before running the following examples, you need to configure the communication environment variables.
1929
+
1930
+ For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1931
+ without any third-party or configuration file dependencies.
1932
+
1933
+ Please see the `msrun start up
1934
+ <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/msrun_launcher.html>`_
1935
+ for more details.
1936
+
1937
+ This example should be run with 2 devices.
1938
+
1939
+ >>> import numpy as np
1940
+ >>> import mindspore as ms
1941
+ >>> from mindspore import ops
1942
+ >>> import mindspore.nn as nn
1943
+ >>> from mindspore.communication import init, get_rank
1944
+ >>> from mindspore import Tensor
1945
+ >>>
1946
+ >>> init()
1947
+ >>> rank = get_rank()
1948
+ >>> class Net(nn.Cell):
1949
+ ... def __init__(self):
1950
+ ... super(Net, self).__init__()
1951
+ ... if rank == 0:
1952
+ ... self.all_to_all = ops.AlltoAllV([1, 2], [1, 2])
1953
+ ... else:
1954
+ ... self.all_to_all = ops.AlltoAllV([2, 1], [2, 1])
1955
+ ...
1956
+ ... def construct(self, x):
1957
+ ... return self.all_to_all(x)
1958
+ ...
1959
+ >>> if rank == 0:
1960
+ >>> send_tensor = Tensor([0, 1, 2.])
1961
+ >>> elif rank == 1:
1962
+ >>> send_tensor = Tensor([3, 4, 5.])
1963
+ >>> net = Net()
1964
+ >>> output = net(send_tensor)
1965
+ >>> print(output)
1966
+ rank 0:
1967
+ [0. 3. 4]
1968
+ rank 1:
1969
+ [1. 2. 5]
1970
+
1971
+ """
1972
+
1973
+ @prim_attr_register
1974
+ def __init__(self, send_numel_list, recv_numel_list, group=None, split_sizes_empty=False):
1975
+ validator.check_value_type("send_numel_list", send_numel_list, [tuple, list], self.name)
1976
+ validator.check_value_type("recv_numel_list", recv_numel_list, [tuple, list], self.name)
1977
+ self.group = GlobalComm.WORLD_COMM_GROUP if group is None else _get_group(group)
1978
+ self.send_numel_list = send_numel_list
1979
+ self.recv_numel_list = recv_numel_list
1980
+ self.split_sizes_empty = split_sizes_empty
1981
+ self.rank_size = get_group_size(self.group)
1982
+
1983
+ self.add_prim_attr('group', self.group)
1984
+ self.add_prim_attr('send_numel_list', send_numel_list)
1985
+ self.add_prim_attr('recv_numel_list', recv_numel_list)