mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0rc1__cp310-cp310-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.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +6 -4
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -33
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +19 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +24 -193
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +97 -74
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +4 -4
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +2 -2
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +4 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -1
- mindspore/common/_stub_tensor.py +5 -10
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +1915 -3287
- mindspore/common/api.py +341 -354
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +5 -2
- mindspore/common/dump.py +7 -5
- mindspore/common/file_system.py +3 -0
- mindspore/common/hook_handle.py +5 -3
- mindspore/common/initializer.py +10 -6
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +2 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +106 -39
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +297 -714
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +47 -2
- mindspore/communication/comm_func.py +70 -53
- mindspore/communication/management.py +83 -17
- mindspore/context.py +214 -560
- mindspore/dataset/__init__.py +44 -20
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/core/config.py +3 -3
- mindspore/dataset/engine/cache_client.py +1 -1
- mindspore/dataset/engine/datasets.py +102 -120
- mindspore/dataset/engine/datasets_audio.py +22 -22
- mindspore/dataset/engine/datasets_standard_format.py +43 -24
- mindspore/dataset/engine/datasets_text.py +78 -85
- mindspore/dataset/engine/datasets_user_defined.py +108 -76
- mindspore/dataset/engine/datasets_vision.py +111 -108
- mindspore/dataset/engine/iterators.py +5 -3
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/samplers.py +279 -57
- mindspore/dataset/engine/serializer_deserializer.py +2 -1
- mindspore/dataset/engine/validators.py +10 -0
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/transforms.py +3 -3
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/device_context/ascend/op_debug.py +60 -1
- mindspore/device_context/ascend/op_tuning.py +0 -4
- mindspore/device_manager.py +39 -3
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +22 -26
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +4 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +40 -22
- mindspore/experimental/optim/radam.py +5 -5
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -81
- mindspore/hal/event.py +38 -55
- mindspore/hal/memory.py +93 -144
- mindspore/hal/stream.py +81 -125
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +40 -2
- mindspore/mindrecord/__init__.py +20 -7
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +131 -700
- mindspore/mint/distributed/__init__.py +5 -1
- mindspore/mint/distributed/distributed.py +194 -109
- mindspore/mint/linalg/__init__.py +2 -0
- mindspore/mint/nn/__init__.py +280 -18
- mindspore/mint/nn/functional.py +282 -64
- mindspore/mint/nn/layer/__init__.py +4 -0
- mindspore/mint/nn/layer/_functions.py +7 -3
- mindspore/mint/nn/layer/activation.py +120 -13
- mindspore/mint/nn/layer/conv.py +218 -24
- mindspore/mint/nn/layer/normalization.py +15 -16
- mindspore/mint/nn/layer/padding.py +1 -1
- mindspore/mint/nn/layer/pooling.py +66 -1
- mindspore/mint/optim/__init__.py +2 -1
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1250 -176
- mindspore/nn/layer/activation.py +23 -21
- mindspore/nn/layer/basic.py +22 -16
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +22 -17
- mindspore/nn/layer/embedding.py +9 -8
- mindspore/nn/layer/normalization.py +48 -42
- mindspore/nn/layer/pooling.py +75 -31
- mindspore/nn/layer/transformer.py +11 -10
- mindspore/nn/learning_rate_schedule.py +4 -2
- mindspore/nn/loss/loss.py +27 -19
- mindspore/nn/optim/ada_grad.py +6 -5
- mindspore/nn/optim/adadelta.py +9 -7
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +16 -12
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +1 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +2 -2
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +9 -7
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +178 -117
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +3 -3
- mindspore/numpy/array_creations.py +3 -3
- mindspore/numpy/array_ops.py +1 -1
- mindspore/numpy/math_ops.py +4 -4
- mindspore/numpy/utils.py +1 -2
- mindspore/numpy/utils_const.py +1 -2
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +3 -2
- mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
- mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
- mindspore/ops/_vmap/vmap_array_ops.py +7 -6
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
- mindspore/ops/_vmap/vmap_math_ops.py +4 -7
- mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
- mindspore/ops/auto_generate/gen_extend_func.py +281 -135
- mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
- mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
- mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +19 -24
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +28 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +1629 -2345
- mindspore/ops/function/clip_func.py +38 -45
- mindspore/ops/function/debug_func.py +36 -44
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +1 -1
- mindspore/ops/function/linalg_func.py +46 -78
- mindspore/ops/function/math_func.py +3035 -3705
- mindspore/ops/function/nn_func.py +676 -241
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +17 -30
- mindspore/ops/function/random_func.py +204 -361
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +5 -5
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +24 -17
- mindspore/ops/functional.py +6 -4
- mindspore/ops/functional_overload.py +547 -4
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +10 -5
- mindspore/ops/operations/_custom_ops_utils.py +247 -0
- mindspore/ops/operations/_grad_ops.py +1 -10
- mindspore/ops/operations/_inner_ops.py +5 -76
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +37 -22
- mindspore/ops/operations/comm_ops.py +150 -107
- mindspore/ops/operations/custom_ops.py +221 -23
- mindspore/ops/operations/debug_ops.py +115 -16
- mindspore/ops/operations/inner_ops.py +1 -1
- mindspore/ops/operations/linalg_ops.py +1 -58
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +746 -79
- mindspore/ops/operations/math_ops.py +21 -18
- mindspore/ops/operations/nn_ops.py +65 -191
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +43 -32
- mindspore/ops/tensor_method.py +232 -13
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
- mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
- mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
- mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
- mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
- mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
- mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
- mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
- mindspore/ops_generate/{template.py → common/template.py} +96 -84
- mindspore/ops_generate/gen_ops.py +23 -325
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
- mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
- mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
- mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
- mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
- mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
- mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
- mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
- mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
- mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
- mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
- mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
- mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
- mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
- mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
- mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +6 -2
- mindspore/parallel/_auto_parallel_context.py +133 -6
- mindspore/parallel/_cell_wrapper.py +130 -15
- mindspore/parallel/_parallel_serialization.py +95 -4
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +198 -25
- mindspore/parallel/algo_parameter_config.py +3 -3
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +656 -37
- mindspore/parallel/cluster/process_entity/_api.py +151 -19
- mindspore/parallel/cluster/run.py +1 -1
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +259 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +24 -13
- mindspore/parallel/shard.py +137 -61
- mindspore/parallel/transform_safetensors.py +287 -95
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +9 -5
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
- mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
- mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
- mindspore/profiler/common/constant.py +12 -0
- mindspore/profiler/common/msprof_cmd_tool.py +42 -23
- mindspore/profiler/common/path_manager.py +24 -0
- mindspore/profiler/common/profiler_context.py +26 -2
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_parameters.py +59 -18
- mindspore/profiler/common/profiler_path_manager.py +66 -7
- mindspore/profiler/dynamic_profiler.py +112 -79
- mindspore/profiler/envprofiler.py +26 -1
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +57 -14
- mindspore/profiler/platform/npu_profiler.py +33 -7
- mindspore/profiler/profiler.py +541 -45
- mindspore/profiler/profiler_action_controller.py +1 -1
- mindspore/profiler/profiler_interface.py +4 -0
- mindspore/profiler/schedule.py +57 -22
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +1 -1
- mindspore/run_check/_check_version.py +25 -14
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +2 -2
- mindspore/runtime/executor.py +40 -11
- mindspore/runtime/memory.py +25 -8
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +35 -7
- mindspore/train/amp.py +1 -1
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +24 -40
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_flops_collector.py +2 -3
- mindspore/train/callback/_history.py +7 -4
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +8 -13
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +4 -5
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +8 -6
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +19 -12
- mindspore/train/model.py +176 -103
- mindspore/train/serialization.py +246 -988
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +3 -2
- mindspore/utils/dryrun.py +4 -2
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/utils.py +138 -4
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_constants.py +0 -190
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
- /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
mindspore/parallel/_utils.py
CHANGED
|
@@ -25,14 +25,121 @@ from mindspore.common.dtype import dtype_to_nptype
|
|
|
25
25
|
from mindspore.common import dtype as mstype
|
|
26
26
|
from mindspore.communication.management import get_group_size, get_rank
|
|
27
27
|
from mindspore.communication._comm_helper import _is_initialized
|
|
28
|
-
from mindspore.parallel.
|
|
28
|
+
from mindspore.parallel.shard import Layout
|
|
29
|
+
from mindspore.parallel._auto_parallel_context import auto_parallel_context, _set_auto_parallel_context, \
|
|
30
|
+
_reset_auto_parallel_context
|
|
29
31
|
from mindspore.common.seed import get_seed
|
|
30
|
-
from mindspore._c_expression import GraphExecutor_
|
|
32
|
+
from mindspore._c_expression import GraphExecutor_, TensorPy as Tensor_
|
|
31
33
|
from mindspore.parallel._tensor import _load_tensor_by_layout, _load_tensor_shape_by_layout
|
|
32
34
|
|
|
33
35
|
SUPPORTED_TUPLE_IN_TUPLE_STRATEGY = ["GroupedMatmul", "FusedInferAttentionScore", "Custom", "Index"]
|
|
34
36
|
|
|
35
37
|
|
|
38
|
+
# disable pylint too broad Exception
|
|
39
|
+
# pylint: disable=W0212
|
|
40
|
+
def _init_auto_parallel_context(net):
|
|
41
|
+
"""Parse the member variables of AutoParallel(cell) to the auto parallel context. """
|
|
42
|
+
if net is None or net.__class__.__name__ != "AutoParallel":
|
|
43
|
+
pass
|
|
44
|
+
else:
|
|
45
|
+
parallel_mode = "semi_auto_parallel"
|
|
46
|
+
search_mode = "recursive_programming"
|
|
47
|
+
if net._device_num == 1:
|
|
48
|
+
parallel_mode = "stand_alone"
|
|
49
|
+
elif net._parallel_mode in ["recursive_programming", "sharding_propagation"]:
|
|
50
|
+
search_mode = net._parallel_mode
|
|
51
|
+
parallel_mode = "auto_parallel"
|
|
52
|
+
params = {
|
|
53
|
+
"auto_parallel_new_interface": True,
|
|
54
|
+
"init_param_in_compile": net._init_param_in_compile,
|
|
55
|
+
"device_num": net._device_num,
|
|
56
|
+
"global_rank": net._global_rank,
|
|
57
|
+
"parallel_mode": parallel_mode,
|
|
58
|
+
"search_mode": search_mode,
|
|
59
|
+
"comm_fusion": net._comm_fusion_config,
|
|
60
|
+
"strategy_ckpt_load_file": net._load_strategy_file_path,
|
|
61
|
+
"strategy_ckpt_save_file": net._save_strategy_file_path,
|
|
62
|
+
"strategy_ckpt_config": {
|
|
63
|
+
"load_file": net._load_strategy_file_path,
|
|
64
|
+
"save_file": net._save_strategy_file_path,
|
|
65
|
+
"only_trainable_params": net._only_trainable_params
|
|
66
|
+
},
|
|
67
|
+
"dataset_strategy": net._dataset_strategy_config,
|
|
68
|
+
"full_batch": net._full_batch,
|
|
69
|
+
"force_fp32_communication": net._force_fp32_communication,
|
|
70
|
+
"enable_alltoall": net._enable_alltoall,
|
|
71
|
+
"parameter_broadcast": net._parameter_broadcast,
|
|
72
|
+
"group_ckpt_save_file": net._group_ckpt_save_file,
|
|
73
|
+
"dump_local_norm": net._dump_local_norm,
|
|
74
|
+
"dump_local_norm_path": net._dump_local_norm_path,
|
|
75
|
+
"dump_device_local_norm": net._dump_device_local_norm,
|
|
76
|
+
"gradients_mean": net._gradients_mean,
|
|
77
|
+
"gradient_fp32_sync": net._gradient_fp32_sync,
|
|
78
|
+
"loss_repeated_mean": net._loss_repeated_mean
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# hsdp
|
|
82
|
+
params["enable_parallel_optimizer"] = net._enable_parallel_optimizer
|
|
83
|
+
if params["enable_parallel_optimizer"]:
|
|
84
|
+
parallel_optimizer_config = {}
|
|
85
|
+
if net._parallel_optimizer_threshold != -1:
|
|
86
|
+
parallel_optimizer_config["parallel_optimizer_threshold"] = net._parallel_optimizer_threshold
|
|
87
|
+
if net._optimizer_weight_shard_size != -1:
|
|
88
|
+
parallel_optimizer_config["optimizer_weight_shard_size"] = net._optimizer_weight_shard_size
|
|
89
|
+
parallel_optimizer_config["optimizer_level"] = net._optimizer_level
|
|
90
|
+
params['parallel_optimizer_config'] = parallel_optimizer_config
|
|
91
|
+
|
|
92
|
+
# pipeline
|
|
93
|
+
params["pipeline_stages"] = net._pipeline_stages
|
|
94
|
+
if params["pipeline_stages"] > 1:
|
|
95
|
+
params['pipeline_result_broadcast'] = net._pipeline_result_broadcast
|
|
96
|
+
params['pipeline_config'] = {
|
|
97
|
+
"pipeline_interleave": net._pipeline_interleave,
|
|
98
|
+
"pipeline_scheduler": net._pipeline_scheduler
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# set_op_strategy_config
|
|
102
|
+
if parallel_mode == "auto_parallel" and search_mode == "sharding_propagation":
|
|
103
|
+
from mindspore.parallel.checkpoint_transform import set_op_strategy_config
|
|
104
|
+
if net._load_operator_strategy_file != "":
|
|
105
|
+
set_op_strategy_config(mode="LOAD", path=net._load_operator_strategy_file)
|
|
106
|
+
if net._save_operator_strategy_file != "":
|
|
107
|
+
set_op_strategy_config(mode="SAVE", path=net._save_operator_strategy_file)
|
|
108
|
+
|
|
109
|
+
_set_auto_parallel_context(**params)
|
|
110
|
+
net.transformer_opt(net._transformer_opt_config)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def _clear_auto_parallel_context(net):
|
|
114
|
+
if net is None or net.__class__.__name__ != "AutoParallel":
|
|
115
|
+
pass
|
|
116
|
+
else:
|
|
117
|
+
_reset_auto_parallel_context()
|
|
118
|
+
net.transformer_opt(None)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def _get_auto_parallel_net(net):
|
|
122
|
+
for _, cell in net.cells_and_names():
|
|
123
|
+
if type(cell).__name__ == 'AutoParallel':
|
|
124
|
+
return cell
|
|
125
|
+
return net
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _parallel_mode_map(parallel_mode):
|
|
129
|
+
"""Map parallel mode."""
|
|
130
|
+
parallel_mode_map = {
|
|
131
|
+
"sharding_propagation": "auto_parallel",
|
|
132
|
+
"recursive_programming": "auto_parallel",
|
|
133
|
+
"semi_auto": "semi_auto_parallel"
|
|
134
|
+
}
|
|
135
|
+
parallel_mode_res = parallel_mode_map.get(parallel_mode, 'Not Exits')
|
|
136
|
+
if parallel_mode_res == 'Not Exits':
|
|
137
|
+
raise ValueError("Invalid parallel_mode input, expect one of 'semi_auto', 'sharding_propagation', "
|
|
138
|
+
"'recursive_programming', but got the value: {}.".format(parallel_mode))
|
|
139
|
+
return parallel_mode_res
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
36
143
|
def _get_parallel_mode():
|
|
37
144
|
"""Get parallel mode."""
|
|
38
145
|
return auto_parallel_context().get_parallel_mode()
|
|
@@ -127,29 +234,56 @@ class ParallelParamInitProfCtx:
|
|
|
127
234
|
|
|
128
235
|
def _slice_parameter(parameter, phase, layout):
|
|
129
236
|
"""Slice python parameter obj according to the layout."""
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
parameter.
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
237
|
+
new_interface_flag = auto_parallel_context().get_auto_parallel_new_interface()
|
|
238
|
+
init_param_in_compile = auto_parallel_context().get_init_param_in_compile()
|
|
239
|
+
if not new_interface_flag:
|
|
240
|
+
if getattr(parameter, "init_param", False) and parameter.has_init:
|
|
241
|
+
if layout is None:
|
|
242
|
+
parameter.sliced = True
|
|
243
|
+
return
|
|
244
|
+
if not parameter.sliced:
|
|
245
|
+
rank = get_rank()
|
|
246
|
+
new_tensor_shape = _load_tensor_shape_by_layout(parameter, layout, rank)
|
|
247
|
+
parameter.shape = new_tensor_shape
|
|
248
|
+
if hasattr(parameter.init_mode, "shape") and parameter.init_mode.shape != parameter.shape:
|
|
249
|
+
parameter.init_mode.shape = new_tensor_shape
|
|
250
|
+
parameter.sliced = True
|
|
251
|
+
else:
|
|
252
|
+
graph_executor = GraphExecutor_.get_instance()
|
|
253
|
+
new_param = parameter.init_data(layout, set_sliced=True)
|
|
254
|
+
parameter = new_param
|
|
255
|
+
graph_executor.updata_param_node_default_input(phase, {parameter.name: parameter})
|
|
256
|
+
if layout is None:
|
|
257
|
+
parameter.sliced = True
|
|
258
|
+
return
|
|
259
|
+
if not parameter.sliced:
|
|
260
|
+
rank = get_rank()
|
|
261
|
+
new_tensor = _load_tensor_by_layout(parameter, layout, rank)
|
|
262
|
+
parameter.set_data(new_tensor, True)
|
|
141
263
|
else:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
264
|
+
if init_param_in_compile or parameter.has_init is False:
|
|
265
|
+
graph_executor = GraphExecutor_.get_instance()
|
|
266
|
+
new_param = parameter.init_data(layout, set_sliced=True)
|
|
267
|
+
parameter = new_param
|
|
268
|
+
graph_executor.updata_param_node_default_input(phase, {parameter.name: parameter})
|
|
269
|
+
if layout is None:
|
|
270
|
+
parameter.sliced = True
|
|
271
|
+
return
|
|
272
|
+
if not parameter.sliced:
|
|
273
|
+
rank = get_rank()
|
|
274
|
+
new_tensor = _load_tensor_by_layout(parameter, layout, rank)
|
|
275
|
+
parameter.set_data(new_tensor, True)
|
|
276
|
+
else:
|
|
277
|
+
if layout is None:
|
|
278
|
+
parameter.sliced = True
|
|
279
|
+
return
|
|
280
|
+
if not parameter.sliced:
|
|
281
|
+
rank = get_rank()
|
|
282
|
+
new_tensor_shape = _load_tensor_shape_by_layout(parameter, layout, rank)
|
|
283
|
+
parameter.shape = new_tensor_shape
|
|
284
|
+
if hasattr(parameter.init_mode, "shape") and parameter.init_mode.shape != parameter.shape:
|
|
285
|
+
parameter.init_mode.shape = new_tensor_shape
|
|
286
|
+
parameter.sliced = True
|
|
153
287
|
|
|
154
288
|
|
|
155
289
|
def _slice_tensor(tensor, layout, rank_id):
|
|
@@ -168,6 +302,33 @@ def _init_optimizer_state(parameter, phase):
|
|
|
168
302
|
graph_executor.updata_param_node_default_input(phase, {parameter.name: parameter})
|
|
169
303
|
|
|
170
304
|
|
|
305
|
+
def _to_full_shape_layout(shapes, dataset_strategy):
|
|
306
|
+
"""to full shape for layout"""
|
|
307
|
+
new_shapes = []
|
|
308
|
+
for index, shape in enumerate(shapes):
|
|
309
|
+
layout = dataset_strategy[index]
|
|
310
|
+
layout_dict = layout.to_dict()
|
|
311
|
+
devmat = layout_dict["device_matrix"]
|
|
312
|
+
tensormap = layout_dict["tensor_map"]
|
|
313
|
+
new_shape = []
|
|
314
|
+
for i, item in enumerate(shape):
|
|
315
|
+
correspond_tensor_map = tensormap[i]
|
|
316
|
+
shard_size = 1
|
|
317
|
+
if isinstance(correspond_tensor_map, tuple):
|
|
318
|
+
for value in correspond_tensor_map:
|
|
319
|
+
if value != -1:
|
|
320
|
+
shard_size *= devmat[len(devmat) - value - 1]
|
|
321
|
+
else:
|
|
322
|
+
if correspond_tensor_map != -1:
|
|
323
|
+
shard_size *= devmat[len(devmat) - correspond_tensor_map - 1]
|
|
324
|
+
if item > 0:
|
|
325
|
+
new_shape += (item * shard_size,) # static shape
|
|
326
|
+
else:
|
|
327
|
+
new_shape += (item,) # dynamic shape
|
|
328
|
+
new_shapes.append(new_shape)
|
|
329
|
+
return new_shapes
|
|
330
|
+
|
|
331
|
+
|
|
171
332
|
def _to_full_shapes(shapes, device_num):
|
|
172
333
|
"""Expanding batch dimension according to device_num, adapt to mindspore minddata graph solution."""
|
|
173
334
|
new_shapes = []
|
|
@@ -178,6 +339,8 @@ def _to_full_shapes(shapes, device_num):
|
|
|
178
339
|
if len(shapes) != len(dataset_strategy):
|
|
179
340
|
raise ValueError("The input shapes size {} is not equal to "
|
|
180
341
|
"dataset strategy size {}".format(len(shapes), len(dataset_strategy)))
|
|
342
|
+
if isinstance(dataset_strategy[0], Layout):
|
|
343
|
+
return _to_full_shape_layout(shapes, dataset_strategy)
|
|
181
344
|
for index, shape in enumerate(shapes):
|
|
182
345
|
if len(shape) != len(dataset_strategy[index]):
|
|
183
346
|
raise ValueError("The input shapes item size {} is not equal to "
|
|
@@ -618,7 +781,7 @@ def _grads_divided_by_device_num_if_recomputation(grads):
|
|
|
618
781
|
f"({context.ParallelMode.SEMI_AUTO_PARALLEL}, {context.ParallelMode.AUTO_PARALLEL}) and "
|
|
619
782
|
f"full_batch is Ture, the gradients will be automatically divided by device_num({device_num}).")
|
|
620
783
|
|
|
621
|
-
if not isinstance(grads, (tuple, Tensor)):
|
|
784
|
+
if not isinstance(grads, (tuple, Tensor, Tensor_)):
|
|
622
785
|
raise ValueError(f"The type of grads must be either Tuple[Tensor] or Tensor, but got {type(grads)}.")
|
|
623
786
|
|
|
624
787
|
if isinstance(grads, tuple):
|
|
@@ -631,3 +794,13 @@ def _grads_divided_by_device_num_if_recomputation(grads):
|
|
|
631
794
|
device_num_tensor = Tensor(device_num, grads.dtype)
|
|
632
795
|
new_grads = grads / device_num_tensor
|
|
633
796
|
return new_grads
|
|
797
|
+
|
|
798
|
+
|
|
799
|
+
def _check_rank(cur_rank, initial_rank, pipeline_stages):
|
|
800
|
+
"""
|
|
801
|
+
Check parameter for parameter_broadcast.
|
|
802
|
+
"""
|
|
803
|
+
if cur_rank != get_rank():
|
|
804
|
+
raise ValueError(f"For parameter broadcast, the cur_rank: {cur_rank} is wrong.")
|
|
805
|
+
if initial_rank % (get_group_size() / pipeline_stages) != 0:
|
|
806
|
+
raise ValueError(f"For parameter broadcast, the initial_rank: {initial_rank} is wrong.")
|
|
@@ -264,14 +264,14 @@ def set_algo_parameters(**kwargs):
|
|
|
264
264
|
|
|
265
265
|
For the Ascend devices, users need to prepare the rank table, set rank_id and device_id.
|
|
266
266
|
Please see the `rank table startup
|
|
267
|
-
<https://www.mindspore.cn/
|
|
267
|
+
<https://www.mindspore.cn/tutorials/en/master/parallel/rank_table.html>`_
|
|
268
268
|
for more details.
|
|
269
269
|
|
|
270
270
|
For the GPU devices, users need to prepare the host file and mpi, please see the `mpirun startup
|
|
271
|
-
<https://www.mindspore.cn/
|
|
271
|
+
<https://www.mindspore.cn/tutorials/en/master/parallel/mpirun.html>`_ .
|
|
272
272
|
|
|
273
273
|
For the CPU device, users need to write a dynamic cluster startup script, please see the `Dynamic Cluster
|
|
274
|
-
Startup <https://www.mindspore.cn/
|
|
274
|
+
Startup <https://www.mindspore.cn/tutorials/en/master/parallel/dynamic_cluster.html>`_ .
|
|
275
275
|
|
|
276
276
|
>>> import numpy as np
|
|
277
277
|
>>> import mindspore as ms
|