mindspore 2.5.0__cp39-cp39-win_amd64.whl → 2.6.0rc1__cp39-cp39-win_amd64.whl

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

Potentially problematic release.


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

Files changed (491) 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 +6 -4
  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/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -33
  10. mindspore/_deprecated/__init__.py +17 -0
  11. mindspore/_deprecated/jit.py +198 -0
  12. mindspore/_extends/builtin_operations.py +1 -1
  13. mindspore/_extends/parse/__init__.py +6 -7
  14. mindspore/_extends/parse/compile_config.py +19 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +24 -193
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +97 -74
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +4 -4
  27. mindspore/atlprov.dll +0 -0
  28. mindspore/avcodec-59.dll +0 -0
  29. mindspore/avdevice-59.dll +0 -0
  30. mindspore/avfilter-8.dll +0 -0
  31. mindspore/avformat-59.dll +0 -0
  32. mindspore/avutil-57.dll +0 -0
  33. mindspore/boost/__init__.py +2 -2
  34. mindspore/boost/base.py +3 -7
  35. mindspore/boost/boost_cell_wrapper.py +2 -2
  36. mindspore/c1.dll +0 -0
  37. mindspore/c1xx.dll +0 -0
  38. mindspore/c2.dll +0 -0
  39. mindspore/common/__init__.py +4 -3
  40. mindspore/common/_grad_function.py +56 -0
  41. mindspore/common/_pijit_context.py +14 -5
  42. mindspore/common/_register_for_tensor.py +1 -1
  43. mindspore/common/_stub_tensor.py +5 -10
  44. mindspore/common/_tensor_cpp_method.py +1 -1
  45. mindspore/common/_tensor_docs.py +1915 -3287
  46. mindspore/common/api.py +341 -354
  47. mindspore/common/auto_dynamic_shape.py +41 -44
  48. mindspore/common/dtype.py +5 -2
  49. mindspore/common/dump.py +7 -5
  50. mindspore/common/file_system.py +3 -0
  51. mindspore/common/hook_handle.py +5 -3
  52. mindspore/common/initializer.py +10 -6
  53. mindspore/common/jit_begin_end.py +94 -0
  54. mindspore/common/jit_config.py +6 -1
  55. mindspore/common/jit_context.py +76 -0
  56. mindspore/common/jit_trace.py +378 -0
  57. mindspore/common/lazy_inline.py +2 -2
  58. mindspore/common/mutable.py +5 -4
  59. mindspore/common/parameter.py +106 -39
  60. mindspore/common/seed.py +2 -2
  61. mindspore/common/sparse_tensor.py +23 -17
  62. mindspore/common/tensor.py +297 -714
  63. mindspore/communication/__init__.py +7 -5
  64. mindspore/communication/_comm_helper.py +47 -2
  65. mindspore/communication/comm_func.py +70 -53
  66. mindspore/communication/management.py +83 -17
  67. mindspore/context.py +214 -560
  68. mindspore/dataset/__init__.py +44 -20
  69. mindspore/dataset/audio/__init__.py +2 -8
  70. mindspore/dataset/audio/transforms.py +3 -17
  71. mindspore/dataset/core/config.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +1 -1
  73. mindspore/dataset/engine/datasets.py +102 -120
  74. mindspore/dataset/engine/datasets_audio.py +22 -22
  75. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  76. mindspore/dataset/engine/datasets_text.py +78 -85
  77. mindspore/dataset/engine/datasets_user_defined.py +108 -76
  78. mindspore/dataset/engine/datasets_vision.py +111 -108
  79. mindspore/dataset/engine/iterators.py +5 -3
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/samplers.py +279 -57
  82. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  83. mindspore/dataset/engine/validators.py +10 -0
  84. mindspore/dataset/text/__init__.py +7 -6
  85. mindspore/dataset/text/transforms.py +6 -5
  86. mindspore/dataset/text/utils.py +3 -3
  87. mindspore/dataset/transforms/__init__.py +0 -9
  88. mindspore/dataset/transforms/transforms.py +3 -3
  89. mindspore/dataset/utils/browse_dataset.py +1 -1
  90. mindspore/dataset/vision/__init__.py +2 -9
  91. mindspore/dataset/vision/transforms.py +202 -158
  92. mindspore/dataset/vision/utils.py +7 -5
  93. mindspore/device_context/ascend/op_debug.py +60 -1
  94. mindspore/device_context/ascend/op_tuning.py +0 -4
  95. mindspore/device_manager.py +39 -3
  96. mindspore/dnnl.dll +0 -0
  97. mindspore/dpcmi.dll +0 -0
  98. mindspore/experimental/es/embedding_service.py +35 -27
  99. mindspore/experimental/map_parameter.py +4 -4
  100. mindspore/experimental/optim/adadelta.py +22 -26
  101. mindspore/experimental/optim/adagrad.py +4 -4
  102. mindspore/experimental/optim/adam.py +4 -0
  103. mindspore/experimental/optim/adamax.py +4 -4
  104. mindspore/experimental/optim/adamw.py +4 -0
  105. mindspore/experimental/optim/asgd.py +1 -1
  106. mindspore/experimental/optim/lr_scheduler.py +40 -22
  107. mindspore/experimental/optim/radam.py +5 -5
  108. mindspore/experimental/optim/rprop.py +1 -1
  109. mindspore/experimental/optim/sgd.py +1 -1
  110. mindspore/hal/contiguous_tensors_handle.py +6 -10
  111. mindspore/hal/device.py +55 -81
  112. mindspore/hal/event.py +38 -55
  113. mindspore/hal/memory.py +93 -144
  114. mindspore/hal/stream.py +81 -125
  115. mindspore/include/dataset/constants.h +7 -4
  116. mindspore/include/dataset/execute.h +2 -2
  117. mindspore/jpeg62.dll +0 -0
  118. mindspore/log.py +40 -2
  119. mindspore/mindrecord/__init__.py +20 -7
  120. mindspore/mindspore_backend_common.dll +0 -0
  121. mindspore/mindspore_backend_manager.dll +0 -0
  122. mindspore/mindspore_common.dll +0 -0
  123. mindspore/mindspore_core.dll +0 -0
  124. mindspore/mindspore_dump.dll +0 -0
  125. mindspore/mindspore_frontend.dll +0 -0
  126. mindspore/mindspore_glog.dll +0 -0
  127. mindspore/mindspore_memory_pool.dll +0 -0
  128. mindspore/mindspore_ms_backend.dll +0 -0
  129. mindspore/mindspore_ops.dll +0 -0
  130. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  131. mindspore/mindspore_ops_kernel_common.dll +0 -0
  132. mindspore/mindspore_profiler.dll +0 -0
  133. mindspore/mindspore_pyboost.dll +0 -0
  134. mindspore/mindspore_pynative.dll +0 -0
  135. mindspore/mindspore_res_manager.dll +0 -0
  136. mindspore/mindspore_runtime_pipeline.dll +0 -0
  137. mindspore/mint/__init__.py +131 -700
  138. mindspore/mint/distributed/__init__.py +5 -1
  139. mindspore/mint/distributed/distributed.py +194 -109
  140. mindspore/mint/linalg/__init__.py +2 -0
  141. mindspore/mint/nn/__init__.py +280 -18
  142. mindspore/mint/nn/functional.py +282 -64
  143. mindspore/mint/nn/layer/__init__.py +4 -0
  144. mindspore/mint/nn/layer/_functions.py +7 -3
  145. mindspore/mint/nn/layer/activation.py +120 -13
  146. mindspore/mint/nn/layer/conv.py +218 -24
  147. mindspore/mint/nn/layer/normalization.py +15 -16
  148. mindspore/mint/nn/layer/padding.py +1 -1
  149. mindspore/mint/nn/layer/pooling.py +66 -1
  150. mindspore/mint/optim/__init__.py +2 -1
  151. mindspore/mint/optim/sgd.py +171 -0
  152. mindspore/msobj140.dll +0 -0
  153. mindspore/mspdb140.dll +0 -0
  154. mindspore/mspdbcore.dll +0 -0
  155. mindspore/mspdbst.dll +0 -0
  156. mindspore/mspft140.dll +0 -0
  157. mindspore/msvcdis140.dll +0 -0
  158. mindspore/msvcp140_1.dll +0 -0
  159. mindspore/msvcp140_2.dll +0 -0
  160. mindspore/msvcp140_atomic_wait.dll +0 -0
  161. mindspore/msvcp140_codecvt_ids.dll +0 -0
  162. mindspore/nn/__init__.py +4 -1
  163. mindspore/nn/cell.py +1250 -176
  164. mindspore/nn/layer/activation.py +23 -21
  165. mindspore/nn/layer/basic.py +22 -16
  166. mindspore/nn/layer/container.py +1 -1
  167. mindspore/nn/layer/conv.py +22 -17
  168. mindspore/nn/layer/embedding.py +9 -8
  169. mindspore/nn/layer/normalization.py +48 -42
  170. mindspore/nn/layer/pooling.py +75 -31
  171. mindspore/nn/layer/transformer.py +11 -10
  172. mindspore/nn/learning_rate_schedule.py +4 -2
  173. mindspore/nn/loss/loss.py +27 -19
  174. mindspore/nn/optim/ada_grad.py +6 -5
  175. mindspore/nn/optim/adadelta.py +9 -7
  176. mindspore/nn/optim/adafactor.py +1 -1
  177. mindspore/nn/optim/adam.py +16 -12
  178. mindspore/nn/optim/adamax.py +8 -7
  179. mindspore/nn/optim/adasum.py +5 -5
  180. mindspore/nn/optim/asgd.py +1 -1
  181. mindspore/nn/optim/ftrl.py +11 -9
  182. mindspore/nn/optim/lamb.py +1 -1
  183. mindspore/nn/optim/lazyadam.py +12 -10
  184. mindspore/nn/optim/momentum.py +7 -6
  185. mindspore/nn/optim/optimizer.py +2 -2
  186. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  187. mindspore/nn/optim/rmsprop.py +13 -12
  188. mindspore/nn/optim/rprop.py +9 -7
  189. mindspore/nn/optim/sgd.py +9 -6
  190. mindspore/nn/optim/tft_wrapper.py +5 -2
  191. mindspore/nn/probability/bijector/bijector.py +17 -11
  192. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  193. mindspore/nn/probability/bijector/invert.py +2 -2
  194. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  195. mindspore/nn/probability/bijector/softplus.py +3 -2
  196. mindspore/nn/probability/distribution/beta.py +3 -3
  197. mindspore/nn/probability/distribution/categorical.py +1 -1
  198. mindspore/nn/probability/distribution/cauchy.py +4 -2
  199. mindspore/nn/probability/distribution/exponential.py +6 -7
  200. mindspore/nn/probability/distribution/gamma.py +2 -2
  201. mindspore/nn/probability/distribution/gumbel.py +2 -2
  202. mindspore/nn/probability/distribution/half_normal.py +5 -3
  203. mindspore/nn/probability/distribution/logistic.py +5 -3
  204. mindspore/nn/probability/distribution/poisson.py +1 -1
  205. mindspore/nn/probability/distribution/uniform.py +5 -3
  206. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  207. mindspore/nn/reinforcement/tensor_array.py +1 -1
  208. mindspore/nn/wrap/__init__.py +6 -6
  209. mindspore/nn/wrap/cell_wrapper.py +178 -117
  210. mindspore/nn/wrap/grad_reducer.py +45 -36
  211. mindspore/nn/wrap/loss_scale.py +3 -3
  212. mindspore/numpy/array_creations.py +3 -3
  213. mindspore/numpy/array_ops.py +1 -1
  214. mindspore/numpy/math_ops.py +4 -4
  215. mindspore/numpy/utils.py +1 -2
  216. mindspore/numpy/utils_const.py +1 -2
  217. mindspore/opencv_core452.dll +0 -0
  218. mindspore/opencv_imgcodecs452.dll +0 -0
  219. mindspore/opencv_imgproc452.dll +0 -0
  220. mindspore/ops/__init__.py +3 -2
  221. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  222. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  223. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  224. mindspore/ops/_register_for_op.py +0 -11
  225. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  226. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  227. mindspore/ops/_vmap/vmap_array_ops.py +7 -6
  228. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  229. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  230. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  231. mindspore/ops/auto_generate/__init__.py +4 -3
  232. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
  233. mindspore/ops/auto_generate/gen_extend_func.py +281 -135
  234. mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
  235. mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
  236. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  237. mindspore/ops/composite/__init__.py +2 -1
  238. mindspore/ops/composite/base.py +19 -24
  239. mindspore/ops/composite/math_ops.py +6 -16
  240. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  241. mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
  242. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  243. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  244. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  248. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  249. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  250. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  251. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  252. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  254. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  255. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  256. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  257. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  259. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  260. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  263. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  264. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  267. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  268. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  271. mindspore/ops/function/__init__.py +28 -2
  272. mindspore/ops/function/_add_attr_func.py +58 -0
  273. mindspore/ops/function/array_func.py +1629 -2345
  274. mindspore/ops/function/clip_func.py +38 -45
  275. mindspore/ops/function/debug_func.py +36 -44
  276. mindspore/ops/function/grad/__init__.py +1 -0
  277. mindspore/ops/function/grad/grad_func.py +104 -71
  278. mindspore/ops/function/image_func.py +1 -1
  279. mindspore/ops/function/linalg_func.py +46 -78
  280. mindspore/ops/function/math_func.py +3035 -3705
  281. mindspore/ops/function/nn_func.py +676 -241
  282. mindspore/ops/function/other_func.py +159 -1
  283. mindspore/ops/function/parameter_func.py +17 -30
  284. mindspore/ops/function/random_func.py +204 -361
  285. mindspore/ops/function/reshard_func.py +4 -70
  286. mindspore/ops/function/sparse_func.py +3 -3
  287. mindspore/ops/function/sparse_unary_func.py +5 -5
  288. mindspore/ops/function/spectral_func.py +25 -58
  289. mindspore/ops/function/vmap_func.py +24 -17
  290. mindspore/ops/functional.py +6 -4
  291. mindspore/ops/functional_overload.py +547 -4
  292. mindspore/ops/op_info_register.py +32 -244
  293. mindspore/ops/operations/__init__.py +10 -5
  294. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  295. mindspore/ops/operations/_grad_ops.py +1 -10
  296. mindspore/ops/operations/_inner_ops.py +5 -76
  297. mindspore/ops/operations/_ms_kernel.py +4 -10
  298. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  299. mindspore/ops/operations/_scalar_ops.py +3 -2
  300. mindspore/ops/operations/_sequence_ops.py +1 -1
  301. mindspore/ops/operations/_tensor_array.py +1 -1
  302. mindspore/ops/operations/array_ops.py +37 -22
  303. mindspore/ops/operations/comm_ops.py +150 -107
  304. mindspore/ops/operations/custom_ops.py +221 -23
  305. mindspore/ops/operations/debug_ops.py +115 -16
  306. mindspore/ops/operations/inner_ops.py +1 -1
  307. mindspore/ops/operations/linalg_ops.py +1 -58
  308. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  309. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  310. mindspore/ops/operations/math_ops.py +21 -18
  311. mindspore/ops/operations/nn_ops.py +65 -191
  312. mindspore/ops/operations/other_ops.py +62 -9
  313. mindspore/ops/operations/random_ops.py +13 -7
  314. mindspore/ops/operations/reshard_ops.py +1 -1
  315. mindspore/ops/operations/sparse_ops.py +2 -2
  316. mindspore/ops/primitive.py +43 -32
  317. mindspore/ops/tensor_method.py +232 -13
  318. mindspore/ops_generate/__init__.py +0 -5
  319. mindspore/ops_generate/aclnn/__init__.py +0 -0
  320. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  321. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  322. mindspore/ops_generate/api/__init__.py +0 -0
  323. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  324. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  325. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  326. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  327. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  328. mindspore/ops_generate/api/gen_api.py +103 -0
  329. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  330. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  331. mindspore/ops_generate/common/__init__.py +0 -0
  332. mindspore/ops_generate/common/gen_constants.py +91 -0
  333. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  334. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  335. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  336. mindspore/ops_generate/gen_ops.py +23 -325
  337. mindspore/ops_generate/op_def/__init__.py +0 -0
  338. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  339. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  340. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
  341. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  342. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  343. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  344. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  345. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  346. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  347. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  348. mindspore/ops_generate/pyboost/__init__.py +0 -0
  349. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  350. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  351. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  352. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  353. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  354. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  355. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  356. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  357. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  358. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  359. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  360. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  361. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  362. mindspore/ops_generate/resources/__init__.py +0 -0
  363. mindspore/ops_generate/resources/resource_list.py +30 -0
  364. mindspore/ops_generate/resources/resource_loader.py +36 -0
  365. mindspore/ops_generate/resources/resource_manager.py +64 -0
  366. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  367. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  368. mindspore/parallel/__init__.py +6 -2
  369. mindspore/parallel/_auto_parallel_context.py +133 -6
  370. mindspore/parallel/_cell_wrapper.py +130 -15
  371. mindspore/parallel/_parallel_serialization.py +95 -4
  372. mindspore/parallel/_ps_context.py +1 -1
  373. mindspore/parallel/_recovery_context.py +7 -2
  374. mindspore/parallel/_tensor.py +142 -18
  375. mindspore/parallel/_utils.py +198 -25
  376. mindspore/parallel/algo_parameter_config.py +3 -3
  377. mindspore/parallel/auto_parallel.py +732 -0
  378. mindspore/parallel/checkpoint_convert.py +159 -0
  379. mindspore/parallel/checkpoint_transform.py +656 -37
  380. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  381. mindspore/parallel/cluster/run.py +1 -1
  382. mindspore/parallel/function/__init__.py +24 -0
  383. mindspore/parallel/function/reshard_func.py +259 -0
  384. mindspore/parallel/nn/__init__.py +25 -0
  385. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  386. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  387. mindspore/parallel/parameter_broadcast.py +24 -13
  388. mindspore/parallel/shard.py +137 -61
  389. mindspore/parallel/transform_safetensors.py +287 -95
  390. mindspore/pgodb140.dll +0 -0
  391. mindspore/pgort140.dll +0 -0
  392. mindspore/profiler/__init__.py +9 -5
  393. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  394. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  395. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
  397. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  398. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  399. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  400. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  401. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  402. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  403. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  404. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  405. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  406. mindspore/profiler/common/constant.py +12 -0
  407. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  408. mindspore/profiler/common/path_manager.py +24 -0
  409. mindspore/profiler/common/profiler_context.py +26 -2
  410. mindspore/profiler/common/profiler_meta_data.py +74 -0
  411. mindspore/profiler/common/profiler_parameters.py +59 -18
  412. mindspore/profiler/common/profiler_path_manager.py +66 -7
  413. mindspore/profiler/dynamic_profiler.py +112 -79
  414. mindspore/profiler/envprofiler.py +26 -1
  415. mindspore/profiler/experimental_config.py +197 -0
  416. mindspore/profiler/mstx.py +57 -14
  417. mindspore/profiler/platform/npu_profiler.py +33 -7
  418. mindspore/profiler/profiler.py +541 -45
  419. mindspore/profiler/profiler_action_controller.py +1 -1
  420. mindspore/profiler/profiler_interface.py +4 -0
  421. mindspore/profiler/schedule.py +57 -22
  422. mindspore/rewrite/api/node.py +15 -13
  423. mindspore/rewrite/api/symbol_tree.py +1 -1
  424. mindspore/run_check/_check_version.py +25 -14
  425. mindspore/run_check/run_check.py +1 -1
  426. mindspore/runtime/__init__.py +2 -2
  427. mindspore/runtime/executor.py +40 -11
  428. mindspore/runtime/memory.py +25 -8
  429. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  430. mindspore/swresample-4.dll +0 -0
  431. mindspore/swscale-6.dll +0 -0
  432. mindspore/tbbmalloc.dll +0 -0
  433. mindspore/tinyxml2.dll +0 -0
  434. mindspore/train/__init__.py +8 -8
  435. mindspore/train/_utils.py +35 -7
  436. mindspore/train/amp.py +1 -1
  437. mindspore/train/callback/__init__.py +2 -2
  438. mindspore/train/callback/_callback.py +2 -16
  439. mindspore/train/callback/_checkpoint.py +24 -40
  440. mindspore/train/callback/_cluster_monitor.py +14 -18
  441. mindspore/train/callback/_flops_collector.py +2 -3
  442. mindspore/train/callback/_history.py +7 -4
  443. mindspore/train/callback/_lambda_callback.py +2 -2
  444. mindspore/train/callback/_landscape.py +0 -3
  445. mindspore/train/callback/_loss_monitor.py +2 -1
  446. mindspore/train/callback/_on_request_exit.py +6 -5
  447. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  448. mindspore/train/callback/_summary_collector.py +8 -13
  449. mindspore/train/callback/_time_monitor.py +2 -1
  450. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
  451. mindspore/train/data_sink.py +25 -2
  452. mindspore/train/dataset_helper.py +4 -5
  453. mindspore/train/loss_scale_manager.py +8 -7
  454. mindspore/train/metrics/accuracy.py +3 -3
  455. mindspore/train/metrics/confusion_matrix.py +9 -9
  456. mindspore/train/metrics/error.py +3 -3
  457. mindspore/train/metrics/hausdorff_distance.py +4 -4
  458. mindspore/train/metrics/mean_surface_distance.py +3 -3
  459. mindspore/train/metrics/metric.py +0 -12
  460. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  461. mindspore/train/metrics/precision.py +8 -6
  462. mindspore/train/metrics/recall.py +9 -9
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  464. mindspore/train/mind_ir_pb2.py +19 -12
  465. mindspore/train/model.py +176 -103
  466. mindspore/train/serialization.py +246 -988
  467. mindspore/train/summary/_summary_adapter.py +2 -2
  468. mindspore/train/summary/summary_record.py +1 -1
  469. mindspore/turbojpeg.dll +0 -0
  470. mindspore/utils/__init__.py +3 -2
  471. mindspore/utils/dryrun.py +4 -2
  472. mindspore/utils/hooks.py +81 -0
  473. mindspore/utils/utils.py +138 -4
  474. mindspore/vcmeta.dll +0 -0
  475. mindspore/vcruntime140.dll +0 -0
  476. mindspore/vcruntime140_1.dll +0 -0
  477. mindspore/version.py +1 -1
  478. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
  479. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
  480. mindspore/_install_custom.py +0 -43
  481. mindspore/common/_register_for_adapter.py +0 -74
  482. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  483. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  484. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  485. mindspore/ops_generate/gen_constants.py +0 -190
  486. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  487. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  488. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  489. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  490. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -55,10 +55,10 @@ class ReduceOp:
