mindspore 2.2.14__cp39-cp39-win_amd64.whl → 2.3.0__cp39-cp39-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +6 -5
- mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
- mindspore/_checkparam.py +76 -18
- mindspore/_extends/builtin_operations.py +2 -1
- mindspore/_extends/graph_kernel/model/graph_parallel.py +16 -6
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +3 -16
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +16 -4
- mindspore/_extends/parallel_compile/akg_compiler/compiler.py +1 -0
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +96 -0
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +2 -1
- mindspore/_extends/parallel_compile/akg_compiler/util.py +5 -2
- mindspore/_extends/parse/__init__.py +18 -14
- mindspore/_extends/parse/compile_config.py +258 -0
- mindspore/_extends/parse/namespace.py +2 -2
- mindspore/_extends/parse/parser.py +174 -62
- mindspore/_extends/parse/resources.py +45 -14
- mindspore/_extends/parse/standard_method.py +142 -240
- mindspore/{ops/_op_impl/tbe/atomic_addr_clean.py → _extends/pijit/__init__.py} +6 -16
- mindspore/_extends/pijit/pijit_func_white_list.py +343 -0
- mindspore/_extends/remote/kernel_build_server.py +2 -0
- mindspore/_profiler.py +30 -0
- mindspore/amp.py +51 -24
- 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/adasum.py +1 -1
- mindspore/boost/base.py +1 -1
- mindspore/boost/boost_cell_wrapper.py +2 -2
- mindspore/boost/grad_freeze.py +2 -2
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/boost/less_batch_normalization.py +9 -6
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +15 -4
- mindspore/common/_jit_fallback_utils.py +2 -3
- mindspore/common/_register_for_adapter.py +7 -0
- mindspore/common/_register_for_recompute.py +48 -0
- mindspore/common/_register_for_tensor.py +8 -9
- mindspore/common/_stub_tensor.py +7 -1
- mindspore/common/_utils.py +5 -17
- mindspore/common/api.py +411 -106
- mindspore/common/auto_dynamic_shape.py +27 -14
- mindspore/common/dtype.py +17 -10
- mindspore/common/dump.py +6 -8
- mindspore/common/file_system.py +48 -0
- mindspore/common/generator.py +260 -0
- mindspore/common/hook_handle.py +51 -4
- mindspore/common/initializer.py +1 -1
- mindspore/common/jit_config.py +34 -14
- mindspore/common/lazy_inline.py +72 -19
- mindspore/common/mindir_util.py +12 -2
- mindspore/common/mutable.py +79 -14
- mindspore/common/no_inline.py +54 -0
- mindspore/common/np_dtype.py +25 -0
- mindspore/common/parameter.py +30 -11
- mindspore/common/recompute.py +262 -0
- mindspore/common/seed.py +9 -9
- mindspore/common/sparse_tensor.py +272 -24
- mindspore/common/symbol.py +122 -0
- mindspore/common/tensor.py +468 -494
- mindspore/communication/__init__.py +6 -11
- mindspore/communication/_comm_helper.py +5 -0
- mindspore/communication/comm_func.py +1140 -0
- mindspore/communication/management.py +115 -102
- mindspore/config/op_info.config +22 -54
- mindspore/context.py +346 -63
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +6 -6
- mindspore/dataset/audio/transforms.py +711 -158
- mindspore/dataset/callback/ds_callback.py +2 -2
- mindspore/dataset/engine/cache_client.py +2 -2
- mindspore/dataset/engine/datasets.py +140 -83
- mindspore/dataset/engine/datasets_audio.py +14 -14
- mindspore/dataset/engine/datasets_standard_format.py +33 -3
- mindspore/dataset/engine/datasets_text.py +38 -38
- mindspore/dataset/engine/datasets_user_defined.py +78 -59
- mindspore/dataset/engine/datasets_vision.py +77 -73
- mindspore/dataset/engine/offload.py +5 -7
- mindspore/dataset/engine/queue.py +56 -38
- mindspore/dataset/engine/validators.py +11 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +408 -121
- mindspore/dataset/text/utils.py +9 -9
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/transforms.py +261 -76
- mindspore/dataset/utils/browse_dataset.py +9 -9
- mindspore/dataset/vision/__init__.py +8 -8
- mindspore/dataset/vision/c_transforms.py +10 -10
- mindspore/dataset/vision/py_transforms_util.py +1 -1
- mindspore/dataset/vision/transforms.py +2844 -549
- mindspore/dataset/vision/utils.py +161 -10
- mindspore/dataset/vision/validators.py +14 -2
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/optim/__init__.py +12 -2
- mindspore/experimental/optim/adadelta.py +161 -0
- mindspore/experimental/optim/adagrad.py +168 -0
- mindspore/experimental/optim/adam.py +35 -34
- mindspore/experimental/optim/adamax.py +170 -0
- mindspore/experimental/optim/adamw.py +40 -16
- mindspore/experimental/optim/asgd.py +153 -0
- mindspore/experimental/optim/lr_scheduler.py +66 -121
- mindspore/experimental/optim/nadam.py +157 -0
- mindspore/experimental/optim/optimizer.py +15 -8
- mindspore/experimental/optim/radam.py +194 -0
- mindspore/experimental/optim/rmsprop.py +154 -0
- mindspore/experimental/optim/rprop.py +164 -0
- mindspore/experimental/optim/sgd.py +28 -19
- mindspore/hal/__init__.py +40 -0
- mindspore/hal/_ascend.py +57 -0
- mindspore/hal/_base.py +57 -0
- mindspore/hal/_cpu.py +56 -0
- mindspore/hal/_gpu.py +57 -0
- mindspore/hal/device.py +356 -0
- mindspore/hal/event.py +179 -0
- mindspore/hal/memory.py +326 -0
- mindspore/hal/stream.py +339 -0
- mindspore/include/api/data_type.h +2 -2
- mindspore/include/api/dual_abi_helper.h +16 -3
- mindspore/include/api/model.h +4 -3
- mindspore/include/api/status.h +14 -0
- mindspore/include/c_api/model_c.h +173 -0
- mindspore/include/c_api/ms/base/types.h +1 -0
- mindspore/include/c_api/types_c.h +19 -0
- mindspore/include/dataset/execute.h +1 -3
- mindspore/include/dataset/vision.h +54 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +2 -2
- mindspore/mindrecord/__init__.py +5 -1
- mindspore/mindrecord/config.py +809 -0
- mindspore/mindrecord/filereader.py +25 -0
- mindspore/mindrecord/filewriter.py +76 -58
- mindspore/mindrecord/mindpage.py +40 -6
- mindspore/mindrecord/shardutils.py +3 -2
- mindspore/mindrecord/shardwriter.py +7 -0
- mindspore/mindrecord/tools/cifar100_to_mr.py +8 -13
- mindspore/mindrecord/tools/cifar10_to_mr.py +9 -15
- mindspore/mindrecord/tools/csv_to_mr.py +4 -9
- mindspore/mindrecord/tools/imagenet_to_mr.py +3 -8
- mindspore/mindrecord/tools/mnist_to_mr.py +7 -12
- mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -6
- mindspore/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_np_dtype.dll +0 -0
- mindspore/mindspore_shared_lib.dll +0 -0
- mindspore/mint/__init__.py +1137 -0
- mindspore/{rewrite/ast_transformers → mint/linalg}/__init__.py +9 -4
- mindspore/mint/nn/__init__.py +512 -0
- mindspore/mint/nn/functional.py +573 -0
- mindspore/mint/optim/__init__.py +24 -0
- mindspore/mint/optim/adamw.py +185 -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/multiprocessing/__init__.py +72 -0
- mindspore/nn/__init__.py +1 -0
- mindspore/nn/cell.py +213 -257
- mindspore/nn/dynamic_lr.py +2 -2
- mindspore/nn/extend/__init__.py +29 -0
- mindspore/nn/extend/basic.py +140 -0
- mindspore/nn/extend/embedding.py +143 -0
- mindspore/{rewrite/ast_creator_register.py → nn/extend/layer/__init__.py} +9 -19
- mindspore/nn/extend/layer/normalization.py +109 -0
- mindspore/nn/extend/pooling.py +117 -0
- mindspore/nn/layer/activation.py +83 -93
- mindspore/nn/layer/basic.py +177 -82
- mindspore/nn/layer/channel_shuffle.py +3 -16
- mindspore/nn/layer/container.py +3 -3
- mindspore/nn/layer/conv.py +75 -66
- mindspore/nn/layer/embedding.py +101 -43
- mindspore/nn/layer/embedding_service.py +531 -0
- mindspore/nn/layer/embedding_service_layer.py +393 -0
- mindspore/nn/layer/image.py +4 -7
- mindspore/nn/layer/math.py +1 -1
- mindspore/nn/layer/normalization.py +52 -66
- mindspore/nn/layer/padding.py +30 -39
- mindspore/nn/layer/pooling.py +18 -9
- mindspore/nn/layer/rnn_cells.py +6 -16
- mindspore/nn/layer/rnns.py +6 -5
- mindspore/nn/layer/thor_layer.py +1 -2
- mindspore/nn/layer/timedistributed.py +1 -1
- mindspore/nn/layer/transformer.py +52 -50
- mindspore/nn/learning_rate_schedule.py +6 -5
- mindspore/nn/loss/loss.py +62 -83
- mindspore/nn/optim/ada_grad.py +4 -2
- mindspore/nn/optim/adadelta.py +3 -1
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +102 -181
- mindspore/nn/optim/adamax.py +4 -2
- mindspore/nn/optim/adasum.py +3 -3
- mindspore/nn/optim/asgd.py +4 -2
- mindspore/nn/optim/ftrl.py +31 -61
- mindspore/nn/optim/lamb.py +5 -3
- mindspore/nn/optim/lars.py +2 -2
- mindspore/nn/optim/lazyadam.py +6 -4
- mindspore/nn/optim/momentum.py +13 -25
- mindspore/nn/optim/optimizer.py +6 -3
- mindspore/nn/optim/proximal_ada_grad.py +4 -2
- mindspore/nn/optim/rmsprop.py +9 -3
- mindspore/nn/optim/rprop.py +4 -2
- mindspore/nn/optim/sgd.py +5 -3
- mindspore/nn/optim/thor.py +2 -2
- mindspore/nn/probability/distribution/_utils/custom_ops.py +2 -2
- mindspore/nn/probability/distribution/beta.py +2 -2
- mindspore/nn/probability/distribution/categorical.py +4 -6
- mindspore/nn/probability/distribution/cauchy.py +2 -2
- mindspore/nn/probability/distribution/exponential.py +2 -2
- mindspore/nn/probability/distribution/geometric.py +1 -1
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +1 -1
- mindspore/nn/probability/distribution/poisson.py +2 -2
- mindspore/nn/probability/distribution/uniform.py +2 -2
- mindspore/nn/reinforcement/_tensors_queue.py +13 -1
- mindspore/nn/wrap/__init__.py +2 -1
- mindspore/nn/wrap/cell_wrapper.py +58 -13
- mindspore/nn/wrap/grad_reducer.py +148 -8
- mindspore/nn/wrap/loss_scale.py +32 -9
- mindspore/numpy/__init__.py +2 -0
- mindspore/numpy/array_creations.py +2 -0
- mindspore/numpy/array_ops.py +6 -6
- mindspore/numpy/dtypes.py +3 -3
- mindspore/numpy/fft.py +431 -0
- mindspore/numpy/math_ops.py +62 -68
- mindspore/numpy/utils.py +3 -0
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +6 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +4 -129
- mindspore/ops/_grad_experimental/grad_comm_ops.py +89 -34
- mindspore/ops/_grad_experimental/grad_math_ops.py +68 -283
- mindspore/ops/_grad_experimental/grad_nn_ops.py +0 -53
- mindspore/ops/_grad_experimental/grad_quant_ops.py +3 -3
- mindspore/ops/_grad_experimental/grad_sparse.py +1 -1
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/__init__.py +0 -1
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -0
- mindspore/ops/_op_impl/aicpu/generate_eod_mask.py +1 -1
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +1 -3
- mindspore/ops/_op_impl/aicpu/poisson.py +2 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -3
- mindspore/ops/_op_impl/cpu/adam.py +2 -2
- mindspore/ops/_op_impl/cpu/adam_weight_decay.py +3 -2
- mindspore/ops/_op_impl/cpu/maximum_grad.py +16 -14
- mindspore/ops/_op_impl/cpu/minimum_grad.py +8 -0
- mindspore/ops/_vmap/vmap_array_ops.py +164 -101
- mindspore/ops/_vmap/vmap_base.py +8 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +95 -9
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +143 -58
- mindspore/ops/_vmap/vmap_image_ops.py +70 -13
- mindspore/ops/_vmap/vmap_math_ops.py +130 -58
- mindspore/ops/_vmap/vmap_nn_ops.py +249 -115
- mindspore/ops/_vmap/vmap_other_ops.py +1 -1
- mindspore/ops/auto_generate/__init__.py +31 -0
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +231 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +250 -0
- mindspore/ops/auto_generate/gen_arg_handler.py +197 -0
- mindspore/ops/auto_generate/gen_extend_func.py +980 -0
- mindspore/ops/auto_generate/gen_ops_def.py +6443 -0
- mindspore/ops/auto_generate/gen_ops_prim.py +13167 -0
- mindspore/ops/auto_generate/pyboost_inner_prim.py +429 -0
- mindspore/ops/composite/__init__.py +5 -2
- mindspore/ops/composite/base.py +121 -23
- mindspore/ops/composite/math_ops.py +10 -49
- mindspore/ops/composite/multitype_ops/_compile_utils.py +191 -618
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +25 -134
- mindspore/ops/composite/multitype_ops/add_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/div_impl.py +8 -0
- mindspore/ops/composite/multitype_ops/equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +8 -0
- mindspore/ops/composite/multitype_ops/getitem_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/in_impl.py +8 -2
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/less_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/mod_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/mul_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/negative_impl.py +9 -3
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/not_in_impl.py +6 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -2
- mindspore/ops/composite/multitype_ops/pow_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +32 -21
- mindspore/ops/composite/multitype_ops/sub_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +6 -3
- mindspore/ops/deprecated.py +14 -3
- mindspore/ops/extend/__init__.py +53 -0
- mindspore/ops/extend/array_func.py +218 -0
- mindspore/ops/extend/math_func.py +76 -0
- mindspore/ops/extend/nn_func.py +308 -0
- mindspore/ops/function/__init__.py +31 -11
- mindspore/ops/function/array_func.py +846 -1735
- mindspore/ops/function/clip_func.py +19 -31
- mindspore/ops/function/debug_func.py +1 -4
- mindspore/ops/function/fft_func.py +31 -0
- mindspore/ops/function/grad/grad_func.py +27 -20
- mindspore/ops/function/image_func.py +27 -21
- mindspore/ops/function/linalg_func.py +35 -68
- mindspore/ops/function/math_func.py +913 -2791
- mindspore/ops/function/nn_func.py +1439 -885
- mindspore/ops/function/other_func.py +6 -7
- mindspore/ops/function/parameter_func.py +5 -93
- mindspore/ops/function/random_func.py +254 -108
- mindspore/ops/function/reshard_func.py +102 -0
- mindspore/ops/function/sparse_func.py +4 -4
- mindspore/ops/function/sparse_unary_func.py +9 -16
- mindspore/ops/function/spectral_func.py +1 -1
- mindspore/ops/function/vmap_func.py +14 -14
- mindspore/ops/functional.py +342 -343
- mindspore/ops/op_info_register.py +16 -43
- mindspore/ops/operations/__init__.py +32 -23
- mindspore/ops/operations/_grad_ops.py +21 -853
- mindspore/ops/operations/_infer_ops.py +19 -0
- mindspore/ops/operations/_inner_ops.py +107 -518
- mindspore/ops/operations/_rl_inner_ops.py +2 -2
- mindspore/ops/operations/_scalar_ops.py +5 -480
- mindspore/ops/operations/_sequence_ops.py +6 -36
- mindspore/ops/operations/_tensor_array.py +8 -8
- mindspore/ops/operations/array_ops.py +108 -2705
- mindspore/ops/operations/comm_ops.py +801 -118
- mindspore/ops/operations/custom_ops.py +61 -120
- mindspore/ops/operations/debug_ops.py +104 -35
- mindspore/ops/operations/image_ops.py +1 -217
- mindspore/ops/operations/inner_ops.py +5 -40
- mindspore/ops/operations/linalg_ops.py +1 -49
- mindspore/ops/operations/manually_defined/__init__.py +24 -0
- mindspore/ops/operations/manually_defined/_inner.py +61 -0
- mindspore/ops/operations/manually_defined/ops_def.py +2016 -0
- mindspore/ops/operations/math_ops.py +572 -4667
- mindspore/ops/operations/nn_ops.py +248 -2162
- mindspore/ops/operations/other_ops.py +53 -45
- mindspore/ops/operations/random_ops.py +4 -53
- mindspore/ops/operations/reshard_ops.py +53 -0
- mindspore/ops/operations/sparse_ops.py +4 -4
- mindspore/ops/primitive.py +204 -103
- mindspore/ops/silent_check.py +5 -5
- mindspore/ops_generate/__init__.py +27 -0
- mindspore/ops_generate/arg_dtype_cast.py +250 -0
- mindspore/ops_generate/arg_handler.py +197 -0
- mindspore/ops_generate/gen_aclnn_implement.py +263 -0
- mindspore/ops_generate/gen_ops.py +1084 -0
- mindspore/ops_generate/gen_ops_inner_prim.py +131 -0
- mindspore/ops_generate/gen_pyboost_func.py +968 -0
- mindspore/ops_generate/gen_utils.py +209 -0
- mindspore/ops_generate/op_proto.py +138 -0
- mindspore/ops_generate/pyboost_utils.py +354 -0
- mindspore/ops_generate/template.py +239 -0
- mindspore/parallel/__init__.py +6 -4
- mindspore/parallel/_auto_parallel_context.py +73 -3
- mindspore/parallel/_cell_wrapper.py +16 -9
- mindspore/parallel/_cost_model_context.py +1 -1
- mindspore/parallel/_dp_allreduce_fusion.py +159 -159
- mindspore/parallel/_parallel_serialization.py +29 -13
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +18 -11
- mindspore/parallel/_transformer/__init__.py +1 -1
- mindspore/parallel/_transformer/layers.py +1 -1
- mindspore/parallel/_transformer/loss.py +1 -1
- mindspore/parallel/_transformer/moe.py +1 -1
- mindspore/parallel/_transformer/op_parallel_config.py +1 -1
- mindspore/parallel/_transformer/transformer.py +2 -2
- mindspore/parallel/_utils.py +161 -6
- mindspore/parallel/algo_parameter_config.py +6 -8
- mindspore/parallel/checkpoint_transform.py +191 -32
- mindspore/parallel/cluster/__init__.py +15 -0
- mindspore/parallel/cluster/process_entity/__init__.py +18 -0
- mindspore/parallel/cluster/process_entity/_api.py +344 -0
- mindspore/parallel/cluster/process_entity/_utils.py +126 -0
- mindspore/parallel/cluster/run.py +136 -0
- mindspore/parallel/mpi/__init__.py +1 -1
- mindspore/parallel/mpi/_mpi_config.py +1 -1
- mindspore/parallel/parameter_broadcast.py +152 -0
- mindspore/parallel/shard.py +128 -17
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +3 -2
- mindspore/profiler/common/process_pool.py +41 -0
- mindspore/profiler/common/singleton.py +28 -0
- mindspore/profiler/common/util.py +125 -0
- mindspore/profiler/envprofiling.py +2 -2
- mindspore/{_extends/parallel_compile/tbe_compiler → profiler/parser/ascend_analysis}/__init__.py +1 -1
- mindspore/profiler/parser/ascend_analysis/constant.py +53 -0
- mindspore/profiler/parser/ascend_analysis/file_manager.py +159 -0
- mindspore/profiler/parser/ascend_analysis/function_event.py +161 -0
- mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +131 -0
- mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +85 -0
- mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +57 -0
- mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +116 -0
- mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +86 -0
- mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +68 -0
- mindspore/profiler/parser/ascend_cluster_generator.py +14 -9
- mindspore/profiler/parser/ascend_communicate_generator.py +0 -1
- mindspore/profiler/parser/ascend_flops_generator.py +20 -4
- mindspore/profiler/parser/ascend_hccl_generator.py +29 -278
- mindspore/profiler/parser/ascend_integrate_generator.py +42 -0
- mindspore/profiler/parser/ascend_memory_generator.py +185 -0
- mindspore/profiler/parser/ascend_msprof_exporter.py +147 -146
- mindspore/profiler/parser/ascend_msprof_generator.py +73 -283
- mindspore/profiler/parser/ascend_op_generator.py +92 -42
- mindspore/profiler/parser/ascend_timeline_generator.py +296 -133
- mindspore/profiler/parser/base_timeline_generator.py +6 -0
- mindspore/profiler/parser/framework_parser.py +3 -2
- mindspore/profiler/parser/integrator.py +3 -1
- mindspore/profiler/parser/minddata_parser.py +72 -3
- mindspore/profiler/parser/msadvisor_analyzer.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +16 -1
- mindspore/profiler/profiling.py +445 -190
- mindspore/rewrite/__init__.py +2 -13
- mindspore/rewrite/api/node.py +122 -36
- mindspore/rewrite/api/pattern_engine.py +2 -3
- mindspore/rewrite/api/scoped_value.py +16 -15
- mindspore/rewrite/api/symbol_tree.py +45 -29
- mindspore/rewrite/ast_helpers/__init__.py +3 -6
- mindspore/rewrite/ast_helpers/ast_converter.py +143 -0
- mindspore/rewrite/ast_helpers/ast_finder.py +48 -0
- mindspore/rewrite/ast_helpers/ast_flattener.py +268 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +160 -92
- mindspore/rewrite/common/__init__.py +1 -2
- mindspore/rewrite/common/config.py +24 -0
- mindspore/rewrite/common/{rewrite_elog.py → error_log.py} +39 -39
- mindspore/rewrite/{namer.py → common/namer.py} +63 -18
- mindspore/rewrite/common/namespace.py +118 -0
- mindspore/rewrite/node/__init__.py +5 -5
- mindspore/rewrite/node/call_function.py +23 -7
- mindspore/rewrite/node/cell_container.py +7 -3
- mindspore/rewrite/node/control_flow.py +53 -28
- mindspore/rewrite/node/node.py +212 -196
- mindspore/rewrite/node/node_manager.py +51 -22
- mindspore/rewrite/node/node_topological_manager.py +3 -23
- mindspore/rewrite/parsers/__init__.py +12 -0
- mindspore/rewrite/parsers/arguments_parser.py +8 -9
- mindspore/rewrite/parsers/assign_parser.py +637 -413
- mindspore/rewrite/parsers/attribute_parser.py +3 -4
- mindspore/rewrite/parsers/class_def_parser.py +115 -148
- mindspore/rewrite/parsers/constant_parser.py +5 -5
- mindspore/rewrite/parsers/container_parser.py +4 -6
- mindspore/rewrite/parsers/expr_parser.py +55 -0
- mindspore/rewrite/parsers/for_parser.py +31 -98
- mindspore/rewrite/parsers/function_def_parser.py +13 -5
- mindspore/rewrite/parsers/if_parser.py +28 -10
- mindspore/rewrite/parsers/module_parser.py +8 -182
- mindspore/rewrite/parsers/parser.py +1 -5
- mindspore/rewrite/parsers/parser_register.py +1 -1
- mindspore/rewrite/parsers/return_parser.py +5 -10
- mindspore/rewrite/parsers/while_parser.py +59 -0
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree/__init__.py +20 -0
- mindspore/rewrite/{symbol_tree.py → symbol_tree/symbol_tree.py} +704 -185
- mindspore/rewrite/{symbol_tree_builder.py → symbol_tree/symbol_tree_builder.py} +8 -8
- mindspore/rewrite/{symbol_tree_dumper.py → symbol_tree/symbol_tree_dumper.py} +4 -4
- mindspore/run_check/_check_version.py +6 -14
- mindspore/run_check/run_check.py +1 -1
- mindspore/safeguard/rewrite_obfuscation.py +9 -19
- 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 +6 -5
- mindspore/train/_utils.py +178 -4
- mindspore/train/amp.py +167 -245
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/__init__.py +5 -2
- mindspore/train/callback/_backup_and_restore.py +5 -5
- mindspore/train/callback/_callback.py +4 -4
- mindspore/train/callback/_checkpoint.py +143 -29
- mindspore/train/callback/_cluster_monitor.py +201 -0
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_flops_collector.py +238 -0
- mindspore/train/callback/_landscape.py +15 -9
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_mindio_ttp.py +443 -0
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +2 -2
- mindspore/train/callback/_summary_collector.py +7 -7
- mindspore/train/callback/_time_monitor.py +3 -3
- mindspore/train/data_sink.py +6 -5
- mindspore/train/dataset_helper.py +60 -21
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/accuracy.py +7 -7
- mindspore/train/metrics/confusion_matrix.py +8 -6
- mindspore/train/metrics/cosine_similarity.py +6 -4
- mindspore/train/metrics/error.py +2 -2
- mindspore/train/metrics/metric.py +3 -3
- mindspore/train/metrics/perplexity.py +2 -1
- mindspore/train/metrics/topk.py +2 -2
- mindspore/train/mind_ir_pb2.py +89 -15
- mindspore/train/model.py +290 -60
- mindspore/train/serialization.py +495 -220
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +51 -28
- mindspore/train/train_thor/convert_utils.py +3 -3
- 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-2.2.14.dist-info → mindspore-2.3.0.dist-info}/METADATA +3 -3
- mindspore-2.3.0.dist-info/RECORD +1400 -0
- {mindspore-2.2.14.dist-info → mindspore-2.3.0.dist-info}/entry_points.txt +1 -0
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +0 -662
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +0 -377
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +0 -201
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +0 -515
- mindspore/gen_ops.py +0 -273
- mindspore/nn/layer/flash_attention.py +0 -189
- mindspore/ops/_op_impl/cpu/concat.py +0 -39
- mindspore/ops/_op_impl/cpu/tensor_shape.py +0 -42
- mindspore/ops/_op_impl/tbe/__init__.py +0 -47
- mindspore/ops/_op_impl/tbe/abs.py +0 -38
- mindspore/ops/_op_impl/tbe/abs_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/abs_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/abs_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/accumulate_n_v2.py +0 -41
- mindspore/ops/_op_impl/tbe/accumulate_n_v2_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/acos.py +0 -37
- mindspore/ops/_op_impl/tbe/acos_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/acos_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/acos_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/acosh.py +0 -37
- mindspore/ops/_op_impl/tbe/acosh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/acosh_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/acosh_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/act_ulq_clamp_max_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/act_ulq_clamp_min_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/acts_ulq.py +0 -45
- mindspore/ops/_op_impl/tbe/acts_ulq_input_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/adam_apply_one.py +0 -50
- mindspore/ops/_op_impl/tbe/adam_apply_one_assign.py +0 -53
- mindspore/ops/_op_impl/tbe/adam_apply_one_ds.py +0 -51
- mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay.py +0 -54
- mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_assign.py +0 -54
- mindspore/ops/_op_impl/tbe/adam_apply_one_with_decay_ds.py +0 -55
- mindspore/ops/_op_impl/tbe/adaptive_max_pool2d.py +0 -37
- mindspore/ops/_op_impl/tbe/add.py +0 -42
- mindspore/ops/_op_impl/tbe/add_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/add_n.py +0 -39
- mindspore/ops/_op_impl/tbe/add_n_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/addcdiv.py +0 -41
- mindspore/ops/_op_impl/tbe/addcdiv_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/addcmul.py +0 -43
- mindspore/ops/_op_impl/tbe/addcmul_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/apply_ada_max.py +0 -68
- mindspore/ops/_op_impl/tbe/apply_ada_max_ds.py +0 -69
- mindspore/ops/_op_impl/tbe/apply_adadelta.py +0 -66
- mindspore/ops/_op_impl/tbe/apply_adadelta_ds.py +0 -67
- mindspore/ops/_op_impl/tbe/apply_adagrad.py +0 -55
- mindspore/ops/_op_impl/tbe/apply_adagrad_d_a.py +0 -67
- mindspore/ops/_op_impl/tbe/apply_adagrad_ds.py +0 -56
- mindspore/ops/_op_impl/tbe/apply_adagrad_v2.py +0 -48
- mindspore/ops/_op_impl/tbe/apply_adagrad_v2_ds.py +0 -49
- mindspore/ops/_op_impl/tbe/apply_adam.py +0 -79
- mindspore/ops/_op_impl/tbe/apply_adam_ds.py +0 -80
- mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad.py +0 -60
- mindspore/ops/_op_impl/tbe/apply_adam_with_amsgrad_ds.py +0 -61
- mindspore/ops/_op_impl/tbe/apply_add_sign.py +0 -65
- mindspore/ops/_op_impl/tbe/apply_add_sign_ds.py +0 -66
- mindspore/ops/_op_impl/tbe/apply_centered_rms_prop.py +0 -77
- mindspore/ops/_op_impl/tbe/apply_centered_rms_prop_ds.py +0 -78
- mindspore/ops/_op_impl/tbe/apply_ftrl.py +0 -67
- mindspore/ops/_op_impl/tbe/apply_ftrl_ds.py +0 -68
- mindspore/ops/_op_impl/tbe/apply_gradient_descent.py +0 -44
- mindspore/ops/_op_impl/tbe/apply_gradient_descent_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/apply_keras_momentum.py +0 -49
- mindspore/ops/_op_impl/tbe/apply_momentum.py +0 -64
- mindspore/ops/_op_impl/tbe/apply_momentum_ds.py +0 -65
- mindspore/ops/_op_impl/tbe/apply_power_sign.py +0 -65
- mindspore/ops/_op_impl/tbe/apply_power_sign_ds.py +0 -66
- mindspore/ops/_op_impl/tbe/apply_proximal_adagrad.py +0 -57
- mindspore/ops/_op_impl/tbe/apply_proximal_adagrad_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent.py +0 -54
- mindspore/ops/_op_impl/tbe/apply_proximal_gradient_descent_ds.py +0 -55
- mindspore/ops/_op_impl/tbe/apply_rms_prop.py +0 -52
- mindspore/ops/_op_impl/tbe/approximate_equal.py +0 -39
- mindspore/ops/_op_impl/tbe/approximate_equal_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/arg_max.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_max_with_value.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_max_with_value_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/arg_min.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_min_v2_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/arg_min_with_value.py +0 -38
- mindspore/ops/_op_impl/tbe/arg_min_with_value_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/asin.py +0 -37
- mindspore/ops/_op_impl/tbe/asin_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/asin_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/asin_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/asinh.py +0 -37
- mindspore/ops/_op_impl/tbe/asinh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/asinh_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/asinh_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/assign.py +0 -79
- mindspore/ops/_op_impl/tbe/assign_add.py +0 -59
- mindspore/ops/_op_impl/tbe/assign_add_ds.py +0 -60
- mindspore/ops/_op_impl/tbe/assign_ds.py +0 -80
- mindspore/ops/_op_impl/tbe/assign_sub.py +0 -55
- mindspore/ops/_op_impl/tbe/assign_sub_ds.py +0 -56
- mindspore/ops/_op_impl/tbe/atan.py +0 -37
- mindspore/ops/_op_impl/tbe/atan2.py +0 -38
- mindspore/ops/_op_impl/tbe/atan2_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/atan_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/atan_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/atan_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/atanh.py +0 -37
- mindspore/ops/_op_impl/tbe/atanh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/avg_pool.py +0 -43
- mindspore/ops/_op_impl/tbe/avg_pool_3d.py +0 -44
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +0 -45
- mindspore/ops/_op_impl/tbe/avg_pool_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/avg_pool_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +0 -42
- mindspore/ops/_op_impl/tbe/basic_lstm_cell.py +0 -57
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad.py +0 -50
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_c_state_grad_v2.py +0 -51
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_input_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/basic_lstm_cell_weight_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/batch_matmul.py +0 -42
- mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/batch_matmul_v2.py +0 -47
- mindspore/ops/_op_impl/tbe/batch_to_space.py +0 -38
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +0 -38
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/batch_to_space_nd_v2.py +0 -41
- mindspore/ops/_op_impl/tbe/batchnorm.py +0 -58
- mindspore/ops/_op_impl/tbe/batchnorm_grad.py +0 -58
- mindspore/ops/_op_impl/tbe/bce_with_logits_loss.py +0 -42
- mindspore/ops/_op_impl/tbe/bessel_i0e.py +0 -37
- mindspore/ops/_op_impl/tbe/bessel_i0e_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/bessel_i1e.py +0 -37
- mindspore/ops/_op_impl/tbe/bessel_i1e_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/bias_add.py +0 -38
- mindspore/ops/_op_impl/tbe/bias_add_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/bias_add_grad.py +0 -53
- mindspore/ops/_op_impl/tbe/binary_cross_entropy.py +0 -39
- mindspore/ops/_op_impl/tbe/binary_cross_entropy_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/binary_cross_entropy_grad_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/bitwise_and.py +0 -39
- mindspore/ops/_op_impl/tbe/bitwise_and_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bitwise_or.py +0 -39
- mindspore/ops/_op_impl/tbe/bitwise_or_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bitwise_xor.py +0 -39
- mindspore/ops/_op_impl/tbe/bitwise_xor_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bn_infer.py +0 -43
- mindspore/ops/_op_impl/tbe/bn_infer_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/bn_infer_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/bn_infer_grad_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/bn_inference.py +0 -50
- mindspore/ops/_op_impl/tbe/bn_training_reduce.py +0 -38
- mindspore/ops/_op_impl/tbe/bn_training_reduce_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/bn_training_reduce_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/bn_training_reduce_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -52
- mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -53
- mindspore/ops/_op_impl/tbe/bn_training_update_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/bn_training_update_grad_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/bn_training_update_v2.py +0 -48
- mindspore/ops/_op_impl/tbe/bn_training_update_v3.py +0 -51
- mindspore/ops/_op_impl/tbe/bounding_box_decode.py +0 -41
- mindspore/ops/_op_impl/tbe/bounding_box_decode_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/bounding_box_encode.py +0 -38
- mindspore/ops/_op_impl/tbe/broadcast_to.py +0 -40
- mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/cast.py +0 -55
- mindspore/ops/_op_impl/tbe/cast_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/cdist.py +0 -38
- mindspore/ops/_op_impl/tbe/cdist_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/ceil.py +0 -37
- mindspore/ops/_op_impl/tbe/ceil_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/celu.py +0 -39
- mindspore/ops/_op_impl/tbe/centralization.py +0 -39
- mindspore/ops/_op_impl/tbe/check_valid.py +0 -38
- mindspore/ops/_op_impl/tbe/check_valid_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum.py +0 -41
- mindspore/ops/_op_impl/tbe/clip_by_norm_no_div_sum_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/clip_by_value.py +0 -41
- mindspore/ops/_op_impl/tbe/clip_by_value_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/concat.py +0 -40
- mindspore/ops/_op_impl/tbe/concat_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/confusion_matrix.py +0 -63
- mindspore/ops/_op_impl/tbe/confusion_mul_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/confusion_softmax_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/confusion_transpose_d.py +0 -39
- mindspore/ops/_op_impl/tbe/conv2d.py +0 -47
- mindspore/ops/_op_impl/tbe/conv2d_backprop_filter.py +0 -42
- mindspore/ops/_op_impl/tbe/conv2d_backprop_filter_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/conv2d_backprop_input.py +0 -42
- mindspore/ops/_op_impl/tbe/conv2d_backprop_input_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/conv2d_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/conv2d_transpose.py +0 -48
- mindspore/ops/_op_impl/tbe/conv3d.py +0 -45
- mindspore/ops/_op_impl/tbe/conv3d_backprop_filter.py +0 -42
- mindspore/ops/_op_impl/tbe/conv3d_backprop_input.py +0 -42
- mindspore/ops/_op_impl/tbe/conv3d_transpose.py +0 -47
- mindspore/ops/_op_impl/tbe/conv3d_transpose_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/cos.py +0 -37
- mindspore/ops/_op_impl/tbe/cos_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/cosh.py +0 -37
- mindspore/ops/_op_impl/tbe/cosh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/ctc_loss_v2.py +0 -42
- mindspore/ops/_op_impl/tbe/ctc_loss_v2_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/cum_sum.py +0 -42
- mindspore/ops/_op_impl/tbe/cum_sum_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/cummin.py +0 -41
- mindspore/ops/_op_impl/tbe/cumprod.py +0 -42
- mindspore/ops/_op_impl/tbe/data_format_dim_map.py +0 -38
- mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/deformable_offsets.py +0 -45
- mindspore/ops/_op_impl/tbe/deformable_offsets_grad.py +0 -48
- mindspore/ops/_op_impl/tbe/depth_to_space_ds.py +0 -49
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +0 -44
- mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_filter.py +0 -41
- mindspore/ops/_op_impl/tbe/depthwise_conv2d_backprop_input.py +0 -41
- mindspore/ops/_op_impl/tbe/diag.py +0 -38
- mindspore/ops/_op_impl/tbe/diag_part.py +0 -38
- mindspore/ops/_op_impl/tbe/dilation.py +0 -40
- mindspore/ops/_op_impl/tbe/div.py +0 -41
- mindspore/ops/_op_impl/tbe/div_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/div_no_nan.py +0 -41
- mindspore/ops/_op_impl/tbe/div_no_nan_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/dropout_do_mask.py +0 -38
- mindspore/ops/_op_impl/tbe/dropout_do_mask_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/dropout_do_mask_v3.py +0 -39
- mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +0 -34
- mindspore/ops/_op_impl/tbe/dynamic_gru_v2.py +0 -95
- mindspore/ops/_op_impl/tbe/dynamic_rnn.py +0 -82
- mindspore/ops/_op_impl/tbe/elu.py +0 -38
- mindspore/ops/_op_impl/tbe/elu_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/elu_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/elu_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/equal.py +0 -42
- mindspore/ops/_op_impl/tbe/equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/erf.py +0 -37
- mindspore/ops/_op_impl/tbe/erf_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/erfc.py +0 -37
- mindspore/ops/_op_impl/tbe/erfc_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/erfinv.py +0 -36
- mindspore/ops/_op_impl/tbe/exp.py +0 -40
- mindspore/ops/_op_impl/tbe/exp_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/expand_dims.py +0 -38
- mindspore/ops/_op_impl/tbe/expm1.py +0 -37
- mindspore/ops/_op_impl/tbe/expm1_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/extract_image_patches.py +0 -41
- mindspore/ops/_op_impl/tbe/extract_volume_patches.py +0 -39
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars.py +0 -39
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_gradient.py +0 -43
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel.py +0 -39
- mindspore/ops/_op_impl/tbe/fake_quant_with_min_max_vars_per_channel_gradient.py +0 -43
- mindspore/ops/_op_impl/tbe/fast_gelu.py +0 -37
- mindspore/ops/_op_impl/tbe/fast_gelu_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/fast_gelu_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/fast_gelu_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/fill.py +0 -56
- mindspore/ops/_op_impl/tbe/fill_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/flatten.py +0 -48
- mindspore/ops/_op_impl/tbe/floor.py +0 -37
- mindspore/ops/_op_impl/tbe/floor_div.py +0 -41
- mindspore/ops/_op_impl/tbe/floor_div_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/floor_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/floor_mod.py +0 -39
- mindspore/ops/_op_impl/tbe/floor_mod_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/fused_dbn_dw.py +0 -52
- mindspore/ops/_op_impl/tbe/fused_mul_add.py +0 -38
- mindspore/ops/_op_impl/tbe/fused_mul_add_n.py +0 -48
- mindspore/ops/_op_impl/tbe/fused_mul_add_n_l2loss.py +0 -53
- mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum.py +0 -57
- mindspore/ops/_op_impl/tbe/fused_mul_apply_momentum_extern.py +0 -67
- mindspore/ops/_op_impl/tbe/gather_nd.py +0 -52
- mindspore/ops/_op_impl/tbe/gather_nd_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
- mindspore/ops/_op_impl/tbe/gather_v2_ds.py +0 -68
- mindspore/ops/_op_impl/tbe/gelu.py +0 -37
- mindspore/ops/_op_impl/tbe/gelu_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/gelu_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/gelu_grad_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/ger.py +0 -43
- mindspore/ops/_op_impl/tbe/ger_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/greater.py +0 -43
- mindspore/ops/_op_impl/tbe/greater_equal.py +0 -41
- mindspore/ops/_op_impl/tbe/greater_equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad.py +0 -51
- mindspore/ops/_op_impl/tbe/gru_v2_hidden_grad_cell.py +0 -52
- mindspore/ops/_op_impl/tbe/hard_swish.py +0 -37
- mindspore/ops/_op_impl/tbe/hard_swish_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/hard_swish_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/hard_swish_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/histogram_fixed_width.py +0 -40
- mindspore/ops/_op_impl/tbe/hshrink.py +0 -33
- mindspore/ops/_op_impl/tbe/hshrink_grad.py +0 -37
- mindspore/ops/_op_impl/tbe/hsigmoid.py +0 -45
- mindspore/ops/_op_impl/tbe/hsigmoid_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/ifmr.py +0 -47
- mindspore/ops/_op_impl/tbe/ifmr_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/im2col.py +0 -42
- mindspore/ops/_op_impl/tbe/in_top_k.py +0 -37
- mindspore/ops/_op_impl/tbe/inplace_add.py +0 -39
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +0 -46
- mindspore/ops/_op_impl/tbe/inplace_sub.py +0 -39
- mindspore/ops/_op_impl/tbe/inplace_update.py +0 -39
- mindspore/ops/_op_impl/tbe/inplace_update_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/inv.py +0 -38
- mindspore/ops/_op_impl/tbe/inv_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/inv_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/inv_grad_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/invert.py +0 -37
- mindspore/ops/_op_impl/tbe/invert_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/iou.py +0 -38
- mindspore/ops/_op_impl/tbe/iou_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/is_close.py +0 -40
- mindspore/ops/_op_impl/tbe/kl_div_loss.py +0 -38
- mindspore/ops/_op_impl/tbe/kl_div_loss_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/kl_div_loss_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/l2_loss.py +0 -36
- mindspore/ops/_op_impl/tbe/l2_loss_ds.py +0 -37
- mindspore/ops/_op_impl/tbe/l2_normalize.py +0 -38
- mindspore/ops/_op_impl/tbe/l2_normalize_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/lamb_apply_optimizer_assign.py +0 -55
- mindspore/ops/_op_impl/tbe/lamb_apply_weight_assign.py +0 -42
- mindspore/ops/_op_impl/tbe/lamb_next_mv.py +0 -59
- mindspore/ops/_op_impl/tbe/lamb_next_mv_with_decay.py +0 -59
- mindspore/ops/_op_impl/tbe/lamb_next_right.py +0 -44
- mindspore/ops/_op_impl/tbe/lamb_update_with_lr.py +0 -48
- mindspore/ops/_op_impl/tbe/lamb_update_with_lr_v2.py +0 -44
- mindspore/ops/_op_impl/tbe/lars_update.py +0 -50
- mindspore/ops/_op_impl/tbe/lars_update_ds.py +0 -51
- mindspore/ops/_op_impl/tbe/layer_norm.py +0 -46
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop.py +0 -44
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2.py +0 -40
- mindspore/ops/_op_impl/tbe/layer_norm_beta_gamma_backprop_v2_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/layer_norm_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/layer_norm_grad.py +0 -48
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop.py +0 -43
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2.py +0 -45
- mindspore/ops/_op_impl/tbe/layer_norm_x_backprop_v2_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/lerp.py +0 -38
- mindspore/ops/_op_impl/tbe/less.py +0 -41
- mindspore/ops/_op_impl/tbe/less_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/less_equal.py +0 -41
- mindspore/ops/_op_impl/tbe/less_equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/log.py +0 -40
- mindspore/ops/_op_impl/tbe/log1p.py +0 -37
- mindspore/ops/_op_impl/tbe/log1p_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/log_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/logical_and.py +0 -37
- mindspore/ops/_op_impl/tbe/logical_and_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/logical_not.py +0 -36
- mindspore/ops/_op_impl/tbe/logical_not_ds.py +0 -37
- mindspore/ops/_op_impl/tbe/logical_or.py +0 -37
- mindspore/ops/_op_impl/tbe/logical_or_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/logsoftmax.py +0 -37
- mindspore/ops/_op_impl/tbe/logsoftmax_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/logsoftmax_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/logsoftmax_grad_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/lp_norm.py +0 -40
- mindspore/ops/_op_impl/tbe/lp_norm_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/lrn.py +0 -41
- mindspore/ops/_op_impl/tbe/lrn_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/lstm_input_grad.py +0 -51
- mindspore/ops/_op_impl/tbe/masked_fill.py +0 -40
- mindspore/ops/_op_impl/tbe/masked_fill_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/matmul.py +0 -53
- mindspore/ops/_op_impl/tbe/matmul_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/matmul_v2.py +0 -50
- mindspore/ops/_op_impl/tbe/matrix_diag.py +0 -45
- mindspore/ops/_op_impl/tbe/matrix_diag_part.py +0 -45
- mindspore/ops/_op_impl/tbe/matrix_set_diag.py +0 -46
- mindspore/ops/_op_impl/tbe/max_pool.py +0 -39
- mindspore/ops/_op_impl/tbe/max_pool3d.py +0 -44
- mindspore/ops/_op_impl/tbe/max_pool3d_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/max_pool3d_grad_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/max_pool_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/max_pool_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/max_pool_grad_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/max_pool_grad_grad_with_argmax.py +0 -41
- mindspore/ops/_op_impl/tbe/max_pool_grad_with_argmax.py +0 -42
- mindspore/ops/_op_impl/tbe/max_pool_with_argmax.py +0 -40
- mindspore/ops/_op_impl/tbe/maximum.py +0 -39
- mindspore/ops/_op_impl/tbe/maximum_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/maximum_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/maximum_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/mem_set.py +0 -38
- mindspore/ops/_op_impl/tbe/minimum.py +0 -40
- mindspore/ops/_op_impl/tbe/minimum_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/minimum_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/minimum_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/mish.py +0 -37
- mindspore/ops/_op_impl/tbe/mod.py +0 -41
- mindspore/ops/_op_impl/tbe/mod_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/mul.py +0 -37
- mindspore/ops/_op_impl/tbe/mul_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/mul_no_nan.py +0 -39
- mindspore/ops/_op_impl/tbe/mul_no_nan_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/multilabel_margin_loss.py +0 -39
- mindspore/ops/_op_impl/tbe/neg.py +0 -39
- mindspore/ops/_op_impl/tbe/neg_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/new_im2col.py +0 -40
- mindspore/ops/_op_impl/tbe/nll_loss.py +0 -41
- mindspore/ops/_op_impl/tbe/nll_loss_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/nms_with_mask.py +0 -39
- mindspore/ops/_op_impl/tbe/not_equal.py +0 -41
- mindspore/ops/_op_impl/tbe/not_equal_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/npu_alloc_float_status.py +0 -34
- mindspore/ops/_op_impl/tbe/npu_clear_float_status.py +0 -35
- mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +0 -35
- mindspore/ops/_op_impl/tbe/npu_get_float_status.py +0 -35
- mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +0 -35
- mindspore/ops/_op_impl/tbe/one_hot.py +0 -48
- mindspore/ops/_op_impl/tbe/one_hot_ds.py +0 -45
- mindspore/ops/_op_impl/tbe/ones_like.py +0 -40
- mindspore/ops/_op_impl/tbe/ones_like_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling.py +0 -40
- mindspore/ops/_op_impl/tbe/p_s_r_o_i_pooling_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/pack.py +0 -58
- mindspore/ops/_op_impl/tbe/pack_ds.py +0 -59
- mindspore/ops/_op_impl/tbe/pad_d.py +0 -40
- mindspore/ops/_op_impl/tbe/pad_d_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/parallel_concat.py +0 -70
- mindspore/ops/_op_impl/tbe/parallel_resize_bilinear.py +0 -45
- mindspore/ops/_op_impl/tbe/parallel_resize_bilinear_grad.py +0 -44
- mindspore/ops/_op_impl/tbe/pdist.py +0 -36
- mindspore/ops/_op_impl/tbe/pooling.py +0 -46
- mindspore/ops/_op_impl/tbe/population_count.py +0 -38
- mindspore/ops/_op_impl/tbe/pow.py +0 -41
- mindspore/ops/_op_impl/tbe/pow_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/prelu.py +0 -37
- mindspore/ops/_op_impl/tbe/prelu_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/prelu_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/range.py +0 -39
- mindspore/ops/_op_impl/tbe/real_div.py +0 -38
- mindspore/ops/_op_impl/tbe/real_div_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reciprocal.py +0 -36
- mindspore/ops/_op_impl/tbe/reciprocal_ds.py +0 -37
- mindspore/ops/_op_impl/tbe/reciprocal_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/reciprocal_grad_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_all.py +0 -38
- mindspore/ops/_op_impl/tbe/reduce_all_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_any.py +0 -38
- mindspore/ops/_op_impl/tbe/reduce_any_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_max.py +0 -43
- mindspore/ops/_op_impl/tbe/reduce_max_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_mean.py +0 -40
- mindspore/ops/_op_impl/tbe/reduce_mean_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/reduce_min.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_min_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_prod.py +0 -42
- mindspore/ops/_op_impl/tbe/reduce_prod_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/reduce_std.py +0 -44
- mindspore/ops/_op_impl/tbe/reduce_sum.py +0 -39
- mindspore/ops/_op_impl/tbe/reduce_sum_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/relu.py +0 -39
- mindspore/ops/_op_impl/tbe/relu6.py +0 -38
- mindspore/ops/_op_impl/tbe/relu6_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/relu6_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/relu6_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/relu_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/relu_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/relu_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/relu_grad_v2.py +0 -40
- mindspore/ops/_op_impl/tbe/relu_grad_v2_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/relu_v2.py +0 -40
- mindspore/ops/_op_impl/tbe/relu_v2_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/renorm.py +0 -39
- mindspore/ops/_op_impl/tbe/resize_bilinear.py +0 -40
- mindspore/ops/_op_impl/tbe/resize_bilinear_grad.py +0 -41
- mindspore/ops/_op_impl/tbe/resize_bilinear_v2.py +0 -43
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor.py +0 -40
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/resize_nearest_neighbor_grad_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/reverse_v2_d.py +0 -37
- mindspore/ops/_op_impl/tbe/rint.py +0 -37
- mindspore/ops/_op_impl/tbe/rint_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/roi_align.py +0 -43
- mindspore/ops/_op_impl/tbe/roi_align_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/roi_align_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/roi_align_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/roll.py +0 -42
- mindspore/ops/_op_impl/tbe/round.py +0 -38
- mindspore/ops/_op_impl/tbe/round_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/rsqrt.py +0 -37
- mindspore/ops/_op_impl/tbe/rsqrt_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/rsqrt_grad.py +0 -40
- mindspore/ops/_op_impl/tbe/rsqrt_grad_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/scatter_add.py +0 -44
- mindspore/ops/_op_impl/tbe/scatter_div.py +0 -46
- mindspore/ops/_op_impl/tbe/scatter_max.py +0 -45
- mindspore/ops/_op_impl/tbe/scatter_min.py +0 -45
- mindspore/ops/_op_impl/tbe/scatter_mul.py +0 -44
- mindspore/ops/_op_impl/tbe/scatter_nd.py +0 -41
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -45
- mindspore/ops/_op_impl/tbe/scatter_nd_d.py +0 -41
- mindspore/ops/_op_impl/tbe/scatter_nd_ds.py +0 -49
- mindspore/ops/_op_impl/tbe/scatter_nd_sub.py +0 -47
- mindspore/ops/_op_impl/tbe/scatter_nd_sub_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/scatter_nd_update.py +0 -47
- mindspore/ops/_op_impl/tbe/scatter_nd_update_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add.py +0 -39
- mindspore/ops/_op_impl/tbe/scatter_non_aliasing_add_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/scatter_sub.py +0 -47
- mindspore/ops/_op_impl/tbe/scatter_sub_ds.py +0 -48
- mindspore/ops/_op_impl/tbe/scatter_update.py +0 -43
- mindspore/ops/_op_impl/tbe/select.py +0 -38
- mindspore/ops/_op_impl/tbe/select_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/selu.py +0 -39
- mindspore/ops/_op_impl/tbe/selu_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/sgd.py +0 -62
- mindspore/ops/_op_impl/tbe/sigmoid.py +0 -37
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad.py +0 -42
- mindspore/ops/_op_impl/tbe/sigmoid_cross_entropy_with_logits_grad_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/sigmoid_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sigmoid_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/sigmoid_grad_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/sign.py +0 -38
- mindspore/ops/_op_impl/tbe/sign_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/sin.py +0 -37
- mindspore/ops/_op_impl/tbe/sin_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sinh.py +0 -37
- mindspore/ops/_op_impl/tbe/sinh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/slice.py +0 -58
- mindspore/ops/_op_impl/tbe/smooth_l1_loss.py +0 -45
- mindspore/ops/_op_impl/tbe/smooth_l1_loss_ds.py +0 -46
- mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad.py +0 -46
- mindspore/ops/_op_impl/tbe/smooth_l1_loss_grad_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/soft_margin_loss.py +0 -38
- mindspore/ops/_op_impl/tbe/soft_margin_loss_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/soft_shrink.py +0 -36
- mindspore/ops/_op_impl/tbe/soft_shrink_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/softmax.py +0 -37
- mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits.py +0 -38
- mindspore/ops/_op_impl/tbe/softmax_cross_entropy_with_logits_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/softmax_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/softmax_grad_ext.py +0 -42
- mindspore/ops/_op_impl/tbe/softmax_v2_with_dropout_do_mask_v3.py +0 -39
- mindspore/ops/_op_impl/tbe/softplus.py +0 -37
- mindspore/ops/_op_impl/tbe/softplus_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/softplus_grad.py +0 -38
- mindspore/ops/_op_impl/tbe/softplus_grad_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/softsign.py +0 -37
- mindspore/ops/_op_impl/tbe/softsign_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sort.py +0 -38
- mindspore/ops/_op_impl/tbe/sort_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/space_to_batch.py +0 -38
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +0 -38
- mindspore/ops/_op_impl/tbe/space_to_depth.py +0 -47
- mindspore/ops/_op_impl/tbe/sparse_apply_adadelta.py +0 -56
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad.py +0 -45
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_ds.py +0 -46
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2.py +0 -46
- mindspore/ops/_op_impl/tbe/sparse_apply_adagrad_v2_ds.py +0 -47
- mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d.py +0 -53
- mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_d_ds.py +0 -50
- mindspore/ops/_op_impl/tbe/sparse_apply_ftrl_v2.py +0 -50
- mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad.py +0 -66
- mindspore/ops/_op_impl/tbe/sparse_apply_proximal_adagrad_ds.py +0 -67
- mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop.py +0 -57
- mindspore/ops/_op_impl/tbe/sparse_apply_r_m_s_prop_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/sparse_gather_v2.py +0 -56
- mindspore/ops/_op_impl/tbe/sparse_gather_v2_ds.py +0 -58
- mindspore/ops/_op_impl/tbe/split_d.py +0 -38
- mindspore/ops/_op_impl/tbe/split_d_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/split_v.py +0 -39
- mindspore/ops/_op_impl/tbe/splitv.py +0 -39
- mindspore/ops/_op_impl/tbe/sqrt.py +0 -37
- mindspore/ops/_op_impl/tbe/sqrt_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/sqrt_grad.py +0 -43
- mindspore/ops/_op_impl/tbe/sqrt_grad_ds.py +0 -44
- mindspore/ops/_op_impl/tbe/square.py +0 -38
- mindspore/ops/_op_impl/tbe/square_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/square_sum_all.py +0 -40
- mindspore/ops/_op_impl/tbe/square_sum_all_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/square_sum_v1.py +0 -38
- mindspore/ops/_op_impl/tbe/square_sum_v1_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/square_sum_v2.py +0 -39
- mindspore/ops/_op_impl/tbe/squared_difference.py +0 -39
- mindspore/ops/_op_impl/tbe/squared_difference_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/squeeze.py +0 -37
- mindspore/ops/_op_impl/tbe/strided_read.py +0 -38
- mindspore/ops/_op_impl/tbe/strided_slice_d.py +0 -44
- mindspore/ops/_op_impl/tbe/strided_slice_ds.py +0 -71
- mindspore/ops/_op_impl/tbe/strided_slice_grad_d.py +0 -51
- mindspore/ops/_op_impl/tbe/strided_slice_grad_ds.py +0 -57
- mindspore/ops/_op_impl/tbe/strided_write.py +0 -38
- mindspore/ops/_op_impl/tbe/sub.py +0 -39
- mindspore/ops/_op_impl/tbe/sub_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/tan.py +0 -38
- mindspore/ops/_op_impl/tbe/tan_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/tanh.py +0 -37
- mindspore/ops/_op_impl/tbe/tanh_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/tanh_grad.py +0 -39
- mindspore/ops/_op_impl/tbe/tanh_grad_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/tensor_move.py +0 -49
- mindspore/ops/_op_impl/tbe/tensor_move_ds.py +0 -50
- mindspore/ops/_op_impl/tbe/tensor_scatter_update.py +0 -41
- mindspore/ops/_op_impl/tbe/tile.py +0 -37
- mindspore/ops/_op_impl/tbe/tile_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/top_k.py +0 -42
- mindspore/ops/_op_impl/tbe/top_k_ds.py +0 -43
- mindspore/ops/_op_impl/tbe/trans_data.py +0 -167
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +0 -180
- mindspore/ops/_op_impl/tbe/trans_data_rnn.py +0 -44
- mindspore/ops/_op_impl/tbe/transpose.py +0 -60
- mindspore/ops/_op_impl/tbe/transpose_d.py +0 -47
- mindspore/ops/_op_impl/tbe/transpose_nod.py +0 -60
- mindspore/ops/_op_impl/tbe/trunc.py +0 -39
- mindspore/ops/_op_impl/tbe/truncate_div.py +0 -41
- mindspore/ops/_op_impl/tbe/truncate_div_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/truncate_mod.py +0 -41
- mindspore/ops/_op_impl/tbe/truncate_mod_ds.py +0 -42
- mindspore/ops/_op_impl/tbe/unpack.py +0 -38
- mindspore/ops/_op_impl/tbe/unpack_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/unsorted_segment_max.py +0 -49
- mindspore/ops/_op_impl/tbe/unsorted_segment_max_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/unsorted_segment_min.py +0 -49
- mindspore/ops/_op_impl/tbe/unsorted_segment_min_ds.py +0 -40
- mindspore/ops/_op_impl/tbe/unsorted_segment_prod.py +0 -49
- mindspore/ops/_op_impl/tbe/unsorted_segment_prod_ds.py +0 -38
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum.py +0 -38
- mindspore/ops/_op_impl/tbe/unsorted_segment_sum_ds.py +0 -41
- mindspore/ops/_op_impl/tbe/wts_arq.py +0 -40
- mindspore/ops/_op_impl/tbe/xdivy.py +0 -38
- mindspore/ops/_op_impl/tbe/xdivy_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/xlogy.py +0 -38
- mindspore/ops/_op_impl/tbe/xlogy_ds.py +0 -39
- mindspore/ops/_op_impl/tbe/zeros_like.py +0 -41
- mindspore/ops/_op_impl/tbe/zeros_like_ds.py +0 -42
- mindspore/ops/_tracefunc.py +0 -241
- mindspore/ops/arg_dtype_cast.py +0 -54
- mindspore/rewrite/api/tree_node_helper.py +0 -60
- mindspore/rewrite/ast_helpers/ast_creator.py +0 -115
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +0 -267
- mindspore/rewrite/ast_transformers/remove_return_out_of_if.py +0 -228
- mindspore/rewrite/namespace.py +0 -53
- mindspore-2.2.14.dist-info/RECORD +0 -1924
- {mindspore-2.2.14.dist-info → mindspore-2.3.0.dist-info}/WHEEL +0 -0
- {mindspore-2.2.14.dist-info → mindspore-2.3.0.dist-info}/top_level.txt +0 -0
mindspore/common/api.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This is the Python adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/).
|
|
2
2
|
#
|
|
3
|
-
# Copyright 2020-
|
|
3
|
+
# Copyright 2020-2024 Huawei Technologies Co., Ltd
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
|
@@ -40,7 +40,7 @@ from mindspore.common.sparse_tensor import COOTensor as PythonCOOTensor
|
|
|
40
40
|
from mindspore.common.sparse_tensor import RowTensor as PythonRowTensor
|
|
41
41
|
from mindspore._c_expression import GraphExecutor_, Tensor, CSRTensor, RowTensor, COOTensor, \
|
|
42
42
|
PyNativeExecutor_, verify_inputs_signature, init_exec_dataset, _set_dataset_mode_config, init_pipeline, \
|
|
43
|
-
_ms_memory_recycle, _bind_device_ctx
|
|
43
|
+
_ms_memory_recycle, _bind_device_ctx, jit_mode_pi_enable, jit_mode_pi_compile
|
|
44
44
|
from mindspore.parallel._ps_context import _is_role_sched
|
|
45
45
|
from mindspore.parallel._utils import _check_full_batch, _get_parameter_broadcast, _is_pynative_parallel, \
|
|
46
46
|
_is_in_auto_parallel_mode
|
|
@@ -62,6 +62,68 @@ function_phases = dict()
|
|
|
62
62
|
BROADCAST_PHASE = "_broadcast_"
|
|
63
63
|
_PYNATIVE_PARALLEL_FUNC_NAME = "after_shard"
|
|
64
64
|
|
|
65
|
+
ARG_SPECIFIED = "arg_specified_infos"
|
|
66
|
+
TOTAL_ARG_LEN = "total_arg_length"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def _check_recompile_args(compile_args, kwargs):
|
|
70
|
+
"""Check recompile of graph"""
|
|
71
|
+
|
|
72
|
+
def _check_constant_tensor_arg(arg):
|
|
73
|
+
if hasattr(arg, "__ms_mutable__"):
|
|
74
|
+
return False
|
|
75
|
+
if isinstance(arg, (list, tuple)):
|
|
76
|
+
return any(_check_constant_tensor_arg(x) for x in arg)
|
|
77
|
+
return isinstance(arg, Tensor)
|
|
78
|
+
|
|
79
|
+
for v in kwargs.values():
|
|
80
|
+
compile_args += (v,)
|
|
81
|
+
for arg in compile_args:
|
|
82
|
+
if not isinstance(arg, tuple) and not isinstance(arg, list):
|
|
83
|
+
continue
|
|
84
|
+
if _check_constant_tensor_arg(arg):
|
|
85
|
+
logger.warning(f"Constant value tensor are detected in tuple or list, which might cause recompiling "
|
|
86
|
+
f"when tensor value changes. You can use mutable(Tensor) or mutable(tuple(Tensor)) "
|
|
87
|
+
f"to set tensor's value as variable to to avoid recompiling. The tuple or list arg "
|
|
88
|
+
f"is: {arg} .")
|
|
89
|
+
return
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def _check_recompile(obj, compile_args, kwargs, full_function_name, create_time, echo_function_name):
|
|
93
|
+
"""Warning when the function has been compiled."""
|
|
94
|
+
ignore_dirs = ["mindspore/ops", "mindspore/nn"]
|
|
95
|
+
if any((lambda x: x in full_function_name)(x) for x in ignore_dirs):
|
|
96
|
+
return
|
|
97
|
+
|
|
98
|
+
if full_function_name in function_phases:
|
|
99
|
+
warning_times = 1
|
|
100
|
+
if len(function_phases[full_function_name]) >= warning_times \
|
|
101
|
+
and create_time not in function_phases[full_function_name]:
|
|
102
|
+
if isinstance(obj, ms.nn.Cell):
|
|
103
|
+
tips = f"Please try to create {echo_function_name} instance only once to avoid recompiling. "
|
|
104
|
+
logger.info(f"The {echo_function_name} has been compiled again. "
|
|
105
|
+
f"{tips} ")
|
|
106
|
+
else:
|
|
107
|
+
tips = "Try to decorate the function with @jit(hash_args=...) " \
|
|
108
|
+
"or @jit(compile_once=True) to reduce the compile time. " \
|
|
109
|
+
"For more details, get instructions about `jit` at " \
|
|
110
|
+
"https://www.mindspore.cn/search?inputValue=jit."
|
|
111
|
+
logger.warning(f"The {echo_function_name} has been compiled again. "
|
|
112
|
+
f"{tips} ")
|
|
113
|
+
else:
|
|
114
|
+
_check_recompile_args(compile_args, kwargs)
|
|
115
|
+
else:
|
|
116
|
+
function_phases[full_function_name] = set()
|
|
117
|
+
function_phases[full_function_name].add(create_time)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def _ms_adapter_tensor_as_parameter_output(data):
|
|
121
|
+
"""Check whether the data is an output from a parameter which is a ms_adapter tensor.
|
|
122
|
+
Pylint: disable=unidiomatic-typecheck.
|
|
123
|
+
"""
|
|
124
|
+
return ms_adapter_registry.is_registered and isinstance(data, ms_adapter_registry.tensor) \
|
|
125
|
+
and hasattr(data, "__ms_parameter_output__") and getattr(data, "__ms_parameter_output__")
|
|
126
|
+
|
|
65
127
|
|
|
66
128
|
def _convert_python_data(data):
|
|
67
129
|
"""
|
|
@@ -73,8 +135,10 @@ def _convert_python_data(data):
|
|
|
73
135
|
Returns:
|
|
74
136
|
data, a data convert C++ to python
|
|
75
137
|
"""
|
|
76
|
-
if isinstance(data, Tensor) and data.adapter_flag:
|
|
138
|
+
if isinstance(data, (Tensor, PythonTensor)) and data.adapter_flag:
|
|
77
139
|
return ms_adapter_registry.tensor(data)
|
|
140
|
+
if _ms_adapter_tensor_as_parameter_output(data) and hasattr(data, "tensor"):
|
|
141
|
+
return data.tensor
|
|
78
142
|
if isinstance(data, Tensor) and not isinstance(data, PythonTensor):
|
|
79
143
|
return PythonTensor(data, internal=True)
|
|
80
144
|
if isinstance(data, CSRTensor) and not isinstance(data, PythonCSRTensor):
|
|
@@ -83,7 +147,7 @@ def _convert_python_data(data):
|
|
|
83
147
|
return PythonCOOTensor(coo_tensor=data)
|
|
84
148
|
if isinstance(data, RowTensor) and not isinstance(data, PythonRowTensor):
|
|
85
149
|
return PythonRowTensor(row_tensor=data)
|
|
86
|
-
if
|
|
150
|
+
if data.__class__ is tuple:
|
|
87
151
|
# Handle namedtuple since its type is tuple.
|
|
88
152
|
if hasattr(data, "_fields"):
|
|
89
153
|
type_name = data.__class__.__name__
|
|
@@ -91,12 +155,12 @@ def _convert_python_data(data):
|
|
|
91
155
|
fields = data_dict.keys()
|
|
92
156
|
return namedtuple(type_name, fields)(**_convert_python_data(data_dict))
|
|
93
157
|
return tuple(_convert_python_data(x) for x in data)
|
|
94
|
-
if
|
|
158
|
+
if data.__class__ is list:
|
|
95
159
|
# Keep list object not change for inplace operation.
|
|
96
160
|
for i in range(len(data)):
|
|
97
161
|
data[i] = _convert_python_data(data[i])
|
|
98
162
|
return data
|
|
99
|
-
if
|
|
163
|
+
if data.__class__ is dict:
|
|
100
164
|
# Keep the dict object not change.
|
|
101
165
|
keys = tuple(data.keys())
|
|
102
166
|
for key in keys:
|
|
@@ -167,6 +231,7 @@ def _handle_func_args(func, *args, **kwargs):
|
|
|
167
231
|
|
|
168
232
|
sys_path = list(sys.path)
|
|
169
233
|
# Get the entry script path.
|
|
234
|
+
entry_script_path = None
|
|
170
235
|
if sys.argv and sys.argv[0] != '':
|
|
171
236
|
entry_script_path = os.path.realpath(sys.argv[0])
|
|
172
237
|
entry_script_path_dir = os.path.split(entry_script_path)[0]
|
|
@@ -260,7 +325,7 @@ def _get_parameter_layout():
|
|
|
260
325
|
return layout
|
|
261
326
|
|
|
262
327
|
|
|
263
|
-
def _handle_arg(obj, arg):
|
|
328
|
+
def _handle_arg(obj, arg, compile_arg):
|
|
264
329
|
"""Handle arg for runtime .If need handle the arg, return True"""
|
|
265
330
|
if isinstance(arg, PythonTensor):
|
|
266
331
|
if arg.has_init:
|
|
@@ -269,7 +334,7 @@ def _handle_arg(obj, arg):
|
|
|
269
334
|
return arg
|
|
270
335
|
elif isinstance(arg, (Tensor, CSRTensor, COOTensor)):
|
|
271
336
|
return arg
|
|
272
|
-
elif hasattr(
|
|
337
|
+
elif compile_arg is not None and hasattr(compile_arg, "__ms_mutable__") and getattr(compile_arg, "__ms_mutable__"):
|
|
273
338
|
# mutable([]) will be eliminated by FuncGraphSpecializer, and empty list is not supported by backend.
|
|
274
339
|
if isinstance(arg, list) and not arg:
|
|
275
340
|
return None
|
|
@@ -282,22 +347,172 @@ def _handle_arg(obj, arg):
|
|
|
282
347
|
return None
|
|
283
348
|
|
|
284
349
|
|
|
285
|
-
def
|
|
350
|
+
def _handle_arg_predict(obj, arg, compile_arg):
|
|
351
|
+
"""Handle arg for runtime .If need handle the arg, return True"""
|
|
352
|
+
if arg is None:
|
|
353
|
+
return None
|
|
354
|
+
|
|
355
|
+
if isinstance(arg, (int, float)):
|
|
356
|
+
return None
|
|
357
|
+
|
|
358
|
+
if isinstance(arg, (list, tuple)):
|
|
359
|
+
if compile_arg is not None and hasattr(compile_arg, "__ms_mutable__") and \
|
|
360
|
+
getattr(compile_arg, "__ms_mutable__"):
|
|
361
|
+
# mutable([]) will be eliminated by FuncGraphSpecializer, and empty list is not supported by backend.
|
|
362
|
+
if isinstance(arg, list) and not arg:
|
|
363
|
+
return None
|
|
364
|
+
return arg
|
|
365
|
+
if hasattr(obj, "enable_tuple_broaden") and obj.enable_tuple_broaden and isinstance(arg, tuple) and \
|
|
366
|
+
_check_all_tensor(arg):
|
|
367
|
+
return arg
|
|
368
|
+
return None
|
|
369
|
+
return arg
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
def _get_args_for_run(obj, args, kwargs, compile_args):
|
|
373
|
+
"""Get the actual input args and kwargs for runtime."""
|
|
374
|
+
new_args = []
|
|
375
|
+
for arg, compile_arg in zip(args, compile_args):
|
|
376
|
+
new_arg = _handle_arg(obj, arg, compile_arg)
|
|
377
|
+
if new_arg is not None:
|
|
378
|
+
new_args.append(new_arg)
|
|
379
|
+
|
|
380
|
+
for _, value in kwargs.items():
|
|
381
|
+
new_value = _handle_arg(obj, value, None)
|
|
382
|
+
if new_value is not None:
|
|
383
|
+
new_args.append(new_value)
|
|
384
|
+
|
|
385
|
+
return new_args
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
def _get_args_for_run_predict(obj, args, kwargs, compile_args):
|
|
286
389
|
"""Get the actual input args and kwargs for runtime."""
|
|
287
390
|
new_args = []
|
|
288
|
-
for arg in args:
|
|
289
|
-
new_arg =
|
|
391
|
+
for arg, compile_arg in zip(args, compile_args):
|
|
392
|
+
new_arg = _handle_arg_predict(obj, arg, compile_arg)
|
|
290
393
|
if new_arg is not None:
|
|
291
394
|
new_args.append(new_arg)
|
|
292
395
|
|
|
293
396
|
for _, value in kwargs.items():
|
|
294
|
-
new_value =
|
|
397
|
+
new_value = _handle_arg_predict(obj, value, None)
|
|
295
398
|
if new_value is not None:
|
|
296
399
|
new_args.append(new_value)
|
|
297
400
|
|
|
298
401
|
return new_args
|
|
299
402
|
|
|
300
403
|
|
|
404
|
+
def _is_args_fullmode(args, is_init=True):
|
|
405
|
+
"""Check whether the arguments is for incremental-mode.
|
|
406
|
+
|
|
407
|
+
Args:
|
|
408
|
+
args (Union[list, tuple, dict, Tensor]): Given arguments.
|
|
409
|
+
is_init (bool): Is check in argument initialization phase.
|
|
410
|
+
|
|
411
|
+
Raises:
|
|
412
|
+
RuntimeError: loss necessary keys and values for incremental-mode.
|
|
413
|
+
|
|
414
|
+
Returns:
|
|
415
|
+
bool: Fullmode or not.
|
|
416
|
+
"""
|
|
417
|
+
if not isinstance(args, dict):
|
|
418
|
+
return True
|
|
419
|
+
if not is_init and (args.get(ARG_SPECIFIED, None) is None or args.get(TOTAL_ARG_LEN, None) is None):
|
|
420
|
+
raise RuntimeError(
|
|
421
|
+
"The incremental inputs should be processed(with \"%s\" and \"%s\"), but got %s." %
|
|
422
|
+
(ARG_SPECIFIED, TOTAL_ARG_LEN, str(args)))
|
|
423
|
+
return False
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
def _process_dyn_args(fn, dyn_args):
|
|
427
|
+
"""Process the dynamic arguments, return the necessary data for latter processing.
|
|
428
|
+
|
|
429
|
+
Args:
|
|
430
|
+
fn (Function): The root function to compile.
|
|
431
|
+
dyn_args (Union[dict, list, tuple, None]): Given arguments for dynamic compilation.
|
|
432
|
+
None for nothing, list or tuple for fullmode setting, dict for incremental configuration.
|
|
433
|
+
|
|
434
|
+
Returns:
|
|
435
|
+
A dict which contains args for dynamic compilation. None for nothing dynamic.
|
|
436
|
+
"""
|
|
437
|
+
if dyn_args is None:
|
|
438
|
+
# nothing should be done for None.
|
|
439
|
+
return dyn_args
|
|
440
|
+
|
|
441
|
+
if isinstance(dyn_args, dict) and ARG_SPECIFIED in dyn_args:
|
|
442
|
+
return dyn_args
|
|
443
|
+
|
|
444
|
+
args_sig = inspect.signature(fn)
|
|
445
|
+
if _is_args_fullmode(dyn_args):
|
|
446
|
+
if not isinstance(dyn_args, (list, tuple)):
|
|
447
|
+
temp_dyn_args = (dyn_args,)
|
|
448
|
+
else:
|
|
449
|
+
temp_dyn_args = dyn_args
|
|
450
|
+
|
|
451
|
+
# If dyn_args is fullmode, it should be apply directly.
|
|
452
|
+
args_sig_parameters = list(args_sig.parameters.values())
|
|
453
|
+
if not args_sig_parameters:
|
|
454
|
+
return ()
|
|
455
|
+
|
|
456
|
+
# fn may be Cell's construct while the first input is 'self'.
|
|
457
|
+
if args_sig_parameters[0].name == "self" and (len(temp_dyn_args) + 1) == len(args_sig_parameters):
|
|
458
|
+
bound_args = args_sig.bind(None, *temp_dyn_args)
|
|
459
|
+
bound_args.apply_defaults()
|
|
460
|
+
return bound_args.args[1:]
|
|
461
|
+
|
|
462
|
+
bound_args = args_sig.bind(*temp_dyn_args)
|
|
463
|
+
bound_args.apply_defaults()
|
|
464
|
+
return bound_args.args
|
|
465
|
+
|
|
466
|
+
# The dyn_args is not fullmode, a real compilation arguments should be assembled by latter procession...
|
|
467
|
+
arg_names = []
|
|
468
|
+
args_sig_parameters = list(args_sig.parameters.values())
|
|
469
|
+
for arg_p in args_sig_parameters:
|
|
470
|
+
if arg_p.kind in (inspect.Parameter.POSITIONAL_ONLY, inspect.Parameter.POSITIONAL_OR_KEYWORD):
|
|
471
|
+
arg_names.append(arg_p.name)
|
|
472
|
+
else:
|
|
473
|
+
raise TypeError("Dynamic arguments is not accepted for VAR_POSITIONAL or VAR_KEYWORD parameters!")
|
|
474
|
+
|
|
475
|
+
offset = -1 if fn.__name__ == 'construct' and args_sig_parameters[0].name == "self" else 0
|
|
476
|
+
meet_index = set()
|
|
477
|
+
|
|
478
|
+
def _check_index_valid(index):
|
|
479
|
+
if index >= len(arg_names):
|
|
480
|
+
raise ValueError("For dict mode, valid index is \"0\"-\"%d\", but got %s!" % (len(arg_names) - 1, index))
|
|
481
|
+
if index in meet_index:
|
|
482
|
+
raise ValueError("For dict mode, there are more than one same specified key for real index: %d!" % index)
|
|
483
|
+
meet_index.add(index)
|
|
484
|
+
|
|
485
|
+
arg_handler_infos = []
|
|
486
|
+
for k, v in dyn_args.items():
|
|
487
|
+
if not isinstance(k, str):
|
|
488
|
+
raise TypeError("For dict mode, only string key is accepted, but got %s!" % k)
|
|
489
|
+
if k in arg_names:
|
|
490
|
+
cur_id = arg_names.index(k)
|
|
491
|
+
_check_index_valid(cur_id)
|
|
492
|
+
arg_handler_infos.append([cur_id + offset, v])
|
|
493
|
+
else:
|
|
494
|
+
raise ValueError("For dict mode, valid key is %s, but got %s!" % (arg_names, k))
|
|
495
|
+
return {ARG_SPECIFIED: arg_handler_infos, TOTAL_ARG_LEN: len(args_sig_parameters)}
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
def _generate_dyn_compile_args(compile_args, dyn_args):
|
|
499
|
+
"""Generate the dynamic compile arguments."""
|
|
500
|
+
if not dyn_args:
|
|
501
|
+
return compile_args
|
|
502
|
+
if _is_args_fullmode(dyn_args, False):
|
|
503
|
+
if not isinstance(dyn_args, (list, tuple)):
|
|
504
|
+
return (dyn_args,)
|
|
505
|
+
return dyn_args
|
|
506
|
+
arg_specified_infos = dyn_args.get(ARG_SPECIFIED, None)
|
|
507
|
+
if arg_specified_infos is None:
|
|
508
|
+
raise RuntimeError("For dict mode, a key with \"%s\" should exist, but got %s!" %
|
|
509
|
+
(ARG_SPECIFIED, str(dyn_args)))
|
|
510
|
+
new_compile_args = list(compile_args)
|
|
511
|
+
for index, arg in arg_specified_infos:
|
|
512
|
+
new_compile_args[index] = arg
|
|
513
|
+
return tuple(new_compile_args)
|
|
514
|
+
|
|
515
|
+
|
|
301
516
|
class _MindsporeFunctionExecutor:
|
|
302
517
|
"""
|
|
303
518
|
Represents a function compiled by graph compiler.
|
|
@@ -315,6 +530,7 @@ class _MindsporeFunctionExecutor:
|
|
|
315
530
|
Returns:
|
|
316
531
|
The result of pipeline running in graph mode.
|
|
317
532
|
"""
|
|
533
|
+
|
|
318
534
|
def __init__(self, fn, ms_create_time, input_signature=None, obj=None, jit_config=None):
|
|
319
535
|
init_pipeline()
|
|
320
536
|
if not isinstance(fn, (types.FunctionType, types.MethodType)):
|
|
@@ -329,9 +545,9 @@ class _MindsporeFunctionExecutor:
|
|
|
329
545
|
self.enable_tuple_broaden = False
|
|
330
546
|
self._graph_executor = GraphExecutor_.get_instance()
|
|
331
547
|
self._create_time = ms_create_time
|
|
548
|
+
self._compile_args = None
|
|
332
549
|
self.jit_config_dict = jit_config.jit_config_dict if jit_config else None
|
|
333
550
|
|
|
334
|
-
|
|
335
551
|
@_wrap_func
|
|
336
552
|
def __call__(self, *args, **kwargs):
|
|
337
553
|
args_list = args
|
|
@@ -359,7 +575,6 @@ class _MindsporeFunctionExecutor:
|
|
|
359
575
|
|
|
360
576
|
return output
|
|
361
577
|
|
|
362
|
-
|
|
363
578
|
def compile(self, method_name, *args, **kwargs):
|
|
364
579
|
"""Returns pipeline for the given args."""
|
|
365
580
|
# Check whether hook function registered on Cell object.
|
|
@@ -376,6 +591,7 @@ class _MindsporeFunctionExecutor:
|
|
|
376
591
|
|
|
377
592
|
# Restore the mutable attr for every arg.
|
|
378
593
|
compile_args = _restore_mutable_attr(args, compile_args)
|
|
594
|
+
self._compile_args = compile_args
|
|
379
595
|
generate_name, echo_function_name = self._get_generate_name()
|
|
380
596
|
# The full Function name
|
|
381
597
|
full_function_name = generate_name
|
|
@@ -414,9 +630,12 @@ class _MindsporeFunctionExecutor:
|
|
|
414
630
|
update_auto_dynamic_shape_phase_with_check_input_signature(compile_args, key_id, phase, self.input_signature)
|
|
415
631
|
|
|
416
632
|
if phase in ms_compile_cache:
|
|
633
|
+
# Release resource should be released when CompileInner won't be executed, such as cur_convert_input_
|
|
634
|
+
# generated in generate_arguments_key.
|
|
635
|
+
self._graph_executor.clear_compile_arguments_resource()
|
|
417
636
|
return phase
|
|
418
637
|
|
|
419
|
-
self.
|
|
638
|
+
_check_recompile(self.obj, compile_args, kwargs, full_function_name, create_time, echo_function_name)
|
|
420
639
|
|
|
421
640
|
# If enable compile cache, get the dependency files list and set to graph executor.
|
|
422
641
|
self._set_compile_cache_dep_files()
|
|
@@ -448,29 +667,6 @@ class _MindsporeFunctionExecutor:
|
|
|
448
667
|
|
|
449
668
|
return phase
|
|
450
669
|
|
|
451
|
-
def _check_recompile(self, full_function_name, create_time, echo_function_name):
|
|
452
|
-
"""Warning when the function has been compiled."""
|
|
453
|
-
ignore_dirs = ["mindspore/ops", "mindspore/nn"]
|
|
454
|
-
if any((lambda x: x in full_function_name)(x) for x in ignore_dirs):
|
|
455
|
-
return
|
|
456
|
-
|
|
457
|
-
if full_function_name in function_phases:
|
|
458
|
-
warning_times = 1
|
|
459
|
-
if len(function_phases[full_function_name]) >= warning_times \
|
|
460
|
-
and create_time not in function_phases[full_function_name]:
|
|
461
|
-
tips = "Try to decorate the function with @jit(hash_args=...) " \
|
|
462
|
-
"or @jit(compile_once=True) to reduce the compile time. " \
|
|
463
|
-
"For more details, get instructions about `jit` at " \
|
|
464
|
-
"https://www.mindspore.cn/search?inputValue=jit."
|
|
465
|
-
|
|
466
|
-
logger.warning(f"The {echo_function_name} has been compiled again. "
|
|
467
|
-
f"{tips} ")
|
|
468
|
-
else:
|
|
469
|
-
function_phases[full_function_name] = set()
|
|
470
|
-
|
|
471
|
-
function_phases[full_function_name].add(create_time)
|
|
472
|
-
|
|
473
|
-
|
|
474
670
|
@staticmethod
|
|
475
671
|
def _optimizer_state_init(opt_states):
|
|
476
672
|
"""set data for all optimizer states in case it is executed in graph mode"""
|
|
@@ -481,7 +677,6 @@ class _MindsporeFunctionExecutor:
|
|
|
481
677
|
if opt_param.has_init and (prefix in prefix_list or opt_param.name == "global_step"):
|
|
482
678
|
opt_param.init_data()
|
|
483
679
|
|
|
484
|
-
|
|
485
680
|
def _get_key_id(self):
|
|
486
681
|
"""get key id."""
|
|
487
682
|
if isinstance(self.obj, ms.nn.Cell):
|
|
@@ -493,7 +688,6 @@ class _MindsporeFunctionExecutor:
|
|
|
493
688
|
key_id = key_id + ".grad"
|
|
494
689
|
return key_id
|
|
495
690
|
|
|
496
|
-
|
|
497
691
|
def _get_generate_name(self):
|
|
498
692
|
"""get generate name."""
|
|
499
693
|
generate_name = self.fn.__module__ + "." + self.fn.__name__ + "." + self.fn.__code__.co_filename + "." + str(
|
|
@@ -506,54 +700,47 @@ class _MindsporeFunctionExecutor:
|
|
|
506
700
|
generate_name = generate_name[:generate_name.rfind(str(id(self.fn)))] + str(id(self.shard_parent_obj))
|
|
507
701
|
return generate_name, echo_function_name
|
|
508
702
|
|
|
509
|
-
|
|
510
703
|
def _set_compile_cache_dep_files(self):
|
|
511
704
|
# If enable compile cache, get the dependency files list
|
|
512
705
|
enable_compile_cache = context.get_context("enable_compile_cache")
|
|
513
|
-
if enable_compile_cache is
|
|
706
|
+
if enable_compile_cache is None:
|
|
514
707
|
enable_compile_cache = os.getenv('MS_COMPILER_CACHE_ENABLE')
|
|
515
708
|
if enable_compile_cache is True or enable_compile_cache == "1":
|
|
516
709
|
self._graph_executor.set_compile_cache_dep_files(_get_compile_cache_dep_files())
|
|
517
710
|
|
|
518
|
-
|
|
519
711
|
def _generate_compile_args(self, args_list):
|
|
520
712
|
"""Chose dynamic shape tensors or actual input tensors as compile args."""
|
|
521
713
|
# Case: If the shape of input args is dynamic, get dynamic shape tensor from context and use it to compile.
|
|
522
714
|
compile_args = _pynative_executor.get_dynamic_input(args_list)
|
|
523
715
|
# Case: The `set_inputs()` of Cell object has been set, using these dynamic shape args as compile args.
|
|
524
716
|
if self.fn.__name__ == 'construct' and isinstance(self.obj, ms.nn.Cell) and self.obj.get_inputs():
|
|
525
|
-
compile_args = self.obj.get_inputs()
|
|
717
|
+
compile_args = _generate_dyn_compile_args(args_list, self.obj.get_inputs())
|
|
526
718
|
if len(compile_args) != len(args_list):
|
|
527
719
|
raise ValueError(f"The number of actual input tensors: {len(args_list)} is not equal to the number of "
|
|
528
720
|
f"dynamic shape tensors: {len(compile_args)}.")
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
Validator.check_dynamic_shape(compile_args[i], args_list[i], i)
|
|
721
|
+
self._graph_executor.check_argument_consistency(compile_args, args_list, "input_signature")
|
|
722
|
+
Validator.check_symbolic_shape(compile_args, args_list)
|
|
532
723
|
|
|
533
724
|
# Case: If dynamic shape tensors have been assigned to `input_signature`, they are preferred as compile args.
|
|
534
725
|
if self.input_signature is not None:
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
dyn_shape = False
|
|
539
|
-
for i, elem in enumerate(self.input_signature):
|
|
540
|
-
if isinstance(elem, PythonTensor) and is_shape_unknown(elem.shape):
|
|
541
|
-
Validator.check_dynamic_shape(self.input_signature[i], args_list[i], i)
|
|
542
|
-
dyn_shape = True
|
|
726
|
+
compile_args = list(_generate_dyn_compile_args(args_list, self.input_signature))
|
|
727
|
+
dyn_shape = any([is_shape_unknown(elem.shape) for elem in compile_args if isinstance(elem, PythonTensor)])
|
|
728
|
+
Validator.check_symbolic_shape(self.input_signature, args_list)
|
|
543
729
|
if dyn_shape:
|
|
544
730
|
# Checkout whether the `sens` has been added to args_list.
|
|
545
|
-
if len(
|
|
731
|
+
if len(compile_args) == len(args_list) - 1:
|
|
546
732
|
logger.warning(f"The number of actual input args '{len(args_list)}' is one more than the number "
|
|
547
|
-
f"of input_signature args '{len(
|
|
733
|
+
f"of input_signature args '{len(compile_args)}'. The last actual args may "
|
|
548
734
|
f"be 'sens' and added it to compile args.")
|
|
549
|
-
|
|
550
|
-
compile_args = tuple(
|
|
735
|
+
compile_args.append(args_list[-1])
|
|
736
|
+
compile_args = tuple(compile_args)
|
|
737
|
+
self._graph_executor.check_argument_consistency(compile_args, args_list, "input_signature")
|
|
551
738
|
if self.obj is not None:
|
|
552
739
|
_pynative_executor.set_dynamic_input(self.obj, *compile_args)
|
|
553
740
|
else:
|
|
554
741
|
_pynative_executor.set_dynamic_input(self.fn, *compile_args)
|
|
555
742
|
else:
|
|
556
|
-
if not verify_inputs_signature(
|
|
743
|
+
if not verify_inputs_signature(compile_args, args_list):
|
|
557
744
|
raise ValueError("The input args is incompatible with the args in `input_signature`!")
|
|
558
745
|
return compile_args
|
|
559
746
|
|
|
@@ -568,7 +755,7 @@ class _MindsporeFunctionExecutor:
|
|
|
568
755
|
Returns:
|
|
569
756
|
new_inputs, new input args, which are required for running.
|
|
570
757
|
"""
|
|
571
|
-
return _get_args_for_run(self, args_list, kwargs)
|
|
758
|
+
return _get_args_for_run(self, args_list, kwargs, self._compile_args)
|
|
572
759
|
|
|
573
760
|
|
|
574
761
|
# The attributes used to identify a given object.
|
|
@@ -596,31 +783,58 @@ def _get_jit_hash(hash_input):
|
|
|
596
783
|
return _get_obj_id(hash_input)
|
|
597
784
|
|
|
598
785
|
|
|
599
|
-
def
|
|
786
|
+
def _update_graph_executor_config(jit_config):
|
|
787
|
+
"""Update GraphExecutor jit_config"""
|
|
788
|
+
if isinstance(jit_config, JitConfig):
|
|
789
|
+
jit_config = jit_config.jit_config_dict
|
|
790
|
+
if not isinstance(jit_config, dict):
|
|
791
|
+
return
|
|
792
|
+
valid_config = dict()
|
|
793
|
+
for k, v in jit_config.items():
|
|
794
|
+
valid_config[str(k)] = str(v)
|
|
795
|
+
GraphExecutor_.get_instance().set_jit_config(JitConfig(**valid_config).jit_config_dict)
|
|
796
|
+
|
|
797
|
+
|
|
798
|
+
def jit(fn=None, mode="PSJit", input_signature=None, hash_args=None, jit_config=None, compile_once=False):
|
|
600
799
|
"""
|
|
601
800
|
Create a callable MindSpore graph from a Python function.
|
|
602
801
|
|
|
603
802
|
This allows the MindSpore runtime to apply optimizations based on graph.
|
|
604
803
|
|
|
605
|
-
Note:
|
|
606
|
-
If `input_signature` is specified, each input of `fn` must be a Tensor. And the input arguments for `fn`
|
|
607
|
-
will not accept `**kwargs`.
|
|
608
|
-
|
|
609
804
|
Args:
|
|
610
805
|
fn (Function): The Python function that will be run as a graph. Default: ``None`` .
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
806
|
+
mode (str): The type of jit used, the value of mode should be ``PIJit`` or ``PSJit``. Default: ``PSJit`` .
|
|
807
|
+
|
|
808
|
+
- `PSJit <https://www.mindspore.cn/docs/en/master/note/static_graph_syntax_support.html>`_ :
|
|
809
|
+
Parse python ast to build graph.
|
|
810
|
+
- `PIJit <https://www.mindspore.cn/docs/en/master/design/dynamic_graph_and_static_graph.html>`_ :
|
|
811
|
+
Parse python bytecode to build graph at runtime.
|
|
812
|
+
|
|
813
|
+
input_signature (Union[Tuple, List, Dict, Tensor]): The Tensor which describes the input arguments. The
|
|
814
|
+
shape and dtype of the Tensor will be supplied to this function. If `input_signature` is specified, the
|
|
815
|
+
input parameters of `fn` cannot accept `**kwargs`, and the shape and dtype of actual inputs should keep the
|
|
816
|
+
same as `input_signature`. Otherwise, TypeError will be raised. There are two mode for `input_signature`:
|
|
817
|
+
|
|
818
|
+
- Full mode: Arguments is a Tuple, List or a Tensor, and they will be used as all compile inputs
|
|
819
|
+
for graph-compiling.
|
|
820
|
+
- Incremental mode: Argument is a Dict, and they will set to some of the graph inputs, which will be
|
|
821
|
+
substituted into the input at the corresponding position for graph-compiling.
|
|
822
|
+
|
|
823
|
+
Default: ``None`` .
|
|
824
|
+
|
|
615
825
|
hash_args (Union[Object, List or Tuple of Objects]): The local free variables used inside `fn`,
|
|
616
826
|
like functions or objects of class defined outside `fn`. Calling `fn` again with change of `hash_args`
|
|
617
827
|
will trigger recompilation. Default: ``None`` .
|
|
618
828
|
jit_config (JitConfig): Jit config for compile. Default: ``None`` .
|
|
619
829
|
compile_once(bool): ``True``: The function would be compiled once when it was created many times.
|
|
620
830
|
But it may be wrong if the free variables were changed. ``False`` : It would be recompiled when
|
|
621
|
-
it was created again
|
|
831
|
+
it was created again.
|
|
622
832
|
Default: ``False`` .
|
|
623
833
|
|
|
834
|
+
Note:
|
|
835
|
+
If `input_signature` is specified, each input of `fn` must be a Tensor. And the input arguments for `fn`
|
|
836
|
+
will not accept `**kwargs`.
|
|
837
|
+
|
|
624
838
|
Returns:
|
|
625
839
|
Function, if `fn` is not None, returns a callable function that will execute the compiled function; If `fn` is
|
|
626
840
|
None, returns a decorator and when this decorator invokes with a single `fn` argument, the callable function is
|
|
@@ -663,6 +877,13 @@ def jit(fn=None, input_signature=None, hash_args=None, jit_config=None, compile_
|
|
|
663
877
|
...
|
|
664
878
|
>>> out = tensor_add_with_sig(x, y)
|
|
665
879
|
...
|
|
880
|
+
>>> @jit(input_signature={"y": Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))})
|
|
881
|
+
... def tensor_add_with_sig_1(x, y):
|
|
882
|
+
... z = x + y
|
|
883
|
+
... return z
|
|
884
|
+
...
|
|
885
|
+
>>> out1 = tensor_add_with_sig_1(x, y)
|
|
886
|
+
...
|
|
666
887
|
... # Set hash_args as fn, otherwise cache of compiled closure_fn will not be reused.
|
|
667
888
|
... # While fn differs during calling again, recompilation will be triggered.
|
|
668
889
|
>>> def func(x):
|
|
@@ -702,6 +923,8 @@ def jit(fn=None, input_signature=None, hash_args=None, jit_config=None, compile_
|
|
|
702
923
|
else:
|
|
703
924
|
hash_obj = int(time.time() * 1e9)
|
|
704
925
|
|
|
926
|
+
dyn_args = _process_dyn_args(func, input_signature)
|
|
927
|
+
|
|
705
928
|
@wraps(func)
|
|
706
929
|
def staging_specialize(*args, **kwargs):
|
|
707
930
|
if os.getenv("MS_JIT") == '0':
|
|
@@ -715,14 +938,49 @@ def jit(fn=None, input_signature=None, hash_args=None, jit_config=None, compile_
|
|
|
715
938
|
# only the function or cell instance wrapped by shard will fall into this branch
|
|
716
939
|
if _is_pynative_parallel() and func.__name__ == _PYNATIVE_PARALLEL_FUNC_NAME:
|
|
717
940
|
process_obj = hash_args
|
|
718
|
-
out = _MindsporeFunctionExecutor(func, hash_obj,
|
|
941
|
+
out = _MindsporeFunctionExecutor(func, hash_obj, dyn_args, process_obj, jit_config)(*args, **kwargs)
|
|
719
942
|
return out
|
|
720
943
|
|
|
721
944
|
return staging_specialize
|
|
722
945
|
|
|
946
|
+
def pi_wrap_mindspore(decorated):
|
|
947
|
+
func = decorated
|
|
948
|
+
if isinstance(func, ms.nn.Cell):
|
|
949
|
+
func = func.construct
|
|
950
|
+
if isinstance(func, type) and issubclass(func, ms.nn.Cell):
|
|
951
|
+
func = func.construct
|
|
952
|
+
if isinstance(func, types.MethodType):
|
|
953
|
+
func = func.__func__
|
|
954
|
+
if not isinstance(func, types.FunctionType):
|
|
955
|
+
logger.warning("only support function and mindspore.nn.Cell instance")
|
|
956
|
+
return decorated
|
|
957
|
+
|
|
958
|
+
# generator, coroutine, awaitable and a function that return them is unsupported
|
|
959
|
+
UNSUPPORTED_CODE_TYPE = (inspect.CO_GENERATOR | inspect.CO_COROUTINE |
|
|
960
|
+
inspect.CO_ASYNC_GENERATOR | inspect.CO_ITERABLE_COROUTINE)
|
|
961
|
+
if func.__code__.co_flags & UNSUPPORTED_CODE_TYPE:
|
|
962
|
+
return decorated
|
|
963
|
+
|
|
964
|
+
_update_graph_executor_config(jit_config)
|
|
965
|
+
config = dict()
|
|
966
|
+
if isinstance(jit_config, JitConfig):
|
|
967
|
+
config.update(jit_config.jit_config_dict)
|
|
968
|
+
elif jit_config is not None:
|
|
969
|
+
config.update(jit_config)
|
|
970
|
+
jit_mode_pi_enable()
|
|
971
|
+
|
|
972
|
+
if jit_mode_pi_compile(func, config, input_signature) is False:
|
|
973
|
+
logger.warning('add fn {} to compile failed '.format(func))
|
|
974
|
+
|
|
975
|
+
return decorated
|
|
976
|
+
|
|
977
|
+
wrap_func = wrap_mindspore
|
|
978
|
+
if mode == "PIJit":
|
|
979
|
+
wrap_func = pi_wrap_mindspore
|
|
980
|
+
|
|
723
981
|
if fn is not None:
|
|
724
|
-
return
|
|
725
|
-
return
|
|
982
|
+
return wrap_func(fn)
|
|
983
|
+
return wrap_func
|
|
726
984
|
|
|
727
985
|
|
|
728
986
|
def ms_function(fn=None, input_signature=None, hash_args=None, jit_config=None):
|
|
@@ -732,15 +990,14 @@ def ms_function(fn=None, input_signature=None, hash_args=None, jit_config=None):
|
|
|
732
990
|
This allows the MindSpore runtime to apply optimizations based on graph.
|
|
733
991
|
|
|
734
992
|
Note:
|
|
735
|
-
`ms_function` will be deprecated and removed in a future version. Please use
|
|
736
|
-
If `input_signature` is specified, each input of `fn` must be a Tensor. And the input arguments for `fn`
|
|
737
|
-
|
|
993
|
+
- `ms_function` will be deprecated and removed in a future version. Please use :func:`mindspore.jit` instead.
|
|
994
|
+
- If `input_signature` is specified, each input of `fn` must be a Tensor. And the input arguments for `fn`
|
|
995
|
+
will not accept `**kwargs`.
|
|
738
996
|
|
|
739
997
|
Args:
|
|
740
998
|
fn (Function): The Python function that will be run as a graph. Default: ``None`` .
|
|
741
999
|
input_signature (Tensor): The Tensor which describes the input arguments. The shape and dtype of the Tensor
|
|
742
|
-
will be supplied to this function.
|
|
743
|
-
And the input parameters of `fn` cannot accept `**kwargs`. The shape and dtype of actual inputs should
|
|
1000
|
+
will be supplied to this function. The shape and dtype of actual inputs of `fn` should
|
|
744
1001
|
keep the same as input_signature. Otherwise, TypeError will be raised. Default: ``None`` .
|
|
745
1002
|
hash_args (Union[Object, List or Tuple of Objects]): The local free variables used inside `fn`,
|
|
746
1003
|
like functions or objects of class defined outside `fn`. Calling `fn` again with change of `hash_args`
|
|
@@ -909,7 +1166,7 @@ def ms_class(cls):
|
|
|
909
1166
|
This allows MindSpore to identify user-defined classes and thus obtain their attributes and methods.
|
|
910
1167
|
|
|
911
1168
|
Note:
|
|
912
|
-
`ms_class` will be deprecated and removed in a future version. Please use
|
|
1169
|
+
`ms_class` will be deprecated and removed in a future version. Please use :func:`mindspore.jit_class` instead.
|
|
913
1170
|
|
|
914
1171
|
Args:
|
|
915
1172
|
cls (Class): User-defined class.
|
|
@@ -1037,6 +1294,8 @@ def set_adapter_config(config):
|
|
|
1037
1294
|
ms_adapter_registry.register_parameter(value)
|
|
1038
1295
|
elif key == "convert_object_map":
|
|
1039
1296
|
ms_adapter_registry.register_convert_map(value)
|
|
1297
|
+
elif key == "convert_adapter_tensor_map":
|
|
1298
|
+
ms_adapter_registry.register_convert_adapter_tensor_map(value)
|
|
1040
1299
|
else:
|
|
1041
1300
|
raise ValueError(f"Unsupported key in adapter config: {key}")
|
|
1042
1301
|
|
|
@@ -1135,16 +1394,6 @@ class _PyNativeExecutor:
|
|
|
1135
1394
|
self._executor = PyNativeExecutor_.get_instance()
|
|
1136
1395
|
self._executor.set_py_exe_path(sys.executable)
|
|
1137
1396
|
self._executor.set_kernel_build_server_dir(os.path.split(kernel_build_server.__file__)[0] + os.sep)
|
|
1138
|
-
self._top_cell = None
|
|
1139
|
-
|
|
1140
|
-
def __call__(self):
|
|
1141
|
-
"""
|
|
1142
|
-
PyNative executor run grad graph.
|
|
1143
|
-
|
|
1144
|
-
Return:
|
|
1145
|
-
The return object after running grad graph.
|
|
1146
|
-
"""
|
|
1147
|
-
return self._executor()
|
|
1148
1397
|
|
|
1149
1398
|
@staticmethod
|
|
1150
1399
|
def parameter_broadcast(obj, phase):
|
|
@@ -1246,7 +1495,7 @@ class _PyNativeExecutor:
|
|
|
1246
1495
|
Return:
|
|
1247
1496
|
None.
|
|
1248
1497
|
"""
|
|
1249
|
-
self._executor.
|
|
1498
|
+
return self._executor.grad(grad, obj, weights, grad_position, *args, *(kwargs.values()))
|
|
1250
1499
|
|
|
1251
1500
|
def clear_res(self):
|
|
1252
1501
|
"""
|
|
@@ -1300,6 +1549,18 @@ class _PyNativeExecutor:
|
|
|
1300
1549
|
"""
|
|
1301
1550
|
self._executor.set_grad_flag(flag)
|
|
1302
1551
|
|
|
1552
|
+
def set_async_for_graph(self, flag):
|
|
1553
|
+
"""
|
|
1554
|
+
Set the flag for graph async run.
|
|
1555
|
+
|
|
1556
|
+
Args:
|
|
1557
|
+
flag (bool): Specifying whether enable graph async run.
|
|
1558
|
+
|
|
1559
|
+
Return:
|
|
1560
|
+
None.
|
|
1561
|
+
"""
|
|
1562
|
+
self._executor.set_async_for_graph(flag)
|
|
1563
|
+
|
|
1303
1564
|
def enable_grad(self):
|
|
1304
1565
|
"""
|
|
1305
1566
|
The global flag whether needing to calculate gradient.
|
|
@@ -1333,6 +1594,17 @@ class _PyNativeExecutor:
|
|
|
1333
1594
|
"""
|
|
1334
1595
|
self._executor.set_jit_compile_status(status, phase)
|
|
1335
1596
|
|
|
1597
|
+
def set_is_run_recompute(self, status):
|
|
1598
|
+
"""
|
|
1599
|
+
Set recompute grad is compiling
|
|
1600
|
+
|
|
1601
|
+
Args:
|
|
1602
|
+
status(bool): grad is in recompute status
|
|
1603
|
+
Return:
|
|
1604
|
+
None.
|
|
1605
|
+
"""
|
|
1606
|
+
self._executor.set_is_run_recompute(status)
|
|
1607
|
+
|
|
1336
1608
|
def set_dynamic_input(self, obj, *args):
|
|
1337
1609
|
"""
|
|
1338
1610
|
Set dynamic shape tensor of input arguments.
|
|
@@ -1380,15 +1652,6 @@ class _PyNativeExecutor:
|
|
|
1380
1652
|
"""
|
|
1381
1653
|
self._executor.set_hook_changed(cell)
|
|
1382
1654
|
|
|
1383
|
-
def get_top_cell(self):
|
|
1384
|
-
"""
|
|
1385
|
-
Get the top cell object.
|
|
1386
|
-
|
|
1387
|
-
Return:
|
|
1388
|
-
The top cell object.
|
|
1389
|
-
"""
|
|
1390
|
-
return self._top_cell
|
|
1391
|
-
|
|
1392
1655
|
def constant_folding(self, *args):
|
|
1393
1656
|
"""
|
|
1394
1657
|
Get value by infer value.
|
|
@@ -1491,9 +1754,9 @@ class _CellGraphExecutor:
|
|
|
1491
1754
|
def _set_compile_cache_dep_files(self, phase):
|
|
1492
1755
|
# If enable compile cache, get the dependency files list
|
|
1493
1756
|
enable_compile_cache = context.get_context("enable_compile_cache")
|
|
1494
|
-
if enable_compile_cache is
|
|
1757
|
+
if enable_compile_cache is None:
|
|
1495
1758
|
enable_compile_cache = os.getenv('MS_COMPILER_CACHE_ENABLE')
|
|
1496
|
-
if
|
|
1759
|
+
if enable_compile_cache is True or enable_compile_cache == "1":
|
|
1497
1760
|
self._graph_executor.set_compile_cache_dep_files(_get_compile_cache_dep_files())
|
|
1498
1761
|
|
|
1499
1762
|
def compile(self, obj, *args, phase='predict', do_convert=True, jit_config_dict=None, **kwargs):
|
|
@@ -1522,17 +1785,26 @@ class _CellGraphExecutor:
|
|
|
1522
1785
|
self.enable_tuple_broaden = False
|
|
1523
1786
|
if hasattr(obj, "enable_tuple_broaden"):
|
|
1524
1787
|
self.enable_tuple_broaden = obj.enable_tuple_broaden
|
|
1525
|
-
logger.debug("Convert the network."
|
|
1788
|
+
logger.debug(f"Convert the network: {do_convert}.")
|
|
1526
1789
|
self._graph_executor.set_enable_tuple_broaden(self.enable_tuple_broaden)
|
|
1527
1790
|
key = self._graph_executor.generate_arguments_key(obj, args, kwargs, self.enable_tuple_broaden)
|
|
1528
1791
|
obj.arguments_key = str(key)
|
|
1792
|
+
raw_phase = phase
|
|
1529
1793
|
phase = phase + '.' + str(obj.create_time) + '.' + str(id(obj)) + '.' + obj.arguments_key
|
|
1794
|
+
obj.phase_cache[raw_phase] = phase
|
|
1530
1795
|
update_auto_dynamic_shape_phase(args, key_id, phase)
|
|
1531
|
-
|
|
1796
|
+
obj.current_phase = phase
|
|
1532
1797
|
if phase in obj.compile_cache and self.has_compiled(phase):
|
|
1533
1798
|
logger.debug("%r graph has existed.", phase)
|
|
1799
|
+
# Release resource should be released when CompileInner won't be executed, such as cur_convert_input_
|
|
1800
|
+
# generated in generate_arguments_key.
|
|
1801
|
+
self._graph_executor.clear_compile_arguments_resource()
|
|
1534
1802
|
return phase, False
|
|
1535
1803
|
|
|
1804
|
+
full_function_name = obj.__class__.__name__ + '.' + str(obj.instance_count) + '.' + str(id(type(obj)))
|
|
1805
|
+
echo_function_name = obj.__class__.__name__
|
|
1806
|
+
_check_recompile(obj, args, kwargs, full_function_name, obj.create_time, echo_function_name)
|
|
1807
|
+
|
|
1536
1808
|
obj.check_names()
|
|
1537
1809
|
_check_full_batch()
|
|
1538
1810
|
self._set_dataset_mode(obj)
|
|
@@ -1560,7 +1832,6 @@ class _CellGraphExecutor:
|
|
|
1560
1832
|
elif 'skip_auto_parallel_compile' not in obj.get_flags().keys():
|
|
1561
1833
|
obj.parameter_layout_dict = self._graph_executor.get_parameter_layout(phase)
|
|
1562
1834
|
obj.parallel_parameter_name_list = self._graph_executor.get_parallel_parameter_name_list(phase)
|
|
1563
|
-
|
|
1564
1835
|
if "export.air" in phase:
|
|
1565
1836
|
self._build_data_graph(obj, phase)
|
|
1566
1837
|
elif BROADCAST_PHASE not in phase and _get_parameter_broadcast():
|
|
@@ -1600,6 +1871,18 @@ class _CellGraphExecutor:
|
|
|
1600
1871
|
"""
|
|
1601
1872
|
return self._graph_executor.has_compiled(phase)
|
|
1602
1873
|
|
|
1874
|
+
def flops_collection(self, phase='train'):
|
|
1875
|
+
"""
|
|
1876
|
+
Specify whether have been compiled.
|
|
1877
|
+
|
|
1878
|
+
Args:
|
|
1879
|
+
phase (str): The phase name. Default: 'predict'.
|
|
1880
|
+
|
|
1881
|
+
Returns:
|
|
1882
|
+
bool, specifies whether the specific graph has been compiled.
|
|
1883
|
+
"""
|
|
1884
|
+
return self._graph_executor.flops_collection(phase)
|
|
1885
|
+
|
|
1603
1886
|
@_wrap_func
|
|
1604
1887
|
def _exec_pip(self, obj, *args, phase=''):
|
|
1605
1888
|
"""Execute the generated pipeline."""
|
|
@@ -1632,6 +1915,14 @@ class _CellGraphExecutor:
|
|
|
1632
1915
|
"""Clear the memory resource of a network."""
|
|
1633
1916
|
self._graph_executor.del_net_res(obj, net_id)
|
|
1634
1917
|
|
|
1918
|
+
def inc_graph_cell_count(self):
|
|
1919
|
+
"""Increase the count of GraphCell instance."""
|
|
1920
|
+
self._graph_executor.inc_graph_cell_count()
|
|
1921
|
+
|
|
1922
|
+
def dec_graph_cell_count(self):
|
|
1923
|
+
"""Decrease the count of GraphCell instance."""
|
|
1924
|
+
self._graph_executor.dec_graph_cell_count()
|
|
1925
|
+
|
|
1635
1926
|
def _get_branch_control_input(self):
|
|
1636
1927
|
if ('obf_ratio' not in self.obfuscate_config.keys()) or (
|
|
1637
1928
|
'obf_random_seed' not in self.obfuscate_config.keys()):
|
|
@@ -1738,7 +2029,21 @@ def _bind_device_context():
|
|
|
1738
2029
|
_bind_device_ctx()
|
|
1739
2030
|
|
|
1740
2031
|
|
|
2032
|
+
def flops_collection(phase='train'):
|
|
2033
|
+
"""
|
|
2034
|
+
Recycle memory used by MindSpore.
|
|
2035
|
+
When train multi Neural network models in one process, memory used by MindSpore is very large,
|
|
2036
|
+
this is because MindSpore cached runtime memory for every model.
|
|
2037
|
+
To recycle these cached memory, users can call this function after training of one model.
|
|
2038
|
+
|
|
2039
|
+
Examples:
|
|
2040
|
+
>>> import mindspore as ms
|
|
2041
|
+
>>> ms.ms_memory_recycle()
|
|
2042
|
+
"""
|
|
2043
|
+
return _cell_graph_executor.flops_collection(phase)
|
|
2044
|
+
|
|
2045
|
+
|
|
1741
2046
|
_cell_graph_executor = _CellGraphExecutor()
|
|
1742
2047
|
_pynative_executor = _PyNativeExecutor()
|
|
1743
2048
|
|
|
1744
|
-
__all__ = ['ms_function', 'ms_memory_recycle', 'ms_class', 'jit', 'jit_class']
|
|
2049
|
+
__all__ = ['ms_function', 'ms_memory_recycle', 'ms_class', 'jit', 'jit_class', 'flops_collection']
|