mindspore 2.1.0__cp37-none-any.whl → 2.2.10__cp37-none-any.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/__init__.py +4 -1
- mindspore/_akg/akg/build_module.py +5 -6
- mindspore/_akg/akg/composite/build_module.py +46 -19
- mindspore/_akg/akg/composite/split_stitch.py +10 -11
- mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
- mindspore/_akg/akg/tvm/api.py +4 -3
- mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
- mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
- mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
- mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
- mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
- mindspore/_akg/akg/tvm/build_module.py +16 -1
- mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
- mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
- mindspore/_akg/akg/tvm/ir_builder.py +1 -1
- mindspore/_akg/akg/tvm/module.py +1 -2
- mindspore/_akg/akg/tvm/stmt.py +2 -2
- mindspore/_akg/akg/utils/ascend_profilier/__init__.py +0 -0
- mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
- mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
- mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
- mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
- mindspore/_akg/akg/utils/kernel_exec.py +98 -274
- mindspore/_akg/akg/utils/result_analysis.py +4 -24
- mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
- mindspore/_akg/akg/utils/util.py +38 -0
- mindspore/_c_dataengine.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -1
- mindspore/_checkparam.py +23 -29
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
- mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
- mindspore/_extends/graph_kernel/splitter.py +4 -11
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
- mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
- mindspore/_extends/parse/__init__.py +12 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +61 -71
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +74 -104
- mindspore/_extends/parse/trope.py +1 -1
- mindspore/_extends/remote/kernel_build_server.py +25 -7
- mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
- mindspore/_install_custom.py +43 -0
- mindspore/_mindspore_offline_debug.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/amp.py +47 -11
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/boost.py +1 -8
- mindspore/boost/boost_cell_wrapper.py +3 -2
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +8 -7
- mindspore/common/__init__.py +5 -3
- mindspore/common/_jit_fallback_utils.py +6 -0
- mindspore/common/_register_for_adapter.py +2 -0
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +13 -0
- mindspore/common/_utils.py +13 -0
- mindspore/common/api.py +174 -259
- mindspore/common/auto_dynamic_shape.py +494 -0
- mindspore/common/dtype.py +18 -11
- mindspore/common/dump.py +6 -4
- mindspore/common/initializer.py +14 -14
- mindspore/common/jit_config.py +33 -15
- mindspore/common/lazy_inline.py +126 -7
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/parameter.py +51 -41
- mindspore/common/seed.py +4 -4
- mindspore/common/sparse_tensor.py +13 -14
- mindspore/common/tensor.py +243 -165
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +83 -4
- mindspore/communication/management.py +152 -84
- mindspore/config/op_info.config +14 -3
- mindspore/config/super_bar_config.json +4 -2
- mindspore/context.py +152 -61
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +52 -52
- mindspore/dataset/callback/ds_callback.py +16 -2
- mindspore/dataset/core/config.py +68 -51
- mindspore/dataset/engine/cache_client.py +28 -5
- mindspore/dataset/engine/datasets.py +250 -112
- mindspore/dataset/engine/datasets_audio.py +43 -211
- mindspore/dataset/engine/datasets_standard_format.py +16 -35
- mindspore/dataset/engine/datasets_text.py +43 -67
- mindspore/dataset/engine/datasets_user_defined.py +86 -100
- mindspore/dataset/engine/datasets_vision.py +219 -1029
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/samplers.py +1 -1
- mindspore/dataset/engine/validators.py +19 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +101 -127
- mindspore/dataset/text/utils.py +205 -138
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +95 -40
- mindspore/dataset/utils/browse_dataset.py +8 -2
- mindspore/dataset/utils/line_reader.py +17 -19
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/c_transforms.py +6 -3
- mindspore/dataset/vision/transforms.py +409 -287
- mindspore/dataset/vision/utils.py +13 -14
- mindspore/dataset/vision/validators.py +11 -1
- mindspore/experimental/map_parameter.py +14 -0
- mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
- mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
- mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
- mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/data_type.h +2 -1
- mindspore/include/api/graph.h +0 -15
- mindspore/include/api/kernel.h +2 -0
- mindspore/include/api/kernel_api.h +37 -12
- mindspore/include/api/model.h +17 -14
- mindspore/include/api/status.h +8 -3
- mindspore/include/api/types.h +37 -4
- mindspore/include/c_api/ms/abstract.h +67 -0
- mindspore/include/c_api/ms/attribute.h +197 -0
- mindspore/include/c_api/ms/base/handle_types.h +43 -0
- mindspore/include/c_api/ms/base/macros.h +32 -0
- mindspore/include/c_api/ms/base/status.h +33 -0
- mindspore/include/c_api/ms/base/types.h +282 -0
- mindspore/include/c_api/ms/context.h +102 -0
- mindspore/include/c_api/ms/graph.h +160 -0
- mindspore/include/c_api/ms/node.h +606 -0
- mindspore/include/c_api/ms/tensor.h +161 -0
- mindspore/include/c_api/ms/value.h +84 -0
- mindspore/include/dataset/constants.h +6 -5
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +13 -13
- mindspore/include/dataset/vision.h +60 -60
- mindspore/include/dataset/vision_ascend.h +5 -6
- mindspore/include/dataset/vision_lite.h +17 -17
- mindspore/include/mindapi/base/type_id.h +1 -0
- mindspore/include/mindapi/base/types.h +1 -0
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libjemalloc.so.2 +0 -0
- mindspore/lib/libmindspore.so +0 -0
- mindspore/lib/libmindspore_backend.so +0 -0
- mindspore/lib/libmindspore_common.so +0 -0
- mindspore/lib/libmindspore_core.so +0 -0
- mindspore/lib/libmindspore_glog.so.0 +0 -0
- mindspore/lib/libmindspore_gpr.so.15 +0 -0
- mindspore/lib/libmindspore_grpc++.so.1 +0 -0
- mindspore/lib/libmindspore_grpc.so.15 +0 -0
- mindspore/lib/libmindspore_shared_lib.so +0 -0
- mindspore/lib/libnnacl.so +0 -0
- mindspore/lib/libopencv_core.so.4.5 +0 -0
- mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
- mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
- mindspore/lib/libps_cache.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8928 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
- mindspore/lib/plugin/ascend/libakg.so +0 -0
- mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
- mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
- mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
- mindspore/lib/plugin/cpu/libakg.so +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- mindspore/nn/__init__.py +0 -2
- mindspore/nn/cell.py +313 -74
- mindspore/nn/dynamic_lr.py +21 -21
- mindspore/nn/layer/activation.py +22 -30
- mindspore/nn/layer/basic.py +15 -13
- mindspore/nn/layer/channel_shuffle.py +1 -1
- mindspore/nn/layer/container.py +271 -9
- mindspore/nn/layer/conv.py +323 -204
- mindspore/nn/layer/dense.py +8 -5
- mindspore/nn/layer/embedding.py +33 -27
- mindspore/nn/layer/flash_attention.py +141 -88
- mindspore/nn/layer/image.py +8 -6
- mindspore/nn/layer/math.py +16 -25
- mindspore/nn/layer/normalization.py +107 -66
- mindspore/nn/layer/padding.py +1 -1
- mindspore/nn/layer/pooling.py +131 -109
- mindspore/nn/layer/rnn_cells.py +27 -22
- mindspore/nn/layer/rnns.py +13 -16
- mindspore/nn/layer/thor_layer.py +1 -1
- mindspore/nn/layer/transformer.py +221 -154
- mindspore/nn/learning_rate_schedule.py +9 -1
- mindspore/nn/loss/loss.py +235 -174
- mindspore/nn/optim/ada_grad.py +2 -1
- mindspore/nn/optim/adadelta.py +1 -0
- mindspore/nn/optim/adafactor.py +2 -1
- mindspore/nn/optim/adam.py +7 -4
- mindspore/nn/optim/adamax.py +3 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -3
- mindspore/nn/optim/ftrl.py +6 -5
- mindspore/nn/optim/lamb.py +7 -4
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +5 -3
- mindspore/nn/optim/momentum.py +2 -1
- mindspore/nn/optim/optimizer.py +53 -4
- mindspore/nn/optim/proximal_ada_grad.py +3 -4
- mindspore/nn/optim/rmsprop.py +4 -3
- mindspore/nn/optim/rprop.py +23 -12
- mindspore/nn/optim/sgd.py +26 -11
- mindspore/nn/optim/thor.py +9 -7
- mindspore/nn/probability/bijector/bijector.py +5 -5
- mindspore/nn/probability/bijector/power_transform.py +27 -27
- mindspore/nn/probability/bijector/softplus.py +3 -3
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
- mindspore/nn/probability/distribution/bernoulli.py +5 -5
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +7 -7
- mindspore/nn/probability/distribution/cauchy.py +0 -1
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +4 -4
- mindspore/nn/probability/distribution/gumbel.py +4 -4
- mindspore/nn/probability/distribution/log_normal.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/poisson.py +4 -4
- mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
- mindspore/nn/probability/distribution/uniform.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +84 -34
- mindspore/nn/wrap/grad_reducer.py +8 -5
- mindspore/nn/wrap/loss_scale.py +105 -42
- mindspore/numpy/array_creations.py +1 -2
- mindspore/numpy/array_ops.py +3 -2
- mindspore/numpy/utils_const.py +5 -5
- mindspore/offline_debug/convert_async.py +2 -2
- mindspore/ops/_grad_experimental/__init__.py +0 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
- mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
- mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
- mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
- mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
- mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
- mindspore/ops/_op_impl/aicpu/add.py +3 -3
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/aicpu/eps.py +32 -0
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
- mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
- mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
- mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
- mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
- mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
- mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
- mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
- mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
- mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
- mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
- mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
- mindspore/ops/_op_impl/tbe/__init__.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +45 -13
- mindspore/ops/_utils/utils.py +6 -1
- mindspore/ops/_vmap/vmap_array_ops.py +3 -3
- mindspore/ops/_vmap/vmap_base.py +3 -3
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/base.py +37 -10
- mindspore/ops/composite/math_ops.py +5 -4
- mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
- mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
- mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/array_func.py +174 -193
- mindspore/ops/function/clip_func.py +81 -13
- mindspore/ops/function/debug_func.py +1 -1
- mindspore/ops/function/grad/grad_func.py +18 -9
- mindspore/ops/function/image_func.py +10 -4
- mindspore/ops/function/linalg_func.py +5 -5
- mindspore/ops/function/math_func.py +575 -386
- mindspore/ops/function/nn_func.py +568 -260
- mindspore/ops/function/random_func.py +88 -57
- mindspore/ops/function/sparse_func.py +1 -1
- mindspore/ops/function/sparse_unary_func.py +14 -12
- mindspore/ops/function/vmap_func.py +6 -5
- mindspore/ops/functional.py +15 -10
- mindspore/ops/op_info_register.py +244 -25
- mindspore/ops/operations/__init__.py +28 -19
- mindspore/ops/operations/_grad_ops.py +72 -7
- mindspore/ops/operations/_inner_ops.py +350 -17
- mindspore/ops/operations/_quant_ops.py +4 -8
- mindspore/ops/operations/_sequence_ops.py +42 -0
- mindspore/ops/operations/array_ops.py +68 -282
- mindspore/ops/operations/comm_ops.py +107 -59
- mindspore/ops/operations/custom_ops.py +94 -70
- mindspore/ops/operations/debug_ops.py +8 -4
- mindspore/ops/operations/image_ops.py +18 -12
- mindspore/ops/operations/inner_ops.py +26 -3
- mindspore/ops/operations/math_ops.py +189 -141
- mindspore/ops/operations/nn_ops.py +794 -489
- mindspore/ops/operations/other_ops.py +0 -22
- mindspore/ops/operations/random_ops.py +53 -111
- mindspore/ops/operations/sparse_ops.py +3 -1
- mindspore/ops/primitive.py +24 -18
- mindspore/parallel/_auto_parallel_context.py +68 -8
- mindspore/parallel/_cost_model_context.py +2 -2
- mindspore/parallel/_offload_context.py +17 -3
- mindspore/parallel/_parallel_serialization.py +12 -5
- mindspore/parallel/_ps_context.py +12 -0
- mindspore/parallel/_tensor.py +18 -13
- mindspore/parallel/_transformer/layers.py +5 -3
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +2 -2
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +23 -3
- mindspore/parallel/_utils.py +11 -7
- mindspore/parallel/algo_parameter_config.py +85 -5
- mindspore/parallel/checkpoint_transform.py +19 -12
- mindspore/parallel/shard.py +21 -14
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +4 -2
- mindspore/profiler/envprofiling.py +1 -1
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +2 -2
- mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
- mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
- mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
- mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
- mindspore/profiler/parser/ascend_op_generator.py +6 -6
- mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
- mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
- mindspore/profiler/parser/base_timeline_generator.py +10 -8
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +38 -22
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +2 -2
- mindspore/profiler/parser/minddata_analyzer.py +12 -14
- mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +8 -4
- mindspore/profiler/parser/op_intermediate_parser.py +5 -2
- mindspore/profiler/parser/optime_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +21 -2
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +179 -89
- mindspore/rewrite/api/node.py +102 -19
- mindspore/rewrite/api/node_type.py +5 -1
- mindspore/rewrite/api/pattern_engine.py +1 -1
- mindspore/rewrite/api/scoped_value.py +9 -17
- mindspore/rewrite/api/symbol_tree.py +131 -47
- mindspore/rewrite/ast_helpers/__init__.py +2 -1
- mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +33 -24
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
- mindspore/rewrite/node/call_function.py +79 -0
- mindspore/rewrite/node/cell_container.py +135 -0
- mindspore/rewrite/node/control_flow.py +88 -0
- mindspore/rewrite/{node.py → node/node.py} +273 -234
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +216 -221
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +174 -113
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +36 -15
- mindspore/rewrite/parsers/function_def_parser.py +24 -16
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +196 -25
- mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
- mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
- mindspore/rewrite/parsers/return_parser.py +6 -6
- mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree.py +523 -578
- mindspore/rewrite/symbol_tree_builder.py +9 -193
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +6 -4
- mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
- mindspore/safeguard/rewrite_obfuscation.py +541 -0
- mindspore/scipy/linalg.py +1 -1
- mindspore/scipy/optimize/minimize.py +7 -3
- mindspore/train/_utils.py +7 -3
- mindspore/train/amp.py +323 -123
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/_backup_and_restore.py +2 -12
- mindspore/train/callback/_callback.py +29 -4
- mindspore/train/callback/_checkpoint.py +23 -8
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
- mindspore/train/callback/_summary_collector.py +15 -8
- mindspore/train/callback/_time_monitor.py +58 -5
- mindspore/train/data_sink.py +5 -11
- mindspore/train/dataset_helper.py +84 -57
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/__init__.py +3 -3
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +3 -2
- mindspore/train/metrics/mean_surface_distance.py +3 -2
- mindspore/train/metrics/metric.py +39 -19
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
- mindspore/train/mind_ir_pb2.py +85 -36
- mindspore/train/model.py +187 -47
- mindspore/train/serialization.py +487 -161
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/_writer_pool.py +3 -2
- mindspore/train/summary/summary_record.py +37 -17
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/train/train_thor/dataset_helper.py +1 -1
- mindspore/version.py +1 -1
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/METADATA +6 -7
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +477 -517
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/entry_points.txt +0 -1
- mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
- mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
- mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
- mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
- mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
- mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
- mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
- mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
- mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
- mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
- mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
- mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
- mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
- mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
- mindspore/_akg/akg/tvm/rpc/base.py +0 -182
- mindspore/_akg/akg/tvm/rpc/client.py +0 -436
- mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
- mindspore/_akg/akg/tvm/rpc/server.py +0 -413
- mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
- mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
- mindspore/_extends/graph_kernel/expander.py +0 -80
- mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
- mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
- mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
- mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
- mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
- mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
- mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
- mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
- mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
- mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
- mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
- mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
- mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
- mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
- mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
- mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
- mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
- mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
- mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
- mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
- mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
- mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
- mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
- mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
- mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
- mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
- mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
- mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
- mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
- mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
- mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
- mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
- mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
- mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
- mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
- mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
- mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
- mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
- mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
- mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
- mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/dataset/datapreprocess/__init__.py +0 -20
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/include/api/net.h +0 -142
- mindspore/nn/lr_scheduler.py +0 -262
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
|
@@ -24,11 +24,11 @@ from mindspore.common import mutable
|
|
|
24
24
|
import mindspore.common._monad as monad
|
|
25
25
|
from mindspore.common.sparse_tensor import RowTensorInner
|
|
26
26
|
from mindspore.ops.composite.base import _append, _insert, _pop, _list_clear, _reverse, \
|
|
27
|
-
_extend, _dict_clear, _haskey, _update, _fromkeys
|
|
27
|
+
_extend, _dict_setitem, _dict_clear, _haskey, _update, _fromkeys
|
|
28
28
|
|
|
29
29
|
from ... import _checkparam as validator
|
|
30
|
-
from ..._checkparam import check_is_number, check_reshape_shp,
|
|
31
|
-
|
|
30
|
+
from ..._checkparam import check_is_number, check_reshape_shp, check_axis_in_range, \
|
|
31
|
+
check_axis_valid, check_and_canonicalize_axes
|
|
32
32
|
from ...ops import functional as F
|
|
33
33
|
from ...ops import operations as P
|
|
34
34
|
from ...ops import composite
|
|
@@ -58,7 +58,6 @@ size_op_ = P.Size()
|
|
|
58
58
|
_format = Format()
|
|
59
59
|
_reduce_sum_default = P.ReduceSum()
|
|
60
60
|
_reduce_sum_keepdims = P.ReduceSum(True)
|
|
61
|
-
_mean_keepdims = P.ReduceMean(True)
|
|
62
61
|
_csr_mm = _csr_ops.CSRMM()
|
|
63
62
|
|
|
64
63
|
itemsize_map = {mstype.bool_: 1, mstype.int8: 1, mstype.uint8: 1,
|
|
@@ -92,10 +91,7 @@ def mean(x, axis=None, keep_dims=False):
|
|
|
92
91
|
>>> print(output)
|
|
93
92
|
2.0
|
|
94
93
|
"""
|
|
95
|
-
|
|
96
|
-
axis = ()
|
|
97
|
-
reduce_mean = P.ReduceMean(keep_dims)
|
|
98
|
-
return reduce_mean(x, axis)
|
|
94
|
+
return F.mean(x, axis, keep_dims)
|
|
99
95
|
|
|
100
96
|
|
|
101
97
|
def ndimension(x):
|
|
@@ -176,11 +172,7 @@ def all_(x, axis=(), keep_dims=False):
|
|
|
176
172
|
Returns:
|
|
177
173
|
Tensor, has the same data type as x.
|
|
178
174
|
"""
|
|
179
|
-
|
|
180
|
-
if axis is None:
|
|
181
|
-
axis = ()
|
|
182
|
-
reduce_all = P.ReduceAll(keep_dims)
|
|
183
|
-
return reduce_all(x, axis)
|
|
175
|
+
return F.all(x, axis, keep_dims)
|
|
184
176
|
|
|
185
177
|
|
|
186
178
|
def angle(x):
|
|
@@ -816,12 +808,7 @@ def squeeze(x, axis=None):
|
|
|
816
808
|
>>> print(x.shape)
|
|
817
809
|
(2, 2)
|
|
818
810
|
"""
|
|
819
|
-
|
|
820
|
-
if axis is None:
|
|
821
|
-
return F.squeeze(x)
|
|
822
|
-
# yield squeezed shape based on the axes
|
|
823
|
-
new_shape = prepare_shape_for_squeeze(shape, axis)
|
|
824
|
-
return F.reshape(x, new_shape)
|
|
811
|
+
return F.squeeze(x, axis)
|
|
825
812
|
|
|
826
813
|
|
|
827
814
|
def unbind(input, dim=0):
|
|
@@ -856,17 +843,7 @@ def argmax(x, axis=None, keepdims=False):
|
|
|
856
843
|
>>> print(a.argmax())
|
|
857
844
|
5
|
|
858
845
|
"""
|
|
859
|
-
|
|
860
|
-
if axis is None:
|
|
861
|
-
x = ravel(x)
|
|
862
|
-
axis = 0
|
|
863
|
-
is_axis_none = True
|
|
864
|
-
if x.dtype == mstype.bool_:
|
|
865
|
-
x = x.astype(mstype.int32)
|
|
866
|
-
out = P.Argmax(axis, mstype.int64)(x)
|
|
867
|
-
if keepdims and not is_axis_none:
|
|
868
|
-
out = expand_dims(out, axis)
|
|
869
|
-
return out
|
|
846
|
+
return F.argmax(x, axis, keepdims)
|
|
870
847
|
|
|
871
848
|
|
|
872
849
|
def argmin(x, axis=None, keepdims=False):
|
|
@@ -1443,8 +1420,9 @@ def diagonal(x, offset=0, axis1=0, axis2=1):
|
|
|
1443
1420
|
|
|
1444
1421
|
e = F.eye(n, m, dtype)
|
|
1445
1422
|
if offset >= m or offset <= -n:
|
|
1446
|
-
|
|
1447
|
-
|
|
1423
|
+
zero_shape = shape[:-2] + (0,)
|
|
1424
|
+
return F.zeros(zero_shape, dtype)
|
|
1425
|
+
if offset != 0:
|
|
1448
1426
|
e = e.astype(mstype.float32)
|
|
1449
1427
|
if offset > 0:
|
|
1450
1428
|
e_left = F.fill(dtype, (n, offset), 0)
|
|
@@ -1730,6 +1708,22 @@ def take(x, indices, axis=None, mode='clip'):
|
|
|
1730
1708
|
return res.reshape(shape_out)
|
|
1731
1709
|
|
|
1732
1710
|
|
|
1711
|
+
def ms_type(input, dtype=None):
|
|
1712
|
+
r"""
|
|
1713
|
+
Change the dtype of the Tensor to the `dtype` . Return the type if `dtype` is None.
|
|
1714
|
+
"""
|
|
1715
|
+
if dtype is None:
|
|
1716
|
+
return str(input.dtype)
|
|
1717
|
+
return input.astype(dtype)
|
|
1718
|
+
|
|
1719
|
+
|
|
1720
|
+
def type_as(input, other):
|
|
1721
|
+
r"""
|
|
1722
|
+
Change the dtype of `input` to the dtype of `other`.
|
|
1723
|
+
"""
|
|
1724
|
+
return input.astype(other.dtype)
|
|
1725
|
+
|
|
1726
|
+
|
|
1733
1727
|
def _infer_out_shape(*shapes):
|
|
1734
1728
|
"""
|
|
1735
1729
|
Returns shape of output after broadcasting. Raises ValueError if shapes cannot be broadcast.
|
|
@@ -1737,8 +1731,8 @@ def _infer_out_shape(*shapes):
|
|
|
1737
1731
|
shape_out = list()
|
|
1738
1732
|
max_len = ms_max([len(it) for it in shapes])
|
|
1739
1733
|
for i in range(max_len):
|
|
1740
|
-
items = [it[i-(max_len-len(it))] if i - (max_len - len(it))
|
|
1741
|
-
|
|
1734
|
+
items = [it[i - (max_len - len(it))] if i - (max_len - len(it))
|
|
1735
|
+
>= 0 else 1 for it in shapes]
|
|
1742
1736
|
max_size = 0 if 0 in items else ms_max(items)
|
|
1743
1737
|
shape_out.append(max_size)
|
|
1744
1738
|
return tuple(shape_out)
|
|
@@ -1849,12 +1843,14 @@ def searchsorted(x, v, side='left', sorter=None):
|
|
|
1849
1843
|
>>> print(x.searchsorted(3))
|
|
1850
1844
|
2
|
|
1851
1845
|
"""
|
|
1846
|
+
|
|
1852
1847
|
def get_log2_size(size):
|
|
1853
1848
|
"""Get log2 size"""
|
|
1854
1849
|
log2_res = F.log2(F.cast(size, mstype.float32))
|
|
1855
1850
|
ceil_res = F.ceil(log2_res)
|
|
1856
1851
|
cast_res = F.cast(ceil_res, mstype.int64)
|
|
1857
1852
|
return cast_res
|
|
1853
|
+
|
|
1858
1854
|
if side not in ('left', 'right'):
|
|
1859
1855
|
const_utils.raise_value_error('invalid value for keyword "side"')
|
|
1860
1856
|
a = x.astype(mstype.float32)
|
|
@@ -1892,8 +1888,6 @@ def fill(x, value):
|
|
|
1892
1888
|
const_utils.raise_type_error("If None is used as value, the original Tensor's dtype must be float.")
|
|
1893
1889
|
value = nan_tensor
|
|
1894
1890
|
return F.tile(value, x.shape).astype(x.dtype)
|
|
1895
|
-
if not isinstance(value, (int, float, bool)):
|
|
1896
|
-
const_utils.raise_type_error("input value must be a scalar.")
|
|
1897
1891
|
return F.fill(x.dtype, x.shape, value)
|
|
1898
1892
|
|
|
1899
1893
|
|
|
@@ -2009,7 +2003,7 @@ def var(x, axis=None, ddof=0, keepdims=False):
|
|
|
2009
2003
|
axis = ()
|
|
2010
2004
|
else:
|
|
2011
2005
|
axis = check_and_canonicalize_axes(axis, x.ndim)
|
|
2012
|
-
x_mean =
|
|
2006
|
+
x_mean = F.mean(x, axis, True)
|
|
2013
2007
|
x_sub = F.tensor_sub(x, x_mean)
|
|
2014
2008
|
x_pow = F.tensor_pow(x_sub, 2)
|
|
2015
2009
|
if keepdims:
|
|
@@ -2117,27 +2111,14 @@ def sum(input, axis=None, dtype=None, keepdims=False, initial=None): # pylint:
|
|
|
2117
2111
|
>>> print(input_x.sum(axis=1))
|
|
2118
2112
|
[10. 35.]
|
|
2119
2113
|
"""
|
|
2120
|
-
input_x = input.astype(mstype.int32) if input.dtype == mstype.bool_ else input
|
|
2121
|
-
dtype = input_x.dtype if dtype is None else dtype
|
|
2122
|
-
dtype = check_astype_dtype_const(dtype)
|
|
2123
|
-
if not isinstance(keepdims, int):
|
|
2124
|
-
const_utils.raise_type_error("integer argument expected")
|
|
2125
2114
|
if initial is not None and not isinstance(initial, (int, float, bool)):
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
axis = ()
|
|
2129
|
-
else:
|
|
2130
|
-
axis = check_and_canonicalize_axes(axis, input.ndim)
|
|
2131
|
-
|
|
2132
|
-
if not check_type_support(input_x.dtype, 'GPU', (mstype.float64, mstype.float32, mstype.float16)):
|
|
2133
|
-
input_x = input_x.astype(mstype.float32)
|
|
2134
|
-
if keepdims:
|
|
2135
|
-
res = _reduce_sum_keepdims(input_x, axis)
|
|
2136
|
-
else:
|
|
2137
|
-
res = _reduce_sum_default(input_x, axis)
|
|
2115
|
+
raise TypeError(f"For Tensor.sum, initial must be int, float or bool, but got {type(initial)}.")
|
|
2116
|
+
res = F.sum(input, axis, keepdims)
|
|
2138
2117
|
if initial is not None:
|
|
2139
2118
|
res += initial
|
|
2140
|
-
|
|
2119
|
+
if dtype is not None:
|
|
2120
|
+
res = res.astype(dtype)
|
|
2121
|
+
return res
|
|
2141
2122
|
|
|
2142
2123
|
|
|
2143
2124
|
@_primexpr
|
|
@@ -2363,7 +2344,7 @@ def itemset(data, *args):
|
|
|
2363
2344
|
|
|
2364
2345
|
def ms_iter(xs):
|
|
2365
2346
|
"""Implementation of `iter`."""
|
|
2366
|
-
return xs.__ms_iter__
|
|
2347
|
+
return xs.__ms_iter__
|
|
2367
2348
|
|
|
2368
2349
|
|
|
2369
2350
|
def ms_next(it):
|
|
@@ -2389,13 +2370,9 @@ def str_func(*data):
|
|
|
2389
2370
|
if data_len == 0:
|
|
2390
2371
|
return ''
|
|
2391
2372
|
data = data[0]
|
|
2392
|
-
if
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
if not F.isconstant(data):
|
|
2396
|
-
const_utils.raise_type_error(
|
|
2397
|
-
"str() does not support non-constant input.")
|
|
2398
|
-
return cast_to_str(data)
|
|
2373
|
+
if F.isconstant(data):
|
|
2374
|
+
return cast_to_str(data)
|
|
2375
|
+
return data.__str__()
|
|
2399
2376
|
|
|
2400
2377
|
|
|
2401
2378
|
@constexpr
|
|
@@ -2514,17 +2491,15 @@ def tuple_func(*data):
|
|
|
2514
2491
|
"""Implementation of `tuple`."""
|
|
2515
2492
|
data_len = len(data)
|
|
2516
2493
|
if data_len >= 2:
|
|
2517
|
-
|
|
2494
|
+
raise TypeError("tuple() requires 0 or 1 arguments.")
|
|
2518
2495
|
if data_len == 0:
|
|
2519
2496
|
return F.make_tuple()
|
|
2520
2497
|
data = data[0]
|
|
2521
2498
|
if isinstance(data, (CSRTensor, COOTensor, RowTensorInner)):
|
|
2522
|
-
|
|
2523
|
-
"tuple() does not support single sparse tensor input.")
|
|
2499
|
+
raise TypeError("tuple() does not support single sparse tensor input.")
|
|
2524
2500
|
if not isinstance(data, Tensor) and not hasattr(data, "__ms_iter__"):
|
|
2525
2501
|
data_type = F.typeof(data)
|
|
2526
|
-
|
|
2527
|
-
str(data_type) + " object is not iterable.")
|
|
2502
|
+
raise TypeError(str(data_type) + " object is not iterable.")
|
|
2528
2503
|
if isinstance(data, dict):
|
|
2529
2504
|
data = data.keys()
|
|
2530
2505
|
if isinstance(data, (tuple, list)) and F.is_sequence_shape_unknown(data):
|
|
@@ -2792,26 +2767,6 @@ def ms_len(data):
|
|
|
2792
2767
|
return data.__len__()
|
|
2793
2768
|
|
|
2794
2769
|
|
|
2795
|
-
@constexpr
|
|
2796
|
-
def python_len_with_check(data):
|
|
2797
|
-
"""Return the result of python built-in len function with iterable check"""
|
|
2798
|
-
if not hasattr(data, "__iter__"):
|
|
2799
|
-
raise TypeError(str(type(data)) +
|
|
2800
|
-
" object is not iterable in graph mode.")
|
|
2801
|
-
return len(data)
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
def ms_len_with_iterable_check(data):
|
|
2805
|
-
"""Implementation of `len` with iterable check, used in len of condition."""
|
|
2806
|
-
if not isinstance(data, Tensor) and F.isconstant(data):
|
|
2807
|
-
return python_len_with_check(data)
|
|
2808
|
-
if not hasattr(data, "__len__"):
|
|
2809
|
-
type_str = str(F.typeof(data))
|
|
2810
|
-
const_utils.raise_type_error(
|
|
2811
|
-
type_str + " object is not iterable in graph mode.")
|
|
2812
|
-
return data.__len__()
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
2770
|
def floor(x):
|
|
2816
2771
|
"""Rounds a tensor down to the closest integer element-wise."""
|
|
2817
2772
|
return x.__floor__()
|
|
@@ -2864,14 +2819,12 @@ def enumerate_(x, start=0):
|
|
|
2864
2819
|
x_type = F.typeof(x)
|
|
2865
2820
|
ret = ()
|
|
2866
2821
|
op_name = "enumerate"
|
|
2867
|
-
if
|
|
2868
|
-
|
|
2822
|
+
if isinstance(x, (int, float, bool)):
|
|
2823
|
+
raise TypeError(f"For 'enumerate', the 'first input' should be tuple or list or tensor, but got {type(x)}.")
|
|
2824
|
+
if check_is_const_int(start, op_name, "start"):
|
|
2869
2825
|
if check_is_tensor(x_type):
|
|
2870
2826
|
for i in range(x.shape[0]):
|
|
2871
2827
|
ret += ((start + i, x[i]),)
|
|
2872
|
-
elif F.is_sequence_shape_unknown(x):
|
|
2873
|
-
const_utils.raise_value_error(
|
|
2874
|
-
"For 'enumerate', the dynamic length input is unsupported in graph mode")
|
|
2875
2828
|
else:
|
|
2876
2829
|
ret = zip(range(start, start + len(x)), x)
|
|
2877
2830
|
return ret
|
|
@@ -2941,6 +2894,13 @@ def to_coo(x):
|
|
|
2941
2894
|
return F.dense_to_sparse_coo(x)
|
|
2942
2895
|
|
|
2943
2896
|
|
|
2897
|
+
def tolist(x):
|
|
2898
|
+
"""
|
|
2899
|
+
Convert a Tensor to List, if the input is Tensor scalar, Python scalar will be returned.
|
|
2900
|
+
"""
|
|
2901
|
+
return x.asnumpy().tolist()
|
|
2902
|
+
|
|
2903
|
+
|
|
2944
2904
|
@constexpr
|
|
2945
2905
|
def check_select_condition(cond_type):
|
|
2946
2906
|
"""
|
|
@@ -3296,16 +3256,6 @@ def check_is_tensor(x):
|
|
|
3296
3256
|
return False
|
|
3297
3257
|
|
|
3298
3258
|
|
|
3299
|
-
@constexpr
|
|
3300
|
-
def check_is_tuple_or_list_or_tensor(x, op_name, arg_name):
|
|
3301
|
-
"""check whether x is list or tuple or tensor."""
|
|
3302
|
-
if isinstance(x, (mstype.List, mstype.Tuple, mstype.TensorType)):
|
|
3303
|
-
return True
|
|
3304
|
-
raise TypeError(
|
|
3305
|
-
f"For '{op_name}', the '{arg_name}' should be tuple or list or tensor, but got {x}.")
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
@constexpr
|
|
3309
3259
|
def check_is_const_int(x, op_name, arg_name):
|
|
3310
3260
|
"""check whether x is const int."""
|
|
3311
3261
|
if x is None:
|
|
@@ -3652,6 +3602,11 @@ def dict_get(self_, key_index, default_value=None):
|
|
|
3652
3602
|
return F.dict_getitem(self_, key_index)
|
|
3653
3603
|
|
|
3654
3604
|
|
|
3605
|
+
def dict_setitem(self_, key, target):
|
|
3606
|
+
"""Dictionary setitem"""
|
|
3607
|
+
return _dict_setitem(self_, key, target)
|
|
3608
|
+
|
|
3609
|
+
|
|
3655
3610
|
def dict_clear(self_):
|
|
3656
3611
|
"""Clear the dict"""
|
|
3657
3612
|
return _dict_clear(self_)
|
|
@@ -3902,6 +3857,13 @@ def cos(x):
|
|
|
3902
3857
|
return F.cos(x)
|
|
3903
3858
|
|
|
3904
3859
|
|
|
3860
|
+
def count_nonzero(x, axis=(), keep_dims=False, dtype=mstype.int32):
|
|
3861
|
+
r"""
|
|
3862
|
+
For details, please refer to :func:`mindspore.ops.count_nonzero`.
|
|
3863
|
+
"""
|
|
3864
|
+
return F.count_nonzero(x, axis, keep_dims, dtype)
|
|
3865
|
+
|
|
3866
|
+
|
|
3905
3867
|
def cov(x, *, correction=1, fweights=None, aweights=None):
|
|
3906
3868
|
r"""
|
|
3907
3869
|
For details, please refer to :func:`mindspore.ops.cov`.
|
|
@@ -4180,7 +4142,8 @@ def expand(input, size):
|
|
|
4180
4142
|
r"""
|
|
4181
4143
|
Returns a new view of the self tensor with singleton dimensions expanded to a larger size.
|
|
4182
4144
|
"""
|
|
4183
|
-
|
|
4145
|
+
size = P.TensorToTuple()(size)
|
|
4146
|
+
return F.broadcast_to(input, size)
|
|
4184
4147
|
|
|
4185
4148
|
|
|
4186
4149
|
def cumprod(input, dim, dtype=None):
|
|
@@ -4202,6 +4165,13 @@ def div(input, value, *, rounding_mode=None):
|
|
|
4202
4165
|
return F.div(input, value, rounding_mode=rounding_mode)
|
|
4203
4166
|
|
|
4204
4167
|
|
|
4168
|
+
def eq(input, other):
|
|
4169
|
+
r"""
|
|
4170
|
+
Computes the equivalence between the tensor `input` and the given input tensor `other` element-wise.
|
|
4171
|
+
"""
|
|
4172
|
+
return F.equal(input, other)
|
|
4173
|
+
|
|
4174
|
+
|
|
4205
4175
|
def equal(x, y):
|
|
4206
4176
|
r"""
|
|
4207
4177
|
Computes the equivalence between the tensor `x` and the given input tensor `y` element-wise.
|
|
@@ -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-2023 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.
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"""kernel build server"""
|
|
16
16
|
import os
|
|
17
17
|
from mindspore import log as logger
|
|
18
|
-
from mindspore._extends.parallel_compile.akg_compiler.akg_process import create_akg_parallel_process
|
|
18
|
+
from mindspore._extends.parallel_compile.akg_compiler.akg_process import create_akg_parallel_process, \
|
|
19
|
+
create_akg_v2_parallel_process
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class Messager:
|
|
@@ -124,8 +125,8 @@ class Messager:
|
|
|
124
125
|
raise NotImplementedError
|
|
125
126
|
|
|
126
127
|
|
|
127
|
-
class
|
|
128
|
-
"""
|
|
128
|
+
class AkgBuilderBase():
|
|
129
|
+
"""Base Class for kernel compiler building wrapper"""
|
|
129
130
|
|
|
130
131
|
def __init__(self, platform):
|
|
131
132
|
self.platform = platform
|
|
@@ -133,8 +134,9 @@ class AkgBuilder():
|
|
|
133
134
|
self.akg_processor = None
|
|
134
135
|
|
|
135
136
|
def create(self, process_num, waitime):
|
|
136
|
-
""" Create
|
|
137
|
-
|
|
137
|
+
""" Create compiler processor"""
|
|
138
|
+
del process_num, waitime
|
|
139
|
+
raise NotImplementedError
|
|
138
140
|
|
|
139
141
|
def accept_json(self, json):
|
|
140
142
|
""" Accept json"""
|
|
@@ -145,7 +147,7 @@ class AkgBuilder():
|
|
|
145
147
|
return self.akg_processor.compile(self.attrs)
|
|
146
148
|
|
|
147
149
|
def handle(self, messager, arg):
|
|
148
|
-
"""Handle message about
|
|
150
|
+
"""Handle message about compiler"""
|
|
149
151
|
if arg == 'AKG/START':
|
|
150
152
|
messager.send_ack()
|
|
151
153
|
process_num_str = messager.get_message()
|
|
@@ -172,7 +174,23 @@ class AkgBuilder():
|
|
|
172
174
|
messager.send_ack(False)
|
|
173
175
|
break
|
|
174
176
|
else:
|
|
175
|
-
raise RuntimeError("Unknown message type:
|
|
177
|
+
raise RuntimeError(f"Unknown message type: {arg}")
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class AkgBuilder(AkgBuilderBase):
|
|
181
|
+
"""Akg building wrapper"""
|
|
182
|
+
|
|
183
|
+
def create(self, process_num, waitime):
|
|
184
|
+
""" Create akg processor"""
|
|
185
|
+
self.akg_processor = create_akg_parallel_process(process_num, waitime, self.platform)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class AkgV2Builder(AkgBuilderBase):
|
|
189
|
+
"""Akg V2 building wrapper"""
|
|
190
|
+
|
|
191
|
+
def create(self, process_num, waitime):
|
|
192
|
+
""" Create akg v2 processor"""
|
|
193
|
+
self.akg_processor = create_akg_v2_parallel_process(process_num, waitime, self.platform)
|
|
176
194
|
|
|
177
195
|
|
|
178
196
|
def get_logger():
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
"""kernel build server for akg v2 kernels"""
|
|
16
|
+
import sys
|
|
17
|
+
import warnings
|
|
18
|
+
from mindspore._extends.remote.kernel_build_server import Messager, get_logger, AkgV2Builder
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class AkgV2Messager(Messager):
|
|
22
|
+
'''
|
|
23
|
+
Default Messager for akg v2 kernels.
|
|
24
|
+
It works as a server, communicating with c++ client.
|
|
25
|
+
'''
|
|
26
|
+
|
|
27
|
+
def __init__(self, fdin, fdout):
|
|
28
|
+
super().__init__(fdin, fdout)
|
|
29
|
+
get_logger().info("[TRACE] AKG V2 Messager init...")
|
|
30
|
+
self.akg_v2_builder = AkgV2Builder("default")
|
|
31
|
+
|
|
32
|
+
def handle(self):
|
|
33
|
+
"""
|
|
34
|
+
Communicate with remote client.
|
|
35
|
+
Reference protocol between them at PR#4063
|
|
36
|
+
"""
|
|
37
|
+
arg = self.get_message()
|
|
38
|
+
if "AKG" in arg:
|
|
39
|
+
self.akg_v2_builder.handle(self, arg)
|
|
40
|
+
else:
|
|
41
|
+
self.send_ack(False)
|
|
42
|
+
self.exit()
|
|
43
|
+
|
|
44
|
+
def exit(self):
|
|
45
|
+
get_logger().info("[TRACE] AKG V2 Messager Exit...")
|
|
46
|
+
exit()
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
if __name__ == '__main__':
|
|
50
|
+
warnings.simplefilter("ignore")
|
|
51
|
+
if len(sys.argv) != 3:
|
|
52
|
+
raise Exception(f"Incorrect argv: {sys.argv}")
|
|
53
|
+
get_logger().debug(f"[TRACE] argv: {str(sys.argv)}")
|
|
54
|
+
messager = AkgV2Messager(int(sys.argv[1]), int(sys.argv[2]))
|
|
55
|
+
messager.run()
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
"""install custom op files"""
|
|
16
|
+
|
|
17
|
+
import os
|
|
18
|
+
import platform
|
|
19
|
+
import importlib.util
|
|
20
|
+
from mindspore import log as logger
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _install_custom():
|
|
24
|
+
"""install custom op files"""
|
|
25
|
+
if platform.system() != "Linux":
|
|
26
|
+
return
|
|
27
|
+
custom_op_path = os.environ.get("MS_DEV_CUSTOM_OPP_PATH")
|
|
28
|
+
if not custom_op_path:
|
|
29
|
+
return
|
|
30
|
+
if not os.path.isdir(custom_op_path):
|
|
31
|
+
logger.warning("The path set in env 'MS_DEV_CUSTOM_OPP_PATH' is not a directory: '{}'".format(custom_op_path))
|
|
32
|
+
else:
|
|
33
|
+
for file_name in os.listdir(custom_op_path):
|
|
34
|
+
file_path = os.path.join(custom_op_path, file_name)
|
|
35
|
+
if os.path.isfile(file_path) and file_name.endswith(".py") and file_name != "__init__.py":
|
|
36
|
+
logger.info("start import file: '{}'".format(file_path))
|
|
37
|
+
mod_spec = importlib.util.spec_from_file_location(os.path.splitext(file_name)[0], file_path)
|
|
38
|
+
mod = importlib.util.module_from_spec(mod_spec)
|
|
39
|
+
mod_spec.loader.exec_module(mod)
|
|
40
|
+
os.environ.pop("MS_DEV_CUSTOM_OPP_PATH")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
_install_custom()
|
|
Binary file
|
mindspore/amp.py
CHANGED
|
@@ -15,11 +15,13 @@
|
|
|
15
15
|
"""ms function for mixed precision."""
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
|
|
18
|
+
import os
|
|
18
19
|
from abc import ABC, abstractmethod
|
|
19
20
|
from mindspore.common import mutable
|
|
20
21
|
from mindspore.ops._primitive_cache import _get_cache_prim
|
|
21
22
|
from mindspore.ops.operations.math_ops import NPUGetFloatStatusV2, NPUClearFloatStatusV2
|
|
22
23
|
from mindspore import _checkparam as validator
|
|
24
|
+
from mindspore._c_expression import MSContext
|
|
23
25
|
from .common import dtype as mstype
|
|
24
26
|
from . import context
|
|
25
27
|
from . import ops
|
|
@@ -37,8 +39,13 @@ _partial = ops.Partial()
|
|
|
37
39
|
|
|
38
40
|
|
|
39
41
|
@constexpr
|
|
40
|
-
def
|
|
41
|
-
return
|
|
42
|
+
def _ascend_910A_target():
|
|
43
|
+
return MSContext.get_instance().get_ascend_soc_version() == "ascend910"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@constexpr
|
|
47
|
+
def _ascend_910B_target():
|
|
48
|
+
return MSContext.get_instance().get_ascend_soc_version() == "ascend910b"
|
|
42
49
|
|
|
43
50
|
|
|
44
51
|
@constexpr
|
|
@@ -72,9 +79,10 @@ def _overflow(inputs):
|
|
|
72
79
|
|
|
73
80
|
|
|
74
81
|
@jit
|
|
75
|
-
def _all_finite(inputs):
|
|
82
|
+
def _all_finite(inputs, check_overflow_mode):
|
|
76
83
|
"""all finite check"""
|
|
77
|
-
if
|
|
84
|
+
if (_ascend_910A_target()) or \
|
|
85
|
+
(_ascend_910B_target() and check_overflow_mode != "INFNAN_MODE"):
|
|
78
86
|
status = Tensor([0] * 8, mstype.int32)
|
|
79
87
|
status = ops.depend(status, inputs)
|
|
80
88
|
get_status = _get_cache_prim(NPUGetFloatStatusV2)()(status)
|
|
@@ -83,6 +91,7 @@ def _all_finite(inputs):
|
|
|
83
91
|
get_status = ops.depend(get_status, clear_status)
|
|
84
92
|
status_finite = get_status.equal(Tensor(0, mstype.int32)).all()
|
|
85
93
|
return status_finite
|
|
94
|
+
|
|
86
95
|
outputs = _hypermap(_partial(_overflow), inputs)
|
|
87
96
|
flag_sum = ops.addn(outputs).reshape(())
|
|
88
97
|
status_finite = ops.less(flag_sum, 1)
|
|
@@ -117,10 +126,11 @@ def all_finite(inputs):
|
|
|
117
126
|
|
|
118
127
|
Tutorial Examples:
|
|
119
128
|
- `Automatic Mix Precision - Loss Scaling
|
|
120
|
-
<https://mindspore.cn/tutorials/en/r2.
|
|
129
|
+
<https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
|
|
121
130
|
"""
|
|
122
131
|
inputs = mutable(inputs)
|
|
123
|
-
|
|
132
|
+
_check_overflow_mode = os.environ.get('MS_ASCEND_CHECK_OVERFLOW_MODE')
|
|
133
|
+
return _all_finite(inputs, _check_overflow_mode)
|
|
124
134
|
|
|
125
135
|
|
|
126
136
|
@jit_class
|
|
@@ -132,11 +142,36 @@ class LossScaler(ABC):
|
|
|
132
142
|
to scale and unscale the loss value and gradients to avoid overflow, `adjust` is used to update the
|
|
133
143
|
loss scale value.
|
|
134
144
|
|
|
135
|
-
For more information, refer to the `tutorials <https://mindspore.cn/tutorials/en/r2.
|
|
145
|
+
For more information, refer to the `tutorials <https://mindspore.cn/tutorials/en/r2.2/advanced/
|
|
136
146
|
mixed_precision.html#loss-scaling>`_.
|
|
137
147
|
|
|
138
148
|
.. warning::
|
|
139
149
|
This is an experimental API that is subject to change or deletion.
|
|
150
|
+
|
|
151
|
+
Examples:
|
|
152
|
+
>>> from mindspore.amp import LossScaler, _grad_scale_map, _grad_unscale_map
|
|
153
|
+
>>> from mindspore import ops, Parameter, Tensor
|
|
154
|
+
>>> from mindspore.common import dtype as mstype
|
|
155
|
+
>>>
|
|
156
|
+
>>> class MyLossScaler(LossScaler):
|
|
157
|
+
... def __init__(self, scale_value):
|
|
158
|
+
... self.scale_value = Parameter(Tensor(scale_value, dtype=mstype.float32), name="scale_value")
|
|
159
|
+
...
|
|
160
|
+
... def scale(self, inputs):
|
|
161
|
+
... inputs = mutable(inputs)
|
|
162
|
+
... return _grad_scale_map(self.scale_value, inputs)
|
|
163
|
+
...
|
|
164
|
+
... def unscale(self, inputs):
|
|
165
|
+
... inputs = mutable(inputs)
|
|
166
|
+
... return _grad_unscale_map(self.scale_value, inputs)
|
|
167
|
+
...
|
|
168
|
+
... def adjust(self, grads_finite):
|
|
169
|
+
... scale_mul_factor = self.scale_value * self.scale_factor
|
|
170
|
+
... scale_value = ops.select(grads_finite, scale_mul_factor, self.scale_value)
|
|
171
|
+
... ops.assign(self.scale_value, scale_value)
|
|
172
|
+
... return True
|
|
173
|
+
>>>
|
|
174
|
+
>>> loss_scaler = MyLossScaler(1024)
|
|
140
175
|
"""
|
|
141
176
|
@abstractmethod
|
|
142
177
|
def scale(self, inputs):
|
|
@@ -234,7 +269,8 @@ class StaticLossScaler(LossScaler):
|
|
|
234
269
|
|
|
235
270
|
def adjust(self, grads_finite):
|
|
236
271
|
"""
|
|
237
|
-
`scale_value` is fixed
|
|
272
|
+
Adjust `scale_value` in `LossScaler`. `scale_value` is fixed in `StaticLossScaler`, so this method
|
|
273
|
+
return False directly.
|
|
238
274
|
|
|
239
275
|
Args:
|
|
240
276
|
grads_finite (Tensor): a scalar bool Tensor indicating whether the grads are finite.
|
|
@@ -298,7 +334,7 @@ class DynamicLossScaler(LossScaler):
|
|
|
298
334
|
|
|
299
335
|
Tutorial Examples:
|
|
300
336
|
- `Automatic Mix Precision - Loss Scaling
|
|
301
|
-
<https://mindspore.cn/tutorials/en/r2.
|
|
337
|
+
<https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
|
|
302
338
|
"""
|
|
303
339
|
inputs = mutable(inputs)
|
|
304
340
|
return _grad_scale_map(self.scale_value, inputs)
|
|
@@ -315,7 +351,7 @@ class DynamicLossScaler(LossScaler):
|
|
|
315
351
|
|
|
316
352
|
Tutorial Examples:
|
|
317
353
|
- `Automatic Mix Precision - Loss Scaling
|
|
318
|
-
<https://mindspore.cn/tutorials/en/r2.
|
|
354
|
+
<https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
|
|
319
355
|
"""
|
|
320
356
|
inputs = mutable(inputs)
|
|
321
357
|
return _grad_unscale_map(self.scale_value, inputs)
|
|
@@ -329,7 +365,7 @@ class DynamicLossScaler(LossScaler):
|
|
|
329
365
|
|
|
330
366
|
Tutorial Examples:
|
|
331
367
|
- `Automatic Mix Precision - Loss Scaling
|
|
332
|
-
<https://mindspore.cn/tutorials/en/r2.
|
|
368
|
+
<https://mindspore.cn/tutorials/en/r2.2/advanced/mixed_precision.html#loss-scaling>`_
|
|
333
369
|
"""
|
|
334
370
|
one = ops.ones((), self.scale_value.dtype)
|
|
335
371
|
scale_mul_factor = self.scale_value * self.scale_factor
|
mindspore/bin/cache_admin
CHANGED
|
Binary file
|
mindspore/bin/cache_server
CHANGED
|
Binary file
|