mindspore 1.10.0__cp38-cp38-win_amd64.whl → 2.0.0rc1__cp38-cp38-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/ConcurrencyCheck.dll +0 -0
- mindspore/CppBuildInsights.dll +0 -0
- mindspore/CppCoreCheck.dll +0 -0
- mindspore/EnumIndex.dll +0 -0
- mindspore/EspXEngine.dll +0 -0
- mindspore/HResultCheck.dll +0 -0
- mindspore/KernelTraceControl.dll +0 -0
- mindspore/LocalESPC.dll +0 -0
- mindspore/Microsoft.Diagnostics.Tracing.EventSource.dll +0 -0
- mindspore/Microsoft.VisualStudio.RemoteControl.dll +0 -0
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Microsoft.VisualStudio.Utilities.Internal.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- mindspore/VariantClear.dll +0 -0
- mindspore/__init__.py +9 -4
- mindspore/_c_dataengine.cp38-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp38-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp38-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/builtin_operations.py +32 -4
- mindspore/_extends/graph_kernel/model/graph_split.py +66 -222
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +12 -9
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +119 -26
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -50
- mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -6
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -25
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -27
- mindspore/_extends/parse/__init__.py +5 -3
- mindspore/_extends/parse/namespace.py +17 -2
- mindspore/_extends/parse/parser.py +193 -34
- mindspore/_extends/parse/resources.py +7 -8
- mindspore/_extends/parse/standard_method.py +1780 -435
- mindspore/_extends/parse/trope.py +3 -1
- mindspore/amp.py +53 -58
- mindspore/atlprov.dll +0 -0
- mindspore/boost/adasum.py +3 -2
- mindspore/boost/boost.py +2 -2
- mindspore/boost/boost_cell_wrapper.py +46 -26
- mindspore/boost/dim_reduce.py +6 -5
- mindspore/boost/grad_accumulation.py +2 -1
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/cfgpersist.dll +0 -0
- mindspore/clang_rt.asan_dbg_dynamic-x86_64.dll +0 -0
- mindspore/clang_rt.asan_dynamic-x86_64.dll +0 -0
- mindspore/common/__init__.py +11 -10
- mindspore/common/_decorator.py +2 -0
- mindspore/common/_register_for_adapter.py +55 -0
- mindspore/common/_stub_tensor.py +201 -0
- mindspore/common/_utils.py +57 -0
- mindspore/common/api.py +582 -297
- mindspore/common/dtype.py +66 -18
- mindspore/common/dump.py +2 -2
- mindspore/common/initializer.py +38 -1
- mindspore/common/jit_config.py +25 -13
- mindspore/common/mutable.py +53 -24
- mindspore/common/parameter.py +60 -37
- mindspore/common/seed.py +8 -24
- mindspore/common/sparse_tensor.py +927 -0
- mindspore/common/tensor.py +1627 -3900
- mindspore/communication/__init__.py +10 -5
- mindspore/communication/_comm_helper.py +78 -214
- mindspore/communication/_hccl_management.py +2 -1
- mindspore/communication/management.py +136 -47
- mindspore/config/op_info.config +501 -1008
- mindspore/context.py +291 -56
- mindspore/d3dcompiler_47.dll +0 -0
- mindspore/dataset/__init__.py +12 -8
- mindspore/dataset/audio/__init__.py +9 -9
- mindspore/dataset/audio/transforms.py +1090 -228
- mindspore/dataset/audio/utils.py +87 -39
- mindspore/dataset/audio/validators.py +223 -1
- mindspore/dataset/callback/ds_callback.py +17 -15
- mindspore/dataset/core/config.py +246 -17
- mindspore/dataset/core/py_util_helpers.py +4 -3
- mindspore/dataset/core/validator_helpers.py +10 -10
- mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
- mindspore/dataset/debug/debug_hook.py +65 -0
- mindspore/dataset/debug/pre_defined_hook.py +67 -0
- mindspore/dataset/engine/__init__.py +7 -3
- mindspore/dataset/engine/cache_client.py +9 -9
- mindspore/dataset/engine/datasets.py +648 -477
- mindspore/dataset/engine/datasets_audio.py +165 -167
- mindspore/dataset/engine/datasets_standard_format.py +93 -67
- mindspore/dataset/engine/datasets_text.py +492 -342
- mindspore/dataset/engine/datasets_user_defined.py +85 -50
- mindspore/dataset/engine/datasets_vision.py +1224 -699
- mindspore/dataset/engine/graphdata.py +134 -69
- mindspore/dataset/engine/iterators.py +50 -9
- mindspore/dataset/engine/offload.py +52 -31
- mindspore/dataset/engine/samplers.py +27 -24
- mindspore/dataset/engine/serializer_deserializer.py +14 -15
- mindspore/dataset/engine/validators.py +213 -52
- mindspore/dataset/text/__init__.py +10 -8
- mindspore/dataset/text/transforms.py +152 -57
- mindspore/dataset/text/utils.py +98 -49
- mindspore/dataset/text/validators.py +25 -0
- mindspore/dataset/transforms/__init__.py +4 -2
- mindspore/dataset/transforms/c_transforms.py +11 -13
- mindspore/dataset/transforms/py_transforms.py +2 -2
- mindspore/dataset/transforms/py_transforms_util.py +10 -0
- mindspore/dataset/transforms/transforms.py +13 -15
- mindspore/dataset/transforms/validators.py +7 -7
- mindspore/dataset/utils/__init__.py +2 -1
- mindspore/dataset/utils/browse_dataset.py +13 -13
- mindspore/dataset/utils/line_reader.py +121 -0
- mindspore/dataset/vision/__init__.py +8 -7
- mindspore/dataset/vision/c_transforms.py +125 -126
- mindspore/dataset/vision/py_transforms.py +37 -37
- mindspore/dataset/vision/py_transforms_util.py +23 -20
- mindspore/dataset/vision/transforms.py +316 -315
- mindspore/dataset/vision/utils.py +313 -17
- mindspore/dataset/vision/validators.py +6 -6
- mindspore/default_config.py +0 -1
- mindspore/dpcmi.dll +0 -0
- mindspore/{compression → experimental}/__init__.py +6 -5
- mindspore/experimental/map_parameter.py +275 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/callback/callback.h +9 -13
- mindspore/include/api/callback/ckpt_saver.h +2 -2
- mindspore/include/api/callback/loss_monitor.h +2 -2
- mindspore/include/api/callback/lr_scheduler.h +5 -5
- mindspore/include/api/callback/time_monitor.h +2 -2
- mindspore/include/api/callback/train_accuracy.h +4 -6
- mindspore/include/api/cfg.h +19 -6
- mindspore/include/api/context.h +70 -9
- mindspore/include/api/delegate.h +8 -1
- mindspore/include/api/dual_abi_helper.h +8 -24
- mindspore/include/api/metrics/accuracy.h +2 -2
- mindspore/include/api/metrics/metrics.h +4 -3
- mindspore/include/api/model.h +9 -4
- mindspore/include/api/model_group.h +68 -0
- mindspore/include/api/model_parallel_runner.h +17 -17
- mindspore/include/api/net.h +12 -11
- mindspore/include/api/serialization.h +20 -4
- mindspore/include/api/status.h +7 -1
- mindspore/include/api/types.h +25 -21
- mindspore/include/api/visible.h +4 -0
- mindspore/include/c_api/model_c.h +5 -0
- mindspore/include/c_api/status_c.h +1 -1
- mindspore/include/dataset/config.h +1 -1
- mindspore/include/dataset/constants.h +14 -0
- mindspore/include/dataset/text.h +59 -0
- mindspore/include/dataset/vision.h +56 -117
- mindspore/include/dataset/vision_lite.h +102 -0
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +28 -28
- mindspore/mindrecord/common/exceptions.py +2 -4
- mindspore/mindrecord/filereader.py +19 -1
- mindspore/mindrecord/filewriter.py +250 -88
- mindspore/mindrecord/mindpage.py +13 -13
- mindspore/mindrecord/shardheader.py +15 -15
- mindspore/mindrecord/shardreader.py +9 -0
- mindspore/mindrecord/shardwriter.py +29 -29
- mindspore/mindrecord/tools/cifar100_to_mr.py +9 -9
- mindspore/mindrecord/tools/cifar10_to_mr.py +9 -9
- mindspore/mindrecord/tools/csv_to_mr.py +4 -4
- mindspore/mindrecord/tools/imagenet_to_mr.py +70 -65
- mindspore/mindrecord/tools/mnist_to_mr.py +41 -41
- mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
- mindspore/{libmindspore_backend.dll → mindspore_backend.dll} +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_shared_lib.dll +0 -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 +1 -5
- mindspore/nn/cell.py +297 -234
- mindspore/nn/dynamic_lr.py +1 -1
- mindspore/nn/grad/cell_grad.py +17 -42
- mindspore/nn/layer/__init__.py +7 -4
- mindspore/nn/layer/activation.py +131 -88
- mindspore/nn/layer/basic.py +313 -613
- mindspore/nn/layer/channel_shuffle.py +103 -0
- mindspore/nn/layer/combined.py +1 -1
- mindspore/nn/layer/container.py +52 -6
- mindspore/nn/layer/conv.py +112 -43
- mindspore/nn/layer/dense.py +10 -9
- mindspore/nn/layer/embedding.py +36 -34
- mindspore/nn/layer/image.py +123 -27
- mindspore/nn/layer/math.py +108 -107
- mindspore/nn/layer/normalization.py +212 -366
- mindspore/nn/layer/padding.py +370 -42
- mindspore/nn/layer/pooling.py +1443 -219
- mindspore/nn/layer/rnn_cells.py +11 -16
- mindspore/nn/layer/rnns.py +38 -39
- mindspore/nn/layer/thor_layer.py +24 -25
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +701 -0
- mindspore/nn/learning_rate_schedule.py +8 -8
- mindspore/nn/loss/__init__.py +9 -6
- mindspore/nn/loss/loss.py +678 -142
- mindspore/nn/metrics.py +53 -0
- mindspore/nn/optim/_dist_optimizer_registry.py +2 -2
- mindspore/nn/optim/ada_grad.py +8 -8
- mindspore/nn/optim/adadelta.py +2 -3
- mindspore/nn/optim/adafactor.py +18 -14
- mindspore/nn/optim/adam.py +429 -87
- mindspore/nn/optim/adamax.py +5 -6
- mindspore/nn/optim/adasum.py +10 -8
- mindspore/nn/optim/asgd.py +7 -7
- mindspore/nn/optim/ftrl.py +81 -11
- mindspore/nn/optim/lamb.py +7 -8
- mindspore/nn/optim/lars.py +4 -4
- mindspore/nn/optim/lazyadam.py +82 -7
- mindspore/nn/optim/momentum.py +8 -7
- mindspore/nn/optim/optimizer.py +19 -10
- mindspore/nn/optim/proximal_ada_grad.py +6 -5
- mindspore/nn/optim/rmsprop.py +3 -3
- mindspore/nn/optim/rprop.py +20 -16
- mindspore/nn/optim/sgd.py +21 -15
- mindspore/nn/optim/thor.py +23 -21
- mindspore/nn/probability/__init__.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +7 -6
- mindspore/nn/probability/bijector/invert.py +4 -2
- mindspore/nn/probability/bijector/softplus.py +2 -2
- mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
- mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
- mindspore/nn/probability/distribution/__init__.py +6 -0
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -2
- mindspore/nn/probability/distribution/_utils/utils.py +11 -17
- mindspore/nn/probability/distribution/bernoulli.py +6 -6
- mindspore/nn/probability/distribution/beta.py +1 -1
- mindspore/nn/probability/distribution/categorical.py +9 -9
- mindspore/nn/probability/distribution/cauchy.py +8 -8
- mindspore/nn/probability/distribution/distribution.py +12 -6
- mindspore/nn/probability/distribution/exponential.py +5 -5
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +6 -5
- mindspore/nn/probability/distribution/gumbel.py +5 -5
- mindspore/nn/probability/distribution/half_normal.py +133 -0
- mindspore/nn/probability/distribution/laplace.py +128 -0
- mindspore/nn/probability/distribution/log_normal.py +0 -1
- mindspore/nn/probability/distribution/logistic.py +4 -5
- mindspore/nn/probability/distribution/normal.py +11 -15
- mindspore/nn/probability/distribution/poisson.py +6 -2
- mindspore/nn/probability/distribution/student_t.py +150 -0
- mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
- mindspore/nn/probability/distribution/uniform.py +5 -5
- mindspore/nn/reinforcement/_tensors_queue.py +3 -3
- mindspore/nn/reinforcement/tensor_array.py +2 -2
- mindspore/nn/sparse/sparse.py +8 -1
- mindspore/nn/wrap/cell_wrapper.py +55 -27
- mindspore/nn/wrap/grad_reducer.py +20 -11
- mindspore/nn/wrap/loss_scale.py +47 -30
- mindspore/numpy/array_creations.py +33 -22
- mindspore/numpy/array_ops.py +46 -42
- mindspore/numpy/logic_ops.py +6 -27
- mindspore/numpy/math_ops.py +26 -19
- mindspore/numpy/utils.py +1 -8
- mindspore/numpy/utils_const.py +112 -62
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +6 -3
- mindspore/ops/_constants.py +0 -6
- mindspore/ops/_grad/__init__.py +2 -1
- mindspore/ops/_grad/grad_array_ops.py +209 -152
- mindspore/ops/_grad/grad_base.py +55 -17
- mindspore/ops/_grad/grad_clip_ops.py +11 -3
- mindspore/ops/_grad/grad_comm_ops.py +58 -47
- mindspore/ops/_grad/grad_implementations.py +21 -61
- mindspore/ops/_grad/grad_inner_ops.py +48 -6
- mindspore/ops/_grad/grad_math_ops.py +306 -161
- mindspore/ops/_grad/grad_nn_ops.py +192 -181
- mindspore/ops/_grad/grad_other_ops.py +1 -1
- mindspore/ops/_grad/grad_quant_ops.py +5 -5
- mindspore/ops/_grad/grad_sequence_ops.py +296 -0
- mindspore/ops/_grad/grad_sparse.py +15 -9
- mindspore/ops/_grad_experimental/__init__.py +1 -0
- mindspore/ops/_grad_experimental/grad_array_ops.py +441 -55
- mindspore/ops/_grad_experimental/grad_image_ops.py +25 -7
- mindspore/ops/_grad_experimental/grad_inner_ops.py +3 -44
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +16 -21
- mindspore/ops/_grad_experimental/grad_math_ops.py +979 -49
- mindspore/ops/_grad_experimental/grad_nn_ops.py +78 -8
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +197 -13
- mindspore/ops/_op_impl/__init__.py +3 -3
- mindspore/ops/_op_impl/_custom_op/__init__.py +0 -1
- mindspore/ops/_op_impl/_custom_op/_basic.py +0 -1
- mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +4 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +5 -5
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
- mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/correction_mul.py +3 -3
- mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +4 -8
- mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_dds_grad_impl.py +0 -1
- mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -1
- mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +238 -3
- mindspore/ops/_op_impl/aicpu/abs.py +36 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d.py +34 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d.py +39 -0
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_3d_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d.py +42 -0
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_3d_grad.py +152 -0
- mindspore/ops/_op_impl/aicpu/add.py +43 -0
- mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
- mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
- mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/arg_max.py +75 -0
- mindspore/ops/_op_impl/aicpu/arg_min.py +75 -0
- mindspore/ops/_op_impl/aicpu/argmin_with_value.py +43 -0
- mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -0
- mindspore/ops/_op_impl/aicpu/batch_norm_grad_grad.py +49 -0
- mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
- mindspore/ops/_op_impl/aicpu/bessel_i0.py +31 -0
- mindspore/ops/_op_impl/aicpu/bias_add.py +44 -0
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +43 -0
- mindspore/ops/_op_impl/aicpu/bincount.py +33 -0
- mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/cauchy.py} +17 -10
- mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
- mindspore/ops/_op_impl/aicpu/cholesky.py +1 -1
- mindspore/ops/_op_impl/{cpu/bias_add.py → aicpu/choleskygrad.py} +9 -7
- mindspore/ops/_op_impl/aicpu/combined_non_max_suppression.py +42 -0
- mindspore/ops/_op_impl/aicpu/concat_offset.py +42 -0
- mindspore/ops/_op_impl/aicpu/concat_offset_v1.py +31 -0
- mindspore/ops/_op_impl/aicpu/conj.py +11 -0
- mindspore/ops/_op_impl/aicpu/crop_and_resize_grad_image.py +38 -0
- mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +36 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +2 -2
- mindspore/ops/_op_impl/aicpu/dense_to_sparse_set_operation.py +48 -0
- mindspore/ops/_op_impl/aicpu/diag.py +36 -0
- mindspore/ops/_op_impl/aicpu/diag_part.py +36 -0
- mindspore/ops/_op_impl/aicpu/diagonal.py +35 -0
- mindspore/ops/_op_impl/{cpu/bias_add_grad.py → aicpu/digamma.py} +9 -7
- mindspore/ops/_op_impl/aicpu/eig.py +35 -0
- mindspore/ops/_op_impl/aicpu/fft_with_size.py +41 -0
- mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
- mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
- mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
- mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
- mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
- mindspore/ops/_op_impl/aicpu/glu.py +33 -0
- mindspore/ops/_op_impl/aicpu/glu_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/greater.py +41 -0
- mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
- mindspore/ops/_op_impl/{tbe/scatter_add_ds.py → aicpu/inplace_index_add.py} +17 -21
- mindspore/ops/_op_impl/aicpu/instance_norm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/instance_norm_v2_grad.py +44 -0
- mindspore/ops/_op_impl/aicpu/layer_norm_grad_grad.py +47 -0
- mindspore/ops/_op_impl/aicpu/less.py +41 -0
- mindspore/ops/_op_impl/aicpu/less_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/lgamma.py +32 -0
- mindspore/ops/_op_impl/aicpu/log_normal_reverse.py +33 -0
- mindspore/ops/_op_impl/aicpu/logit.py +33 -0
- mindspore/ops/_op_impl/aicpu/logit_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/masked_fill.py +42 -0
- mindspore/ops/_op_impl/aicpu/masked_scatter.py +39 -0
- mindspore/ops/_op_impl/aicpu/matmul.py +39 -0
- mindspore/ops/_op_impl/aicpu/matrix_logarithm.py +31 -0
- mindspore/ops/_op_impl/aicpu/matrix_power.py +32 -0
- mindspore/ops/_op_impl/aicpu/matrix_solve_ls.py +36 -0
- mindspore/ops/_op_impl/aicpu/matrix_triangular_solve.py +36 -0
- mindspore/ops/_op_impl/aicpu/mirror_pad.py +2 -0
- mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
- mindspore/ops/_op_impl/aicpu/mul.py +3 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
- mindspore/ops/_op_impl/aicpu/multinomial_with_replacement.py +35 -0
- mindspore/ops/_op_impl/aicpu/nan_to_num.py +34 -0
- mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
- mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
- mindspore/ops/_op_impl/aicpu/polar.py +32 -0
- mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
- mindspore/ops/_op_impl/aicpu/qr.py +36 -0
- mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
- mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_tensor.py +74 -0
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +3 -0
- mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/range.py +36 -0
- mindspore/ops/_op_impl/aicpu/reciprocal.py +34 -0
- mindspore/ops/_op_impl/aicpu/reciprocal_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/reduce_sum.py +57 -0
- mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
- mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
- mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
- mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
- mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
- mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
- mindspore/ops/_op_impl/aicpu/search_sorted.py +12 -6
- mindspore/ops/_op_impl/aicpu/self_adjoint_eig.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
- mindspore/ops/_op_impl/aicpu/slice_grad.py +76 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/sort.py +39 -0
- mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
- mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
- mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows.py +63 -0
- mindspore/ops/_op_impl/aicpu/sparse_fill_empty_rows_grad.py +45 -0
- mindspore/ops/_op_impl/aicpu/sparse_matrix_mat_mul.py +56 -0
- mindspore/ops/_op_impl/{tbe/slice_ds.py → aicpu/sparse_segment_sum.py} +16 -24
- mindspore/ops/_op_impl/aicpu/sparse_segment_sum_with_num_segments.py +68 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice.py +63 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +61 -0
- mindspore/ops/_op_impl/aicpu/squared_difference.py +2 -0
- mindspore/ops/_op_impl/aicpu/strided_slice_v2.py +93 -0
- mindspore/ops/_op_impl/aicpu/strided_slice_v2_grad.py +66 -0
- mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
- mindspore/ops/_op_impl/{tbe/gather_v2.py → aicpu/tile.py} +24 -24
- mindspore/ops/_op_impl/aicpu/tridiagonal_solve.py +35 -0
- mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/triu_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
- mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
- mindspore/ops/_op_impl/cpu/__init__.py +1 -2
- mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
- mindspore/ops/_op_impl/cpu/maximum_grad.py +2 -0
- mindspore/{compression/common/__init__.py → ops/_op_impl/cpu/pyexecute.py} +13 -8
- mindspore/ops/_op_impl/cpu/reduce_sum.py +8 -0
- mindspore/ops/_op_impl/cpu/sparse_slice.py +62 -0
- mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +60 -0
- mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
- mindspore/ops/_op_impl/tbe/__init__.py +27 -608
- mindspore/ops/_op_impl/tbe/addcdiv_ds.py +42 -0
- mindspore/ops/_op_impl/tbe/addcmul_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -1
- mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +41 -0
- mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +1 -0
- mindspore/ops/_op_impl/tbe/bias_add_grad.py +2 -0
- mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
- mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +40 -0
- mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
- mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
- mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
- mindspore/ops/_op_impl/tbe/cast.py +0 -2
- mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
- mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -2
- mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -2
- mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/deformable_offsets.py +1 -0
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +1 -1
- mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
- mindspore/ops/_op_impl/tbe/greater.py +2 -0
- mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -1
- mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -6
- mindspore/ops/_op_impl/tbe/{greater_ds.py → reduce_all_ds.py} +13 -16
- mindspore/ops/_op_impl/tbe/reduce_any_ds.py +39 -0
- mindspore/ops/_op_impl/tbe/roi_align_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +44 -0
- mindspore/ops/_op_impl/tbe/scatter_add.py +2 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +2 -2
- mindspore/ops/_op_impl/tbe/slice.py +26 -15
- mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +1 -0
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +1 -1
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +3 -2
- mindspore/ops/_register_for_op.py +11 -0
- mindspore/ops/_utils/__init__.py +1 -1
- mindspore/ops/_utils/utils.py +20 -41
- mindspore/ops/_vmap/__init__.py +2 -2
- mindspore/ops/_vmap/vmap_array_ops.py +170 -78
- mindspore/ops/_vmap/vmap_base.py +24 -10
- mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
- mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +41 -9
- mindspore/ops/_vmap/vmap_image_ops.py +52 -0
- mindspore/ops/_vmap/vmap_math_ops.py +77 -6
- mindspore/ops/_vmap/vmap_nn_ops.py +78 -29
- mindspore/ops/_vmap/vmap_other_ops.py +3 -1
- mindspore/ops/_vmap/vmap_random_ops.py +55 -3
- mindspore/ops/_vmap/vmap_sparse_ops.py +1 -0
- mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Argmax_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/Argmin_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/Assign_bprop.mindir +16 -16
- mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
- mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +28 -0
- mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +306 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +12 -8
- mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
- mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
- mindspore/ops/bprop_mindir/DType_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +12 -13
- mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
- mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -24
- mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -14
- mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicShape_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Equal_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Flatten_bprop.mindir +54 -0
- mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +18 -15
- mindspore/ops/bprop_mindir/GatherD_bprop.mindir +26 -0
- mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +57 -0
- mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/Greater_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/IOU_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/IsInf_bprop.mindir +13 -10
- mindspore/ops/bprop_mindir/IsNan_bprop.mindir +14 -11
- mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
- mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
- mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
- mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Less_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +22 -19
- mindspore/ops/bprop_mindir/Load_bprop.mindir +12 -13
- mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +17 -18
- mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
- mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
- mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
- mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NonZero_bprop.mindir +14 -0
- mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/OneHot_bprop.mindir +25 -23
- mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +13 -13
- mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
- mindspore/ops/bprop_mindir/Range_bprop.mindir +21 -19
- mindspore/ops/bprop_mindir/Rank_bprop.mindir +11 -11
- mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +18 -17
- mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +18 -17
- mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +19 -23
- mindspore/ops/bprop_mindir/Reshape_bprop.mindir +60 -0
- mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +89 -0
- mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +52 -0
- mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/Round_bprop.mindir +14 -13
- mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +24 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/Select_bprop.mindir +30 -34
- mindspore/ops/bprop_mindir/Shape_bprop.mindir +12 -12
- mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Sign_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/Slice_bprop.mindir +26 -0
- mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
- mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +28 -0
- mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Split_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +54 -0
- mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +95 -0
- mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +98 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +28 -32
- mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +14 -0
- mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +18 -15
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +11 -13
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +22 -0
- mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
- mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
- mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +13 -12
- mindspore/ops/bprop_mindir/__init__.py +1 -4
- mindspore/ops/bprop_mindir/generate_mindir.py +32 -20
- mindspore/ops/composite/__init__.py +12 -13
- mindspore/ops/composite/base.py +261 -254
- mindspore/ops/composite/env_ops.py +41 -0
- mindspore/ops/composite/math_ops.py +197 -156
- mindspore/ops/composite/multitype_ops/_compile_utils.py +428 -176
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +188 -87
- mindspore/ops/composite/multitype_ops/add_impl.py +23 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +3 -3
- mindspore/ops/composite/multitype_ops/equal_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +52 -5
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/in_impl.py +15 -3
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +33 -2
- mindspore/ops/composite/multitype_ops/less_impl.py +33 -0
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -2
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +21 -7
- mindspore/ops/composite/multitype_ops/not_in_impl.py +15 -3
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
- mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +62 -70
- mindspore/ops/composite/multitype_ops/sub_impl.py +3 -3
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +41 -4
- mindspore/ops/function/__init__.py +323 -8
- mindspore/ops/function/array_func.py +3511 -780
- mindspore/ops/function/clip_func.py +329 -0
- mindspore/ops/function/debug_func.py +6 -6
- mindspore/ops/function/grad/__init__.py +5 -1
- mindspore/ops/function/grad/grad_func.py +736 -65
- mindspore/ops/function/image_func.py +270 -0
- mindspore/ops/function/linalg_func.py +268 -8
- mindspore/ops/function/math_func.py +8032 -3164
- mindspore/ops/function/nn_func.py +5619 -1855
- mindspore/ops/function/other_func.py +115 -0
- mindspore/ops/function/parameter_func.py +11 -10
- mindspore/ops/function/random_func.py +939 -77
- mindspore/ops/function/sparse_func.py +249 -84
- mindspore/ops/function/sparse_unary_func.py +2303 -0
- mindspore/ops/function/spectral_func.py +146 -0
- mindspore/ops/function/vmap_func.py +114 -0
- mindspore/ops/functional.py +182 -254
- mindspore/ops/op_info_register.py +79 -34
- mindspore/ops/operations/__init__.py +210 -118
- mindspore/ops/operations/_csr_ops.py +7 -7
- mindspore/ops/operations/_embedding_cache_ops.py +25 -15
- mindspore/ops/operations/_grad_ops.py +447 -322
- mindspore/ops/operations/_inner_ops.py +547 -176
- mindspore/ops/operations/_map_tensor_ops.py +112 -0
- mindspore/ops/operations/_ms_kernel.py +29 -27
- mindspore/ops/operations/_ocr_ops.py +11 -11
- mindspore/ops/operations/_opaque_predicate_registry.py +41 -0
- mindspore/ops/operations/_quant_ops.py +186 -101
- mindspore/ops/operations/_rl_inner_ops.py +122 -61
- mindspore/ops/operations/_scalar_ops.py +466 -0
- mindspore/ops/operations/_sequence_ops.py +1047 -0
- mindspore/ops/operations/_tensor_array.py +10 -11
- mindspore/ops/operations/_thor_ops.py +4 -4
- mindspore/ops/operations/array_ops.py +1428 -1226
- mindspore/ops/operations/comm_ops.py +180 -117
- mindspore/ops/operations/control_ops.py +4 -2
- mindspore/ops/operations/custom_ops.py +185 -98
- mindspore/ops/operations/debug_ops.py +92 -54
- mindspore/ops/operations/image_ops.py +406 -211
- mindspore/ops/operations/inner_ops.py +42 -53
- mindspore/ops/operations/linalg_ops.py +32 -29
- mindspore/ops/operations/math_ops.py +2076 -897
- mindspore/ops/operations/nn_ops.py +1282 -1252
- mindspore/ops/operations/other_ops.py +124 -278
- mindspore/ops/operations/random_ops.py +345 -178
- mindspore/ops/operations/rl_ops.py +8 -9
- mindspore/ops/operations/sparse_ops.py +502 -157
- mindspore/ops/operations/spectral_ops.py +107 -0
- mindspore/ops/primitive.py +192 -15
- mindspore/ops/vm_impl_registry.py +23 -2
- mindspore/parallel/__init__.py +6 -1
- mindspore/parallel/_auto_parallel_context.py +199 -92
- mindspore/parallel/_cell_wrapper.py +4 -2
- mindspore/parallel/_cost_model_context.py +3 -0
- mindspore/parallel/_dp_allreduce_fusion.py +2 -1
- mindspore/parallel/_offload_context.py +185 -0
- mindspore/parallel/_parallel_serialization.py +167 -28
- mindspore/parallel/_ps_context.py +9 -5
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +9 -1
- mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
- mindspore/{nn/transformer → parallel/_transformer}/layers.py +59 -37
- mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
- mindspore/{nn/transformer → parallel/_transformer}/moe.py +160 -35
- mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
- mindspore/{nn/transformer → parallel/_transformer}/transformer.py +235 -196
- mindspore/parallel/_utils.py +47 -7
- mindspore/parallel/algo_parameter_config.py +5 -1
- mindspore/parallel/checkpoint_transform.py +329 -0
- mindspore/parallel/shard.py +229 -0
- mindspore/perf_msvcbuildinsights.dll +0 -0
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +2 -1
- mindspore/profiler/common/util.py +4 -3
- mindspore/profiler/common/validator/validate_path.py +2 -2
- mindspore/profiler/envprofiling.py +249 -0
- mindspore/profiler/parser/aicpu_data_parser.py +38 -39
- mindspore/profiler/parser/ascend_timeline_generator.py +497 -0
- mindspore/profiler/parser/base_timeline_generator.py +471 -0
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +684 -0
- mindspore/profiler/parser/framework_parser.py +42 -16
- mindspore/profiler/parser/hccl_parser.py +158 -158
- mindspore/profiler/parser/hwts_log_parser.py +7 -6
- mindspore/profiler/parser/integrator.py +18 -1579
- mindspore/profiler/parser/minddata_analyzer.py +8 -8
- mindspore/profiler/parser/msadvisor_analyzer.py +14 -27
- mindspore/profiler/parser/msadvisor_parser.py +2 -4
- mindspore/profiler/parser/optime_parser.py +17 -18
- mindspore/profiler/parser/profiler_info.py +108 -0
- mindspore/profiler/parser/step_trace_parser.py +1 -1
- mindspore/profiler/profiling.py +396 -194
- mindspore/rewrite/__init__.py +6 -2
- mindspore/rewrite/api/node.py +51 -110
- mindspore/rewrite/api/node_type.py +10 -6
- mindspore/rewrite/api/pattern_engine.py +51 -7
- mindspore/rewrite/api/scoped_value.py +64 -53
- mindspore/rewrite/api/symbol_tree.py +108 -61
- mindspore/rewrite/api/tree_node_helper.py +2 -3
- mindspore/{compression/quant/__init__.py → rewrite/ast_creator_register.py} +20 -11
- mindspore/rewrite/ast_helpers/__init__.py +6 -3
- mindspore/rewrite/ast_helpers/ast_creator.py +115 -0
- mindspore/rewrite/ast_helpers/ast_finder.py +99 -1
- mindspore/rewrite/ast_helpers/ast_modifier.py +17 -4
- mindspore/rewrite/ast_helpers/ast_replacer.py +1 -1
- mindspore/rewrite/ast_transformers/__init__.py +0 -1
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +46 -5
- mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +6 -3
- mindspore/rewrite/common/__init__.py +2 -0
- mindspore/rewrite/common/event.py +1 -1
- mindspore/rewrite/common/observable.py +1 -1
- mindspore/rewrite/common/observer.py +1 -1
- mindspore/rewrite/common/rewrite_elog.py +35 -0
- mindspore/rewrite/namer.py +2 -2
- mindspore/rewrite/namespace.py +14 -4
- mindspore/rewrite/node.py +161 -13
- mindspore/rewrite/parser.py +0 -1
- mindspore/rewrite/parser_register.py +0 -1
- mindspore/rewrite/parsers/arguments_parser.py +3 -2
- mindspore/rewrite/parsers/assign_parser.py +267 -67
- mindspore/rewrite/parsers/attribute_parser.py +56 -0
- mindspore/rewrite/parsers/class_def_parser.py +191 -108
- mindspore/rewrite/parsers/constant_parser.py +101 -0
- mindspore/rewrite/parsers/container_parser.py +88 -0
- mindspore/rewrite/parsers/for_parser.py +28 -15
- mindspore/rewrite/parsers/function_def_parser.py +21 -5
- mindspore/rewrite/parsers/if_parser.py +11 -28
- mindspore/rewrite/parsers/module_parser.py +9 -6
- mindspore/rewrite/parsers/return_parser.py +3 -2
- mindspore/rewrite/sparsify/__init__.py +0 -0
- mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
- mindspore/rewrite/sparsify/sparsify.py +109 -0
- mindspore/rewrite/sparsify/utils.py +173 -0
- mindspore/rewrite/symbol_tree.py +322 -109
- mindspore/rewrite/symbol_tree_builder.py +45 -8
- mindspore/rewrite/symbol_tree_dumper.py +0 -1
- mindspore/rewrite/topological_manager.py +1 -2
- mindspore/run_check/_check_version.py +209 -112
- mindspore/run_check/run_check.py +2 -1
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +6 -4
- mindspore/train/_utils.py +28 -5
- mindspore/train/amp.py +321 -50
- mindspore/train/callback/__init__.py +3 -1
- mindspore/train/callback/_backup_and_restore.py +120 -0
- mindspore/train/callback/_callback.py +8 -8
- mindspore/train/callback/_checkpoint.py +12 -9
- mindspore/train/callback/_early_stop.py +13 -7
- mindspore/train/callback/_history.py +8 -8
- mindspore/train/callback/_lambda_callback.py +6 -6
- mindspore/train/callback/_landscape.py +36 -38
- mindspore/train/callback/_loss_monitor.py +12 -6
- mindspore/train/callback/_lr_scheduler_callback.py +2 -4
- mindspore/train/callback/_on_request_exit.py +212 -0
- mindspore/train/callback/_reduce_lr_on_plateau.py +13 -7
- mindspore/train/callback/_summary_collector.py +27 -19
- mindspore/train/callback/_time_monitor.py +13 -7
- mindspore/train/checkpoint_pb2.py +68 -8
- mindspore/train/data_sink.py +122 -33
- mindspore/train/dataset_helper.py +28 -87
- mindspore/train/loss_scale_manager.py +4 -7
- mindspore/{nn → train}/metrics/__init__.py +20 -20
- mindspore/{nn → train}/metrics/accuracy.py +12 -10
- mindspore/{nn → train}/metrics/auc.py +4 -4
- mindspore/{nn → train}/metrics/bleu_score.py +4 -4
- mindspore/{nn → train}/metrics/confusion_matrix.py +10 -8
- mindspore/{nn → train}/metrics/cosine_similarity.py +4 -4
- mindspore/{nn → train}/metrics/dice.py +6 -5
- mindspore/{nn → train}/metrics/error.py +7 -5
- mindspore/{nn → train}/metrics/fbeta.py +9 -7
- mindspore/{nn → train}/metrics/hausdorff_distance.py +8 -6
- mindspore/{nn → train}/metrics/loss.py +4 -3
- mindspore/{nn → train}/metrics/mean_surface_distance.py +6 -5
- mindspore/{nn → train}/metrics/metric.py +6 -5
- mindspore/{nn → train}/metrics/occlusion_sensitivity.py +4 -3
- mindspore/{nn → train}/metrics/perplexity.py +5 -4
- mindspore/{nn → train}/metrics/precision.py +5 -4
- mindspore/{nn → train}/metrics/recall.py +5 -4
- mindspore/{nn → train}/metrics/roc.py +7 -6
- mindspore/{nn → train}/metrics/root_mean_square_surface_distance.py +6 -5
- mindspore/{nn → train}/metrics/topk.py +7 -5
- mindspore/train/mind_ir_pb2.py +339 -32
- mindspore/train/model.py +113 -84
- mindspore/train/serialization.py +547 -167
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +43 -12
- mindspore/train/train_thor/convert_utils.py +7 -1
- mindspore/train/train_thor/dataset_helper.py +3 -3
- mindspore/train/train_thor/model_thor.py +0 -4
- mindspore/turbojpeg.dll +0 -0
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +4 -3
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +901 -660
- mindspore/compression/common/constant.py +0 -124
- mindspore/compression/export/__init__.py +0 -19
- mindspore/compression/export/quant_export.py +0 -514
- mindspore/compression/quant/qat.py +0 -636
- mindspore/compression/quant/quant_utils.py +0 -462
- mindspore/compression/quant/quantizer.py +0 -68
- mindspore/libatomic-1.dll +0 -0
- mindspore/libgcc_s_seh-1.dll +0 -0
- mindspore/libgfortran-4.dll +0 -0
- mindspore/libgomp-1.dll +0 -0
- mindspore/libjpeg-62.dll +0 -0
- mindspore/libmindspore.dll +0 -0
- mindspore/libmindspore_common.dll +0 -0
- mindspore/libmindspore_core.dll +0 -0
- mindspore/libmindspore_glog.dll +0 -0
- mindspore/libnnacl.dll +0 -0
- mindspore/libopencv_core452.dll +0 -0
- mindspore/libopencv_imgcodecs452.dll +0 -0
- mindspore/libopencv_imgproc452.dll +0 -0
- mindspore/libquadmath-0.dll +0 -0
- mindspore/libsqlite3.dll +0 -0
- mindspore/libssp-0.dll +0 -0
- mindspore/libstdc++-6.dll +0 -0
- mindspore/libtinyxml2.dll +0 -0
- mindspore/libturbojpeg.dll +0 -0
- mindspore/libwinpthread-1.dll +0 -0
- mindspore/nn/layer/quant.py +0 -1868
- mindspore/nn/layer/rnn_utils.py +0 -90
- mindspore/nn/probability/dpn/__init__.py +0 -22
- mindspore/nn/probability/dpn/vae/__init__.py +0 -25
- mindspore/nn/probability/dpn/vae/cvae.py +0 -138
- mindspore/nn/probability/dpn/vae/vae.py +0 -122
- mindspore/nn/probability/infer/__init__.py +0 -22
- mindspore/nn/probability/infer/variational/elbo.py +0 -70
- mindspore/nn/probability/infer/variational/svi.py +0 -84
- mindspore/nn/probability/toolbox/__init__.py +0 -22
- mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
- mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -363
- mindspore/nn/probability/transforms/__init__.py +0 -22
- mindspore/nn/probability/transforms/transform_bnn.py +0 -262
- mindspore/nn/probability/zhusuan/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
- mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
- mindspore/ops/_op_impl/tbe/bias_add_grad_ds.py +0 -52
- mindspore/ops/_op_impl/tbe/scatter_nd_add_ds.py +0 -43
- mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/Identity_bprop.mindir +0 -9
- mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -17
- mindspore/ops/bprop_mindir/stop_gradient_bprop.mindir +0 -12
- mindspore/ops/composite/array_ops.py +0 -210
- mindspore/ops/composite/clip_ops.py +0 -238
- mindspore/ops/composite/random_ops.py +0 -426
- mindspore/ops/composite/vmap_ops.py +0 -38
- mindspore/ops/operations/sponge_ops.py +0 -3531
- mindspore/ops/operations/sponge_update_ops.py +0 -2546
- mindspore/parallel/nn/__init__.py +0 -42
- mindspore/parallel/nn/loss.py +0 -22
- mindspore/parallel/nn/moe.py +0 -21
- mindspore/parallel/nn/op_parallel_config.py +0 -22
- mindspore/parallel/nn/transformer.py +0 -31
- mindspore/run_check/_check_deps_version.py +0 -84
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-1.10.0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
|
@@ -15,13 +15,15 @@
|
|
|
15
15
|
"""Context of auto parallel"""
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
import os
|
|
18
|
+
import copy
|
|
18
19
|
import threading
|
|
19
20
|
from mindspore import context
|
|
20
21
|
import mindspore.log as logger
|
|
21
22
|
from mindspore.parallel._dp_allreduce_fusion import _set_fusion_strategy_by_idx, _set_fusion_strategy_by_size
|
|
22
|
-
from mindspore.parallel._ps_context import _is_role_pserver
|
|
23
|
+
from mindspore.parallel._ps_context import _is_role_pserver
|
|
23
24
|
from mindspore._c_expression import AutoParallelContext
|
|
24
|
-
from mindspore._checkparam import args_type_check
|
|
25
|
+
from mindspore._checkparam import args_type_check
|
|
26
|
+
from mindspore import _checkparam as Validator
|
|
25
27
|
|
|
26
28
|
_MAX_GROUP_NAME_LEN = 127
|
|
27
29
|
_DEFAULT_HCCL_FUSION_GROUP_NAME = "hccl_world_groupsum1"
|
|
@@ -40,6 +42,18 @@ class _ParallelFusionConfig:
|
|
|
40
42
|
AUTO = "auto"
|
|
41
43
|
INDEX = "index"
|
|
42
44
|
SIZE = "size"
|
|
45
|
+
OPENSTATE = "openstate"
|
|
46
|
+
CONFIG = {"openstate": True,
|
|
47
|
+
"allreduce": {"mode": "auto", "config": None},
|
|
48
|
+
"allgather": {"mode": "auto", "config": None},
|
|
49
|
+
"reducescatter": {"mode": "auto", "config": None}}
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def reset(cls):
|
|
53
|
+
cls.CONFIG = {"openstate": True,
|
|
54
|
+
"allreduce": {"mode": "auto", "config": None},
|
|
55
|
+
"allgather": {"mode": "auto", "config": None},
|
|
56
|
+
"reducescatter": {"mode": "auto", "config": None}}
|
|
43
57
|
|
|
44
58
|
|
|
45
59
|
class _ParallelOptimizerConfig:
|
|
@@ -117,6 +131,9 @@ class _AutoParallelContext:
|
|
|
117
131
|
KeyError: When key of comm_fusion is not 'allreduce'.
|
|
118
132
|
"""
|
|
119
133
|
self.check_context_handle()
|
|
134
|
+
config = copy.deepcopy(config)
|
|
135
|
+
if _ParallelFusionConfig.OPENSTATE not in config.keys():
|
|
136
|
+
config[_ParallelFusionConfig.OPENSTATE] = True
|
|
120
137
|
for key in list(config.keys()):
|
|
121
138
|
if key == _ParallelFusionConfig.ALLREDUCE:
|
|
122
139
|
self._set_allreduce_comm_fusion(config[key])
|
|
@@ -124,91 +141,18 @@ class _AutoParallelContext:
|
|
|
124
141
|
self._set_allgather_comm_fusion(config[key], key)
|
|
125
142
|
elif key == _ParallelFusionConfig.REDUCESCATTER:
|
|
126
143
|
self._set_allgather_comm_fusion(config[key], key)
|
|
144
|
+
elif key == _ParallelFusionConfig.OPENSTATE:
|
|
145
|
+
self._set_openstate_comm_fusion(config[key])
|
|
127
146
|
else:
|
|
128
|
-
raise KeyError("comm fusion type must be
|
|
147
|
+
raise KeyError("comm fusion type must be openstate,"
|
|
148
|
+
"allreduce, allgather or reducescatter, but got {}".format(key))
|
|
149
|
+
if key in _ParallelFusionConfig.CONFIG:
|
|
150
|
+
_ParallelFusionConfig.CONFIG[key] = config[key]
|
|
129
151
|
|
|
130
152
|
def get_comm_fusion(self):
|
|
131
153
|
"""Get comm fusion config."""
|
|
132
154
|
self.check_context_handle()
|
|
133
|
-
|
|
134
|
-
if mode in (_ParallelFusionConfig.AUTO, _ParallelFusionConfig.SIZE):
|
|
135
|
-
config = self.fusion_threshold_mb()
|
|
136
|
-
if mode == _ParallelFusionConfig.INDEX:
|
|
137
|
-
config = self.get_all_reduce_fusion_split_indices()
|
|
138
|
-
return {_ParallelFusionConfig.ALLREDUCE: {_ParallelFusionConfig.MODE: mode,
|
|
139
|
-
_ParallelFusionConfig.FUSION_CONFIG: config}}
|
|
140
|
-
|
|
141
|
-
def _set_allgather_comm_fusion(self, comm_fusion, comm_type="allgather"):
|
|
142
|
-
"""
|
|
143
|
-
Set allgather and reducescatter fusion method for auto parallel.
|
|
144
|
-
|
|
145
|
-
Args:
|
|
146
|
-
comm_fusion (dict): A dict contains the methods and values for setting the fusion method. Currently it
|
|
147
|
-
supports four fusion methods: `auto` and `size`.
|
|
148
|
-
comm_type (str): The name of the communication operator, `allgather` or `reducescatter`.
|
|
149
|
-
|
|
150
|
-
Raises:
|
|
151
|
-
KeyError: When key of comm_fusion is not 'mode' or 'config'.
|
|
152
|
-
KeyError: When `mode` is not 'auto', 'size'.
|
|
153
|
-
"""
|
|
154
|
-
self.check_context_handle()
|
|
155
|
-
if comm_type == "allgather" and not self.get_enable_all_gather_fusion():
|
|
156
|
-
return
|
|
157
|
-
if comm_type == "reducescatter" and not self.get_enable_reduce_scatter_fusion():
|
|
158
|
-
return
|
|
159
|
-
if not isinstance(comm_fusion, dict):
|
|
160
|
-
raise TypeError("For 'comm_fusion', {} config must be dict, but got the type : {}.".format(
|
|
161
|
-
comm_type, type(comm_fusion)))
|
|
162
|
-
if _ParallelFusionConfig.MODE not in comm_fusion:
|
|
163
|
-
raise KeyError("For 'comm_fusion', the key 'mode' should be contained.")
|
|
164
|
-
if _ParallelFusionConfig.FUSION_CONFIG not in comm_fusion:
|
|
165
|
-
raise KeyError("For 'comm_fusion', the key 'config' should be contained.")
|
|
166
|
-
check_mode = [_ParallelFusionConfig.AUTO, _ParallelFusionConfig.SIZE]
|
|
167
|
-
if comm_fusion[_ParallelFusionConfig.MODE] in check_mode:
|
|
168
|
-
self._context_handle.set_fusion_mode(comm_fusion[_ParallelFusionConfig.MODE])
|
|
169
|
-
else:
|
|
170
|
-
raise KeyError("fusion method mode must be auto or size, but got {}".format(
|
|
171
|
-
comm_fusion[_ParallelFusionConfig.MODE]))
|
|
172
|
-
|
|
173
|
-
fusion_threshold = 64
|
|
174
|
-
if comm_fusion[_ParallelFusionConfig.MODE] != _ParallelFusionConfig.AUTO:
|
|
175
|
-
fusion_threshold = comm_fusion[_ParallelFusionConfig.FUSION_CONFIG]
|
|
176
|
-
self.set_fusion_threshold_mb(fusion_threshold, comm_type)
|
|
177
|
-
|
|
178
|
-
def _set_allreduce_comm_fusion(self, comm_fusion):
|
|
179
|
-
"""
|
|
180
|
-
Set fusion method for auto parallel.
|
|
181
|
-
|
|
182
|
-
Args:
|
|
183
|
-
comm_fusion (dict): A dict contains the methods and values for setting the fusion method. Currently it
|
|
184
|
-
supports four fusion methods: `auto`, `size` and `index`.
|
|
185
|
-
|
|
186
|
-
Raises:
|
|
187
|
-
KeyError: When key of comm_fusion is not 'mode' or 'config'.
|
|
188
|
-
KeyError: When `mode` is not 'auto', 'size' or 'index'.
|
|
189
|
-
"""
|
|
190
|
-
self.check_context_handle()
|
|
191
|
-
if not self.get_enable_all_reduce_fusion():
|
|
192
|
-
return
|
|
193
|
-
if not isinstance(comm_fusion, dict):
|
|
194
|
-
raise TypeError("For 'comm_fusion', the 'allreduce' config must be dict, but got the type : {}.".format(
|
|
195
|
-
type(comm_fusion)))
|
|
196
|
-
if _ParallelFusionConfig.MODE not in comm_fusion:
|
|
197
|
-
raise KeyError("For 'comm_fusion', the key 'mode' should be contained.")
|
|
198
|
-
if _ParallelFusionConfig.FUSION_CONFIG not in comm_fusion:
|
|
199
|
-
raise KeyError("For 'comm_fusion', the key 'config' should be contained.")
|
|
200
|
-
check_mode = [_ParallelFusionConfig.AUTO, _ParallelFusionConfig.INDEX, _ParallelFusionConfig.SIZE]
|
|
201
|
-
if comm_fusion[_ParallelFusionConfig.MODE] in check_mode:
|
|
202
|
-
self._context_handle.set_fusion_mode(comm_fusion[_ParallelFusionConfig.MODE])
|
|
203
|
-
else:
|
|
204
|
-
raise KeyError("fusion method mode must be auto, index or size, but got {}".format(
|
|
205
|
-
comm_fusion[_ParallelFusionConfig.MODE]))
|
|
206
|
-
if comm_fusion[_ParallelFusionConfig.MODE] == _ParallelFusionConfig.AUTO:
|
|
207
|
-
self.set_fusion_threshold_mb(fusion_threshold=64)
|
|
208
|
-
if comm_fusion[_ParallelFusionConfig.MODE] == _ParallelFusionConfig.SIZE:
|
|
209
|
-
self.set_fusion_threshold_mb(comm_fusion[_ParallelFusionConfig.FUSION_CONFIG])
|
|
210
|
-
if comm_fusion[_ParallelFusionConfig.MODE] == _ParallelFusionConfig.INDEX:
|
|
211
|
-
self.set_all_reduce_fusion_split_indices(comm_fusion[_ParallelFusionConfig.FUSION_CONFIG])
|
|
155
|
+
return _ParallelFusionConfig.CONFIG
|
|
212
156
|
|
|
213
157
|
def set_fusion_threshold_mb(self, fusion_threshold=64, comm_type="allreduce"):
|
|
214
158
|
"""
|
|
@@ -373,8 +317,6 @@ class _AutoParallelContext:
|
|
|
373
317
|
def get_parallel_mode(self):
|
|
374
318
|
"""Get parallel mode."""
|
|
375
319
|
self.check_context_handle()
|
|
376
|
-
if _is_role_pserver() and not _enable_distributed_mindrt():
|
|
377
|
-
return context.ParallelMode.STAND_ALONE
|
|
378
320
|
return self._context_handle.get_parallel_mode()
|
|
379
321
|
|
|
380
322
|
def set_strategy_search_mode(self, search_mode):
|
|
@@ -429,13 +371,14 @@ class _AutoParallelContext:
|
|
|
429
371
|
Set the value of sharding strategy propagation in AUTO_PARALLEL mode. If True, the strategy-configured operators
|
|
430
372
|
will propagate the strategies to other operators with minimum redistribution cost; otherwise, the algorithm
|
|
431
373
|
will search the desired strategies. Default: False.
|
|
432
|
-
This attribute is replaced by context.
|
|
374
|
+
This attribute is replaced by context.set_auto_parallel_context(search_mode="sharding_propagation").
|
|
433
375
|
|
|
434
376
|
Args:
|
|
435
377
|
sharding_propagation (bool): Enable/disable strategy propagation.
|
|
436
378
|
"""
|
|
437
|
-
logger.warning("This attribute is replaced by
|
|
438
|
-
"and this attribute will
|
|
379
|
+
logger.warning("This attribute is replaced by "
|
|
380
|
+
"context.set_auto_parallel_context(search_mode='sharding_propagation'), and this attribute will"
|
|
381
|
+
" be deleted in a future MindSpore version.")
|
|
439
382
|
self.check_context_handle()
|
|
440
383
|
if not isinstance(sharding_propagation, bool):
|
|
441
384
|
raise TypeError("For 'set_auto_parallel_context().set_sharding_propagation', "
|
|
@@ -522,6 +465,9 @@ class _AutoParallelContext:
|
|
|
522
465
|
if not isinstance(dim, int):
|
|
523
466
|
raise TypeError("For 'set_auto_parallel_context', the element of argument "
|
|
524
467
|
"'dataset_strategy' must be int type, but got the type : {} .".format(type(dim)))
|
|
468
|
+
if context.get_context('mode') == context.PYNATIVE_MODE:
|
|
469
|
+
raise ValueError("In PyNative mode, the setting value of 'dataset_strategy' must be either 'full_batch' "
|
|
470
|
+
f"or 'data_parallel', but got {dataset_strategy}.")
|
|
525
471
|
self._dataset_strategy_using_str = False
|
|
526
472
|
self._context_handle.set_dataset_strategy(dataset_strategy)
|
|
527
473
|
|
|
@@ -532,7 +478,11 @@ class _AutoParallelContext:
|
|
|
532
478
|
if self._context_handle.get_full_batch():
|
|
533
479
|
return "full_batch"
|
|
534
480
|
return "data_parallel"
|
|
535
|
-
|
|
481
|
+
dataset_strategy = self._context_handle.get_dataset_strategy()
|
|
482
|
+
if context.get_context('mode') == context.PYNATIVE_MODE:
|
|
483
|
+
raise ValueError("In PyNative mode, the value of 'dataset_strategy' must be either 'full_batch' "
|
|
484
|
+
f"or 'data_parallel', but got the setting value is {dataset_strategy}.")
|
|
485
|
+
return dataset_strategy
|
|
536
486
|
|
|
537
487
|
def set_grad_accumulation_step(self, grad_accumulation_step):
|
|
538
488
|
"""
|
|
@@ -568,6 +518,52 @@ class _AutoParallelContext:
|
|
|
568
518
|
self.check_context_handle()
|
|
569
519
|
return self._context_handle.get_strategy_ckpt_save_file()
|
|
570
520
|
|
|
521
|
+
def set_strategy_ckpt_config(self, strategy_ckpt_config):
|
|
522
|
+
"""
|
|
523
|
+
Set strategy checkpoint config.
|
|
524
|
+
|
|
525
|
+
Args:
|
|
526
|
+
strategy_ckpt_config (dict): The strategy checkpoint config.
|
|
527
|
+
"""
|
|
528
|
+
self.check_context_handle()
|
|
529
|
+
if not isinstance(strategy_ckpt_config, dict):
|
|
530
|
+
raise TypeError("For 'set_auto_parallel_context', the argument 'strategy_ckpt_config' "
|
|
531
|
+
"must be dict, but got the type : {}.".format(type(strategy_ckpt_config)))
|
|
532
|
+
for config_name in strategy_ckpt_config:
|
|
533
|
+
unknown_config = []
|
|
534
|
+
if config_name not in ["load_file", "save_file", "only_trainable_params"]:
|
|
535
|
+
unknown_config.append(config_name)
|
|
536
|
+
|
|
537
|
+
if unknown_config:
|
|
538
|
+
raise ValueError("Unknown config: {}".format(unknown_config))
|
|
539
|
+
if "load_file" in strategy_ckpt_config:
|
|
540
|
+
load_file = strategy_ckpt_config.get("load_file")
|
|
541
|
+
if not isinstance(load_file, str):
|
|
542
|
+
raise TypeError("For 'set_auto_parallel_context().set_strategy_ckpt_config', "
|
|
543
|
+
"the argument 'load_file' must be str, but got the type : {} .".format(type(load_file)))
|
|
544
|
+
self._context_handle.set_strategy_ckpt_load_file(load_file)
|
|
545
|
+
if "save_file" in strategy_ckpt_config:
|
|
546
|
+
save_file = strategy_ckpt_config.get("save_file")
|
|
547
|
+
if not isinstance(save_file, str):
|
|
548
|
+
raise TypeError("For 'set_auto_parallel_context().set_strategy_ckpt_config', "
|
|
549
|
+
"the argument 'save_file' must be str, but got the type : {} .".format(type(save_file)))
|
|
550
|
+
self._context_handle.set_strategy_ckpt_save_file(save_file)
|
|
551
|
+
if "only_trainable_params" in strategy_ckpt_config:
|
|
552
|
+
only_trainable_params = strategy_ckpt_config.get("only_trainable_params")
|
|
553
|
+
if not isinstance(only_trainable_params, bool):
|
|
554
|
+
raise TypeError("For 'set_auto_parallel_context().set_strategy_ckpt_config', "
|
|
555
|
+
"the argument 'only_trainable_params' must be bool,"
|
|
556
|
+
" but got the type : {} .".format(type(only_trainable_params)))
|
|
557
|
+
self._context_handle.set_stra_file_only_trainable_params(only_trainable_params)
|
|
558
|
+
|
|
559
|
+
def get_strategy_ckpt_config(self):
|
|
560
|
+
"""Get strategy checkpoint config."""
|
|
561
|
+
self.check_context_handle()
|
|
562
|
+
load_file = self._context_handle.get_strategy_ckpt_load_file()
|
|
563
|
+
save_file = self._context_handle.get_strategy_ckpt_save_file()
|
|
564
|
+
only_trainable_param = self._context_handle.get_stra_file_only_trainable_params()
|
|
565
|
+
return {"load_file": load_file, "save_file": save_file, "only_trainable_params": only_trainable_param}
|
|
566
|
+
|
|
571
567
|
def set_group_ckpt_save_file(self, group_ckpt_save_file):
|
|
572
568
|
"""Set group checkpoint save path."""
|
|
573
569
|
self.check_context_handle()
|
|
@@ -907,18 +903,21 @@ class _AutoParallelContext:
|
|
|
907
903
|
raise TypeError('optimizer_weight_shard_aggregated_save is invalid type')
|
|
908
904
|
self._context_handle.set_optimizer_weight_shard_aggregated_save(optimizer_weight_shard_aggregated_save)
|
|
909
905
|
|
|
910
|
-
|
|
911
906
|
def get_optimizer_weight_shard_aggregated_save(self):
|
|
912
907
|
"""Get optimizer_weight_shard_size."""
|
|
913
908
|
self.check_context_handle()
|
|
914
909
|
return self._context_handle.get_optimizer_weight_shard_aggregated_save()
|
|
915
910
|
|
|
911
|
+
def get_full_batch_is_set(self):
|
|
912
|
+
"""Get full batch attr"""
|
|
913
|
+
self.check_context_handle()
|
|
914
|
+
return self._context_handle.get_full_batch_is_set()
|
|
916
915
|
|
|
917
916
|
def reset(self):
|
|
918
917
|
"""Reset all settings."""
|
|
919
918
|
self.check_context_handle()
|
|
920
919
|
self._context_handle.reset()
|
|
921
|
-
|
|
920
|
+
_ParallelFusionConfig.reset()
|
|
922
921
|
|
|
923
922
|
def _check_and_default_group(self, group):
|
|
924
923
|
"""Validate the given group, if group is empty, returns a default fusion group"""
|
|
@@ -936,6 +935,99 @@ class _AutoParallelContext:
|
|
|
936
935
|
group = _DEFAULT_NCCL_FUSION_GROUP_NAME
|
|
937
936
|
return group
|
|
938
937
|
|
|
938
|
+
def _set_allgather_comm_fusion(self, comm_fusion, comm_type="allgather"):
|
|
939
|
+
"""
|
|
940
|
+
Set allgather and reducescatter fusion method for auto parallel.
|
|
941
|
+
|
|
942
|
+
Args:
|
|
943
|
+
comm_fusion (dict): A dict contains the methods and values for setting the fusion method. Currently it
|
|
944
|
+
supports four fusion methods: `auto` and `size`.
|
|
945
|
+
comm_type (str): The name of the communication operator, `allgather` or `reducescatter`.
|
|
946
|
+
|
|
947
|
+
Raises:
|
|
948
|
+
KeyError: When key of comm_fusion is not 'mode' or 'config'.
|
|
949
|
+
KeyError: When `mode` is not 'auto', 'size'.
|
|
950
|
+
"""
|
|
951
|
+
self.check_context_handle()
|
|
952
|
+
if comm_type == "allgather" and not self.get_enable_all_gather_fusion():
|
|
953
|
+
return
|
|
954
|
+
if comm_type == "reducescatter" and not self.get_enable_reduce_scatter_fusion():
|
|
955
|
+
return
|
|
956
|
+
if not isinstance(comm_fusion, dict):
|
|
957
|
+
raise TypeError("For 'comm_fusion', {} config must be dict, but got the type : {}.".format(
|
|
958
|
+
comm_type, type(comm_fusion)))
|
|
959
|
+
if _ParallelFusionConfig.MODE not in comm_fusion:
|
|
960
|
+
raise KeyError("For 'comm_fusion', the key 'mode' should be contained.")
|
|
961
|
+
if _ParallelFusionConfig.FUSION_CONFIG not in comm_fusion:
|
|
962
|
+
raise KeyError("For 'comm_fusion', the key 'config' should be contained.")
|
|
963
|
+
check_mode = [_ParallelFusionConfig.AUTO, _ParallelFusionConfig.SIZE]
|
|
964
|
+
if comm_fusion[_ParallelFusionConfig.MODE] in check_mode:
|
|
965
|
+
self._context_handle.set_fusion_mode(comm_fusion[_ParallelFusionConfig.MODE])
|
|
966
|
+
else:
|
|
967
|
+
raise KeyError("fusion method mode must be auto or size, but got {}".format(
|
|
968
|
+
comm_fusion[_ParallelFusionConfig.MODE]))
|
|
969
|
+
|
|
970
|
+
fusion_threshold = 64
|
|
971
|
+
if comm_fusion[_ParallelFusionConfig.MODE] != _ParallelFusionConfig.AUTO:
|
|
972
|
+
fusion_threshold = comm_fusion[_ParallelFusionConfig.FUSION_CONFIG]
|
|
973
|
+
self.set_fusion_threshold_mb(fusion_threshold, comm_type)
|
|
974
|
+
|
|
975
|
+
def _set_allreduce_comm_fusion(self, comm_fusion):
|
|
976
|
+
"""
|
|
977
|
+
Set fusion method for auto parallel.
|
|
978
|
+
|
|
979
|
+
Args:
|
|
980
|
+
comm_fusion (dict): A dict contains the methods and values for setting the fusion method. Currently it
|
|
981
|
+
supports four fusion methods: `auto`, `size` and `index`.
|
|
982
|
+
|
|
983
|
+
Raises:
|
|
984
|
+
KeyError: When key of comm_fusion is not 'mode' or 'config'.
|
|
985
|
+
KeyError: When `mode` is not 'auto', 'size' or 'index'.
|
|
986
|
+
"""
|
|
987
|
+
self.check_context_handle()
|
|
988
|
+
if not self.get_enable_all_reduce_fusion():
|
|
989
|
+
return
|
|
990
|
+
if not isinstance(comm_fusion, dict):
|
|
991
|
+
raise TypeError("For 'comm_fusion', the 'allreduce' config must be dict, but got the type : {}.".format(
|
|
992
|
+
type(comm_fusion)))
|
|
993
|
+
if _ParallelFusionConfig.MODE not in comm_fusion:
|
|
994
|
+
raise KeyError("For 'comm_fusion', the key 'mode' should be contained.")
|
|
995
|
+
if _ParallelFusionConfig.FUSION_CONFIG not in comm_fusion:
|
|
996
|
+
raise KeyError("For 'comm_fusion', the key 'config' should be contained.")
|
|
997
|
+
check_mode = [_ParallelFusionConfig.AUTO, _ParallelFusionConfig.INDEX, _ParallelFusionConfig.SIZE]
|
|
998
|
+
if comm_fusion[_ParallelFusionConfig.MODE] in check_mode:
|
|
999
|
+
self._context_handle.set_fusion_mode(comm_fusion[_ParallelFusionConfig.MODE])
|
|
1000
|
+
else:
|
|
1001
|
+
raise KeyError("fusion method mode must be auto, index or size, but got {}".format(
|
|
1002
|
+
comm_fusion[_ParallelFusionConfig.MODE]))
|
|
1003
|
+
if comm_fusion[_ParallelFusionConfig.MODE] == _ParallelFusionConfig.AUTO:
|
|
1004
|
+
self.set_fusion_threshold_mb(fusion_threshold=64)
|
|
1005
|
+
if comm_fusion[_ParallelFusionConfig.MODE] == _ParallelFusionConfig.SIZE:
|
|
1006
|
+
self.set_fusion_threshold_mb(comm_fusion[_ParallelFusionConfig.FUSION_CONFIG])
|
|
1007
|
+
if comm_fusion[_ParallelFusionConfig.MODE] == _ParallelFusionConfig.INDEX:
|
|
1008
|
+
self.set_all_reduce_fusion_split_indices(comm_fusion[_ParallelFusionConfig.FUSION_CONFIG])
|
|
1009
|
+
|
|
1010
|
+
def _set_openstate_comm_fusion(self, openstate):
|
|
1011
|
+
"""
|
|
1012
|
+
Set open state for comm fusion.
|
|
1013
|
+
|
|
1014
|
+
Args:
|
|
1015
|
+
openstate (bool): The open state value to set the fusion method whether or not. Currently it
|
|
1016
|
+
supports two states: `True`, or `Flase`.
|
|
1017
|
+
|
|
1018
|
+
Raises:
|
|
1019
|
+
TypeError: When the value is not bool.
|
|
1020
|
+
"""
|
|
1021
|
+
self.check_context_handle()
|
|
1022
|
+
if not isinstance(openstate, bool):
|
|
1023
|
+
raise TypeError("For 'comm_fusion', the 'openstate' must be bool, but got the type : {}.".format(
|
|
1024
|
+
type(openstate)))
|
|
1025
|
+
if not openstate:
|
|
1026
|
+
self.set_enable_all_reduce_fusion(openstate)
|
|
1027
|
+
self.set_enable_all_gather_fusion(openstate)
|
|
1028
|
+
self.set_enable_reduce_scatter_fusion(openstate)
|
|
1029
|
+
|
|
1030
|
+
|
|
939
1031
|
|
|
940
1032
|
_AUTO_PARALLEL_CONTEXT = None
|
|
941
1033
|
|
|
@@ -978,6 +1070,7 @@ _set_auto_parallel_context_func_map = {
|
|
|
978
1070
|
"optimizer_weight_shard_aggregated_save": auto_parallel_context().set_optimizer_weight_shard_aggregated_save,
|
|
979
1071
|
"sharding_propagation": auto_parallel_context().set_sharding_propagation,
|
|
980
1072
|
"enable_alltoall": auto_parallel_context().set_enable_alltoall,
|
|
1073
|
+
"strategy_ckpt_config": auto_parallel_context().set_strategy_ckpt_config,
|
|
981
1074
|
"comm_fusion": auto_parallel_context().set_comm_fusion}
|
|
982
1075
|
|
|
983
1076
|
|
|
@@ -1004,7 +1097,9 @@ _get_auto_parallel_context_func_map = {
|
|
|
1004
1097
|
"optimizer_weight_shard_aggregated_save": auto_parallel_context().get_optimizer_weight_shard_aggregated_save,
|
|
1005
1098
|
"sharding_propagation": auto_parallel_context().get_sharding_propagation,
|
|
1006
1099
|
"enable_alltoall": auto_parallel_context().get_enable_alltoall,
|
|
1007
|
-
"comm_fusion": auto_parallel_context().get_comm_fusion
|
|
1100
|
+
"comm_fusion": auto_parallel_context().get_comm_fusion,
|
|
1101
|
+
"strategy_ckpt_config": auto_parallel_context().get_strategy_ckpt_config,
|
|
1102
|
+
"full_batch_is_set": auto_parallel_context().get_full_batch_is_set}
|
|
1008
1103
|
|
|
1009
1104
|
|
|
1010
1105
|
@args_type_check(device_num=int, global_rank=int, gradients_mean=bool, gradient_fp32_sync=bool,
|
|
@@ -1013,7 +1108,8 @@ _get_auto_parallel_context_func_map = {
|
|
|
1013
1108
|
strategy_ckpt_save_file=str, full_batch=bool, enable_parallel_optimizer=bool,
|
|
1014
1109
|
grad_accumulation_step=int, all_reduce_fusion_config=list, group_ckpt_save_file=str,
|
|
1015
1110
|
communi_parallel_mode=str, optimizer_weight_shard_size=int, sharding_propagation=bool,
|
|
1016
|
-
optimizer_weight_shard_aggregated_save=bool, enable_alltoall=bool, comm_fusion=dict
|
|
1111
|
+
optimizer_weight_shard_aggregated_save=bool, enable_alltoall=bool, comm_fusion=dict,
|
|
1112
|
+
strategy_ckpt_config=dict)
|
|
1017
1113
|
|
|
1018
1114
|
def _set_auto_parallel_context(**kwargs):
|
|
1019
1115
|
"""
|
|
@@ -1090,12 +1186,23 @@ def _set_auto_parallel_context(**kwargs):
|
|
|
1090
1186
|
communication fusion config has two keys: "mode" and "config".
|
|
1091
1187
|
It supports following communication fusion types and configurations:
|
|
1092
1188
|
|
|
1189
|
+
- openstate: Whether turn on the communication fusion or not. If `openstate` is `True`, turn on
|
|
1190
|
+
the communication fusion, otherwise, turn off the communication fusion. Default: `True`.
|
|
1191
|
+
|
|
1093
1192
|
- allreduce: if communication fusion type is `allreduce`. The `mode` contains: `auto`, `size`
|
|
1094
1193
|
and `index`. In `auto` mode, allreduce fusion is configured by gradients size, and the default
|
|
1095
1194
|
fusion threshold is `64` MB. In 'size' mode, allreduce fusion is configured by gradients size
|
|
1096
1195
|
manually, and the fusion threshold must be larger than `0` MB. In `index` mode, it is same as
|
|
1097
1196
|
`all_reduce_fusion_config`.
|
|
1098
1197
|
|
|
1198
|
+
- allgather: If communication fusion type is `allgather`. The `mode` contains: `auto`, `size`.
|
|
1199
|
+
In `auto` mode, AllGather fusion is configured by gradients size, and the default fusion
|
|
1200
|
+
threshold is `64` MB. In 'size' mode, AllGather fusion is configured by gradients size
|
|
1201
|
+
manually, and the fusion threshold must be larger than `0` MB.
|
|
1202
|
+
|
|
1203
|
+
- reducescatter: If communication fusion type is `reducescatter`. The `mode` contains: `auto`
|
|
1204
|
+
and `size`. Config is same as `allgather`.
|
|
1205
|
+
|
|
1099
1206
|
|
|
1100
1207
|
Raises:
|
|
1101
1208
|
ValueError: If input key is not attribute in auto parallel context.
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Cell of auto parallel"""
|
|
16
16
|
from __future__ import absolute_import
|
|
17
|
+
from __future__ import division
|
|
18
|
+
|
|
17
19
|
from mindspore.nn.cell import Cell
|
|
18
20
|
from mindspore.ops.operations.comm_ops import AllGather
|
|
19
21
|
from mindspore.communication import GlobalComm
|
|
20
|
-
from mindspore.common import
|
|
22
|
+
from mindspore.common import jit
|
|
21
23
|
|
|
22
24
|
_ALLGATHER_CELL = None
|
|
23
25
|
|
|
@@ -33,7 +35,7 @@ class AllGatherCell(Cell):
|
|
|
33
35
|
self.allgather = AllGather(group)
|
|
34
36
|
self.add_flags(skip_auto_parallel_compile=True)
|
|
35
37
|
|
|
36
|
-
@
|
|
38
|
+
@jit()
|
|
37
39
|
def construct(self, x):
|
|
38
40
|
x = self.allgather(x)
|
|
39
41
|
|
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Context of cost_model in auto_parallel"""
|
|
16
16
|
from __future__ import absolute_import
|
|
17
|
+
from __future__ import division
|
|
18
|
+
|
|
17
19
|
import threading
|
|
20
|
+
|
|
18
21
|
from mindspore._c_expression import CostModelContext
|
|
19
22
|
from mindspore._checkparam import args_type_check
|
|
20
23
|
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""Data parallel allreduce fusion"""
|
|
16
|
-
|
|
17
16
|
from __future__ import absolute_import
|
|
17
|
+
from __future__ import division
|
|
18
|
+
|
|
18
19
|
import ctypes
|
|
19
20
|
|
|
20
21
|
_MAX_GROUP_NAME_LEN = 127
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
"""Context of offload"""
|
|
16
|
+
from __future__ import absolute_import
|
|
17
|
+
from __future__ import division
|
|
18
|
+
|
|
19
|
+
import threading
|
|
20
|
+
|
|
21
|
+
from mindspore._c_expression import OffloadContext
|
|
22
|
+
from mindspore._checkparam import args_type_check
|
|
23
|
+
from mindspore import _checkparam as Validator
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class _OffloadConfig:
|
|
27
|
+
"""
|
|
28
|
+
The key of the Offload Config.
|
|
29
|
+
"""
|
|
30
|
+
ENABLE_OFFLOAD = "enable_offload"
|
|
31
|
+
OFFLOAD_PARAM = "offload_param"
|
|
32
|
+
OFFLOAD_PATH = "offload_path"
|
|
33
|
+
OFFLOAD_CHECKPOINT = "offload_checkpoint"
|
|
34
|
+
OFFLOAD_DDR_SIZE = "offload_ddr_size"
|
|
35
|
+
OFFLOAD_DISK_SIZE = "offload_disk_size"
|
|
36
|
+
ENABLE_AIO = "enable_aio"
|
|
37
|
+
AIO_BLOCK_SIZE = "aio_block_size"
|
|
38
|
+
AIO_QUEUE_DEPTH = "aio_queue_depth"
|
|
39
|
+
ENABLE_PINNED_MEM = "enable_pinned_mem"
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class _OffloadContext:
|
|
43
|
+
"""
|
|
44
|
+
_OffloadContext is the configuration for offload.
|
|
45
|
+
|
|
46
|
+
Note:
|
|
47
|
+
Create a context through instantiating Context object is not recommended.
|
|
48
|
+
Should use offload_context() to get the context since Context is singleton.
|
|
49
|
+
"""
|
|
50
|
+
_instance = None
|
|
51
|
+
_instance_lock = threading.Lock()
|
|
52
|
+
|
|
53
|
+
def __new__(cls):
|
|
54
|
+
if cls._instance is None:
|
|
55
|
+
cls._instance_lock.acquire()
|
|
56
|
+
cls._instance = object.__new__(cls)
|
|
57
|
+
cls._instance_lock.release()
|
|
58
|
+
return cls._instance
|
|
59
|
+
|
|
60
|
+
def __init__(self):
|
|
61
|
+
self._context_handle = OffloadContext.get_instance()
|
|
62
|
+
|
|
63
|
+
def check_context_handle(self):
|
|
64
|
+
"""
|
|
65
|
+
Check context handle.
|
|
66
|
+
|
|
67
|
+
Raises:
|
|
68
|
+
ValueError: If the context handle is none.
|
|
69
|
+
"""
|
|
70
|
+
if self._context_handle is None:
|
|
71
|
+
raise ValueError("Context handle is none in context!!!")
|
|
72
|
+
|
|
73
|
+
def set_offload_config(self, offload_config):
|
|
74
|
+
"""Set offfload context"""
|
|
75
|
+
self.check_context_handle()
|
|
76
|
+
enable_offload = _OffloadConfig.ENABLE_OFFLOAD
|
|
77
|
+
offload_param = _OffloadConfig.OFFLOAD_PARAM
|
|
78
|
+
offload_path = _OffloadConfig.OFFLOAD_PATH
|
|
79
|
+
offload_checkpoint = _OffloadConfig.OFFLOAD_CHECKPOINT
|
|
80
|
+
offload_ddr_size = _OffloadConfig.OFFLOAD_DDR_SIZE
|
|
81
|
+
offload_disk_size = _OffloadConfig.OFFLOAD_DISK_SIZE
|
|
82
|
+
enable_aio = _OffloadConfig.ENABLE_AIO
|
|
83
|
+
aio_block_size = _OffloadConfig.AIO_BLOCK_SIZE
|
|
84
|
+
aio_queue_depth = _OffloadConfig.AIO_QUEUE_DEPTH
|
|
85
|
+
enable_pinned_mem = _OffloadConfig.ENABLE_PINNED_MEM
|
|
86
|
+
|
|
87
|
+
for config_name in offload_config:
|
|
88
|
+
unknown_config = []
|
|
89
|
+
if config_name not in [enable_offload, offload_param, offload_path, offload_checkpoint,
|
|
90
|
+
offload_ddr_size, offload_disk_size, enable_aio, aio_block_size,
|
|
91
|
+
aio_queue_depth, enable_pinned_mem]:
|
|
92
|
+
unknown_config.append(config_name)
|
|
93
|
+
|
|
94
|
+
if unknown_config:
|
|
95
|
+
raise ValueError("Unknown config: {}".format(unknown_config))
|
|
96
|
+
|
|
97
|
+
if enable_offload in offload_config:
|
|
98
|
+
Validator.check_bool(
|
|
99
|
+
offload_config[enable_offload], enable_offload, enable_offload)
|
|
100
|
+
self._context_handle.set_enable_offload(
|
|
101
|
+
offload_config[enable_offload])
|
|
102
|
+
|
|
103
|
+
if offload_param in offload_config:
|
|
104
|
+
Validator.check_string(
|
|
105
|
+
offload_config[offload_param].lower(), ["cpu", "disk"])
|
|
106
|
+
self._context_handle.set_offload_param(
|
|
107
|
+
offload_config[offload_param].lower())
|
|
108
|
+
|
|
109
|
+
if offload_path in offload_config:
|
|
110
|
+
if not isinstance(offload_config[offload_path], str):
|
|
111
|
+
raise TypeError("For 'set_offload_path', "
|
|
112
|
+
"the argument 'offload_path' must be str, but got the type : {}."
|
|
113
|
+
.format(type(offload_config[offload_path])))
|
|
114
|
+
self._context_handle.set_offload_path(
|
|
115
|
+
offload_config[offload_path])
|
|
116
|
+
if offload_checkpoint in offload_config:
|
|
117
|
+
Validator.check_string(
|
|
118
|
+
offload_config[offload_checkpoint].lower(), ["cpu", "disk"])
|
|
119
|
+
self._context_handle.set_offload_checkpoint(
|
|
120
|
+
offload_config[offload_checkpoint].lower())
|
|
121
|
+
|
|
122
|
+
if offload_ddr_size in offload_config:
|
|
123
|
+
Validator.check_positive_int(offload_config[offload_ddr_size])
|
|
124
|
+
self._context_handle.set_offload_ddr_size(
|
|
125
|
+
offload_config[offload_ddr_size])
|
|
126
|
+
|
|
127
|
+
if offload_disk_size in offload_config:
|
|
128
|
+
Validator.check_positive_int(offload_config[offload_disk_size])
|
|
129
|
+
self._context_handle.set_offload_disk_size(
|
|
130
|
+
offload_config[offload_disk_size])
|
|
131
|
+
if enable_aio in offload_config:
|
|
132
|
+
Validator.check_bool(
|
|
133
|
+
offload_config[enable_aio], enable_aio, enable_aio)
|
|
134
|
+
self._context_handle.set_enable_aio(
|
|
135
|
+
offload_config[enable_aio])
|
|
136
|
+
if aio_block_size in offload_config:
|
|
137
|
+
Validator.check_positive_int(offload_config[aio_block_size])
|
|
138
|
+
self._context_handle.set_aio_block_size(
|
|
139
|
+
offload_config[aio_block_size])
|
|
140
|
+
if aio_queue_depth in offload_config:
|
|
141
|
+
Validator.check_positive_int(offload_config[aio_queue_depth])
|
|
142
|
+
self._context_handle.set_aio_queue_depth(
|
|
143
|
+
offload_config[aio_queue_depth])
|
|
144
|
+
if enable_pinned_mem in offload_config:
|
|
145
|
+
Validator.check_bool(
|
|
146
|
+
offload_config[enable_pinned_mem], enable_pinned_mem, enable_pinned_mem)
|
|
147
|
+
self._context_handle.set_enable_pinned_mem(
|
|
148
|
+
offload_config[enable_pinned_mem])
|
|
149
|
+
|
|
150
|
+
def offload_config(self):
|
|
151
|
+
"""Get config of offload"""
|
|
152
|
+
self.check_context_handle()
|
|
153
|
+
offload_config = {
|
|
154
|
+
_OffloadConfig.ENABLE_OFFLOAD: self._context_handle.enable_offload(),
|
|
155
|
+
_OffloadConfig.OFFLOAD_PARAM: self._context_handle.offload_param(),
|
|
156
|
+
_OffloadConfig.OFFLOAD_PATH: self._context_handle.offload_path(),
|
|
157
|
+
_OffloadConfig.OFFLOAD_CHECKPOINT: self._context_handle.offload_checkpoint(),
|
|
158
|
+
_OffloadConfig.OFFLOAD_DDR_SIZE: self._context_handle.offload_ddr_size(),
|
|
159
|
+
_OffloadConfig.OFFLOAD_DISK_SIZE: self._context_handle.offload_disk_size(),
|
|
160
|
+
_OffloadConfig.ENABLE_AIO: self._context_handle.enable_aio(),
|
|
161
|
+
_OffloadConfig.AIO_BLOCK_SIZE: self._context_handle.aio_block_size(),
|
|
162
|
+
_OffloadConfig.AIO_QUEUE_DEPTH: self._context_handle.aio_queue_depth(),
|
|
163
|
+
_OffloadConfig.ENABLE_PINNED_MEM: self._context_handle.enable_pinned_mem()
|
|
164
|
+
}
|
|
165
|
+
return offload_config
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
_OFFLOAD_CONTEXT = None
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def offload_context():
|
|
172
|
+
"""Get offload_context. if it is not created, create a new one."""
|
|
173
|
+
global _OFFLOAD_CONTEXT
|
|
174
|
+
if _OFFLOAD_CONTEXT is None:
|
|
175
|
+
_OFFLOAD_CONTEXT = _OffloadContext()
|
|
176
|
+
return _OFFLOAD_CONTEXT
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
@args_type_check(offload_config=dict)
|
|
180
|
+
def _set_offload_context(offload_config):
|
|
181
|
+
offload_context().set_offload_config(offload_config)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def _get_offload_context():
|
|
185
|
+
return offload_context().offload_config()
|