mindspore 2.4.10__cp311-cp311-win_amd64.whl → 2.6.0__cp311-cp311-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 +13 -6
- mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -38
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +83 -0
- mindspore/_extends/parse/deprecated/__init__.py +0 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
- mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
- mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
- mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
- mindspore/_extends/parse/parser.py +47 -198
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +229 -99
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +11 -5
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/__init__.py +2 -2
- mindspore/boost/base.py +3 -7
- mindspore/boost/boost_cell_wrapper.py +138 -43
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +6 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -2
- mindspore/common/_stub_tensor.py +30 -14
- mindspore/common/_tensor_cpp_method.py +17 -0
- mindspore/common/_tensor_docs.py +4760 -0
- mindspore/common/api.py +480 -372
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +39 -36
- mindspore/common/dump.py +9 -6
- mindspore/common/file_system.py +9 -1
- mindspore/common/generator.py +5 -0
- mindspore/common/hook_handle.py +6 -2
- mindspore/common/initializer.py +13 -10
- mindspore/common/jit_begin_end.py +94 -0
- mindspore/common/jit_config.py +6 -1
- mindspore/common/jit_context.py +76 -0
- mindspore/common/jit_trace.py +378 -0
- mindspore/common/lazy_inline.py +9 -3
- mindspore/common/mindir_util.py +10 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +135 -52
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +975 -1981
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +52 -2
- mindspore/communication/comm_func.py +240 -181
- mindspore/communication/management.py +95 -26
- mindspore/context.py +324 -573
- mindspore/dataset/__init__.py +65 -37
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/callback/ds_callback.py +2 -1
- mindspore/dataset/core/config.py +87 -6
- mindspore/dataset/engine/cache_admin.py +3 -3
- mindspore/dataset/engine/cache_client.py +6 -5
- mindspore/dataset/engine/datasets.py +292 -267
- mindspore/dataset/engine/datasets_audio.py +22 -8
- mindspore/dataset/engine/datasets_standard_format.py +46 -27
- mindspore/dataset/engine/datasets_text.py +78 -48
- mindspore/dataset/engine/datasets_user_defined.py +183 -117
- mindspore/dataset/engine/datasets_vision.py +120 -44
- mindspore/dataset/engine/iterators.py +283 -63
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/obs/util.py +8 -0
- mindspore/dataset/engine/queue.py +40 -0
- mindspore/dataset/engine/samplers.py +289 -43
- mindspore/dataset/engine/serializer_deserializer.py +3 -2
- mindspore/dataset/engine/validators.py +53 -11
- mindspore/dataset/text/__init__.py +7 -6
- mindspore/dataset/text/transforms.py +6 -5
- mindspore/dataset/text/utils.py +3 -3
- mindspore/dataset/transforms/__init__.py +0 -9
- mindspore/dataset/transforms/py_transforms_util.py +17 -0
- mindspore/dataset/transforms/transforms.py +31 -14
- mindspore/dataset/utils/browse_dataset.py +1 -1
- mindspore/dataset/vision/__init__.py +2 -9
- mindspore/dataset/vision/transforms.py +202 -158
- mindspore/dataset/vision/utils.py +7 -5
- mindspore/dataset/vision/validators.py +1 -2
- mindspore/device_context/__init__.py +21 -0
- mindspore/device_context/ascend/__init__.py +25 -0
- mindspore/device_context/ascend/device.py +72 -0
- mindspore/device_context/ascend/op_debug.py +153 -0
- mindspore/device_context/ascend/op_precision.py +193 -0
- mindspore/device_context/ascend/op_tuning.py +123 -0
- mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
- mindspore/device_context/cpu/device.py +62 -0
- mindspore/device_context/cpu/op_tuning.py +43 -0
- mindspore/device_context/gpu/__init__.py +21 -0
- mindspore/device_context/gpu/device.py +70 -0
- mindspore/device_context/gpu/op_precision.py +67 -0
- mindspore/device_context/gpu/op_tuning.py +175 -0
- mindspore/device_manager.py +170 -0
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/__init__.py +1 -0
- mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
- mindspore/experimental/llm_boost/register.py +1 -0
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +6 -6
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +7 -0
- mindspore/experimental/optim/adamax.py +4 -4
- mindspore/experimental/optim/adamw.py +4 -0
- mindspore/experimental/optim/asgd.py +1 -1
- mindspore/experimental/optim/lr_scheduler.py +73 -46
- mindspore/experimental/optim/radam.py +34 -31
- mindspore/experimental/optim/rprop.py +1 -1
- mindspore/experimental/optim/sgd.py +1 -1
- mindspore/hal/contiguous_tensors_handle.py +6 -10
- mindspore/hal/device.py +55 -53
- mindspore/hal/event.py +52 -52
- mindspore/hal/memory.py +179 -120
- mindspore/hal/stream.py +150 -109
- mindspore/include/api/context.h +0 -1
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +50 -0
- mindspore/mindrecord/__init__.py +21 -8
- mindspore/mindrecord/config.py +17 -316
- mindspore/mindrecord/filereader.py +1 -9
- mindspore/mindrecord/filewriter.py +5 -15
- mindspore/mindrecord/mindpage.py +1 -9
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_memory_pool.dll +0 -0
- mindspore/mindspore_ms_backend.dll +0 -0
- mindspore/mindspore_ops.dll +0 -0
- mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mint/__init__.py +798 -761
- mindspore/mint/distributed/__init__.py +70 -4
- mindspore/mint/distributed/distributed.py +2679 -44
- mindspore/mint/linalg/__init__.py +8 -0
- mindspore/mint/nn/__init__.py +743 -22
- mindspore/mint/nn/functional.py +716 -23
- mindspore/mint/nn/layer/__init__.py +21 -4
- mindspore/mint/nn/layer/_functions.py +334 -0
- mindspore/mint/nn/layer/activation.py +276 -1
- mindspore/mint/nn/layer/basic.py +123 -0
- mindspore/mint/nn/layer/conv.py +933 -0
- mindspore/mint/nn/layer/normalization.py +223 -28
- mindspore/mint/nn/layer/padding.py +797 -0
- mindspore/mint/nn/layer/pooling.py +235 -0
- mindspore/mint/optim/__init__.py +3 -1
- mindspore/mint/optim/adam.py +223 -0
- mindspore/mint/optim/adamw.py +26 -19
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/mint/special/__init__.py +2 -1
- 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 +5 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1373 -192
- mindspore/nn/dynamic_lr.py +2 -1
- mindspore/nn/layer/activation.py +29 -27
- mindspore/nn/layer/basic.py +51 -35
- mindspore/nn/layer/channel_shuffle.py +3 -3
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +12 -11
- mindspore/nn/layer/normalization.py +56 -49
- mindspore/nn/layer/padding.py +4 -3
- mindspore/nn/layer/pooling.py +120 -42
- mindspore/nn/layer/rnn_cells.py +1 -1
- mindspore/nn/layer/rnns.py +2 -1
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +59 -36
- mindspore/nn/learning_rate_schedule.py +8 -4
- mindspore/nn/loss/loss.py +58 -55
- mindspore/nn/optim/ada_grad.py +7 -5
- mindspore/nn/optim/adadelta.py +11 -9
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +19 -15
- mindspore/nn/optim/adamax.py +8 -7
- mindspore/nn/optim/adasum.py +5 -5
- mindspore/nn/optim/asgd.py +3 -1
- mindspore/nn/optim/ftrl.py +11 -9
- mindspore/nn/optim/lamb.py +1 -1
- mindspore/nn/optim/lars.py +1 -4
- mindspore/nn/optim/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +3 -3
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +11 -9
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- mindspore/nn/optim/thor.py +2 -1
- mindspore/nn/probability/bijector/bijector.py +17 -11
- mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
- mindspore/nn/probability/bijector/invert.py +2 -2
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +3 -2
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +1 -1
- mindspore/nn/probability/distribution/cauchy.py +4 -2
- mindspore/nn/probability/distribution/exponential.py +6 -7
- mindspore/nn/probability/distribution/gamma.py +2 -2
- mindspore/nn/probability/distribution/gumbel.py +2 -2
- mindspore/nn/probability/distribution/half_normal.py +5 -3
- mindspore/nn/probability/distribution/logistic.py +5 -3
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/uniform.py +5 -3
- mindspore/nn/reinforcement/_tensors_queue.py +1 -1
- mindspore/nn/reinforcement/tensor_array.py +1 -1
- mindspore/nn/utils/init.py +13 -11
- mindspore/nn/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +181 -122
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +6 -7
- mindspore/numpy/array_creations.py +63 -65
- mindspore/numpy/array_ops.py +149 -144
- mindspore/numpy/logic_ops.py +41 -42
- mindspore/numpy/math_ops.py +361 -359
- mindspore/numpy/utils.py +17 -18
- mindspore/numpy/utils_const.py +5 -6
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +5 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
- mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
- mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
- mindspore/ops/_register_for_op.py +0 -11
- mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
- mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
- mindspore/ops/_vmap/vmap_array_ops.py +52 -25
- mindspore/ops/_vmap/vmap_base.py +0 -2
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
- mindspore/ops/_vmap/vmap_math_ops.py +15 -16
- mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
- mindspore/ops/auto_generate/gen_extend_func.py +757 -185
- mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
- mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
- mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +20 -25
- mindspore/ops/composite/math_ops.py +6 -16
- mindspore/ops/composite/multitype_ops/__init__.py +5 -2
- mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
- mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
- mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
- mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
- mindspore/ops/function/__init__.py +40 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +2089 -2403
- mindspore/ops/function/clip_func.py +80 -23
- mindspore/ops/function/debug_func.py +57 -57
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +2 -2
- mindspore/ops/function/linalg_func.py +47 -78
- mindspore/ops/function/math_func.py +4351 -3813
- mindspore/ops/function/nn_func.py +1712 -637
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +18 -84
- mindspore/ops/function/random_func.py +452 -387
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +6 -6
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +23 -7
- mindspore/ops/functional_overload.py +1548 -0
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +23 -15
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_embedding_cache_ops.py +4 -4
- mindspore/ops/operations/_grad_ops.py +2 -43
- mindspore/ops/operations/_infer_ops.py +2 -1
- mindspore/ops/operations/_inner_ops.py +43 -84
- mindspore/ops/operations/_ms_kernel.py +4 -10
- mindspore/ops/operations/_rl_inner_ops.py +1 -1
- mindspore/ops/operations/_scalar_ops.py +3 -2
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/array_ops.py +81 -324
- mindspore/ops/operations/comm_ops.py +154 -108
- mindspore/ops/operations/custom_ops.py +298 -87
- mindspore/ops/operations/debug_ops.py +157 -59
- mindspore/ops/operations/inner_ops.py +7 -5
- mindspore/ops/operations/linalg_ops.py +1 -57
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +928 -180
- mindspore/ops/operations/math_ops.py +32 -234
- mindspore/ops/operations/nn_ops.py +212 -531
- mindspore/ops/operations/other_ops.py +62 -9
- mindspore/ops/operations/random_ops.py +13 -7
- mindspore/ops/operations/reshard_ops.py +1 -1
- mindspore/ops/operations/sparse_ops.py +2 -2
- mindspore/ops/primitive.py +66 -53
- mindspore/ops/tensor_method.py +1895 -0
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
- mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
- mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
- mindspore/ops_generate/api/functions_cc_generator.py +237 -0
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/api/op_api_proto.py +235 -0
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/base_generator.py +11 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/common/gen_utils.py +348 -0
- mindspore/ops_generate/common/op_proto.py +473 -0
- mindspore/ops_generate/common/template.py +523 -0
- mindspore/ops_generate/gen_ops.py +22 -1069
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
- mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
- mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
- mindspore/ops_generate/op_def_py/__init__.py +0 -0
- mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
- mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
- mindspore/ops_generate/resources/__init__.py +0 -0
- mindspore/ops_generate/resources/resource_list.py +30 -0
- mindspore/ops_generate/resources/resource_loader.py +36 -0
- mindspore/ops_generate/resources/resource_manager.py +64 -0
- mindspore/ops_generate/resources/yaml_loader.py +88 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
- mindspore/parallel/__init__.py +7 -3
- mindspore/parallel/_auto_parallel_context.py +159 -40
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +107 -5
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +199 -23
- mindspore/parallel/algo_parameter_config.py +4 -4
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +700 -35
- mindspore/parallel/cluster/process_entity/_api.py +276 -50
- mindspore/parallel/cluster/process_entity/_utils.py +41 -6
- mindspore/parallel/cluster/run.py +21 -4
- mindspore/parallel/function/__init__.py +24 -0
- mindspore/parallel/function/reshard_func.py +258 -0
- mindspore/parallel/nn/__init__.py +25 -0
- mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
- mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
- mindspore/parallel/parameter_broadcast.py +25 -14
- mindspore/parallel/shard.py +137 -59
- mindspore/parallel/transform_safetensors.py +364 -305
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +22 -5
- mindspore/profiler/analysis/__init__.py +0 -0
- mindspore/profiler/analysis/parser/__init__.py +0 -0
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
- mindspore/profiler/analysis/parser/base_parser.py +158 -0
- mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
- mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
- mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
- mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
- mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
- mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
- mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
- mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
- mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
- mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
- mindspore/profiler/analysis/task_manager.py +131 -0
- mindspore/profiler/analysis/time_converter.py +84 -0
- mindspore/profiler/analysis/viewer/__init__.py +0 -0
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
- mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
- mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
- mindspore/profiler/analysis/work_flow.py +73 -0
- mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
- mindspore/profiler/common/command_executor.py +90 -0
- mindspore/profiler/common/constant.py +186 -3
- mindspore/profiler/common/file_manager.py +208 -0
- mindspore/profiler/common/log.py +130 -0
- mindspore/profiler/common/msprof_cmd_tool.py +221 -0
- mindspore/profiler/common/path_manager.py +395 -0
- mindspore/profiler/common/process_bar.py +168 -0
- mindspore/profiler/common/process_pool.py +9 -3
- mindspore/profiler/common/profiler_context.py +500 -0
- mindspore/profiler/common/profiler_info.py +304 -0
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_output_path.py +284 -0
- mindspore/profiler/common/profiler_parameters.py +251 -0
- mindspore/profiler/common/profiler_path_manager.py +179 -0
- mindspore/profiler/common/record_function.py +76 -0
- mindspore/profiler/common/tlv_decoder.py +76 -0
- mindspore/profiler/common/util.py +75 -2
- mindspore/profiler/dynamic_profiler.py +341 -75
- mindspore/profiler/envprofiler.py +163 -0
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +242 -0
- mindspore/profiler/platform/__init__.py +21 -0
- mindspore/profiler/platform/base_profiler.py +40 -0
- mindspore/profiler/platform/cpu_profiler.py +124 -0
- mindspore/profiler/platform/gpu_profiler.py +74 -0
- mindspore/profiler/platform/npu_profiler.py +335 -0
- mindspore/profiler/profiler.py +1073 -90
- mindspore/profiler/profiler_action_controller.py +187 -0
- mindspore/profiler/profiler_interface.py +118 -0
- mindspore/profiler/schedule.py +243 -0
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +2 -3
- mindspore/run_check/_check_version.py +27 -20
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +37 -0
- mindspore/runtime/device.py +27 -0
- mindspore/runtime/event.py +209 -0
- mindspore/runtime/executor.py +177 -0
- mindspore/runtime/memory.py +416 -0
- mindspore/runtime/stream.py +460 -0
- mindspore/runtime/thread_bind_core.py +401 -0
- mindspore/safeguard/rewrite_obfuscation.py +12 -9
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/__init__.py +8 -8
- mindspore/train/_utils.py +96 -27
- mindspore/train/amp.py +9 -5
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +53 -55
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_early_stop.py +1 -1
- mindspore/train/callback/_flops_collector.py +103 -68
- mindspore/train/callback/_history.py +8 -5
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +0 -3
- mindspore/train/callback/_loss_monitor.py +2 -1
- mindspore/train/callback/_on_request_exit.py +6 -5
- mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
- mindspore/train/callback/_summary_collector.py +52 -19
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +15 -16
- mindspore/train/loss_scale_manager.py +8 -7
- mindspore/train/metrics/accuracy.py +3 -3
- mindspore/train/metrics/confusion_matrix.py +9 -9
- mindspore/train/metrics/error.py +3 -3
- mindspore/train/metrics/hausdorff_distance.py +4 -4
- mindspore/train/metrics/mean_surface_distance.py +3 -3
- mindspore/train/metrics/metric.py +0 -12
- mindspore/train/metrics/occlusion_sensitivity.py +4 -2
- mindspore/train/metrics/precision.py +11 -10
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +174 -46
- mindspore/train/model.py +269 -136
- mindspore/train/serialization.py +622 -978
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +2 -3
- mindspore/train/train_thor/model_thor.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dryrun.py +140 -0
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +552 -0
- mindspore/utils/utils.py +138 -4
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/common/_tensor_overload.py +0 -139
- mindspore/mindspore_np_dtype.dll +0 -0
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_aclnn_implement.py +0 -263
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/gen_pyboost_func.py +0 -1052
- mindspore/ops_generate/gen_utils.py +0 -209
- mindspore/ops_generate/op_proto.py +0 -145
- mindspore/ops_generate/template.py +0 -261
- mindspore/profiler/envprofiling.py +0 -254
- mindspore/profiler/profiling.py +0 -1926
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -17,15 +17,16 @@
|
|
|
17
17
|
"""Providing auto dynamic shape interface methods."""
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
|
+
import math
|
|
20
21
|
from mindspore import log as logger
|
|
21
|
-
from mindspore._c_expression import GraphExecutor_, Tensor
|
|
22
|
+
from mindspore._c_expression import GraphExecutor_, JitExecutor_, TensorPy as Tensor
|
|
22
23
|
from mindspore.common._utils import is_shape_unknown, is_dim_unknown
|
|
23
24
|
from mindspore.common.parameter import Parameter
|
|
24
25
|
|
|
25
26
|
SHAPE_DIM_ANY = -1
|
|
26
27
|
SHAPE_RANK_ANY = -2
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
auto_dynamic_shape_dict = {}
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
class _AutoDynamicShapeManager:
|
|
@@ -37,8 +38,6 @@ class _AutoDynamicShapeManager:
|
|
|
37
38
|
self.generalize_shape_cache = []
|
|
38
39
|
self.real_phase_and_compile_args_dict = {}
|
|
39
40
|
self.generalize_phase_and_compile_args_dict = {}
|
|
40
|
-
self._graph_executor = GraphExecutor_.get_instance()
|
|
41
|
-
|
|
42
41
|
|
|
43
42
|
def __del__(self):
|
|
44
43
|
self.real_shape_cache = []
|
|
@@ -167,7 +166,8 @@ class _AutoDynamicShapeManager:
|
|
|
167
166
|
else:
|
|
168
167
|
delete_cache = set()
|
|
169
168
|
delete_cache.add(delete_phase)
|
|
170
|
-
|
|
169
|
+
GraphExecutor_.get_instance().del_net_res(None, delete_cache)
|
|
170
|
+
JitExecutor_.get_instance().del_net_res(None, delete_cache)
|
|
171
171
|
del self.generalize_phase_and_compile_args_dict[delete_phase]
|
|
172
172
|
|
|
173
173
|
# step3: delete compile args
|
|
@@ -186,8 +186,8 @@ class _AutoDynamicShapeManager:
|
|
|
186
186
|
if isinstance(arg, Tensor) and isinstance(cache, Tensor):
|
|
187
187
|
if not self.is_tensor_equal(arg, cache):
|
|
188
188
|
return False
|
|
189
|
-
elif isinstance(arg, int) and isinstance(cache, int):
|
|
190
|
-
if arg
|
|
189
|
+
elif isinstance(arg, (int, float)) and isinstance(cache, (int, float)):
|
|
190
|
+
if not math.isclose(arg, cache):
|
|
191
191
|
return False
|
|
192
192
|
elif isinstance(arg, (tuple, list)) and isinstance(cache, (tuple, list)):
|
|
193
193
|
if not self._compare_input_args_and_cache_args(arg, cache):
|
|
@@ -199,22 +199,19 @@ class _AutoIdentifyDynamicShape:
|
|
|
199
199
|
"""
|
|
200
200
|
Represents a function auto identify dynamic shape.
|
|
201
201
|
"""
|
|
202
|
-
def __init__(self):
|
|
202
|
+
def __init__(self, auto_dynamic=False):
|
|
203
203
|
self.all_shape_cache = {}
|
|
204
204
|
self.is_sink_mode = False
|
|
205
|
-
self.is_enable_auto_dynamic_shape =
|
|
205
|
+
self.is_enable_auto_dynamic_shape = auto_dynamic or os.getenv('MS_AUTO_DYNAMIC_SHAPE_ENABLE') == '1'
|
|
206
206
|
self.save_cache_number = 3
|
|
207
|
-
self.enable_auto_identify = os.getenv('MS_AUTO_DYNAMIC_SHAPE_ENABLE')
|
|
208
207
|
self.auto_dynamic_shape_manager = _AutoDynamicShapeManager()
|
|
209
208
|
|
|
210
|
-
|
|
211
209
|
def __del__(self):
|
|
212
210
|
self.all_shape_cache = {}
|
|
213
211
|
self.is_sink_mode = False
|
|
214
212
|
self.is_enable_auto_dynamic_shape = True
|
|
215
213
|
self.save_cache_number = 3
|
|
216
214
|
|
|
217
|
-
|
|
218
215
|
def _check_input_args_number(self, args_list):
|
|
219
216
|
"""check input arg number"""
|
|
220
217
|
if self.auto_dynamic_shape_manager.get_real_shape_cache_number() > 0:
|
|
@@ -223,6 +220,12 @@ class _AutoIdentifyDynamicShape:
|
|
|
223
220
|
return False
|
|
224
221
|
return True
|
|
225
222
|
|
|
223
|
+
def _check_input_int_float(self, arg, cache):
|
|
224
|
+
"""check arg type is int or float"""
|
|
225
|
+
if (isinstance(arg, int) and not isinstance(cache, int)) or \
|
|
226
|
+
(isinstance(arg, float) and not isinstance(cache, float)):
|
|
227
|
+
return False
|
|
228
|
+
return math.isclose(arg, cache)
|
|
226
229
|
|
|
227
230
|
def _check_input_tensor_type(self, args_list, cache_list):
|
|
228
231
|
"""check input args type"""
|
|
@@ -236,19 +239,15 @@ class _AutoIdentifyDynamicShape:
|
|
|
236
239
|
res = self._check_input_tensor_type(arg, cache)
|
|
237
240
|
if not res:
|
|
238
241
|
return False
|
|
239
|
-
elif
|
|
240
|
-
|
|
241
|
-
if arg != cache:
|
|
242
|
+
elif isinstance(arg, (int, float)):
|
|
243
|
+
if not self._check_input_int_float(arg, cache):
|
|
242
244
|
return False
|
|
243
245
|
elif isinstance(arg, Tensor) and not isinstance(cache, Tensor):
|
|
244
246
|
return False
|
|
245
|
-
elif isinstance(arg, (int, float)) and not isinstance(cache, (int, float)):
|
|
246
|
-
return False
|
|
247
247
|
elif isinstance(arg, (tuple, list)) and not isinstance(cache, (tuple, list)):
|
|
248
248
|
return False
|
|
249
249
|
return True
|
|
250
250
|
|
|
251
|
-
|
|
252
251
|
def _check_input_number_and_type(self, args_list):
|
|
253
252
|
"""check input number and type"""
|
|
254
253
|
res = self._check_input_args_number(args_list)
|
|
@@ -262,18 +261,10 @@ class _AutoIdentifyDynamicShape:
|
|
|
262
261
|
return False
|
|
263
262
|
return True
|
|
264
263
|
|
|
265
|
-
|
|
266
264
|
def _is_enable_auto_dynamic_shape(self, args_list, is_sink_mode):
|
|
267
265
|
"""is enable auto identify shape"""
|
|
268
266
|
if not is_sink_mode and not args_list:
|
|
269
267
|
return False
|
|
270
|
-
|
|
271
|
-
if not self.enable_auto_identify:
|
|
272
|
-
self.enable_auto_identify = "0"
|
|
273
|
-
|
|
274
|
-
if self.enable_auto_identify == "0":
|
|
275
|
-
return False
|
|
276
|
-
|
|
277
268
|
for elem in args_list:
|
|
278
269
|
if elem is None:
|
|
279
270
|
continue
|
|
@@ -285,7 +276,6 @@ class _AutoIdentifyDynamicShape:
|
|
|
285
276
|
return self._is_enable_auto_dynamic_shape(elem, is_sink_mode)
|
|
286
277
|
return True
|
|
287
278
|
|
|
288
|
-
|
|
289
279
|
@staticmethod
|
|
290
280
|
def _do_generalize_in_sink(input_arg, cache, input_index, cache_index, cache_type):
|
|
291
281
|
"""do generalize in sink, input rank must be 2"""
|
|
@@ -340,8 +330,9 @@ class _AutoIdentifyDynamicShape:
|
|
|
340
330
|
|
|
341
331
|
def auto_dynamic_generate_compile_args(self, args_list, is_sink_mode):
|
|
342
332
|
"""generate compile args in auto dynamic shape"""
|
|
343
|
-
if not self.
|
|
344
|
-
not self._is_enable_auto_dynamic_shape(args_list, is_sink_mode)
|
|
333
|
+
if not self.is_enable_auto_dynamic_shape or \
|
|
334
|
+
not self._is_enable_auto_dynamic_shape(args_list, is_sink_mode) or \
|
|
335
|
+
not self._check_input_number_and_type(args_list):
|
|
345
336
|
self.is_enable_auto_dynamic_shape = False
|
|
346
337
|
return args_list
|
|
347
338
|
self.is_sink_mode = is_sink_mode
|
|
@@ -415,11 +406,12 @@ class _AutoIdentifyDynamicShape:
|
|
|
415
406
|
return Tensor(shape=shape_tuple, dtype=arg.dtype)
|
|
416
407
|
|
|
417
408
|
def generalize_sequence(arg, cache, i):
|
|
409
|
+
if not hasattr(arg, "__ms_mutable__"):
|
|
410
|
+
return arg, False
|
|
418
411
|
if is_sink_mode:
|
|
419
412
|
# when is_sink_mode=True, input must be the shape of Tensor.
|
|
420
413
|
res = self._do_generalize_in_sink(arg, cache, i, index, cache_type)
|
|
421
414
|
return res
|
|
422
|
-
|
|
423
415
|
res = self._do_generalize_one_input_shape(arg, cache, cache_type, index, is_sink_mode)
|
|
424
416
|
return res
|
|
425
417
|
|
|
@@ -437,12 +429,16 @@ class _AutoIdentifyDynamicShape:
|
|
|
437
429
|
res = generalize_tensor(arg, cache, i)
|
|
438
430
|
generalize_one_shape.append(res)
|
|
439
431
|
elif isinstance(arg, (tuple, list)) and isinstance(cache, (tuple, list)):
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
432
|
+
gen_seq_shape, can_generalize = generalize_sequence(arg, cache, i)
|
|
433
|
+
if not can_generalize:
|
|
434
|
+
return input_args, False
|
|
435
|
+
if isinstance(arg, tuple):
|
|
436
|
+
gen_seq_shape = tuple(gen_seq_shape)
|
|
437
|
+
generalize_one_shape.append(gen_seq_shape)
|
|
438
|
+
elif isinstance(arg, (int, float)) and isinstance(cache, (int, float)):
|
|
443
439
|
# when is_sink_mode=False, the input must may be scalar, or the value of list/tuple.
|
|
444
440
|
# is_sink_mode can not be True
|
|
445
|
-
if arg
|
|
441
|
+
if math.isclose(arg, cache):
|
|
446
442
|
generalize_one_shape.append(arg)
|
|
447
443
|
else:
|
|
448
444
|
logger.info("In auto dynamic shape mode, scalar/tuple/list must be equal, it can not be " \
|
|
@@ -479,29 +475,30 @@ class _AutoIdentifyDynamicShape:
|
|
|
479
475
|
_auto_dynamic_shape = _AutoIdentifyDynamicShape()
|
|
480
476
|
|
|
481
477
|
|
|
482
|
-
def get_auto_dynamic_shape_args(compile_args, key_id):
|
|
478
|
+
def get_auto_dynamic_shape_args(compile_args, key_id, enable_auto_dynamic=False):
|
|
483
479
|
"""get auto dynamic shape args."""
|
|
484
|
-
if key_id not in
|
|
485
|
-
|
|
486
|
-
compile_args =
|
|
480
|
+
if key_id not in auto_dynamic_shape_dict:
|
|
481
|
+
auto_dynamic_shape_dict[key_id] = _AutoIdentifyDynamicShape(enable_auto_dynamic)
|
|
482
|
+
compile_args = auto_dynamic_shape_dict[key_id].auto_dynamic_generate_compile_args(compile_args, False)
|
|
487
483
|
return compile_args
|
|
488
484
|
|
|
489
485
|
|
|
490
486
|
def update_auto_dynamic_shape_phase(compile_args, key_id, phase):
|
|
491
487
|
"""update auto dynamic shape phase."""
|
|
492
|
-
if key_id in
|
|
493
|
-
|
|
488
|
+
if key_id in auto_dynamic_shape_dict:
|
|
489
|
+
auto_dynamic_shape_dict[key_id].update_phase_and_compile_args(compile_args, phase, False)
|
|
494
490
|
|
|
495
491
|
|
|
496
|
-
def get_auto_dynamic_shape_args_with_check_input_signature(compile_args, key_id, input_signature
|
|
492
|
+
def get_auto_dynamic_shape_args_with_check_input_signature(compile_args, key_id, input_signature,
|
|
493
|
+
enable_auto_dynamic=False):
|
|
497
494
|
"""get auto dynamic shape args."""
|
|
498
495
|
if input_signature is None:
|
|
499
|
-
return get_auto_dynamic_shape_args(compile_args, key_id)
|
|
496
|
+
return get_auto_dynamic_shape_args(compile_args, key_id, enable_auto_dynamic)
|
|
500
497
|
return compile_args
|
|
501
498
|
|
|
502
499
|
|
|
503
500
|
def update_auto_dynamic_shape_phase_with_check_input_signature(compile_args, key_id, phase, input_signature):
|
|
504
501
|
"""update auto dynamic shape phase."""
|
|
505
502
|
if input_signature is None:
|
|
506
|
-
if key_id in
|
|
507
|
-
|
|
503
|
+
if key_id in auto_dynamic_shape_dict:
|
|
504
|
+
auto_dynamic_shape_dict[key_id].update_phase_and_compile_args(compile_args, phase, False)
|
mindspore/common/dtype.py
CHANGED
|
@@ -59,58 +59,58 @@ __all__.extend(__dtype__)
|
|
|
59
59
|
__all__.extend(__method__)
|
|
60
60
|
|
|
61
61
|
# type definition
|
|
62
|
-
bool_ = typing.
|
|
62
|
+
bool_ = typing.kBool
|
|
63
63
|
|
|
64
|
-
qint4x2 = typing.
|
|
65
|
-
int8 = typing.
|
|
64
|
+
qint4x2 = typing.kInt4
|
|
65
|
+
int8 = typing.kInt8
|
|
66
66
|
byte = int8
|
|
67
|
-
int16 = typing.
|
|
67
|
+
int16 = typing.kInt16
|
|
68
68
|
short = int16
|
|
69
|
-
int32 = typing.
|
|
69
|
+
int32 = typing.kInt32
|
|
70
70
|
intc = int32
|
|
71
|
-
int64 = typing.
|
|
71
|
+
int64 = typing.kInt64
|
|
72
72
|
intp = int64
|
|
73
73
|
|
|
74
|
-
uint8 = typing.
|
|
74
|
+
uint8 = typing.kUInt8
|
|
75
75
|
ubyte = uint8
|
|
76
|
-
uint16 = typing.
|
|
76
|
+
uint16 = typing.kUInt16
|
|
77
77
|
ushort = uint16
|
|
78
|
-
uint32 = typing.
|
|
78
|
+
uint32 = typing.kUInt32
|
|
79
79
|
uintc = uint32
|
|
80
|
-
uint64 = typing.
|
|
80
|
+
uint64 = typing.kUInt64
|
|
81
81
|
uintp = uint64
|
|
82
82
|
|
|
83
|
-
float16 = typing.
|
|
83
|
+
float16 = typing.kFloat16
|
|
84
84
|
half = float16
|
|
85
|
-
float32 = typing.
|
|
85
|
+
float32 = typing.kFloat32
|
|
86
86
|
single = float32
|
|
87
|
-
float64 = typing.
|
|
87
|
+
float64 = typing.kFloat64
|
|
88
88
|
double = float64
|
|
89
|
-
bfloat16 = typing.
|
|
90
|
-
complex64 = typing.
|
|
91
|
-
complex128 = typing.
|
|
92
|
-
|
|
93
|
-
number = typing.
|
|
94
|
-
int_ = typing.
|
|
95
|
-
uint = typing.
|
|
96
|
-
float_ = typing.
|
|
97
|
-
string = typing.
|
|
98
|
-
list_ = typing.
|
|
99
|
-
tuple_ = typing.
|
|
100
|
-
type_none = typing.
|
|
101
|
-
_null = typing.
|
|
102
|
-
|
|
103
|
-
tensor_type = typing.
|
|
104
|
-
index_slices = typing.
|
|
105
|
-
coo_tensor = typing.
|
|
106
|
-
csr_tensor = typing.
|
|
89
|
+
bfloat16 = typing.kBFloat16
|
|
90
|
+
complex64 = typing.kComplex64
|
|
91
|
+
complex128 = typing.kComplex128
|
|
92
|
+
|
|
93
|
+
number = typing.kNumber
|
|
94
|
+
int_ = typing.kInt
|
|
95
|
+
uint = typing.kUInt
|
|
96
|
+
float_ = typing.kFloat
|
|
97
|
+
string = typing.kString
|
|
98
|
+
list_ = typing.kList
|
|
99
|
+
tuple_ = typing.kTuple
|
|
100
|
+
type_none = typing.kTypeNone
|
|
101
|
+
_null = typing.kTypeNull
|
|
102
|
+
|
|
103
|
+
tensor_type = typing.kTensorType
|
|
104
|
+
index_slices = typing.kRowTensorType
|
|
105
|
+
coo_tensor = typing.kCOOTensorType
|
|
106
|
+
csr_tensor = typing.kCSRTensorType
|
|
107
107
|
undetermined = typing.UndeterminedType()
|
|
108
108
|
|
|
109
109
|
function = typing.Function()
|
|
110
110
|
symbolic_key = typing.SymbolicKeyType()
|
|
111
|
-
env_type = typing.
|
|
112
|
-
type_type = typing.
|
|
113
|
-
type_refkey = typing.
|
|
111
|
+
env_type = typing.kTypeEnv
|
|
112
|
+
type_type = typing.kTypeType
|
|
113
|
+
type_refkey = typing.kRefKeyType
|
|
114
114
|
|
|
115
115
|
Int = typing.Int
|
|
116
116
|
Float = typing.Float
|
|
@@ -279,8 +279,11 @@ def dtype_to_nptype(type_):
|
|
|
279
279
|
complex64: np.complex64,
|
|
280
280
|
complex128: np.complex128,
|
|
281
281
|
}
|
|
282
|
-
if
|
|
283
|
-
|
|
282
|
+
if type_ == bfloat16:
|
|
283
|
+
if not np_version_valid(True):
|
|
284
|
+
raise TypeError("The Numpy bfloat16 data type is not supported now, please ensure that the current "
|
|
285
|
+
"Numpy version is not less than the version when the mindspore is compiled.")
|
|
286
|
+
return np_bfloat16
|
|
284
287
|
return _dtype_nptype_dict[type_]
|
|
285
288
|
|
|
286
289
|
|
mindspore/common/dump.py
CHANGED
|
@@ -27,17 +27,19 @@ def set_dump(target, enabled=True):
|
|
|
27
27
|
`target` should be an instance of :class:`mindspore.nn.Cell` or :class:`mindspore.ops.Primitive` .
|
|
28
28
|
Please note that this API takes effect only when Synchronous Dump is enabled and the `dump_mode`
|
|
29
29
|
field in dump config file is ``"2"`` . See the `dump document
|
|
30
|
-
<https://www.mindspore.cn/
|
|
30
|
+
<https://www.mindspore.cn/tutorials/en/master/debug/dump.html>`_ for details.
|
|
31
31
|
The default enabled status for
|
|
32
32
|
a :class:`mindspore.nn.Cell` or :class:`mindspore.ops.Primitive` is False.
|
|
33
33
|
|
|
34
34
|
Note:
|
|
35
|
-
1. This API only
|
|
35
|
+
1. This API is only effective for GRAPH_MODE whose graph compilation level is O0/O1 with Ascend backend,
|
|
36
|
+
and can not work for fusion Primitive operators.
|
|
37
|
+
2. This API only supports being called before training starts.
|
|
36
38
|
If you call this API during training, it may not be effective.
|
|
37
|
-
|
|
39
|
+
3. After using `set_dump(Cell, True)` , operators in forward and backward
|
|
38
40
|
computation (computation generated by the grad operations) of the
|
|
39
41
|
cell will be dumped.
|
|
40
|
-
|
|
42
|
+
4. For :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` layer, the forward
|
|
41
43
|
computation and backward computation use the same set of
|
|
42
44
|
operators. So you can only see dump data from backward computation.
|
|
43
45
|
Please note that :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` layer will also use
|
|
@@ -57,14 +59,15 @@ def set_dump(target, enabled=True):
|
|
|
57
59
|
.. note::
|
|
58
60
|
Please set environment variable `MINDSPORE_DUMP_CONFIG` to the dump config file and set `dump_mode` field
|
|
59
61
|
in dump config file to 2 before running this example.
|
|
60
|
-
See `dump document <https://www.mindspore.cn/
|
|
62
|
+
See `dump document <https://www.mindspore.cn/tutorials/en/master/debug/dump.html>`_ for details.
|
|
61
63
|
|
|
62
64
|
>>> import numpy as np
|
|
63
65
|
>>> import mindspore as ms
|
|
64
66
|
>>> import mindspore.nn as nn
|
|
65
67
|
>>> from mindspore import Tensor, set_dump
|
|
66
68
|
>>>
|
|
67
|
-
>>> ms.set_context(
|
|
69
|
+
>>> ms.set_context(mode=ms.GRAPH_MODE)
|
|
70
|
+
>>> ms.set_device(device_target="Ascend")
|
|
68
71
|
>>>
|
|
69
72
|
>>> class MyNet(nn.Cell):
|
|
70
73
|
... def __init__(self):
|
mindspore/common/file_system.py
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""File system registration management"""
|
|
16
|
+
from mindspore import log as logger
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
class FileSystem:
|
|
@@ -40,11 +41,18 @@ def _register_mindio_file_system(fs: FileSystem):
|
|
|
40
41
|
import mindio
|
|
41
42
|
except ImportError:
|
|
42
43
|
return False
|
|
43
|
-
|
|
44
|
+
try:
|
|
45
|
+
ret = mindio.initialize()
|
|
46
|
+
except AttributeError as e:
|
|
47
|
+
logger.warning(f"Failed to initialize MindIO: {e}")
|
|
48
|
+
return False
|
|
49
|
+
if ret != 0:
|
|
50
|
+
logger.warning(f"Failed to initialize MindIO: ret = {ret}")
|
|
44
51
|
return False
|
|
45
52
|
fs.create = mindio.create_file
|
|
46
53
|
fs.create_args = ()
|
|
47
54
|
fs.open = mindio.open_file
|
|
48
55
|
fs.open_args = ()
|
|
49
56
|
fs.backend = "mindio"
|
|
57
|
+
logger.info("The weights are stored using MindIO as the backend.")
|
|
50
58
|
return True
|
mindspore/common/generator.py
CHANGED
|
@@ -56,6 +56,9 @@ class Generator:
|
|
|
56
56
|
A generator that manages the state of random numbers and provides seed and offset for random functions.
|
|
57
57
|
When the seed and offset are fixed, the random function generates the same random sequence.
|
|
58
58
|
|
|
59
|
+
.. note::
|
|
60
|
+
Graph mode does not support the use of multiple generators at the same time for now.
|
|
61
|
+
|
|
59
62
|
Supported Platforms:
|
|
60
63
|
``Ascend`` ``GPU`` ``CPU``
|
|
61
64
|
|
|
@@ -80,6 +83,7 @@ class Generator:
|
|
|
80
83
|
Tensor(0, mstype.int64), name="offset", requires_grad=False)
|
|
81
84
|
|
|
82
85
|
self._generator = GeneratorOp().set_device("CPU")
|
|
86
|
+
self._generator.add_prim_attr("manual_seed", False)
|
|
83
87
|
self._to_scalar = TensorToScalar()
|
|
84
88
|
|
|
85
89
|
def set_state(self, state):
|
|
@@ -125,6 +129,7 @@ class Generator:
|
|
|
125
129
|
raise TypeError("Seed must be an integer.")
|
|
126
130
|
seed = Tensor(seed, mstype.int64)
|
|
127
131
|
self._generator(MANUAL_SEED, (self._seed, self._offset, seed))
|
|
132
|
+
self._generator.add_prim_attr("manual_seed", True)
|
|
128
133
|
return self
|
|
129
134
|
|
|
130
135
|
def initial_seed(self):
|
mindspore/common/hook_handle.py
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"""The removable handle for cell hook function."""
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
import weakref
|
|
18
|
-
from mindspore._c_expression import
|
|
18
|
+
from mindspore._c_expression import TensorPy as Tensor_
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class _TensorHookHandle:
|
|
@@ -29,8 +29,9 @@ class _TensorHookHandle:
|
|
|
29
29
|
``Ascend`` ``GPU`` ``CPU``
|
|
30
30
|
"""
|
|
31
31
|
|
|
32
|
-
def __init__(self):
|
|
32
|
+
def __init__(self, tensor):
|
|
33
33
|
self.id = None
|
|
34
|
+
self.tensor_ref = weakref.ref(tensor)
|
|
34
35
|
|
|
35
36
|
def remove(self):
|
|
36
37
|
"""
|
|
@@ -66,6 +67,9 @@ class _TensorHookHandle:
|
|
|
66
67
|
"""
|
|
67
68
|
if self.id is not None:
|
|
68
69
|
Tensor_.remove_hook(self.id)
|
|
70
|
+
tensor = self.tensor_ref()
|
|
71
|
+
if tensor is not None:
|
|
72
|
+
tensor._remove_hook() # pylint:disable=protected-access
|
|
69
73
|
|
|
70
74
|
|
|
71
75
|
class HookHandle:
|
mindspore/common/initializer.py
CHANGED
|
@@ -36,9 +36,7 @@ class Initializer:
|
|
|
36
36
|
Note:
|
|
37
37
|
Initializers are intended to be used for delayed initialization in parallel mode rather than Tensor
|
|
38
38
|
initialization. If you have to use Initializers to create a Tensor, :func:`mindspore.Tensor.init_data` should be
|
|
39
|
-
followed in most of the cases. For more information, please refer to
|
|
40
|
-
<https://www.mindspore.cn/docs/en/master/api_python/mindspore/Tensor/mindspore.Tensor.init_data.html#
|
|
41
|
-
mindspore-tensor-init-data>`_ .
|
|
39
|
+
followed in most of the cases. For more information, please refer to :func:`mindspore.Tensor.init_data` .
|
|
42
40
|
|
|
43
41
|
Args:
|
|
44
42
|
kwargs (dict): Keyword arguments for Initializer.
|
|
@@ -371,9 +369,9 @@ class HeUniform(Initializer):
|
|
|
371
369
|
.. math::
|
|
372
370
|
boundary = \text{gain} \times \sqrt{\frac{3}{fan\_mode}}
|
|
373
371
|
|
|
374
|
-
where :math:`gain` is an optional scaling factor. If
|
|
375
|
-
|
|
376
|
-
|
|
372
|
+
where :math:`gain` is an optional scaling factor. If `mode` is ``'fan_in'``,
|
|
373
|
+
:math:`fan\_mode` in the formula is the number of input units of the weight tensor. If `mode` is ``'fan_out'``,
|
|
374
|
+
:math:`fan\_mode` is the number of output units of the weight tensor.
|
|
377
375
|
|
|
378
376
|
For details of HeUniform algorithm, please check
|
|
379
377
|
`<https://arxiv.org/abs/1502.01852>`_.
|
|
@@ -653,12 +651,16 @@ class Orthogonal(Initializer):
|
|
|
653
651
|
class VarianceScaling(Initializer):
|
|
654
652
|
r"""
|
|
655
653
|
Generates an random array with scaling in order to initialize a tensor.
|
|
654
|
+
|
|
656
655
|
When `distribution` is 'truncated_normal' or 'untruncated_normal', the value will be sampled from truncated or
|
|
657
656
|
untruncated normal distribution with a mean of 0 and a scaled standard deviation
|
|
658
|
-
:math:`stddev = \sqrt{\frac{scale}{n}}`.
|
|
657
|
+
:math:`stddev = \sqrt{\frac{scale}{n}}`.
|
|
658
|
+
|
|
659
|
+
:math:`n` will be the number of input units if `mode` is ``'fan_in'``,
|
|
659
660
|
while :math:`n` will be
|
|
660
661
|
the number of output units if `mode` is ``'fan_out'``. :math:`n` will be the average of ``'fan_in'``
|
|
661
662
|
and ``'fan_out'`` if `mode` is ``'fan_avg'``.
|
|
663
|
+
|
|
662
664
|
When `distribution` is ``'uniform'``, the value will be sampled from a uniform distribution within the limit of
|
|
663
665
|
:math:`[-\sqrt{\frac{3*scale}{n}}, \sqrt{\frac{3*scale}{n}}]`.
|
|
664
666
|
|
|
@@ -827,6 +829,8 @@ def initializer(init, shape=None, dtype=mstype.float32):
|
|
|
827
829
|
Args:
|
|
828
830
|
init (Union[Tensor, str, Initializer, numbers.Number]): Initialize value.
|
|
829
831
|
|
|
832
|
+
- `Tensor`: The tensor will be called to initialize tensor.
|
|
833
|
+
|
|
830
834
|
- `str`: The `init` should be the alias of the class inheriting from `Initializer` and the corresponding
|
|
831
835
|
class will be called in practice. The value of `init` can be ``"normal"``, ``"ones"`` or
|
|
832
836
|
``"zeros"``, etc.
|
|
@@ -835,13 +839,12 @@ def initializer(init, shape=None, dtype=mstype.float32):
|
|
|
835
839
|
|
|
836
840
|
- `numbers.Number`: The `Constant` will be called to initialize tensor.
|
|
837
841
|
|
|
838
|
-
- `Tensor`: The tensor will be called to initialize tensor.
|
|
839
|
-
|
|
840
842
|
shape (Union[tuple, list, int]): The shape of the initialized tensor. Default: ``None`` .
|
|
841
843
|
dtype (:class:`mindspore.dtype`): The type of data in initialized tensor. Default: ``mstype.float32`` .
|
|
842
844
|
|
|
843
845
|
Returns:
|
|
844
|
-
Tensor
|
|
846
|
+
Returns a Tensor with the shape specified by the input `shape`. If `shape` is ``None``,
|
|
847
|
+
the returned Tensor will have the same shape as ``init``.
|
|
845
848
|
|
|
846
849
|
Raises:
|
|
847
850
|
TypeError: The type of the argument 'init' is not correct.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Copyright 2024 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
|
+
|
|
16
|
+
"""JIT begin/end for various JIT context compile."""
|
|
17
|
+
|
|
18
|
+
from .jit_trace import _jit_trace_begin, _jit_trace_end
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _jit_begin(fn_name, *args):
|
|
22
|
+
"""
|
|
23
|
+
Start to build a MindIR func graph for a code snippet.
|
|
24
|
+
|
|
25
|
+
This allows the MindSpore runtime to apply optimizations based on generated func graph.
|
|
26
|
+
|
|
27
|
+
Note:
|
|
28
|
+
Use it with `jit_end` cooperatively.
|
|
29
|
+
|
|
30
|
+
Also see: :func:`jit_end`.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
fn_name (str): The name of func graph to be built.
|
|
34
|
+
args (tuple): The arguments of func graph.
|
|
35
|
+
|
|
36
|
+
Supported Platforms:
|
|
37
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
38
|
+
|
|
39
|
+
Examples:
|
|
40
|
+
>>> import numpy as np
|
|
41
|
+
>>> from mindspore import Tensor
|
|
42
|
+
>>> from mindspore.common.jit_begin_end import _jit_begin as jit_begin
|
|
43
|
+
>>> from mindspore.common.jit_begin_end import _jit_end as jit_end
|
|
44
|
+
...
|
|
45
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
46
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
47
|
+
>>> def tensor_add(x, y):
|
|
48
|
+
... jit_begin(x, y)
|
|
49
|
+
... z = x + y
|
|
50
|
+
... z = jit_end(z)
|
|
51
|
+
... return z
|
|
52
|
+
...
|
|
53
|
+
>>> out = tensor_add(x, y)
|
|
54
|
+
"""
|
|
55
|
+
return _jit_trace_begin(fn_name, *args)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _jit_end(*output_args):
|
|
59
|
+
"""
|
|
60
|
+
Finish building a MindIR func graph for a code snippet.
|
|
61
|
+
|
|
62
|
+
This allows the MindSpore runtime to apply optimizations based on generated func graph.
|
|
63
|
+
|
|
64
|
+
Note:
|
|
65
|
+
Use it with `jit_begin` cooperatively.
|
|
66
|
+
|
|
67
|
+
Also see: :func:`jit_begin`.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
output_args (tuple): The output of func graph.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
The same as args `output_args`.
|
|
74
|
+
|
|
75
|
+
Supported Platforms:
|
|
76
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
77
|
+
|
|
78
|
+
Examples:
|
|
79
|
+
>>> import numpy as np
|
|
80
|
+
>>> from mindspore import Tensor
|
|
81
|
+
>>> from mindspore.common.jit_begin_end import _jit_begin as jit_begin
|
|
82
|
+
>>> from mindspore.common.jit_begin_end import _jit_end as jit_end
|
|
83
|
+
...
|
|
84
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
85
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
86
|
+
>>> def tensor_add(x, y):
|
|
87
|
+
... jit_begin(x, y)
|
|
88
|
+
... z = x + y
|
|
89
|
+
... z = jit_end(z)
|
|
90
|
+
... return z
|
|
91
|
+
...
|
|
92
|
+
>>> out = tensor_add(x, y)
|
|
93
|
+
"""
|
|
94
|
+
return _jit_trace_end(*output_args)
|
mindspore/common/jit_config.py
CHANGED
|
@@ -21,7 +21,7 @@ class JitConfig:
|
|
|
21
21
|
Args:
|
|
22
22
|
jit_level (str, optional): Used to control the compilation optimization level.
|
|
23
23
|
Supports ["O0", "O1", "O2"]. Default: ``""`` , The framework automatically selects the execution method.
|
|
24
|
-
Not recommended, it is recommended to use the
|
|
24
|
+
Not recommended, it is recommended to use the JIT decorator.
|
|
25
25
|
|
|
26
26
|
- ``"O0"``: Except for optimizations that may affect functionality, all other optimizations are turned off,
|
|
27
27
|
adopt KernelByKernel execution mode.
|
|
@@ -96,3 +96,8 @@ class JitConfig:
|
|
|
96
96
|
self.jit_config_dict["jit_syntax_level"] = jit_syntax_level
|
|
97
97
|
self.jit_config_dict["debug_level"] = debug_level
|
|
98
98
|
self.jit_config_dict["infer_boost"] = infer_boost
|
|
99
|
+
if "backend" not in self.jit_config_dict:
|
|
100
|
+
if jit_level == "O0" or jit_level == "O1":
|
|
101
|
+
self.jit_config_dict["backend"] = "ms_backend"
|
|
102
|
+
elif jit_level == "O2":
|
|
103
|
+
self.jit_config_dict["backend"] = "GE"
|