55
55
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
56
56
  without any third-party or configuration file dependencies.
57
57
  Please see the `msrun start up
58
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
58
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
59
59
  for more details.
60
60
 
61
- This example should be run with multiple devices.
61
+ This example should be run with 2 devices.
62
62
 
63
63
  >>> import numpy as np
64
64
  >>> import mindspore
@@ -144,7 +144,7 @@ class AllReduce(Primitive):
144
144
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
145
145
  without any third-party or configuration file dependencies.
146
146
  Please see the `msrun start up
147
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
147
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
148
148
  for more details.
149
149
 
150
150
  This example should be run with 2 devices.
@@ -234,7 +234,7 @@ class Reduce(PrimitiveWithInfer):
234
234
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method without any third-party
235
235
  or configuration file dependencies.
236
236
  Please see the `msrun start up
237
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
237
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
238
238
  for more details.
239
239
 
240
240
  This example should be run with 4 devices.
@@ -247,13 +247,13 @@ class Reduce(PrimitiveWithInfer):
247
247
  >>> # Launch 4 processes.
248
248
  >>> init()
249
249
  >>> class ReduceNet(nn.Cell):
250
- >>> def __init__(self):
251
- >>> super(Net, self).__init__()
252
- >>> self.reduce = ops.Reduce(dest_rank=1)
253
- >>>
254
- >>> def construct(self, x):
255
- >>> out = self.reduce(x)
256
- >>> return out
250
+ ... def __init__(self):
251
+ ... super(ReduceNet, self).__init__()
252
+ ... self.reduce = ops.Reduce(dest_rank=1)
253
+ ...
254
+ ... def construct(self, x):
255
+ ... out = self.reduce(x)
256
+ ... return out
257
257
  >>> input = Tensor(np.ones([2, 8]).astype(np.float32))
258
258
  >>> net = ReduceNet()
259
259
  >>> output = net(input)
@@ -318,7 +318,7 @@ class AllGather(PrimitiveWithInfer):
318
318
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
319
319
  without any third-party or configuration file dependencies.
320
320
  Please see the `msrun start up
