mindspore 2.4.10__cp310-cp310-win_amd64.whl → 2.6.0__cp310-cp310-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +13 -6
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -0
- mindspore/_checkparam.py +3 -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
|
@@ -0,0 +1,76 @@
|
|
|
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 Context for various JIT compile."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class JitContext():
|
|
20
|
+
"""JIT context"""
|
|
21
|
+
def __init__(self):
|
|
22
|
+
self._compiled = False
|
|
23
|
+
self._result = None
|
|
24
|
+
self._phase = None
|
|
25
|
+
self._args = None
|
|
26
|
+
|
|
27
|
+
def run_op(self, prim, prim_res, *args):
|
|
28
|
+
raise AttributeError("For 'JitContext', the method 'run_op' is not defined.")
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def compiled(self):
|
|
32
|
+
return self._compiled
|
|
33
|
+
|
|
34
|
+
@compiled.setter
|
|
35
|
+
def compiled(self, value):
|
|
36
|
+
if not isinstance(value, bool):
|
|
37
|
+
raise TypeError(f"For 'JitContext', the property 'compiled' must be bool type, but got type {type(value)}.")
|
|
38
|
+
self._compiled = value
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def result(self):
|
|
42
|
+
return self._result
|
|
43
|
+
|
|
44
|
+
@result.setter
|
|
45
|
+
def result(self, value):
|
|
46
|
+
self._result = value
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def phase(self):
|
|
50
|
+
return self._phase
|
|
51
|
+
|
|
52
|
+
@phase.setter
|
|
53
|
+
def phase(self, value):
|
|
54
|
+
if not isinstance(value, str):
|
|
55
|
+
raise TypeError(f"For 'JitContext', the property 'phase' must be str type, but got type {type(value)}.")
|
|
56
|
+
self._phase = value
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def args(self):
|
|
60
|
+
return self._args
|
|
61
|
+
|
|
62
|
+
@args.setter
|
|
63
|
+
def args(self, value):
|
|
64
|
+
self._args = value
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
_jit_context = None
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def set_jit_context(new_jit_context):
|
|
71
|
+
global _jit_context
|
|
72
|
+
_jit_context = new_jit_context
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def jit_context():
|
|
76
|
+
return _jit_context
|
|
@@ -0,0 +1,378 @@
|
|
|
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 Context for trace JIT."""
|
|
17
|
+
|
|
18
|
+
import inspect
|
|
19
|
+
import re
|
|
20
|
+
from functools import wraps
|
|
21
|
+
import mindspore as ms
|
|
22
|
+
from mindspore import log as logger
|
|
23
|
+
from mindspore import context
|
|
24
|
+
from mindspore.common.jit_context import JitContext, set_jit_context, jit_context
|
|
25
|
+
from mindspore.common.tensor import Tensor as PythonTensor
|
|
26
|
+
from mindspore._checkparam import is_stub_tensor
|
|
27
|
+
from mindspore._c_expression import TraceRecorder as tr
|
|
28
|
+
from mindspore._c_expression import JitExecutor_
|
|
29
|
+
from mindspore._c_expression import TensorNode
|
|
30
|
+
from mindspore._c_expression import TensorPy as Tensor, CSRTensor, COOTensor
|
|
31
|
+
from mindspore._c_expression import typing
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class TraceJitContext(JitContext):
|
|
35
|
+
"""JIT Context for trace JIT."""
|
|
36
|
+
|
|
37
|
+
def __init__(self):
|
|
38
|
+
JitContext.__init__(self)
|
|
39
|
+
self._is_nested = False
|
|
40
|
+
|
|
41
|
+
def set_is_nested(self, status):
|
|
42
|
+
self._is_nested = status
|
|
43
|
+
|
|
44
|
+
def is_nested(self):
|
|
45
|
+
return self._is_nested
|
|
46
|
+
|
|
47
|
+
def run_op(self, prim, prim_res, *args):
|
|
48
|
+
"""Capture op"""
|
|
49
|
+
logger.debug(f'prim: {prim}, args: {args}, prim_res: {prim_res}')
|
|
50
|
+
if isinstance(prim_res, TensorNode):
|
|
51
|
+
prim_res = prim_res.get_value()
|
|
52
|
+
prim_res = _sync_stub_tensor(prim_res)
|
|
53
|
+
args = tuple(_sync_stub_tensor(arg) for arg in args)
|
|
54
|
+
args = tuple(_convert_arg_for_operators(arg, prim.name) for arg in args)
|
|
55
|
+
file_names, linenos = _get_caller_lines()
|
|
56
|
+
tr.get_instance().new_node(prim, prim_res, file_names, linenos, False, *args)
|
|
57
|
+
return prim_res
|
|
58
|
+
|
|
59
|
+
def run_graph(self, phase, prim_res, *args):
|
|
60
|
+
"""Capture func_graph generated from ast"""
|
|
61
|
+
logger.debug(f'phase: {phase}, args: {args}, prim_res: {prim_res}')
|
|
62
|
+
if isinstance(prim_res, TensorNode):
|
|
63
|
+
prim_res = prim_res.get_value()
|
|
64
|
+
prim_res = _sync_stub_tensor(prim_res)
|
|
65
|
+
args = tuple(_sync_stub_tensor(arg) for arg in args)
|
|
66
|
+
file_names, linenos = _get_caller_lines()
|
|
67
|
+
tr.get_instance().new_fg_node((phase, prim_res, file_names, linenos, self._is_nested), *args)
|
|
68
|
+
return prim_res
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
_compile_only = False
|
|
72
|
+
_trace_jit_context = TraceJitContext()
|
|
73
|
+
_trace_compile_cache = set()
|
|
74
|
+
_jit_executor = JitExecutor_.get_instance()
|
|
75
|
+
_using_trace = False
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def _set_compile_only(compile_only=True):
|
|
79
|
+
global _compile_only
|
|
80
|
+
_compile_only = compile_only
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _sync_stub_tensor(stub):
|
|
84
|
+
"""Synchronize stub tensor"""
|
|
85
|
+
if is_stub_tensor(stub):
|
|
86
|
+
real_tensor = stub.stub_sync()
|
|
87
|
+
logger.debug(f'Convert stub tensor, stub: [{type(stub)}] {id(stub)}/{stub}, '
|
|
88
|
+
f'tensor: [{type(real_tensor)}] {id(real_tensor)}/{real_tensor}')
|
|
89
|
+
return real_tensor
|
|
90
|
+
if isinstance(stub, tuple):
|
|
91
|
+
return tuple(_sync_stub_tensor(item) for item in stub)
|
|
92
|
+
if isinstance(stub, list):
|
|
93
|
+
return list(_sync_stub_tensor(item) for item in stub)
|
|
94
|
+
return stub
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def convert_tensorpy(args):
|
|
98
|
+
new_args = []
|
|
99
|
+
for arg in args:
|
|
100
|
+
if isinstance(arg, Tensor):
|
|
101
|
+
new_args.append(PythonTensor(arg))
|
|
102
|
+
else:
|
|
103
|
+
new_args.append(arg)
|
|
104
|
+
return tuple(new_args)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def _convert_arg_for_operators(arg, prim_name):
|
|
108
|
+
"""Convert dtype to enum"""
|
|
109
|
+
from mindspore.ops._utils.arg_dtype_cast import DtypeToEnum
|
|
110
|
+
if isinstance(arg, typing.Type):
|
|
111
|
+
return DtypeToEnum()(prim_name, 'dtype', arg)
|
|
112
|
+
return arg
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def nested_run(obj, cell, *args):
|
|
117
|
+
"""Start a trace process nested in ast."""
|
|
118
|
+
set_jit_context(_trace_jit_context)
|
|
119
|
+
_trace_jit_context.set_is_nested(True)
|
|
120
|
+
args = args[0]
|
|
121
|
+
args = convert_tensorpy(args)
|
|
122
|
+
if isinstance(obj, ms.nn.Cell):
|
|
123
|
+
res = obj.construct.__wrapped__(obj, *args)
|
|
124
|
+
else:
|
|
125
|
+
if not cell:
|
|
126
|
+
res = obj.__wrapped__(*args)
|
|
127
|
+
else:
|
|
128
|
+
res = obj.__wrapped__(cell, *args)
|
|
129
|
+
if res is not tuple:
|
|
130
|
+
res = (res,)
|
|
131
|
+
file_names, linenos = _get_caller_lines()
|
|
132
|
+
res = _sync_stub_tensor(res)
|
|
133
|
+
set_jit_context(None)
|
|
134
|
+
return file_names, linenos, res
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def _jit_trace(fn):
|
|
138
|
+
"""
|
|
139
|
+
Create a callable MindSpore graph from a Python function by trace method.
|
|
140
|
+
|
|
141
|
+
This allows the MindSpore runtime to apply optimizations based on traced func graph.
|
|
142
|
+
|
|
143
|
+
Args:
|
|
144
|
+
fn (Function): The Python function that will be run as a graph. Default: ``None`` .
|
|
145
|
+
|
|
146
|
+
Returns:
|
|
147
|
+
Function, if `fn` is not None, returns a callable function that will execute the compiled function; If `fn` is
|
|
148
|
+
None, returns a decorator and when this decorator invokes with a single `fn` argument, the callable function is
|
|
149
|
+
equal to the case when `fn` is not None.
|
|
150
|
+
|
|
151
|
+
Supported Platforms:
|
|
152
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
153
|
+
|
|
154
|
+
Examples:
|
|
155
|
+
>>> import numpy as np
|
|
156
|
+
>>> from mindspore import Tensor
|
|
157
|
+
>>> from mindspore.common.jit_trace import _jit_trace as jit_trace
|
|
158
|
+
...
|
|
159
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
160
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
161
|
+
...
|
|
162
|
+
>>> # To create a callable MindSpore graph by calling decorator @jit_trace
|
|
163
|
+
>>> def tensor_add(x, y):
|
|
164
|
+
... z = x + y
|
|
165
|
+
... return z
|
|
166
|
+
...
|
|
167
|
+
>>> tensor_add_graph = jit_trace(fn=tensor_add)
|
|
168
|
+
>>> out = tensor_add_graph(x, y)
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
@wraps(fn)
|
|
172
|
+
def jit_trace_wrap(*args, **kwargs):
|
|
173
|
+
# If a trace graph is already built, keep going without building a new trace graph.
|
|
174
|
+
if jit_context():
|
|
175
|
+
return fn(*args, **kwargs)
|
|
176
|
+
# Start trace process.
|
|
177
|
+
if kwargs:
|
|
178
|
+
bound_arguments = inspect.signature(fn).bind(*args, **kwargs)
|
|
179
|
+
bound_arguments.apply_defaults()
|
|
180
|
+
args = bound_arguments.args
|
|
181
|
+
kwargs = bound_arguments.kwargs
|
|
182
|
+
generate_name = fn.__module__
|
|
183
|
+
if args:
|
|
184
|
+
jit_args = args[1:] if hasattr(args[0], fn.__name__) else args
|
|
185
|
+
obj = args[0]
|
|
186
|
+
if hasattr(obj, fn.__name__): # Add class name for Cell.
|
|
187
|
+
generate_name = generate_name + "." + obj.__class__.__name__
|
|
188
|
+
else:
|
|
189
|
+
jit_args = args
|
|
190
|
+
generate_name = generate_name + "." + fn.__name__ + "#" + str(id(fn))
|
|
191
|
+
# Add create time for Cell.
|
|
192
|
+
if args and hasattr(obj, fn.__name__):
|
|
193
|
+
generate_name = generate_name + '#created_' + str(args[0].create_time)
|
|
194
|
+
line_str = fn.__code__.co_filename + ":" + str(fn.__code__.co_firstlineno)
|
|
195
|
+
generate_name = generate_name + '#[' + line_str + ']'
|
|
196
|
+
|
|
197
|
+
new_compile = _jit_trace_begin(generate_name, *jit_args)
|
|
198
|
+
if new_compile:
|
|
199
|
+
fn_res = fn(*args, **kwargs)
|
|
200
|
+
logger.debug(f'fn: {fn}, fn_res: {fn_res}, line: {line_str}')
|
|
201
|
+
# Use fn's output to build func graph's output.
|
|
202
|
+
output = _jit_trace_end(fn_res)
|
|
203
|
+
else:
|
|
204
|
+
output = _jit_trace_end(None) # Run with compilation.
|
|
205
|
+
logger.debug(f'output: {output}')
|
|
206
|
+
return output
|
|
207
|
+
|
|
208
|
+
jit_trace_wrap.__trace_func__ = True
|
|
209
|
+
return jit_trace_wrap
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def _get_caller_lines():
|
|
213
|
+
"""Get caller code line info."""
|
|
214
|
+
file_names = []
|
|
215
|
+
linenos = []
|
|
216
|
+
for frame_info in inspect.stack():
|
|
217
|
+
logger.debug(f'\t- frame: {frame_info[1]}:{frame_info[2]}/{frame_info[4][0]}')
|
|
218
|
+
file_name = frame_info[1]
|
|
219
|
+
if re.search(r'mindspore/common/.*\.py|mindspore/ops/.*\.py|mindspore/nn/.*\.py', file_name) is not None:
|
|
220
|
+
continue
|
|
221
|
+
lineno = frame_info[2]
|
|
222
|
+
logger.debug(f'Match caller frame: {frame_info[1]}:{frame_info[2]}/{frame_info[4][0]}')
|
|
223
|
+
file_names.append(file_name)
|
|
224
|
+
linenos.append(lineno)
|
|
225
|
+
return file_names, linenos
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def _get_args_for_run(args):
|
|
229
|
+
"""Get the actual input args and kwargs for runtime."""
|
|
230
|
+
new_args = []
|
|
231
|
+
for arg in args:
|
|
232
|
+
if isinstance(arg, PythonTensor):
|
|
233
|
+
if arg.has_init:
|
|
234
|
+
arg.init_data()
|
|
235
|
+
if not arg.const_arg:
|
|
236
|
+
new_args.append(arg)
|
|
237
|
+
elif isinstance(arg, (Tensor, CSRTensor, COOTensor)):
|
|
238
|
+
new_args.append(arg)
|
|
239
|
+
elif context.get_context("grad_for_scalar") and isinstance(arg, (int, float)):
|
|
240
|
+
new_args.append(arg)
|
|
241
|
+
elif isinstance(arg, dict) and hasattr(arg, "__ms_mutable__"):
|
|
242
|
+
new_args.append(tuple(arg.values()))
|
|
243
|
+
return tuple(new_args)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def _jit_trace_begin(fn_name, *args):
|
|
247
|
+
"""
|
|
248
|
+
Start to build a MindIR func graph for a code snippet by trace method.
|
|
249
|
+
|
|
250
|
+
This allows the MindSpore runtime to apply optimizations based on traced func graph.
|
|
251
|
+
|
|
252
|
+
Note:
|
|
253
|
+
Use it with `_jit_trace_end` cooperatively.
|
|
254
|
+
|
|
255
|
+
Also see: :func:`_jit_trace_end`.
|
|
256
|
+
|
|
257
|
+
Args:
|
|
258
|
+
fn_name (str): The name of func graph to be built.
|
|
259
|
+
args (tuple): The arguments of func graph.
|
|
260
|
+
|
|
261
|
+
Supported Platforms:
|
|
262
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
263
|
+
|
|
264
|
+
Examples:
|
|
265
|
+
>>> import numpy as np
|
|
266
|
+
>>> from mindspore import Tensor
|
|
267
|
+
>>> from mindspore.common.jit_trace import _jit_trace_begin, _jit_trace_end
|
|
268
|
+
...
|
|
269
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
270
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
271
|
+
>>> def tensor_add(x, y):
|
|
272
|
+
... _jit_trace_begin(x, y)
|
|
273
|
+
... z = x + y
|
|
274
|
+
... z = _jit_trace_end(z)
|
|
275
|
+
... return z
|
|
276
|
+
...
|
|
277
|
+
>>> out = tensor_add(x, y)
|
|
278
|
+
"""
|
|
279
|
+
global _using_trace
|
|
280
|
+
if _using_trace:
|
|
281
|
+
raise RuntimeError(
|
|
282
|
+
"Should not use jit_block and jit_trace at the same time.")
|
|
283
|
+
_using_trace = True
|
|
284
|
+
logger.debug(f'_jit_trace_begin, args: {args}')
|
|
285
|
+
_trace_jit_context.set_is_nested(False)
|
|
286
|
+
set_jit_context(_trace_jit_context)
|
|
287
|
+
args = tuple(_sync_stub_tensor(arg) for arg in args)
|
|
288
|
+
for arg in args:
|
|
289
|
+
logger.debug(f'_jit_trace_begin, arg: {arg}, {type(arg)}')
|
|
290
|
+
|
|
291
|
+
# Generate phase for compile pipeline.
|
|
292
|
+
key = _jit_executor.generate_arguments_key(None, args, dict(), False)
|
|
293
|
+
from mindspore.common.api import _PyNativeExecutor
|
|
294
|
+
phase = fn_name + '.' + str(key)
|
|
295
|
+
if _PyNativeExecutor().requires_grad():
|
|
296
|
+
phase = phase + ".grad"
|
|
297
|
+
logger.debug(f'phase: {phase}')
|
|
298
|
+
# Compiled before, just run.
|
|
299
|
+
if not _compile_only and phase in _trace_compile_cache:
|
|
300
|
+
logger.debug('Had compiled, just run.')
|
|
301
|
+
_trace_jit_context.compiled = True
|
|
302
|
+
output = tr.get_instance().run_graph(phase, args)
|
|
303
|
+
from mindspore.common.api import _convert_python_data
|
|
304
|
+
_trace_jit_context.result = _convert_python_data(output)
|
|
305
|
+
logger.debug(f'jit trace result: {_trace_jit_context.result}')
|
|
306
|
+
return False
|
|
307
|
+
logger.debug('Start compiling...')
|
|
308
|
+
file_names, linenos = _get_caller_lines()
|
|
309
|
+
fn_short_name = fn_name.split('#')[0]
|
|
310
|
+
tr.get_instance().begin_graph(fn_short_name, phase, file_names, linenos, *args)
|
|
311
|
+
_trace_compile_cache.add(phase)
|
|
312
|
+
# Save for first call, used in end().
|
|
313
|
+
_trace_jit_context.phase = phase
|
|
314
|
+
_trace_jit_context.args = args
|
|
315
|
+
return True
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
def _jit_trace_end(*output_args):
|
|
319
|
+
"""
|
|
320
|
+
Finish building a MindIR func graph for a code snippet by trace method.
|
|
321
|
+
|
|
322
|
+
This allows the MindSpore runtime to apply optimizations based on traced func graph.
|
|
323
|
+
|
|
324
|
+
Note:
|
|
325
|
+
Use it with `_jit_trace_begin` cooperatively.
|
|
326
|
+
|
|
327
|
+
Also see: :func:`_jit_trace_begin`.
|
|
328
|
+
|
|
329
|
+
Args:
|
|
330
|
+
output_args (tuple): The output of func graph.
|
|
331
|
+
|
|
332
|
+
Returns:
|
|
333
|
+
The same as args `output_args`.
|
|
334
|
+
|
|
335
|
+
Supported Platforms:
|
|
336
|
+
``Ascend`` ``GPU`` ``CPU``
|
|
337
|
+
|
|
338
|
+
Examples:
|
|
339
|
+
>>> import numpy as np
|
|
340
|
+
>>> from mindspore import Tensor
|
|
341
|
+
>>> from mindspore.common.jit_trace import _jit_trace_begin, _jit_trace_end
|
|
342
|
+
...
|
|
343
|
+
>>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
344
|
+
>>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
|
|
345
|
+
>>> def tensor_add(x, y):
|
|
346
|
+
... _jit_trace_begin(x, y)
|
|
347
|
+
... z = x + y
|
|
348
|
+
... z = _jit_trace_end(z)
|
|
349
|
+
... return z
|
|
350
|
+
...
|
|
351
|
+
>>> out = tensor_add(x, y)
|
|
352
|
+
"""
|
|
353
|
+
if _trace_jit_context.compiled:
|
|
354
|
+
output = _trace_jit_context.result
|
|
355
|
+
logger.debug(f'jit trace result: {output}')
|
|
356
|
+
else:
|
|
357
|
+
logger.debug(f'output_args: {output_args}')
|
|
358
|
+
output_args = tuple(_sync_stub_tensor(arg) for arg in output_args)
|
|
359
|
+
file_names, linenos = _get_caller_lines()
|
|
360
|
+
tr.get_instance().end_graph(file_names, linenos, *output_args)
|
|
361
|
+
if _compile_only:
|
|
362
|
+
output = output_args[0] if len(output_args) == 1 else output_args
|
|
363
|
+
else:
|
|
364
|
+
args = _get_args_for_run(_trace_jit_context.args)
|
|
365
|
+
output = tr.get_instance().run_graph(
|
|
366
|
+
_trace_jit_context.phase, args)
|
|
367
|
+
from mindspore.common.api import _convert_python_data
|
|
368
|
+
output = _convert_python_data(output)
|
|
369
|
+
logger.debug(f'jit trace result: {output}')
|
|
370
|
+
logger.debug(
|
|
371
|
+
f'python result: {output_args[0] if len(output_args) == 1 else output_args}')
|
|
372
|
+
_trace_jit_context.phase = ''
|
|
373
|
+
_trace_jit_context.args = None
|
|
374
|
+
set_jit_context(None)
|
|
375
|
+
_trace_jit_context.compiled = False
|
|
376
|
+
global _using_trace
|
|
377
|
+
_using_trace = False
|
|
378
|
+
return output
|
mindspore/common/lazy_inline.py
CHANGED
|
@@ -27,6 +27,10 @@ def lazy_inline(fn=None, attrs=None, policy=None):
|
|
|
27
27
|
Registering the decorator of the built-in function `__init__` of a cell, the decorator
|
|
28
28
|
will add the parameters of `__init__` according to the `attrs` as the attributes of this cell.
|
|
29
29
|
|
|
30
|
+
For a detailed description of the function, see `Using the lazy_inline decorator
|
|
31
|
+
<https://www.mindspore.cn/tutorials/en/master/compile/
|
|
32
|
+
static_graph_expert_programming.html#using-lazy-inline-decorator>`_ .
|
|
33
|
+
|
|
30
34
|
.. warning::
|
|
31
35
|
This feature is only supported on Ascend and is not supported on other hardwares.
|
|
32
36
|
The construct parameters must be positional or key word arguments and have not default values.
|
|
@@ -35,7 +39,7 @@ def lazy_inline(fn=None, attrs=None, policy=None):
|
|
|
35
39
|
Args:
|
|
36
40
|
fn (function): `__init__` function of a cell.
|
|
37
41
|
attrs (Union[list[string], string]): The attributes list to add for the cell.
|
|
38
|
-
policy (Union[None, "front"]): The policy of inline. Default is None
|
|
42
|
+
policy (Union[None, "front"], optional): The policy of inline. Default is ``None``.
|
|
39
43
|
|
|
40
44
|
- ``None``: The cell will be compiled to sub graph and will not be inline.
|
|
41
45
|
- ``"front"``: The cell will be compiled to sub graph first and will be inline at front end.
|
|
@@ -47,6 +51,7 @@ def lazy_inline(fn=None, attrs=None, policy=None):
|
|
|
47
51
|
``Ascend``
|
|
48
52
|
|
|
49
53
|
Examples:
|
|
54
|
+
>>> import os
|
|
50
55
|
>>> import numpy as np
|
|
51
56
|
>>> from mindspore import Tensor
|
|
52
57
|
>>> import mindspore.nn as nn
|
|
@@ -154,8 +159,9 @@ def lazy_inline(fn=None, attrs=None, policy=None):
|
|
|
154
159
|
... inp = Tensor(np.ones([1, 3, 224, 224]).astype(np.float32))
|
|
155
160
|
... net(inp)
|
|
156
161
|
...
|
|
157
|
-
>>> context.set_context(mode=context.GRAPH_MODE
|
|
158
|
-
|
|
162
|
+
>>> context.set_context(mode=context.GRAPH_MODE)
|
|
163
|
+
>>> os.environ["MS_DEV_SAVE_GRAPHS"] = "2"
|
|
164
|
+
>>> os.environ["MS_DEV_SAVE_GRAPHS_PATH"] = os.path.realpath("./lazy")
|
|
159
165
|
...
|
|
160
166
|
>>> test_compile()
|
|
161
167
|
"""
|
mindspore/common/mindir_util.py
CHANGED
|
@@ -26,6 +26,9 @@ def load_mindir(file_name):
|
|
|
26
26
|
"""
|
|
27
27
|
load protobuf file.
|
|
28
28
|
|
|
29
|
+
Note:
|
|
30
|
+
The interface is deprecated from version 2.5 and will be removed in a future version.
|
|
31
|
+
|
|
29
32
|
Args:
|
|
30
33
|
file_name (str): File name.
|
|
31
34
|
|
|
@@ -42,7 +45,8 @@ def load_mindir(file_name):
|
|
|
42
45
|
>>> import mindspore as ms
|
|
43
46
|
>>> md = ms.load_mindir("test.mindir")
|
|
44
47
|
"""
|
|
45
|
-
|
|
48
|
+
logger.warning("The interface 'mindspore.load_mindir' is deprecated from version 2.5 "
|
|
49
|
+
"and will be removed in a future version.")
|
|
46
50
|
Validator.check_file_name_by_regular(file_name)
|
|
47
51
|
file_name = os.path.realpath(file_name)
|
|
48
52
|
model = mindir_model()
|
|
@@ -65,6 +69,9 @@ def save_mindir(model, file_name):
|
|
|
65
69
|
"""
|
|
66
70
|
save protobuf file.
|
|
67
71
|
|
|
72
|
+
Note:
|
|
73
|
+
The interface is deprecated from version 2.5 and will be removed in a future version.
|
|
74
|
+
|
|
68
75
|
Args:
|
|
69
76
|
model (ModelProto): mindir model
|
|
70
77
|
file_name (str): File name.
|
|
@@ -84,7 +91,8 @@ def save_mindir(model, file_name):
|
|
|
84
91
|
>>> md_new = ms.load_mindir("test_new.mindir")
|
|
85
92
|
>>> md_new.user_info
|
|
86
93
|
"""
|
|
87
|
-
|
|
94
|
+
logger.warning("The interface 'mindspore.save_mindir' is deprecated from version 2.5 "
|
|
95
|
+
"and will be removed in a future version.")
|
|
88
96
|
Validator.check_file_name_by_regular(file_name)
|
|
89
97
|
file_name = os.path.realpath(file_name)
|
|
90
98
|
if not file_name.endswith('.mindir'):
|
mindspore/common/mutable.py
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
from __future__ import absolute_import
|
|
17
17
|
|
|
18
18
|
from mindspore.common.tensor import Tensor
|
|
19
|
-
from mindspore._c_expression import
|
|
19
|
+
from mindspore._c_expression import TensorPy as Tensor_
|
|
20
20
|
from mindspore import log as logger
|
|
21
21
|
|
|
22
22
|
_check_elements_set = set()
|
|
@@ -126,13 +126,14 @@ def mutable(input_data, dynamic_len=False):
|
|
|
126
126
|
When the `input_data` is tuple or list and `dynamic_len` is False, `mutable` will return a constant length tuple
|
|
127
127
|
or list with all mutable elements. If `dynamic_len` is True, the length of the return tuple or list will be dynamic.
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
When a dynamic-length tuple or list returned by `mutable` is used as input to a network
|
|
130
|
+
and the network is called repeatedly, and
|
|
130
131
|
the length of the tuple or list is different for each run, it does not need to be re-compiled.
|
|
131
132
|
|
|
132
133
|
Args:
|
|
133
134
|
input_data (Union[Tensor, scalar, tuple, list, dict]): The input data to be made mutable. If
|
|
134
135
|
'input_data' is list/tuple/dict, the type of each element should also in the valid types.
|
|
135
|
-
dynamic_len (bool): Whether to set the whole sequence to be dynamic length. In graph compilation, if
|
|
136
|
+
dynamic_len (bool, optional): Whether to set the whole sequence to be dynamic length. In graph compilation, if
|
|
136
137
|
`dynamic_len` is ``True`` , the `input_data` must be list or tuple and the elements of `input_data` must
|
|
137
138
|
have the same type and shape. Default: ``False`` .
|
|
138
139
|
|
|
@@ -222,7 +223,7 @@ def mutable(input_data, dynamic_len=False):
|
|
|
222
223
|
We will add set_const_arg=False statement automatically.")
|
|
223
224
|
ret.set_const_arg(False)
|
|
224
225
|
elif isinstance(input_data, Tensor_):
|
|
225
|
-
ret = Tensor(input_data
|
|
226
|
+
ret = Tensor(input_data)
|
|
226
227
|
logger.info("For 'mutable', the Tensor_ in 'input_data' must not be constant. \
|
|
227
228
|
We will add set_const_arg=False statement automatically.")
|
|
228
229
|
ret.set_const_arg(False)
|