mindspore 2.5.0__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 +6 -4
- 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 -33
- mindspore/_deprecated/__init__.py +17 -0
- mindspore/_deprecated/jit.py +198 -0
- mindspore/_extends/builtin_operations.py +1 -1
- mindspore/_extends/parse/__init__.py +6 -7
- mindspore/_extends/parse/compile_config.py +19 -0
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
- 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 +25 -194
- mindspore/_extends/parse/resources.py +1 -5
- mindspore/_extends/parse/standard_method.py +109 -75
- mindspore/_extends/pijit/__init__.py +2 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
- mindspore/_extends/pijit/tensor_func_list.py +27 -0
- mindspore/_extends/utils.py +1 -1
- mindspore/amp.py +4 -4
- 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 +2 -2
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +4 -3
- mindspore/common/_grad_function.py +56 -0
- mindspore/common/_pijit_context.py +14 -5
- mindspore/common/_register_for_tensor.py +1 -1
- mindspore/common/_stub_tensor.py +5 -10
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +2014 -3386
- mindspore/common/api.py +386 -355
- mindspore/common/auto_dynamic_shape.py +41 -44
- mindspore/common/dtype.py +5 -2
- mindspore/common/dump.py +7 -5
- mindspore/common/file_system.py +3 -0
- mindspore/common/generator.py +3 -0
- mindspore/common/hook_handle.py +5 -3
- mindspore/common/initializer.py +10 -6
- 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 +2 -2
- mindspore/common/mutable.py +5 -4
- mindspore/common/parameter.py +106 -39
- mindspore/common/seed.py +2 -2
- mindspore/common/sparse_tensor.py +23 -17
- mindspore/common/tensor.py +332 -714
- mindspore/communication/__init__.py +7 -5
- mindspore/communication/_comm_helper.py +47 -2
- mindspore/communication/comm_func.py +70 -53
- mindspore/communication/management.py +83 -17
- mindspore/context.py +228 -571
- mindspore/dataset/__init__.py +44 -20
- mindspore/dataset/audio/__init__.py +2 -8
- mindspore/dataset/audio/transforms.py +3 -17
- mindspore/dataset/core/config.py +3 -3
- mindspore/dataset/engine/cache_client.py +1 -1
- mindspore/dataset/engine/datasets.py +102 -120
- mindspore/dataset/engine/datasets_audio.py +22 -22
- mindspore/dataset/engine/datasets_standard_format.py +43 -24
- mindspore/dataset/engine/datasets_text.py +78 -85
- mindspore/dataset/engine/datasets_user_defined.py +109 -77
- mindspore/dataset/engine/datasets_vision.py +111 -108
- mindspore/dataset/engine/iterators.py +5 -3
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
- mindspore/dataset/engine/samplers.py +279 -57
- mindspore/dataset/engine/serializer_deserializer.py +2 -1
- mindspore/dataset/engine/validators.py +10 -0
- 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/transforms.py +3 -3
- 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/device_context/ascend/op_debug.py +60 -1
- mindspore/device_context/ascend/op_tuning.py +0 -4
- mindspore/device_manager.py +39 -3
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/es/embedding_service.py +35 -27
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -2
- mindspore/experimental/map_parameter.py +4 -4
- mindspore/experimental/optim/adadelta.py +22 -26
- mindspore/experimental/optim/adagrad.py +4 -4
- mindspore/experimental/optim/adam.py +4 -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 +40 -22
- mindspore/experimental/optim/radam.py +5 -5
- 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 -81
- mindspore/hal/event.py +38 -55
- mindspore/hal/memory.py +115 -147
- mindspore/hal/stream.py +81 -125
- mindspore/include/dataset/constants.h +7 -4
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/log.py +40 -2
- mindspore/mindrecord/__init__.py +20 -7
- 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 +133 -702
- mindspore/mint/distributed/__init__.py +5 -1
- mindspore/mint/distributed/distributed.py +198 -113
- mindspore/mint/linalg/__init__.py +2 -0
- mindspore/mint/nn/__init__.py +280 -18
- mindspore/mint/nn/functional.py +282 -64
- mindspore/mint/nn/layer/__init__.py +4 -0
- mindspore/mint/nn/layer/_functions.py +7 -3
- mindspore/mint/nn/layer/activation.py +120 -13
- mindspore/mint/nn/layer/conv.py +234 -28
- mindspore/mint/nn/layer/normalization.py +15 -16
- mindspore/mint/nn/layer/padding.py +1 -1
- mindspore/mint/nn/layer/pooling.py +66 -1
- mindspore/mint/optim/__init__.py +2 -1
- mindspore/mint/optim/sgd.py +171 -0
- mindspore/msobj140.dll +0 -0
- mindspore/mspdb140.dll +0 -0
- mindspore/mspdbcore.dll +0 -0
- mindspore/mspdbst.dll +0 -0
- mindspore/mspft140.dll +0 -0
- mindspore/msvcdis140.dll +0 -0
- mindspore/msvcp140_1.dll +0 -0
- mindspore/msvcp140_2.dll +0 -0
- mindspore/msvcp140_atomic_wait.dll +0 -0
- mindspore/msvcp140_codecvt_ids.dll +0 -0
- mindspore/nn/__init__.py +4 -1
- mindspore/nn/cell.py +1253 -179
- mindspore/nn/layer/activation.py +23 -21
- mindspore/nn/layer/basic.py +22 -16
- mindspore/nn/layer/container.py +1 -1
- mindspore/nn/layer/conv.py +53 -42
- mindspore/nn/layer/embedding.py +9 -8
- mindspore/nn/layer/normalization.py +48 -42
- mindspore/nn/layer/pooling.py +75 -31
- mindspore/nn/layer/transformer.py +11 -10
- mindspore/nn/learning_rate_schedule.py +4 -2
- mindspore/nn/loss/loss.py +27 -19
- mindspore/nn/optim/ada_grad.py +6 -5
- mindspore/nn/optim/adadelta.py +9 -7
- mindspore/nn/optim/adafactor.py +1 -1
- mindspore/nn/optim/adam.py +18 -14
- 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/lazyadam.py +12 -10
- mindspore/nn/optim/momentum.py +7 -6
- mindspore/nn/optim/optimizer.py +2 -2
- mindspore/nn/optim/proximal_ada_grad.py +12 -10
- mindspore/nn/optim/rmsprop.py +13 -12
- mindspore/nn/optim/rprop.py +9 -7
- mindspore/nn/optim/sgd.py +9 -6
- mindspore/nn/optim/tft_wrapper.py +5 -2
- 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/wrap/__init__.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +178 -117
- mindspore/nn/wrap/grad_reducer.py +45 -36
- mindspore/nn/wrap/loss_scale.py +3 -3
- mindspore/numpy/array_creations.py +3 -3
- mindspore/numpy/array_ops.py +1 -1
- mindspore/numpy/utils.py +1 -2
- mindspore/numpy/utils_const.py +1 -2
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/__init__.py +3 -2
- mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
- mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
- mindspore/ops/_grad_experimental/taylor_rule.py +29 -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 -4
- mindspore/ops/_vmap/vmap_array_ops.py +32 -6
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
- mindspore/ops/_vmap/vmap_math_ops.py +4 -7
- mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
- mindspore/ops/auto_generate/__init__.py +4 -3
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +127 -52
- mindspore/ops/auto_generate/gen_extend_func.py +286 -208
- mindspore/ops/auto_generate/gen_ops_def.py +2783 -2335
- mindspore/ops/auto_generate/gen_ops_prim.py +8992 -2686
- mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
- mindspore/ops/composite/__init__.py +2 -1
- mindspore/ops/composite/base.py +19 -24
- 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 +4 -5
- 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 -1
- 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 +28 -2
- mindspore/ops/function/_add_attr_func.py +58 -0
- mindspore/ops/function/array_func.py +1631 -2347
- mindspore/ops/function/clip_func.py +38 -45
- mindspore/ops/function/debug_func.py +36 -44
- mindspore/ops/function/grad/__init__.py +1 -0
- mindspore/ops/function/grad/grad_func.py +104 -71
- mindspore/ops/function/image_func.py +1 -1
- mindspore/ops/function/linalg_func.py +46 -78
- mindspore/ops/function/math_func.py +3024 -3855
- mindspore/ops/function/nn_func.py +678 -274
- mindspore/ops/function/other_func.py +159 -1
- mindspore/ops/function/parameter_func.py +17 -30
- mindspore/ops/function/random_func.py +216 -361
- mindspore/ops/function/reshard_func.py +4 -70
- mindspore/ops/function/sparse_func.py +3 -3
- mindspore/ops/function/sparse_unary_func.py +5 -5
- mindspore/ops/function/spectral_func.py +25 -58
- mindspore/ops/function/vmap_func.py +26 -18
- mindspore/ops/functional.py +8 -5
- mindspore/ops/functional_overload.py +655 -4
- mindspore/ops/op_info_register.py +32 -244
- mindspore/ops/operations/__init__.py +21 -14
- mindspore/ops/operations/_custom_ops_utils.py +235 -0
- mindspore/ops/operations/_grad_ops.py +1 -10
- mindspore/ops/operations/_inner_ops.py +5 -76
- 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 +39 -24
- mindspore/ops/operations/comm_ops.py +150 -107
- mindspore/ops/operations/custom_ops.py +287 -32
- mindspore/ops/operations/debug_ops.py +119 -16
- mindspore/ops/operations/inner_ops.py +1 -1
- mindspore/ops/operations/linalg_ops.py +1 -58
- mindspore/ops/operations/manually_defined/_inner.py +1 -1
- mindspore/ops/operations/manually_defined/ops_def.py +746 -79
- mindspore/ops/operations/math_ops.py +21 -18
- mindspore/ops/operations/nn_ops.py +67 -224
- 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 +43 -32
- mindspore/ops/tensor_method.py +243 -17
- mindspore/ops_generate/__init__.py +0 -5
- mindspore/ops_generate/aclnn/__init__.py +0 -0
- mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
- mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
- mindspore/ops_generate/api/__init__.py +0 -0
- mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
- mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
- mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
- mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
- mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
- mindspore/ops_generate/api/gen_api.py +103 -0
- mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
- mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
- mindspore/ops_generate/common/__init__.py +0 -0
- mindspore/ops_generate/common/gen_constants.py +91 -0
- mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
- mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
- mindspore/ops_generate/{template.py → common/template.py} +96 -84
- mindspore/ops_generate/gen_ops.py +23 -325
- mindspore/ops_generate/op_def/__init__.py +0 -0
- mindspore/ops_generate/op_def/gen_op_def.py +90 -0
- mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
- mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -10
- mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
- mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
- 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_generator.py → op_def_py/op_def_py_generator.py} +6 -5
- mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
- mindspore/ops_generate/pyboost/__init__.py +0 -0
- mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
- mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
- mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
- mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
- mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
- mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
- mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
- mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
- mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
- mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
- mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
- mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
- mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
- 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 +6 -2
- mindspore/parallel/_auto_parallel_context.py +140 -12
- mindspore/parallel/_cell_wrapper.py +132 -15
- mindspore/parallel/_parallel_serialization.py +95 -4
- mindspore/parallel/_ps_context.py +1 -1
- mindspore/parallel/_recovery_context.py +7 -2
- mindspore/parallel/_tensor.py +142 -18
- mindspore/parallel/_utils.py +198 -25
- mindspore/parallel/algo_parameter_config.py +3 -3
- mindspore/parallel/auto_parallel.py +732 -0
- mindspore/parallel/checkpoint_convert.py +159 -0
- mindspore/parallel/checkpoint_transform.py +658 -37
- mindspore/parallel/cluster/process_entity/_api.py +151 -19
- mindspore/parallel/cluster/run.py +1 -1
- 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 +24 -13
- mindspore/parallel/shard.py +137 -62
- mindspore/parallel/transform_safetensors.py +288 -95
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +9 -5
- mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
- mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +25 -0
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
- mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
- mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
- mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
- mindspore/profiler/common/constant.py +12 -0
- mindspore/profiler/common/msprof_cmd_tool.py +42 -23
- mindspore/profiler/common/path_manager.py +24 -0
- mindspore/profiler/common/profiler_context.py +26 -2
- mindspore/profiler/common/profiler_meta_data.py +74 -0
- mindspore/profiler/common/profiler_parameters.py +59 -18
- mindspore/profiler/common/profiler_path_manager.py +66 -7
- mindspore/profiler/dynamic_profiler.py +112 -79
- mindspore/profiler/envprofiler.py +26 -1
- mindspore/profiler/experimental_config.py +197 -0
- mindspore/profiler/mstx.py +57 -14
- mindspore/profiler/platform/npu_profiler.py +33 -7
- mindspore/profiler/profiler.py +541 -45
- mindspore/profiler/profiler_action_controller.py +1 -1
- mindspore/profiler/profiler_interface.py +4 -0
- mindspore/profiler/schedule.py +57 -22
- mindspore/rewrite/api/node.py +15 -13
- mindspore/rewrite/api/symbol_tree.py +1 -1
- mindspore/run_check/_check_version.py +25 -14
- mindspore/run_check/run_check.py +1 -1
- mindspore/runtime/__init__.py +2 -2
- mindspore/runtime/executor.py +40 -11
- mindspore/runtime/memory.py +37 -13
- 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 +43 -9
- mindspore/train/amp.py +1 -1
- mindspore/train/callback/__init__.py +2 -2
- mindspore/train/callback/_callback.py +2 -16
- mindspore/train/callback/_checkpoint.py +24 -40
- mindspore/train/callback/_cluster_monitor.py +14 -18
- mindspore/train/callback/_flops_collector.py +2 -3
- mindspore/train/callback/_history.py +7 -4
- 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 +8 -13
- mindspore/train/callback/_time_monitor.py +2 -1
- mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +204 -105
- mindspore/train/data_sink.py +25 -2
- mindspore/train/dataset_helper.py +4 -5
- 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 +8 -6
- mindspore/train/metrics/recall.py +9 -9
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +19 -12
- mindspore/train/model.py +262 -127
- mindspore/train/serialization.py +246 -988
- mindspore/train/summary/_summary_adapter.py +2 -2
- mindspore/train/summary/summary_record.py +1 -1
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +3 -2
- mindspore/utils/dryrun.py +4 -2
- mindspore/utils/hooks.py +81 -0
- mindspore/utils/runtime_execution_order_check.py +2 -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.5.0.dist-info → mindspore-2.6.0.dist-info}/METADATA +2 -1
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/RECORD +485 -440
- mindspore/_install_custom.py +0 -43
- mindspore/common/_register_for_adapter.py +0 -74
- mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
- mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
- mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
- mindspore/ops_generate/gen_constants.py +0 -190
- mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
- mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
- /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
|
@@ -21,14 +21,23 @@ constants for operator names based on given prototypes.
|
|
|
21
21
|
|
|
22
22
|
import os
|
|
23
23
|
|
|
24
|
-
import gen_constants as K
|
|
25
|
-
import gen_utils
|
|
26
|
-
import
|
|
24
|
+
import common.gen_constants as K
|
|
25
|
+
import common.gen_utils as gen_utils
|
|
26
|
+
import common.template as template
|
|
27
|
+
from common.base_generator import BaseGenerator
|
|
28
|
+
from pyboost import pyboost_utils
|
|
27
29
|
|
|
28
|
-
# refactored
|
|
29
|
-
import template
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
OP_NAME_OP_DEF = """
|
|
32
|
+
#ifndef MINDSPORE_CORE_OP_NAME_${suffix}_H_
|
|
33
|
+
#define MINDSPORE_CORE_OP_NAME_${suffix}_H_
|
|
34
|
+
|
|
35
|
+
namespace mindspore::ops {
|
|
36
|
+
$ops_namespace_body
|
|
37
|
+
} // namespace mindspore::ops
|
|
38
|
+
|
|
39
|
+
#endif // MINDSPORE_CORE_OP_NAME_${suffix}_H_
|
|
40
|
+
"""
|
|
32
41
|
|
|
33
42
|
|
|
34
43
|
class OpsNameHGenerator(BaseGenerator):
|
|
@@ -40,7 +49,7 @@ class OpsNameHGenerator(BaseGenerator):
|
|
|
40
49
|
"""
|
|
41
50
|
Initializes the OpsNameHGenerator instance.
|
|
42
51
|
"""
|
|
43
|
-
self.op_name_op_def_template = template.Template(
|
|
52
|
+
self.op_name_op_def_template = template.Template(OP_NAME_OP_DEF)
|
|
44
53
|
self.op_def_body_template = template.Template("""constexpr auto kName${k_name_op} = "${k_name_op}";\n""")
|
|
45
54
|
|
|
46
55
|
def generate(self, work_path, op_protos):
|
|
@@ -54,15 +63,21 @@ class OpsNameHGenerator(BaseGenerator):
|
|
|
54
63
|
Returns:
|
|
55
64
|
None
|
|
56
65
|
"""
|
|
57
|
-
|
|
66
|
+
import os
|
|
67
|
+
import collections
|
|
68
|
+
|
|
69
|
+
op_name_gen_dict = collections.defaultdict(list)
|
|
70
|
+
|
|
58
71
|
for op_proto in op_protos:
|
|
59
72
|
k_name_op = pyboost_utils.get_op_name(op_proto.op_name, op_proto.op_class.name)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
op_name_code = self.op_name_op_def_template.replace(ops_namespace_body=op_name_gen_list)
|
|
73
|
+
first_char = k_name_op[0].lower()
|
|
74
|
+
op_name_gen_dict[first_char].append(self.op_def_body_template.replace(k_name_op=k_name_op))
|
|
63
75
|
|
|
64
|
-
|
|
76
|
+
for first_char, op_name_gen_list in op_name_gen_dict.items():
|
|
77
|
+
op_name_code = self.op_name_op_def_template.replace(ops_namespace_body=op_name_gen_list,
|
|
78
|
+
suffix=first_char.upper())
|
|
79
|
+
op_name_code = template.CC_LICENSE_STR + op_name_code
|
|
65
80
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
81
|
+
save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
|
|
82
|
+
file_name = f"gen_ops_name_{first_char}.h"
|
|
83
|
+
gen_utils.save_file(save_path, file_name, op_name_code)
|
|
@@ -0,0 +1,125 @@
|
|
|
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
|
+
Module for generating C++ header files for operator primitives.
|
|
17
|
+
|
|
18
|
+
This module defines the `OpsPrimitiveHGenerator` class, which creates C++ header files
|
|
19
|
+
containing definitions for operator primitives based on provided operator prototypes.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
import os
|
|
23
|
+
|
|
24
|
+
import common.gen_constants as K
|
|
25
|
+
import common.gen_utils as gen_utils
|
|
26
|
+
import common.template as template
|
|
27
|
+
from common.base_generator import BaseGenerator
|
|
28
|
+
from pyboost import pyboost_utils
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
OP_PRIM_OP_DEF_H = """
|
|
32
|
+
#ifndef MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
|
|
33
|
+
#define MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
|
|
34
|
+
|
|
35
|
+
#include "ir/primitive.h"
|
|
36
|
+
#include "mindapi/base/macros.h"
|
|
37
|
+
#include "$auto_gen_path/gen_ops_name_${suffix}.h"
|
|
38
|
+
|
|
39
|
+
namespace mindspore::prim {
|
|
40
|
+
$ops_prim_gen
|
|
41
|
+
} // namespace mindspore::prim
|
|
42
|
+
#endif // MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
OP_PRIM_OP_DEF_CC = """
|
|
47
|
+
|
|
48
|
+
#include "$auto_gen_path/gen_ops_primitive_${suffix}.h"
|
|
49
|
+
|
|
50
|
+
#include <memory>
|
|
51
|
+
|
|
52
|
+
namespace mindspore::prim {
|
|
53
|
+
$ops_prim_gen
|
|
54
|
+
} // namespace mindspore::prim
|
|
55
|
+
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class OpsPrimitiveHGenerator(BaseGenerator):
|
|
60
|
+
"""
|
|
61
|
+
This class generates the header file for operator primitives.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
def __init__(self):
|
|
65
|
+
"""
|
|
66
|
+
Initializes the generator with templates for operator primitive definitions.
|
|
67
|
+
"""
|
|
68
|
+
self.op_prim_op_def_template = template.Template(OP_PRIM_OP_DEF_H)
|
|
69
|
+
self.op_prim_op_def_cc_template = template.Template(OP_PRIM_OP_DEF_CC)
|
|
70
|
+
self.op_def_h_template = template.Template(
|
|
71
|
+
"OPS_API extern const PrimitivePtr kPrim${k_name_op};\n")
|
|
72
|
+
self.op_def_template = template.Template(
|
|
73
|
+
"const PrimitivePtr kPrim${k_name_op} = std::make_shared<Primitive>(ops::kName${k_name_op});\n")
|
|
74
|
+
self.op_def_rw_template = template.Template(
|
|
75
|
+
"const PrimitivePtr kPrim${k_name_op} = std::make_shared<Primitive>(ops::kName${k_name_op}, "
|
|
76
|
+
"true, kPrimTypeBuiltIn, true);\n")
|
|
77
|
+
|
|
78
|
+
def generate(self, work_path, op_protos):
|
|
79
|
+
"""
|
|
80
|
+
Generates the header file content for operator primitives and saves it.
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
work_path (str): The directory to save the generated files.
|
|
84
|
+
op_protos (list): A list of operator prototypes.
|
|
85
|
+
|
|
86
|
+
Returns:
|
|
87
|
+
None
|
|
88
|
+
|
|
89
|
+
The method generates the content of the header file for each operator primitive
|
|
90
|
+
defined in the 'op_protos' list and saves it to the specified work path.
|
|
91
|
+
"""
|
|
92
|
+
import os
|
|
93
|
+
import collections
|
|
94
|
+
ops_prim_gen_dict = collections.defaultdict(list)
|
|
95
|
+
ops_prim_cc_gen_dict = collections.defaultdict(list)
|
|
96
|
+
|
|
97
|
+
for op_proto in op_protos:
|
|
98
|
+
k_name_op = pyboost_utils.get_op_name(op_proto.op_name, op_proto.op_class.name)
|
|
99
|
+
first_char = k_name_op[0].lower()
|
|
100
|
+
if op_proto.op_args_signature:
|
|
101
|
+
if op_proto.op_args_signature.rw_write:
|
|
102
|
+
ops_prim_gen_dict[first_char].append(self.op_def_h_template.replace(k_name_op=k_name_op))
|
|
103
|
+
ops_prim_cc_gen_dict[first_char].append(self.op_def_rw_template.replace(k_name_op=k_name_op))
|
|
104
|
+
continue
|
|
105
|
+
|
|
106
|
+
ops_prim_gen_dict[first_char].append(self.op_def_h_template.replace(k_name_op=k_name_op))
|
|
107
|
+
ops_prim_cc_gen_dict[first_char].append(self.op_def_template.replace(k_name_op=k_name_op))
|
|
108
|
+
|
|
109
|
+
for first_char, ops_prim_gen_list in ops_prim_gen_dict.items():
|
|
110
|
+
op_prim_op_def = self.op_prim_op_def_template.replace(auto_gen_path=K.MS_OP_DEF_AUTO_GENERATE_PATH,
|
|
111
|
+
ops_prim_gen=ops_prim_gen_list, suffix=first_char)
|
|
112
|
+
res_str = template.CC_LICENSE_STR + op_prim_op_def
|
|
113
|
+
|
|
114
|
+
save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
|
|
115
|
+
file_name = f"gen_ops_primitive_{first_char}.h"
|
|
116
|
+
gen_utils.save_file(save_path, file_name, res_str)
|
|
117
|
+
|
|
118
|
+
for first_char, ops_prim_gen_list in ops_prim_cc_gen_dict.items():
|
|
119
|
+
op_prim_op_def = self.op_prim_op_def_cc_template.replace(auto_gen_path=K.MS_OP_DEF_AUTO_GENERATE_PATH,
|
|
120
|
+
ops_prim_gen=ops_prim_gen_list, suffix=first_char)
|
|
121
|
+
res_str = template.CC_LICENSE_STR + op_prim_op_def
|
|
122
|
+
|
|
123
|
+
save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
|
|
124
|
+
file_name = f"gen_ops_primitive_{first_char}.cc"
|
|
125
|
+
gen_utils.save_file(save_path, file_name, res_str)
|
|
File without changes
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Copyright 2025 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
|
+
Generate operator definition python files.
|
|
17
|
+
"""
|
|
18
|
+
import os
|
|
19
|
+
import shutil
|
|
20
|
+
|
|
21
|
+
from op_def_py.op_prim_py_generator import OpPrimPyGenerator
|
|
22
|
+
from op_def_py.op_def_py_generator import OpDefPyGenerator
|
|
23
|
+
from resources.resource_list import ResourceType
|
|
24
|
+
from common import gen_constants as K
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def generate_ops_prim_file(work_path, op_protos, doc_dict, file_pre):
|
|
28
|
+
generator = OpPrimPyGenerator()
|
|
29
|
+
generator.generate(work_path, op_protos, doc_dict, file_pre)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def generate_ops_def_file(work_path, os_protos, doc_dict, file_pre):
|
|
33
|
+
generator = OpDefPyGenerator()
|
|
34
|
+
generator.generate(work_path, os_protos, doc_dict, file_pre)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def generate_ops_py_files(resource_mgr, file_pre='gen'):
|
|
38
|
+
"""
|
|
39
|
+
Generate ops python file from yaml.
|
|
40
|
+
"""
|
|
41
|
+
op_protos = resource_mgr.get_resource(ResourceType.OP_PROTO)
|
|
42
|
+
op_protos += resource_mgr.get_resource(ResourceType.FUNC_OP_PROTO)
|
|
43
|
+
doc_dict = resource_mgr.get_resource(ResourceType.OP_DOC_YAML)
|
|
44
|
+
generate_ops_prim_file(K.WORK_DIR, op_protos, doc_dict, file_pre)
|
|
45
|
+
generate_ops_def_file(K.WORK_DIR, op_protos, doc_dict, file_pre)
|
|
46
|
+
shutil.copy(os.path.join(K.WORK_DIR, K.PY_OPS_GEN_PATH, 'ops_auto_generate_init.txt'),
|
|
47
|
+
os.path.join(K.WORK_DIR, K.PY_AUTO_GEN_PATH, "__init__.py"))
|
|
@@ -18,13 +18,13 @@ Generate Python operator definitions.
|
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
20
|
|
|
21
|
-
import gen_constants as K
|
|
22
|
-
import gen_utils
|
|
21
|
+
import common.gen_constants as K
|
|
22
|
+
import common.gen_utils as gen_utils
|
|
23
23
|
|
|
24
24
|
# refactored
|
|
25
|
-
import template
|
|
25
|
+
import common.template as template
|
|
26
26
|
|
|
27
|
-
from base_generator import BaseGenerator
|
|
27
|
+
from common.base_generator import BaseGenerator
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class OpDefPyGenerator(BaseGenerator):
|
|
@@ -93,7 +93,8 @@ class OpDefPyGenerator(BaseGenerator):
|
|
|
93
93
|
gen_py += func_code
|
|
94
94
|
gen_py += "\n"
|
|
95
95
|
|
|
96
|
-
res_str = template.
|
|
96
|
+
res_str = template.PY_LICENSE_STR + \
|
|
97
|
+
template.OPS_PY_DEF_HEADER + gen_py[:-len(template.NEW_LINE)]
|
|
97
98
|
save_path = os.path.join(work_path, K.PY_AUTO_GEN_PATH)
|
|
98
99
|
file_name = f"{file_pre}_ops_def.py"
|
|
99
100
|
gen_utils.save_file(save_path, file_name, res_str)
|
|
@@ -18,16 +18,13 @@ Module for generating Python primitive operator definitions from specifications.
|
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
20
|
|
|
21
|
-
import gen_constants as K
|
|
22
|
-
import gen_utils
|
|
23
|
-
import
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
from
|
|
27
|
-
import
|
|
28
|
-
from template import Template
|
|
29
|
-
|
|
30
|
-
from base_generator import BaseGenerator
|
|
21
|
+
import common.gen_constants as K
|
|
22
|
+
import common.gen_utils as gen_utils
|
|
23
|
+
import common.template as template
|
|
24
|
+
from common.base_generator import BaseGenerator
|
|
25
|
+
from common.op_proto import OpProto
|
|
26
|
+
from common.template import Template
|
|
27
|
+
from pyboost import pyboost_utils
|
|
31
28
|
|
|
32
29
|
|
|
33
30
|
class OpPrimPyGenerator(BaseGenerator):
|
|
@@ -89,7 +86,8 @@ class OpPrimPyGenerator(BaseGenerator):
|
|
|
89
86
|
gen_py += f"\n\n{op_proto.op_name}_op={op_proto.op_class.name}()\n"
|
|
90
87
|
|
|
91
88
|
pyboost_import_header = self.generate_pyboost_import_header(op_protos)
|
|
92
|
-
res_str = template.
|
|
89
|
+
res_str = template.PY_LICENSE_STR + \
|
|
90
|
+
template.OPS_PY_PRIM_HEADER + pyboost_import_header + gen_py
|
|
93
91
|
|
|
94
92
|
save_path = os.path.join(work_path, K.PY_AUTO_GEN_PATH)
|
|
95
93
|
file_name = f"{file_pre}_ops_prim.py"
|
|
@@ -281,8 +279,8 @@ class OpPrimPyGenerator(BaseGenerator):
|
|
|
281
279
|
call_method_args_str = ", ".join(call_args)
|
|
282
280
|
call_method_body_str = self._get_call_method_body_str(args_handlers, init_args, inputs_args, inputs_default,
|
|
283
281
|
op_proto)
|
|
284
|
-
call_code_str += f""" def __call__(self, {call_method_args_str})
|
|
285
|
-
call_code_str += f"""
|
|
282
|
+
call_code_str += f""" def __call__(self, {call_method_args_str}):"""
|
|
283
|
+
call_code_str += f"""{call_method_body_str}"""
|
|
286
284
|
return call_code_str
|
|
287
285
|
|
|
288
286
|
def _get_call_method_body_str(self, args_handlers, init_args, inputs_args, inputs_default, op_proto: OpProto):
|
|
@@ -317,10 +315,21 @@ class OpPrimPyGenerator(BaseGenerator):
|
|
|
317
315
|
call_method_body_str = ""
|
|
318
316
|
is_pyboost = op_proto.op_dispatch and op_proto.op_dispatch.enable
|
|
319
317
|
if is_pyboost:
|
|
318
|
+
call_method_body_str += f"""
|
|
319
|
+
# Add for jit context.
|
|
320
|
+
if jit_context() and jit_context().compiled:
|
|
321
|
+
return None"""
|
|
320
322
|
pyboost_func_name = pyboost_utils.get_pyboost_name(op_proto.op_name)
|
|
321
|
-
call_method_body_str += f"""
|
|
323
|
+
call_method_body_str += f"""
|
|
324
|
+
res = {pyboost_func_name}(self, [{call_args_list_str}])"""
|
|
325
|
+
call_method_body_str += f"""
|
|
326
|
+
# Add for jit context.
|
|
327
|
+
if jit_context():
|
|
328
|
+
return jit_context().run_op(self, res, {call_args_list_str})
|
|
329
|
+
return res\n"""
|
|
322
330
|
else:
|
|
323
|
-
call_method_body_str += f"""
|
|
331
|
+
call_method_body_str += f"""
|
|
332
|
+
return super().__call__({call_args_list_str})\n"""
|
|
324
333
|
return call_method_body_str
|
|
325
334
|
|
|
326
335
|
def _generate_py_op_signature(self, op_proto: OpProto, args_name, args_default):
|
|
File without changes
|
mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py}
RENAMED
|
@@ -18,12 +18,12 @@ This module provides a generator class for creating C++ implementation files for
|
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
20
|
|
|
21
|
-
import template
|
|
22
|
-
from template import Template
|
|
23
|
-
import gen_constants as K
|
|
24
|
-
from gen_utils import save_file
|
|
25
|
-
from base_generator import BaseGenerator
|
|
26
|
-
from pyboost_utils import is_optional_param, get_input_dtype, is_op_multi_output
|
|
21
|
+
import common.template as template
|
|
22
|
+
from common.template import Template
|
|
23
|
+
import common.gen_constants as K
|
|
24
|
+
from common.gen_utils import save_file
|
|
25
|
+
from common.base_generator import BaseGenerator
|
|
26
|
+
from pyboost.pyboost_utils import is_optional_param, get_input_dtype, is_op_multi_output
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class AutoGradImplGenerator(BaseGenerator):
|
|
@@ -35,6 +35,7 @@ class AutoGradImplGenerator(BaseGenerator):
|
|
|
35
35
|
"""
|
|
36
36
|
Initialize the AutoGrad implementation generator with templates for code generation.
|
|
37
37
|
"""
|
|
38
|
+
self.OP_DEF_INC_HEAD_TEMPLATE = template.OP_DEF_INC_HEAD_TEMPLATE
|
|
38
39
|
self.AUTO_GRAD_IMPL_CC_TEMPLATE = template.AUTO_GRAD_IMPL_CC_TEMPLATE
|
|
39
40
|
self.DO_GRAD_FUNCTION_BODY_TEMPLATE = template.DO_GRAD_FUNCTION_BODY_TEMPLATE
|
|
40
41
|
self.auto_grad_reg_template = Template("const_cast<kernel::pyboost::${class_name}GradFunc&>(" + \
|
|
@@ -55,13 +56,16 @@ class AutoGradImplGenerator(BaseGenerator):
|
|
|
55
56
|
"""
|
|
56
57
|
auto_grad_reg_list = []
|
|
57
58
|
do_grad_op_list = []
|
|
59
|
+
ops_inc_head_set = set()
|
|
58
60
|
for op_proto in op_protos:
|
|
59
61
|
if op_proto.op_dispatch is None or op_proto.op_dispatch.is_comm_op:
|
|
60
62
|
continue
|
|
61
63
|
auto_grad_reg_list.append(self.auto_grad_reg_template.replace(class_name=op_proto.op_class.name))
|
|
62
64
|
do_grad_op_list.append(self._get_single_do_grad_op(op_proto))
|
|
65
|
+
ops_inc_head_set.add(self.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_proto.op_class.name[0].lower()))
|
|
63
66
|
pyboost_func_h_str = self.AUTO_GRAD_IMPL_CC_TEMPLATE.replace(do_grad_op=do_grad_op_list,
|
|
64
|
-
auto_grad_reg=auto_grad_reg_list
|
|
67
|
+
auto_grad_reg=auto_grad_reg_list,
|
|
68
|
+
ops_inc=list(sorted(ops_inc_head_set)))
|
|
65
69
|
save_path = os.path.join(work_path, K.PYBOOST_AUTO_GRAD_FUNC_GEN_PATH)
|
|
66
70
|
file_name = "auto_grad_impl.cc"
|
|
67
71
|
save_file(save_path, file_name, pyboost_func_h_str)
|
mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py}
RENAMED
|
@@ -18,12 +18,12 @@ This module provides a generator class for creating C++ header files for AutoGra
|
|
|
18
18
|
|
|
19
19
|
import os
|
|
20
20
|
|
|
21
|
-
import template
|
|
22
|
-
from template import Template
|
|
23
|
-
import gen_constants as K
|
|
24
|
-
from gen_utils import save_file
|
|
25
|
-
from base_generator import BaseGenerator
|
|
26
|
-
from pyboost_utils import is_optional_param, get_input_dtype
|
|
21
|
+
import common.template as template
|
|
22
|
+
from common.template import Template
|
|
23
|
+
import common.gen_constants as K
|
|
24
|
+
from common.gen_utils import save_file
|
|
25
|
+
from common.base_generator import BaseGenerator
|
|
26
|
+
from pyboost.pyboost_utils import is_optional_param, get_input_dtype
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class AutoGradRegHeaderGenerator(BaseGenerator):
|
|
@@ -70,7 +70,7 @@ class AutoGradRegHeaderGenerator(BaseGenerator):
|
|
|
70
70
|
op_grad_func=op_grad_func_list,
|
|
71
71
|
op_grad_func_obj=op_grad_func_obj_list)
|
|
72
72
|
|
|
73
|
-
save_path = os.path.join(work_path, K.
|
|
73
|
+
save_path = os.path.join(work_path, K.MS_PYBOOST_FUNCTIONS_AUTO_GEN_PATH)
|
|
74
74
|
file_name = "auto_grad_op_reg.h"
|
|
75
75
|
save_file(save_path, file_name, pyboost_func_h_str)
|
|
76
76
|
|
|
@@ -16,34 +16,57 @@
|
|
|
16
16
|
Generate pyboost function from pyboost_op.yaml
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
from
|
|
19
|
+
import os
|
|
20
|
+
import shutil
|
|
21
|
+
import logging
|
|
22
|
+
from resources.resource_list import ResourceType
|
|
23
|
+
from common import gen_constants as K
|
|
24
|
+
from api.functions_cc_generator import FunctionsGenerator, FunctionsHeaderGenerator
|
|
25
|
+
from .pyboost_inner_prim_generator import PyboostInnerPrimGenerator
|
|
26
|
+
from .pyboost_functions_py_generator import PyboostFunctionsPyGenerator
|
|
27
|
+
from .pyboost_functions_h_generator import PyboostFunctionsHeaderGenerator
|
|
28
|
+
from .pyboost_functions_cpp_generator import PyboostFunctionsGenerator
|
|
29
|
+
from .pyboost_grad_function_cpp_generator import PyboostGradFunctionsGenerator
|
|
30
|
+
from .pyboost_native_grad_functions_generator import (
|
|
25
31
|
PyboostGradFunctionsHeaderGenerator,
|
|
26
32
|
PyboostGradFunctionsCppGenerator,
|
|
27
33
|
)
|
|
28
|
-
from pyboost_op_cpp_code_generator import (
|
|
34
|
+
from .pyboost_op_cpp_code_generator import (
|
|
29
35
|
PyboostCommonOpHeaderGenerator,
|
|
30
36
|
PyboostOpFunctionGenerator,
|
|
31
37
|
PyboostOpHeaderGenerator,
|
|
32
38
|
delete_residual_files,
|
|
33
39
|
PyboostOpRegisterCppCodeGenerator,
|
|
34
40
|
)
|
|
35
|
-
from pyboost_overload_functions_cpp_generator import PyboostOverloadFunctionsGenerator
|
|
36
|
-
from auto_grad_impl_cc_generator import AutoGradImplGenerator
|
|
37
|
-
from auto_grad_reg_cc_generator import AutoGradRegHeaderGenerator
|
|
38
|
-
from functions_cc_generator import FunctionsGenerator, FunctionsHeaderGenerator
|
|
41
|
+
from .pyboost_overload_functions_cpp_generator import PyboostOverloadFunctionsGenerator
|
|
42
|
+
from .auto_grad_impl_cc_generator import AutoGradImplGenerator
|
|
43
|
+
from .auto_grad_reg_cc_generator import AutoGradRegHeaderGenerator
|
|
39
44
|
|
|
40
45
|
|
|
41
|
-
def
|
|
46
|
+
def clear_old_generated_code(work_path):
|
|
47
|
+
""" delete old generated files to prevent compilation failure """
|
|
48
|
+
files_to_clear = ['mindspore/ops/kernel/common/pyboost',
|
|
49
|
+
'mindspore/ops/kernel/functions/auto_generate',
|
|
50
|
+
'mindspore/ccsrc/runtime/pynative/op_function']
|
|
51
|
+
for f in files_to_clear:
|
|
52
|
+
real_path = os.path.join(work_path, f)
|
|
53
|
+
if os.path.exists(real_path):
|
|
54
|
+
shutil.rmtree(real_path)
|
|
55
|
+
logging.warning("rm file %s", real_path)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def gen_pyboost_code(resource_mgr):
|
|
42
59
|
""" gen_pyboost_code """
|
|
60
|
+
work_path = K.WORK_DIR
|
|
61
|
+
op_protos = resource_mgr.get_resource(ResourceType.OP_PROTO)
|
|
62
|
+
doc_yaml_data = resource_mgr.get_resource(ResourceType.OP_DOC_YAML)
|
|
63
|
+
mint_func_protos = resource_mgr.get_resource(ResourceType.MINT_FUNC_PROTOS)
|
|
64
|
+
alias_func_mapping = resource_mgr.get_resource(ResourceType.ALIAS_API_MAPPING)
|
|
65
|
+
clear_old_generated_code(work_path)
|
|
43
66
|
call_pyboost_inner_prim_generator(work_path, op_protos)
|
|
44
67
|
call_pyboost_functions_py_generator(work_path, op_protos, doc_yaml_data)
|
|
45
68
|
call_pyboost_functions_h_generator(work_path, op_protos)
|
|
46
|
-
call_pyboost_functions_cpp_generator(work_path, op_protos
|
|
69
|
+
call_pyboost_functions_cpp_generator(work_path, op_protos)
|
|
47
70
|
call_pyboost_overload_functions_cpp_generator(work_path, op_protos, mint_func_protos, alias_func_mapping)
|
|
48
71
|
call_pyboost_grad_functions_cpp_generator(work_path, op_protos)
|
|
49
72
|
call_pyboost_native_grad_functions_generator(work_path, op_protos)
|
|
@@ -94,14 +117,15 @@ def call_pyboost_functions_h_generator(work_path, op_protos):
|
|
|
94
117
|
generator.generate(work_path, op_protos)
|
|
95
118
|
|
|
96
119
|
|
|
97
|
-
def call_pyboost_functions_cpp_generator(work_path, op_protos
|
|
120
|
+
def call_pyboost_functions_cpp_generator(work_path, op_protos):
|
|
98
121
|
generator = PyboostFunctionsGenerator()
|
|
99
|
-
generator.generate(work_path, op_protos
|
|
122
|
+
generator.generate(work_path, op_protos)
|
|
100
123
|
|
|
101
124
|
|
|
102
125
|
def call_pyboost_overload_functions_cpp_generator(work_path, op_protos, mint_func_protos, alias_func_mapping):
|
|
103
126
|
generator = PyboostOverloadFunctionsGenerator()
|
|
104
|
-
generator.generate(work_path, op_protos,
|
|
127
|
+
generator.generate(work_path, op_protos,
|
|
128
|
+
mint_func_protos, alias_func_mapping)
|
|
105
129
|
|
|
106
130
|
|
|
107
131
|
def call_pyboost_grad_functions_cpp_generator(work_path, op_protos):
|