321
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
321
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
322
322
  for more details.
323
323
 
324
324
  This example should be run with 2 devices.
@@ -541,7 +541,7 @@ class ReduceScatter(Primitive):
541
541
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
542
542
  without any third-party or configuration file dependencies.
543
543
  Please see the `msrun start up
544
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
544
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
545
545
  for more details.
546
546
 
547
547
  This example should be run with 2 devices.
@@ -679,7 +679,7 @@ class Broadcast(PrimitiveWithInfer):
679
679
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
680
680
  without any third-party or configuration file dependencies.
681
681
  Please see the `msrun start up
682
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
682
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
683
683
  for more details.
684
684
 
685
685
  This example should be run with 2 devices.
@@ -883,7 +883,7 @@ class AlltoAll(PrimitiveWithInfer):
883
883
  split_count (int): On each process, divide blocks into split_count number.
884
884
  split_dim (int): On each process, split blocks along the split_dim.
885
885
  concat_dim (int): On each process, gather the received blocks along the concat_dimension.
886
- group (str): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` .
886
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP`` .
887
887
 
888
888
  Inputs:
889
889
  - **input_x** (Tensor) - The shape of tensor is :math:`(x_1, x_2, ..., x_R)`.
@@ -909,7 +909,7 @@ class AlltoAll(PrimitiveWithInfer):
909
909
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
910
910
  without any third-party or configuration file dependencies.
911
911
  Please see the `msrun start up
912
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
912
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
913
913
  for more details.
914
914
 
915
915
  This example should be run with 8 devices.
@@ -1031,7 +1031,7 @@ class NeighborExchangeV2(Primitive):
1031
1031
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1032
1032
  without any third-party or configuration file dependencies.
1033
1033
  Please see the `msrun start up
1034
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1034
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1035
1035
  for more details.
1036
1036
 
1037
1037
  This example should be run with 2 devices.
@@ -1054,7 +1054,7 @@ class NeighborExchangeV2(Primitive):
1054
1054
  ... def construct(self, x):
1055
1055
  ... out = self.neighbor_exchangev2(x)
1056
1056
  ... return out
1057
- ... class Net1(nn.Cell):
1057
+ >>> class Net1(nn.Cell):
1058
1058
  ... def __init__(self):
1059
1059
  ... super(Net1, self).__init__()
1060
1060
  ... self.neighbor_exchangev2 = ops.NeighborExchangeV2(send_rank_ids=[0, -1, -1, -1, -1, -1, -1, -1],
@@ -1070,16 +1070,19 @@ class NeighborExchangeV2(Primitive):
1070
1070
  >>> init()
1071
1071
  >>> rank_id = int(os.getenv("RANK_ID"))
1072
1072
  >>> if (rank_id % 2 == 0):
1073
- >>> input_x = ms.Tensor(np.ones([1, 1, 2, 2]), dtype = ms.float32)
1074
- >>> net = Net0()
1075
- >>> output = net(input_x)
1076
- >>> print(output)
1077
- >>> else:
1078
- >>> input_x = ms.Tensor(np.ones([1, 1, 2, 2]) * 2, dtype = ms.float32)
1079
- >>> net = Net1()
1080
- >>> output = net(input_x)
1081
- >>> print(output)
1073
+ ... input_x = ms.Tensor(np.ones([1, 1, 2, 2]), dtype = ms.float32)
1074
+ ... net = Net0()
1075
+ ... output = net(input_x)
1076
+ ... print(output)
1077
+ ... else:
1078
+ ... input_x = ms.Tensor(np.ones([1, 1, 2, 2]) * 2, dtype = ms.float32)
1079
+ ... net = Net1()
1080
+ ... output = net(input_x)
1081
+ ... print(output)
1082
+ rank 0:
1082
1083
  [[[[1. 1.], [1. 1.], [2. 2.]]]]
1084
+ rank 1:
1085
+ [[[[1. 1.], [2. 2.], [2. 2.]]]]
1083
1086
 
1084
1087
  Tutorial Examples:
1085
1088
  - `Distributed Set Communication Primitives - NeighborExchangeV2
@@ -1114,7 +1117,7 @@ class NeighborExchangeV2(Primitive):
1114
1117
 
1115
1118
  class CollectiveScatter(Primitive):
1116
1119
  r"""
1117
- Scatter tensor evently across the processes in the specified communication group.
1120
+ Scatter input data evently across the processes in the specified communication group.
1118
1121
 
1119
1122
  Note:
1120
1123
  The interface behavior only support Tensor input and scatter evenly.
@@ -1148,7 +1151,7 @@ class CollectiveScatter(Primitive):
1148
1151
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1149
1152
  without any third-party or configuration file dependencies.
1150
1153
  Please see the `msrun start up
1151
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1154
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1152
1155
  for more details.
1153
1156
 
1154
1157
  This example should be run with 2 devices.
@@ -1161,12 +1164,12 @@ class CollectiveScatter(Primitive):
1161
1164
  >>> # Launch 2 processes.
1162
1165
  >>> init()
1163
1166
  >>> class CollectiveScatterNet(nn.Cell):
1164
- >>> def __init__(self):
1165
- >>> super(CollectiveScatter, self).__init__()
1166
- >>> self.collective_scatter = ops.CollectiveScatter(src_rank=0)
1167
- >>>
1168
- >>> def construct(self, x):
1169
- >>> return self.collective_scatter(x)
1167
+ ... def __init__(self):
1168
+ ... super(CollectiveScatterNet, self).__init__()
1169
+ ... self.collective_scatter = ops.CollectiveScatter(src_rank=0)
1170
+ ...
1171
+ ... def construct(self, x):
1172
+ ... return self.collective_scatter(x)
1170
1173
  >>>
1171
1174
  >>> input = Tensor(np.arange(8).reshape([4, 2]).astype(np.float32))
1172
1175
  >>> net = CollectiveScatterNet()
@@ -1233,7 +1236,7 @@ class CollectiveGather(Primitive):
1233
1236
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1234
1237
  without any third-party or configuration file dependencies.
1235
1238
  Please see the `msrun start up
1236
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1239
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1237
1240
  for more details.
1238
1241
 
1239
1242
  This example should be run with 4 devices.
@@ -1309,7 +1312,7 @@ class Barrier(PrimitiveWithInfer):
1309
1312
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1310
1313
  without any third-party or configuration file dependencies.
1311
1314
  Please see the `msrun start up
1312
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1315
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1313
1316
  for more details.
1314
1317
 
1315
1318
  This example should be run with 2 devices.
@@ -1322,12 +1325,12 @@ class Barrier(PrimitiveWithInfer):
1322
1325
  >>> # Launch 4 processes.
1323
1326
  >>> init()
1324
1327
  >>> class BarrierNet(nn.Cell):
1325
- >>> def __init__(self):
1326
- >>> super(BarrierNet, self).__init__()
1327
- >>> self.barrier = ops.Barrier()
1328
- >>>
1329
- >>> def construct(self):
1330
- >>> self.barrier()
1328
+ ... def __init__(self):
1329
+ ... super(BarrierNet, self).__init__()
1330
+ ... self.barrier = ops.Barrier()
1331
+ ...
1332
+ ... def construct(self):
1333
+ ... self.barrier()
1331
1334
  >>> net = BarrierNet()
1332
1335
  >>> net()
1333
1336
 
@@ -1354,10 +1357,10 @@ class Send(PrimitiveWithInfer):
1354
1357
  Send tensors to the specified dest_rank.
1355
1358
 
1356
1359
  Note:
1357
- Send and Receive must be used in combination and have same sr_tag.
1360
+ Send and Receive must be used in combination and have same `sr_tag`.
1358
1361
 
1359
1362
  Args:
1360
- sr_tag (int): The tag to identify the send/recv message. The message will
1363
+ sr_tag (int): The tag to identify the send/recv message. The message sent by this operator will
1361
1364
  be received by the Receive op with the same "sr_tag".
1362
1365
  dest_rank (int): A required integer identifying the destination rank.
1363
1366
  group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``.
@@ -1383,31 +1386,53 @@ class Send(PrimitiveWithInfer):
1383
1386
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1384
1387
  without any third-party or configuration file dependencies.
1385
1388
  Please see the `msrun start up
1386
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1389
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1387
1390
  for more details.
1388
1391
 
1389
1392
  This example should be run with 2 devices.
1390
1393
 
1394
+ >>> import os
1391
1395
  >>> import numpy as np
1396
+ >>> import mindspore.ops as ops
1392
1397
  >>> import mindspore.nn as nn
1398
+ >>> import mindspore as ms
1393
1399
  >>> from mindspore.communication import init
1394
1400
  >>> from mindspore import Tensor
1395
- >>> from mindspore import ops
1396
1401
  >>>
1402
+ >>> ms.set_context(mode=ms.GRAPH_MODE, jit_level="O2")
1397
1403
  >>> init()
1404
+ >>>
1398
1405
  >>> class SendNet(nn.Cell):
1399
- >>> def __init__(self):
1400
- >>> super(SendNet, self).__init__()
1401
- >>> self.depend = ops.Depend()
1402
- >>> self.send = ops.Send(sr_tag=0, dest_rank=8, group="hccl_world_group")
1406
+ ... def __init__(self):
1407
+ ... super(SendNet, self).__init__()
1408
+ ... self.depend = ops.Depend()
1409
+ ... self.send = ops.Send(sr_tag=0, dest_rank=1, group="hccl_world_group")
1410
+ ...
1411
+ ... def construct(self, x):
1412
+ ... out = self.depend(x, self.send(x))
1413
+ ... return out
1403
1414
  >>>
1404
- >>> def construct(self, x):
1405
- >>> out = self.depend(x, self.send(x))
1406
- >>> return out
1415
+ >>> class ReceiveNet(nn.Cell):
1416
+ ... def __init__(self):
1417
+ ... super(ReceiveNet, self).__init__()
1418
+ ... self.recv = ops.Receive(sr_tag=0, src_rank=0, shape=[2, 8], dtype=ms.float32,
1419
+ ... group="hccl_world_group")
1420
+ ...
1421
+ ... def construct(self):
1422
+ ... out = self.recv()
1423
+ ... return out
1407
1424
  >>>
1408
- >>> input_ = Tensor(np.ones([2, 8]).astype(np.float32))
1409
- >>> net = Net()
1410
- >>> output = net(input_)
1425
+ >>> if __name__ == "__main__":
1426
+ ... rank_id = os.environ["RANK_ID"]
1427
+ ... rank_size = os.environ["RANK_SIZE"]
1428
+ ... if rank_id == "0":
1429
+ ... input_ = Tensor(np.ones([2, 8]).astype(np.float32))
1430
+ ... send_net = SendNet()
1431
+ ... output = send_net(input_)
1432
+ ... else:
1433
+ ... recv_net = ReceiveNet()
1434
+ ... output = recv_net()
1435
+ ... print(output.asnumpy())
1411
1436
 
1412
1437
  Tutorial Examples:
1413
1438
  - `Distributed Set Communication Primitives - Send
@@ -1435,11 +1460,11 @@ class Receive(PrimitiveWithInfer):
1435
1460
  Receive tensors from src_rank.
1436
1461
 
1437
1462
  Note:
1438
- Send and Receive must be used in combination and have same sr_tag.
1463
+ Send and Receive must be used in combination and have same `sr_tag`.
1439
1464
 
1440
1465
  Args:
1441
- sr_tag (int): A required integer identifying the send/recv message tag. The message will
1442
- will be send by the Send op with the same "sr_tag".
1466
+ sr_tag (int): A required integer identifying the send/recv message tag. This operator will receive the tensor
1467
+ sent by the Send operator with the same `sr_tag` tag.
1443
1468
  src_rank (int): A required integer identifying the source rank.
1444
1469
  shape (list[int]): A required list identifying the shape of the tensor to be received.
1445
1470
  dtype (Type): A required Type identifying the type of the tensor to be received. The supported types:
@@ -1452,7 +1477,7 @@ class Receive(PrimitiveWithInfer):
1452
1477
  Tensor, output has the same shape as the Tensor sent by `Send` operation.
1453
1478
 
1454
1479
  Raises:
1455
- TypeError: If `group` is not a str.
1480
+ TypeError: If `src_rank` is not an int or `group` is not a str.
1456
1481
  RuntimeError: If device target is invalid, or backend is invalid, or distributed initialization fails.
1457
1482
  ValueError: If the local rank id of the calling process in the group
1458
1483
  is larger than the group's rank size.
@@ -1467,30 +1492,53 @@ class Receive(PrimitiveWithInfer):
1467
1492
  For Ascend/GPU/CPU devices, it is recommended to use the msrun startup method
1468
1493
  without any third-party or configuration file dependencies.
1469
1494
  Please see the `msrun start up
1470
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1495
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1471
1496
  for more details.
1472
1497
 
1473
1498
  This example should be run with 2 devices.
1474
1499
 
1500
+ >>> import os
1475
1501
  >>> import numpy as np
1502
+ >>> import mindspore.ops as ops
1476
1503
  >>> import mindspore.nn as nn
1504
+ >>> import mindspore as ms
1477
1505
  >>> from mindspore.communication import init
1478
1506
  >>> from mindspore import Tensor
1479
- >>> from mindspore import ops
1480
1507
  >>>
1508
+ >>> ms.set_context(mode=ms.GRAPH_MODE, jit_level="O2")
1481
1509
  >>> init()
1482
- >>> class ReceiveNet(nn.Cell):
1483
- >>> def __init__(self):
1484
- >>> super(ReceiveNet, self).__init__()
1485
- >>> self.recv = ops.Receive(sr_tag=0, src_rank=0, shape=[2, 8], dtype=ms.float32,
1486
- >>> group="hccl_world_group")
1487
1510
  >>>
1488
- >>> def construct(self):
1489
- >>> out = self.recv()
1490
- >>> return out
1511
+ >>> class SendNet(nn.Cell):
1512
+ ... def __init__(self):
1513
+ ... super(SendNet, self).__init__()
1514
+ ... self.depend = ops.Depend()
1515
+ ... self.send = ops.Send(sr_tag=0, dest_rank=1, group="hccl_world_group")
1516
+ ...
1517
+ ... def construct(self, x):
1518
+ ... out = self.depend(x, self.send(x))
1519
+ ... return out
1491
1520
  >>>
1492
- >>> net = Net()
1493
- >>> output = net()
1521
+ >>> class ReceiveNet(nn.Cell):
1522
+ ... def __init__(self):
1523
+ ... super(ReceiveNet, self).__init__()
1524
+ ... self.recv = ops.Receive(sr_tag=0, src_rank=0, shape=[2, 8], dtype=ms.float32,
1525
+ ... group="hccl_world_group")
1526
+ ...
1527
+ ... def construct(self):
1528
+ ... out = self.recv()
1529
+ ... return out
1530
+ >>>
1531
+ >>> if __name__ == "__main__":
1532
+ ... rank_id = os.environ["RANK_ID"]
1533
+ ... rank_size = os.environ["RANK_SIZE"]
1534
+ ... if rank_id == "0":
1535
+ ... input_ = Tensor(np.ones([2, 8]).astype(np.float32))
1536
+ ... send_net = SendNet()
1537
+ ... output = send_net(input_)
1538
+ ... else:
1539
+ ... recv_net = ReceiveNet()
1540
+ ... output = recv_net()
1541
+ ... print(output.asnumpy())
1494
1542
 
1495
1543
  Tutorial Examples:
1496
1544
  - `Distributed Set Communication Primitives - Receive
@@ -1845,7 +1893,7 @@ class BatchISendIRecv(PrimitiveWithInfer):
1845
1893
  without any third-party or configuration file dependencies.
1846
1894
 
1847
1895
  Please see the `msrun start up
1848
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
1896
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1849
1897
  for more details.
1850
1898
 
1851
1899
  This example should be run with 2 devices.
@@ -1924,28 +1972,29 @@ class BatchISendIRecv(PrimitiveWithInfer):
1924
1972
 
1925
1973
  class AlltoAllV(PrimitiveWithInfer):
1926
1974
  """
1927
- AllToAll which support uneven split.
1975
+ AllToAllV which support uneven scatter and gather compared with AllToAll.
1928
1976
 
1929
1977
  Note:
1930
1978
  - Only support flatten tensor as input. input tensor should be flattened and
1931
1979
  concatenated before call this primitive.
1932
1980
 
1933
1981
  Args:
1934
- send_numel_list(Union[tuple[int], list[int]]): split numel to scatter to different remote rank.
1935
- recv_numel_list(Union[tuple[int], list[int]]): split numel to gather from different remote rank.
1936
- group (str): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``, which
1937
- means ``"hccl_world_group"`` in Ascend, and ``"nccl_world_group"`` in GPU.
1938
- TODO:
1982
+ group (str, optional): The communication group to work on. Default: ``GlobalComm.WORLD_COMM_GROUP``, which
1983
+ means ``"hccl_world_group"`` in Ascend.
1984
+ block_size (int, optional): The basic units for scatter and gather numel by `send_numel_list`
1985
+ and `recv_numel_list`.
1986
+ Default: ``1``.
1939
1987
 
1940
1988
  Inputs:
1941
1989
  - **input_x** (Tensor) - flatten tensor to scatter. The shape of tensor is :math:`(x_1)`.
1990
+ - **send_numel_list** (Union[tuple[int], list[int], Tensor]) - split numel to scatter to different remote rank.
1991
+ The actual distributed data numel is :math:`(send_numel_list * block_size * input_x.dtype)`.
1992
+ - **recv_numel_list** (Union[tuple[int], list[int], Tensor]) - split numel to gather from different remote rank.
1993
+ The actual aggregated data numel is :math:`(recv_numel_list * block_size * input_x.dtype)`.
1942
1994
 
1943
1995
  Outputs:
1944
- Tensor. flattened and concatenated tensor gather from remote ranks.
1945
- If gather result is empty, it will return a Tensor with value 0, which has no actual meaning.
1946
-
1947
- Raises:
1948
- TypeError: If 'send_numel_list' or 'recv_numel_list' is not type of tuple and list.
1996
+ Tensor, flattened and concatenated tensor gather from remote ranks.
1997
+ If gather result is empty, it will return a Tensor with shape `()`, and value has no actual meaning.
1949
1998
 
1950
1999
  Supported Platforms:
1951
2000
  ``Ascend``
@@ -1958,13 +2007,11 @@ class AlltoAllV(PrimitiveWithInfer):
1958
2007
  without any third-party or configuration file dependencies.
1959
2008
 
1960
2009
  Please see the `msrun start up
1961
- <https://www.mindspore.cn/docs/en/master/model_train/parallel/msrun_launcher.html>`_
2010
+ <https://www.mindspore.cn/tutorials/en/master/parallel/msrun_launcher.html>`_
1962
2011
  for more details.
1963
2012
 
1964
2013
  This example should be run with 2 devices.
1965
2014
 
1966
- >>> import numpy as np
1967
- >>> import mindspore as ms
1968
2015
  >>> from mindspore import ops
1969
2016
  >>> import mindspore.nn as nn
1970
2017
  >>> from mindspore.communication import init, get_rank
@@ -1975,20 +2022,22 @@ class AlltoAllV(PrimitiveWithInfer):
1975
2022
  >>> class Net(nn.Cell):
1976
2023
  ... def __init__(self):
1977
2024
  ... super(Net, self).__init__()
1978
- ... if rank == 0:
1979
- ... self.all_to_all = ops.AlltoAllV([1, 2], [1, 2])
1980
- ... else:
1981
- ... self.all_to_all = ops.AlltoAllV([2, 1], [2, 1])
1982
- ...
1983
- ... def construct(self, x):
1984
- ... return self.all_to_all(x)
2025
+ ... self.all_to_all = ops.AlltoAllV()
1985
2026
  ...
2027
+ ... def construct(self, x, send_numel_list, recv_numel_list):
2028
+ ... return self.all_to_all(x, send_numel_list, recv_numel_list)
2029
+ >>> send_numel_list = []
2030
+ >>> recv_numel_list = []
1986
2031
  >>> if rank == 0:
1987
- >>> send_tensor = Tensor([0, 1, 2.])
2032
+ ... send_tensor = Tensor([0, 1, 2.])
2033
+ ... send_numel_list = [1, 2]
2034
+ ... recv_numel_list = [1, 2]
1988
2035
  >>> elif rank == 1:
1989
- >>> send_tensor = Tensor([3, 4, 5.])
2036
+ ... send_tensor = Tensor([3, 4, 5.])
2037
+ ... send_numel_list = [2, 1]
2038
+ ... recv_numel_list = [2, 1]
1990
2039
  >>> net = Net()
1991
- >>> output = net(send_tensor)
2040
+ >>> output = net(send_tensor, send_numel_list, recv_numel_list)
1992
2041
  >>> print(output)
1993
2042
  rank 0:
1994
2043
  [0. 3. 4]
@@ -1998,15 +2047,9 @@ class AlltoAllV(PrimitiveWithInfer):
1998
2047
  """
1999
2048
 
2000
2049
  @prim_attr_register
2001
- def __init__(self, send_numel_list, recv_numel_list, group=None, split_sizes_empty=False):
2002
- validator.check_value_type("send_numel_list", send_numel_list, [tuple, list], self.name)
2003
- validator.check_value_type("recv_numel_list", recv_numel_list, [tuple, list], self.name)
2050
+ def __init__(self, group=GlobalComm.WORLD_COMM_GROUP, block_size=1):
2004
2051
  self.group = GlobalComm.WORLD_COMM_GROUP if group is None else _get_group(group)
2005
- self.send_numel_list = send_numel_list
2006
- self.recv_numel_list = recv_numel_list
2007
- self.split_sizes_empty = split_sizes_empty
2008
2052
  self.rank_size = get_group_size(self.group)
2009
-
2010
2053
  self.add_prim_attr('group', self.group)
2011
- self.add_prim_attr('send_numel_list', send_numel_list)
2012
- self.add_prim_attr('recv_numel_list', recv_numel_list)
2054
+ validator.check_value_type("block_size", block_size, [int], self.name)
2055
+ self.add_prim_attr('block_size', self.block_size)