mindspore 2.6.0__cp311-cp311-win_amd64.whl → 2.7.0__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
- mindspore/Newtonsoft.Json.dll +0 -0
- mindspore/__init__.py +2 -2
- mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
- mindspore/_checkparam.py +42 -11
- mindspore/_extends/builtin_operations.py +3 -3
- mindspore/{_deprecated → _extends/optimize}/__init__.py +9 -3
- mindspore/_extends/optimize/cell_utils.py +96 -0
- mindspore/_extends/parallel_compile/akg_compiler/custom.py +1109 -0
- mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
- mindspore/_extends/parse/__init__.py +3 -3
- mindspore/_extends/parse/compile_config.py +44 -22
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +1 -2
- mindspore/_extends/parse/parser.py +64 -83
- mindspore/_extends/parse/resources.py +39 -0
- mindspore/_extends/parse/standard_method.py +47 -14
- mindspore/_extends/parse/trope.py +8 -1
- mindspore/_extends/pijit/__init__.py +1 -2
- mindspore/_extends/pijit/pijit_func_white_list.py +2 -5
- mindspore/amp.py +4 -22
- mindspore/atlprov.dll +0 -0
- mindspore/avcodec-59.dll +0 -0
- mindspore/avdevice-59.dll +0 -0
- mindspore/avfilter-8.dll +0 -0
- mindspore/avformat-59.dll +0 -0
- mindspore/avutil-57.dll +0 -0
- mindspore/boost/adasum.py +1 -1
- mindspore/boost/boost_cell_wrapper.py +4 -4
- mindspore/c1.dll +0 -0
- mindspore/c1xx.dll +0 -0
- mindspore/c2.dll +0 -0
- mindspore/common/__init__.py +43 -12
- mindspore/common/_grad_function.py +2 -1
- mindspore/common/_pijit_context.py +28 -7
- mindspore/common/_stub_tensor.py +1 -209
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +177 -52
- mindspore/common/_utils.py +9 -1
- mindspore/common/api.py +338 -208
- mindspore/common/dtype.py +108 -57
- mindspore/common/dump.py +11 -16
- mindspore/common/dynamic_shape/__init__.py +0 -0
- mindspore/common/{auto_dynamic_shape.py → dynamic_shape/auto_dynamic_shape.py} +17 -23
- mindspore/common/dynamic_shape/enable_dynamic.py +197 -0
- mindspore/common/file_system.py +59 -9
- mindspore/common/generator.py +2 -3
- mindspore/common/hook_handle.py +33 -5
- mindspore/common/jit_config.py +1 -1
- mindspore/common/jit_trace.py +84 -105
- mindspore/common/np_dtype.py +3 -3
- mindspore/common/parameter.py +27 -29
- mindspore/common/recompute.py +5 -7
- mindspore/common/sparse_tensor.py +0 -3
- mindspore/common/symbol.py +0 -1
- mindspore/common/tensor.py +84 -133
- mindspore/communication/_comm_helper.py +46 -4
- mindspore/communication/management.py +79 -7
- mindspore/context.py +47 -38
- mindspore/dataset/__init__.py +1 -1
- mindspore/dataset/audio/transforms.py +1 -1
- mindspore/dataset/core/config.py +38 -4
- mindspore/dataset/engine/datasets.py +350 -322
- mindspore/dataset/engine/datasets_user_defined.py +69 -23
- mindspore/dataset/engine/iterators.py +2 -2
- mindspore/dataset/engine/obs/config_loader.py +2 -2
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +8 -0
- mindspore/dataset/transforms/c_transforms.py +2 -2
- mindspore/dataset/transforms/py_transforms.py +7 -3
- mindspore/dataset/transforms/transforms.py +10 -6
- mindspore/dataset/vision/__init__.py +1 -1
- mindspore/dataset/vision/py_transforms.py +8 -8
- mindspore/dataset/vision/transforms.py +17 -5
- mindspore/dataset/vision/utils.py +632 -21
- mindspore/dataset/vision/validators.py +1 -0
- mindspore/device_context/ascend/device.py +1 -1
- mindspore/device_context/ascend/op_tuning.py +35 -1
- mindspore/device_context/gpu/__init__.py +2 -2
- mindspore/device_context/gpu/device.py +1 -1
- mindspore/device_context/gpu/op_precision.py +4 -2
- mindspore/device_context/gpu/op_tuning.py +6 -3
- mindspore/device_manager.py +16 -9
- mindspore/dnnl.dll +0 -0
- mindspore/dpcmi.dll +0 -0
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +5 -4
- mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
- mindspore/experimental/optim/adadelta.py +13 -20
- mindspore/experimental/optim/adagrad.py +15 -22
- mindspore/experimental/optim/adam.py +17 -24
- mindspore/experimental/optim/adamax.py +14 -22
- mindspore/experimental/optim/adamw.py +28 -34
- mindspore/experimental/optim/asgd.py +15 -25
- mindspore/experimental/optim/lr_scheduler.py +27 -45
- mindspore/experimental/optim/nadam.py +14 -24
- mindspore/experimental/optim/optimizer.py +13 -23
- mindspore/experimental/optim/radam.py +18 -24
- mindspore/experimental/optim/rmsprop.py +14 -25
- mindspore/experimental/optim/rprop.py +15 -26
- mindspore/experimental/optim/sgd.py +9 -19
- mindspore/hal/__init__.py +4 -4
- mindspore/hal/contiguous_tensors_handle.py +2 -2
- mindspore/hal/memory.py +1 -0
- mindspore/include/api/cell.h +65 -5
- mindspore/include/api/cfg.h +24 -7
- mindspore/include/api/context.h +1 -0
- mindspore/include/api/delegate.h +10 -2
- mindspore/include/api/dual_abi_helper.h +100 -19
- mindspore/include/api/graph.h +14 -1
- mindspore/include/api/kernel.h +16 -3
- mindspore/include/api/kernel_api.h +9 -1
- mindspore/include/api/metrics/accuracy.h +9 -0
- mindspore/include/api/model.h +8 -1
- mindspore/include/api/model_group.h +4 -0
- mindspore/include/api/model_parallel_runner.h +2 -0
- mindspore/include/api/status.h +48 -10
- mindspore/include/api/types.h +8 -3
- mindspore/include/c_api/model_c.h +0 -58
- mindspore/include/c_api/tensor_c.h +0 -26
- mindspore/include/dataset/constants.h +9 -0
- mindspore/include/dataset/vision_ascend.h +1 -1
- mindspore/jpeg62.dll +0 -0
- mindspore/mindrecord/tools/cifar10.py +61 -11
- mindspore/mindrecord/tools/cifar10_to_mr.py +5 -0
- 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_cpu_res_manager.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_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 +4 -44
- mindspore/mint/distributed/__init__.py +5 -0
- mindspore/mint/distributed/distributed.py +425 -19
- mindspore/mint/nn/__init__.py +1 -1
- mindspore/mint/nn/functional.py +53 -6
- mindspore/mint/nn/layer/_functions.py +163 -294
- mindspore/mint/nn/layer/activation.py +8 -6
- mindspore/mint/nn/layer/conv.py +125 -101
- mindspore/mint/nn/layer/normalization.py +11 -25
- mindspore/mint/optim/adam.py +19 -18
- mindspore/mint/optim/adamw.py +14 -8
- mindspore/mint/optim/sgd.py +5 -5
- 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/cell.py +488 -620
- mindspore/nn/grad/cell_grad.py +11 -12
- mindspore/nn/layer/activation.py +36 -36
- mindspore/nn/layer/basic.py +74 -77
- mindspore/nn/layer/channel_shuffle.py +4 -4
- mindspore/nn/layer/combined.py +4 -2
- mindspore/nn/layer/conv.py +86 -85
- mindspore/nn/layer/dense.py +9 -7
- mindspore/nn/layer/embedding.py +50 -52
- mindspore/nn/layer/image.py +38 -40
- mindspore/nn/layer/math.py +111 -112
- mindspore/nn/layer/normalization.py +56 -44
- mindspore/nn/layer/pooling.py +58 -63
- mindspore/nn/layer/rnn_cells.py +33 -33
- mindspore/nn/layer/rnns.py +56 -56
- mindspore/nn/layer/thor_layer.py +74 -73
- mindspore/nn/layer/transformer.py +11 -1
- mindspore/nn/learning_rate_schedule.py +20 -20
- mindspore/nn/loss/loss.py +79 -81
- mindspore/nn/optim/adam.py +2 -4
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/lamb.py +1 -3
- mindspore/nn/optim/optimizer.py +1 -1
- mindspore/nn/optim/tft_wrapper.py +2 -3
- mindspore/nn/optim/thor.py +2 -2
- mindspore/nn/probability/distribution/_utils/utils.py +2 -2
- mindspore/nn/probability/distribution/exponential.py +2 -1
- mindspore/nn/probability/distribution/poisson.py +2 -1
- mindspore/nn/sparse/sparse.py +3 -3
- mindspore/nn/wrap/cell_wrapper.py +73 -42
- mindspore/nn/wrap/grad_reducer.py +37 -52
- mindspore/nn/wrap/loss_scale.py +72 -74
- mindspore/numpy/array_creations.py +7 -7
- mindspore/numpy/fft.py +1 -1
- mindspore/numpy/math_ops.py +1 -1
- mindspore/numpy/utils_const.py +1 -1
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/opencv_imgproc452.dll +0 -0
- mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
- mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
- mindspore/ops/_grad_experimental/grad_inner_ops.py +0 -9
- mindspore/ops/_op_impl/cpu/__init__.py +1 -0
- mindspore/{experimental/es/__init__.py → ops/_op_impl/cpu/joinedstr_op.py} +12 -6
- mindspore/ops/_vmap/vmap_array_ops.py +6 -13
- mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +29 -10
- mindspore/ops/auto_generate/gen_extend_func.py +5 -55
- mindspore/ops/auto_generate/gen_ops_def.py +753 -273
- mindspore/ops/auto_generate/gen_ops_prim.py +1687 -958
- mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
- mindspore/ops/composite/__init__.py +10 -0
- mindspore/ops/composite/base.py +9 -5
- mindspore/ops/composite/multitype_ops/__init__.py +12 -1
- mindspore/ops/composite/multitype_ops/_compile_utils.py +132 -108
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -1
- mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
- mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
- mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
- mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
- mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
- mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/_add_attr_func.py +11 -6
- mindspore/ops/function/array_func.py +17 -100
- mindspore/ops/function/debug_func.py +8 -5
- mindspore/ops/function/grad/grad_func.py +5 -13
- mindspore/ops/function/math_func.py +65 -399
- mindspore/ops/function/nn_func.py +44 -61
- mindspore/ops/function/other_func.py +4 -1
- mindspore/ops/function/random_func.py +31 -4
- mindspore/ops/functional.py +2 -3
- mindspore/ops/functional_overload.py +486 -18
- mindspore/ops/op_info_register.py +21 -0
- mindspore/ops/operations/__init__.py +5 -2
- mindspore/ops/operations/_custom_ops_utils.py +675 -8
- mindspore/ops/operations/_inner_ops.py +14 -18
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/array_ops.py +4 -50
- mindspore/ops/operations/comm_ops.py +186 -41
- mindspore/ops/operations/custom_ops.py +244 -175
- mindspore/ops/operations/debug_ops.py +55 -4
- mindspore/ops/operations/image_ops.py +13 -13
- mindspore/ops/operations/manually_defined/ops_def.py +27 -28
- mindspore/ops/operations/math_ops.py +8 -9
- mindspore/ops/operations/nn_ops.py +6 -7
- mindspore/ops/primitive.py +9 -20
- mindspore/ops/tensor_method.py +52 -11
- mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
- mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
- mindspore/ops_generate/api/functions_cc_generator.py +58 -10
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
- mindspore/ops_generate/common/base_generator.py +14 -0
- mindspore/ops_generate/common/gen_constants.py +7 -2
- mindspore/ops_generate/common/gen_utils.py +0 -19
- mindspore/ops_generate/common/op_proto.py +11 -4
- mindspore/ops_generate/common/template.py +88 -11
- mindspore/ops_generate/gen_ops.py +1 -1
- mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
- mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
- mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
- mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -16
- mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
- mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
- mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
- mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
- mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
- mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
- mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
- mindspore/parallel/_auto_parallel_context.py +9 -17
- mindspore/parallel/_cell_wrapper.py +106 -40
- mindspore/parallel/_parallel_serialization.py +4 -3
- mindspore/parallel/_ps_context.py +4 -6
- mindspore/parallel/_tensor.py +167 -12
- mindspore/parallel/_transformer/moe.py +1 -1
- mindspore/parallel/_transformer/transformer.py +17 -12
- mindspore/parallel/_utils.py +5 -11
- mindspore/parallel/auto_parallel.py +33 -12
- mindspore/parallel/checkpoint_convert.py +3 -3
- mindspore/parallel/checkpoint_transform.py +5 -1
- mindspore/parallel/cluster/process_entity/_api.py +88 -49
- mindspore/parallel/cluster/process_entity/_utils.py +95 -7
- mindspore/parallel/cluster/run.py +48 -7
- mindspore/parallel/function/__init__.py +8 -1
- mindspore/parallel/function/reshard_func.py +7 -6
- mindspore/parallel/nn/__init__.py +15 -2
- mindspore/parallel/nn/parallel_cell_wrapper.py +50 -14
- mindspore/parallel/nn/parallel_grad_reducer.py +7 -14
- mindspore/parallel/shard.py +9 -23
- mindspore/parallel/transform_safetensors.py +468 -174
- mindspore/pgodb140.dll +0 -0
- mindspore/pgort140.dll +0 -0
- mindspore/profiler/__init__.py +2 -1
- mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
- mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
- mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +3 -0
- mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
- mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
- mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
- mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
- mindspore/profiler/analysis/task_manager.py +1 -1
- mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
- mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +10 -9
- mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +43 -23
- mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
- mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
- mindspore/profiler/common/constant.py +16 -0
- mindspore/profiler/common/msprof_cmd_tool.py +2 -2
- mindspore/profiler/common/path_manager.py +9 -0
- mindspore/profiler/common/profiler_context.py +50 -29
- mindspore/profiler/common/profiler_info.py +0 -16
- mindspore/profiler/common/profiler_meta_data.py +1 -0
- mindspore/profiler/common/profiler_op_analyse.py +239 -0
- mindspore/profiler/common/profiler_output_path.py +23 -8
- mindspore/profiler/common/profiler_parameters.py +128 -35
- mindspore/profiler/dynamic_profile/__init__.py +0 -0
- mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
- mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
- mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
- mindspore/profiler/dynamic_profiler.py +374 -338
- mindspore/profiler/envprofiler.py +42 -12
- mindspore/profiler/experimental_config.py +112 -7
- mindspore/profiler/mstx.py +33 -12
- mindspore/profiler/platform/__init__.py +2 -3
- mindspore/profiler/platform/cpu_profiler.py +10 -4
- mindspore/profiler/platform/npu_profiler.py +30 -20
- mindspore/profiler/profiler.py +218 -154
- mindspore/profiler/profiler_action_controller.py +65 -77
- mindspore/profiler/profiler_interface.py +2 -2
- mindspore/profiler/schedule.py +10 -4
- mindspore/rewrite/common/config.py +1 -0
- mindspore/rewrite/common/namer.py +1 -0
- mindspore/rewrite/common/namespace.py +1 -0
- mindspore/rewrite/node/node.py +31 -11
- mindspore/rewrite/parsers/assign_parser.py +1 -1
- mindspore/rewrite/symbol_tree/symbol_tree.py +2 -2
- mindspore/run_check/_check_version.py +7 -10
- mindspore/runtime/__init__.py +8 -6
- mindspore/runtime/event.py +10 -4
- mindspore/runtime/executor.py +87 -45
- mindspore/runtime/memory.py +22 -30
- mindspore/runtime/thread_bind_core.py +299 -165
- mindspore/safeguard/rewrite_obfuscation.py +12 -13
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tbbmalloc.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/train/_utils.py +9 -5
- mindspore/train/amp.py +43 -23
- mindspore/train/callback/__init__.py +5 -5
- mindspore/train/callback/_callback.py +2 -1
- mindspore/train/callback/_checkpoint.py +4 -14
- mindspore/train/callback/_flops_collector.py +11 -7
- mindspore/train/callback/_landscape.py +0 -1
- mindspore/train/callback/_train_fault_tolerance.py +72 -18
- mindspore/train/data_sink.py +15 -6
- mindspore/train/dataset_helper.py +14 -5
- mindspore/train/model.py +49 -47
- mindspore/train/serialization.py +168 -126
- mindspore/train/summary/summary_record.py +13 -2
- mindspore/train/train_thor/model_thor.py +2 -2
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +3 -2
- mindspore/utils/dryrun.py +0 -6
- mindspore/utils/runtime_execution_order_check.py +162 -78
- mindspore/utils/sdc_detect.py +68 -0
- mindspore/utils/utils.py +14 -17
- mindspore/vcmeta.dll +0 -0
- mindspore/vcruntime140.dll +0 -0
- mindspore/vcruntime140_1.dll +0 -0
- mindspore/version.py +1 -1
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/RECORD +400 -439
- mindspore/_deprecated/jit.py +0 -198
- mindspore/_extends/remote/kernel_build_server_ascend.py +0 -75
- mindspore/communication/_hccl_management.py +0 -297
- mindspore/experimental/es/embedding_service.py +0 -891
- mindspore/experimental/es/embedding_service_layer.py +0 -581
- mindspore/profiler/common/validator/__init__.py +0 -14
- mindspore/profiler/common/validator/validate_path.py +0 -84
- mindspore/profiler/parser/__init__.py +0 -14
- mindspore/profiler/parser/aicpu_data_parser.py +0 -272
- mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
- mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
- mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
- mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
- mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
- mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
- mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
- mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
- mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
- mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
- mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
- mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
- mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
- mindspore/profiler/parser/ascend_flops_generator.py +0 -116
- mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
- mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
- mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
- mindspore/profiler/parser/ascend_memory_generator.py +0 -185
- mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
- mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
- mindspore/profiler/parser/ascend_op_generator.py +0 -334
- mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
- mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
- mindspore/profiler/parser/base_timeline_generator.py +0 -483
- mindspore/profiler/parser/container.py +0 -229
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
- mindspore/profiler/parser/flops_parser.py +0 -531
- mindspore/profiler/parser/framework_enum.py +0 -111
- mindspore/profiler/parser/framework_parser.py +0 -464
- mindspore/profiler/parser/framework_struct.py +0 -61
- mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
- mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
- mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
- mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
- mindspore/profiler/parser/hccl_parser.py +0 -573
- mindspore/profiler/parser/hwts_log_parser.py +0 -122
- mindspore/profiler/parser/integrator.py +0 -526
- mindspore/profiler/parser/memory_usage_parser.py +0 -277
- mindspore/profiler/parser/minddata_analyzer.py +0 -800
- mindspore/profiler/parser/minddata_parser.py +0 -186
- mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
- mindspore/profiler/parser/op_intermediate_parser.py +0 -149
- mindspore/profiler/parser/optime_parser.py +0 -250
- mindspore/profiler/parser/profiler_info.py +0 -213
- mindspore/profiler/parser/step_trace_parser.py +0 -666
- mindspore/utils/hooks.py +0 -81
- /mindspore/common/{_auto_dynamic.py → dynamic_shape/_auto_dynamic.py} +0 -0
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
|
@@ -58,7 +58,7 @@ class AutoGradImplGenerator(BaseGenerator):
|
|
|
58
58
|
do_grad_op_list = []
|
|
59
59
|
ops_inc_head_set = set()
|
|
60
60
|
for op_proto in op_protos:
|
|
61
|
-
if op_proto.op_dispatch is None
|
|
61
|
+
if op_proto.op_dispatch is None:
|
|
62
62
|
continue
|
|
63
63
|
auto_grad_reg_list.append(self.auto_grad_reg_template.replace(class_name=op_proto.op_class.name))
|
|
64
64
|
do_grad_op_list.append(self._get_single_do_grad_op(op_proto))
|
|
@@ -80,24 +80,38 @@ class AutoGradImplGenerator(BaseGenerator):
|
|
|
80
80
|
Returns:
|
|
81
81
|
str: The generated DoGrad function string.
|
|
82
82
|
"""
|
|
83
|
-
input_args_str = self._get_input_args(op_proto, False, False)
|
|
84
|
-
input_args_with_optional_str = self._get_input_args(op_proto, False, True)
|
|
85
|
-
input_args_with_type_str = self._get_input_args(op_proto, True, False)
|
|
83
|
+
input_args_str = self._get_input_args(op_proto, False, False, op_proto.op_view)
|
|
84
|
+
input_args_with_optional_str = self._get_input_args(op_proto, False, True, op_proto.op_view)
|
|
85
|
+
input_args_with_type_str = self._get_input_args(op_proto, True, False, op_proto.op_view)
|
|
86
|
+
inner_grad_args_with_type = self._get_input_args(op_proto, True, False, False)
|
|
86
87
|
multi_output_str = 'Multi' if is_op_multi_output(op_proto.op_returns) else ''
|
|
87
88
|
view_arg_str = self._get_view_str(op_proto.op_view, input_args_str)
|
|
88
89
|
grad_args_with_type_str = self.do_grad_op_args_with_type.replace(input_args_with_type=input_args_with_type_str)
|
|
90
|
+
inner_grad_args_with_type =\
|
|
91
|
+
self.do_grad_op_args_with_type.replace(input_args_with_type=inner_grad_args_with_type)
|
|
89
92
|
op_def_name_str = "g" + op_proto.op_class.name
|
|
90
|
-
|
|
93
|
+
TRUE = "true"
|
|
94
|
+
FALSE = "false"
|
|
95
|
+
bprop_expander = TRUE if op_proto.bprop_expander else FALSE
|
|
96
|
+
non_differentiable = TRUE if op_proto.non_differentiable else FALSE
|
|
97
|
+
if not op_proto.op_view:
|
|
98
|
+
convert_basic_to_value = ''
|
|
99
|
+
else:
|
|
100
|
+
input_args_with_optional_str, convert_basic_to_value = self._get_convert_str(op_proto,
|
|
101
|
+
input_args_with_optional_str)
|
|
91
102
|
return self.DO_GRAD_FUNCTION_BODY_TEMPLATE.replace(class_name=op_proto.op_class.name,
|
|
103
|
+
inner_grad_args_with_type=inner_grad_args_with_type,
|
|
92
104
|
grad_args_with_type=grad_args_with_type_str,
|
|
93
105
|
grad_input_args=input_args_str,
|
|
94
106
|
grad_input_args_with_optional=input_args_with_optional_str,
|
|
95
107
|
is_multi=multi_output_str,
|
|
96
108
|
view_arg=view_arg_str,
|
|
97
109
|
op_def_name=op_def_name_str,
|
|
98
|
-
bprop_expander=bprop_expander
|
|
110
|
+
bprop_expander=bprop_expander,
|
|
111
|
+
non_differentiable=non_differentiable,
|
|
112
|
+
convert_basic_to_value=convert_basic_to_value)
|
|
99
113
|
|
|
100
|
-
def _get_input_args(self, op_proto, has_type, with_optional):
|
|
114
|
+
def _get_input_args(self, op_proto, has_type, with_optional, use_basic_type=False):
|
|
101
115
|
"""
|
|
102
116
|
Get the input arguments for the DoGrad function.
|
|
103
117
|
|
|
@@ -110,7 +124,7 @@ class AutoGradImplGenerator(BaseGenerator):
|
|
|
110
124
|
"""
|
|
111
125
|
args_list = []
|
|
112
126
|
for op_arg in op_proto.op_args:
|
|
113
|
-
input_dtype = get_input_dtype(op_arg.arg_dtype, is_optional_param(op_arg))
|
|
127
|
+
input_dtype = get_input_dtype(op_arg.arg_dtype, is_optional_param(op_arg), use_basic_type)
|
|
114
128
|
if has_type:
|
|
115
129
|
args_list.append(f"const {input_dtype} &{op_arg.arg_name}_tensor")
|
|
116
130
|
else:
|
|
@@ -120,6 +134,33 @@ class AutoGradImplGenerator(BaseGenerator):
|
|
|
120
134
|
args_list.append(f"{op_arg.arg_name}_tensor")
|
|
121
135
|
return args_list
|
|
122
136
|
|
|
137
|
+
def _get_convert_str(self, op_proto, args_name):
|
|
138
|
+
"""
|
|
139
|
+
Get the input convert func for the DoGrad function.
|
|
140
|
+
|
|
141
|
+
Args:
|
|
142
|
+
op_proto: The operator prototype.
|
|
143
|
+
has_type (bool): Whether to include type information for the arguments.
|
|
144
|
+
|
|
145
|
+
Returns:
|
|
146
|
+
list: A list of input arguments for the DoGrad function.
|
|
147
|
+
list: A list of convert functions.
|
|
148
|
+
"""
|
|
149
|
+
args_name_list = []
|
|
150
|
+
convert_funcs = []
|
|
151
|
+
convert_types = ["tuple[int]", "list[int]", "int"]
|
|
152
|
+
convert_func_template = Template("const auto &${arg_name} = PackToValue(${input_name});")
|
|
153
|
+
for op_arg, arg_name in zip(op_proto.op_args, args_name):
|
|
154
|
+
if op_arg.arg_dtype not in convert_types:
|
|
155
|
+
args_name_list.append(arg_name)
|
|
156
|
+
continue
|
|
157
|
+
out_arg_name = arg_name + "_value"
|
|
158
|
+
input_name = arg_name
|
|
159
|
+
convert_funcs.append(convert_func_template.replace(arg_name=out_arg_name,
|
|
160
|
+
input_name=input_name))
|
|
161
|
+
args_name_list.append(out_arg_name)
|
|
162
|
+
return args_name_list, convert_funcs
|
|
163
|
+
|
|
123
164
|
def _get_view_str(self, is_view_op: bool, grad_args: list):
|
|
124
165
|
"""
|
|
125
166
|
Get the view argument string for a DoGrad function.
|
|
@@ -56,7 +56,7 @@ class AutoGradRegHeaderGenerator(BaseGenerator):
|
|
|
56
56
|
op_grad_func_obj_list = []
|
|
57
57
|
index = 0
|
|
58
58
|
for op_proto in op_protos:
|
|
59
|
-
if op_proto.op_dispatch is None
|
|
59
|
+
if op_proto.op_dispatch is None:
|
|
60
60
|
continue
|
|
61
61
|
op_type_enum_list.append(self.op_type_enum_template.replace(class_name=op_proto.op_class.name,
|
|
62
62
|
enum_val=index))
|
|
@@ -87,7 +87,7 @@ class AutoGradRegHeaderGenerator(BaseGenerator):
|
|
|
87
87
|
input_tensor_prt_args_str = ""
|
|
88
88
|
for op_arg in op_proto.op_args:
|
|
89
89
|
is_optional = is_optional_param(op_arg)
|
|
90
|
-
input_dtype = get_input_dtype(op_arg.arg_dtype, is_optional)
|
|
90
|
+
input_dtype = get_input_dtype(op_arg.arg_dtype, is_optional, op_proto.op_view)
|
|
91
91
|
input_tensor_prt_args_str += f"const {input_dtype} &, "
|
|
92
92
|
|
|
93
93
|
return self.op_grad_func_args_template.replace(input_tensor_prt_args=input_tensor_prt_args_str.rstrip(', '))
|
|
@@ -16,9 +16,6 @@
|
|
|
16
16
|
Generate pyboost function from pyboost_op.yaml
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
import os
|
|
20
|
-
import shutil
|
|
21
|
-
import logging
|
|
22
19
|
from resources.resource_list import ResourceType
|
|
23
20
|
from common import gen_constants as K
|
|
24
21
|
from api.functions_cc_generator import FunctionsGenerator, FunctionsHeaderGenerator
|
|
@@ -26,7 +23,11 @@ from .pyboost_inner_prim_generator import PyboostInnerPrimGenerator
|
|
|
26
23
|
from .pyboost_functions_py_generator import PyboostFunctionsPyGenerator
|
|
27
24
|
from .pyboost_functions_h_generator import PyboostFunctionsHeaderGenerator
|
|
28
25
|
from .pyboost_functions_cpp_generator import PyboostFunctionsGenerator
|
|
26
|
+
from .pyboost_functions_impl_cpp_generator import PyboostFunctionsImplGenerator
|
|
29
27
|
from .pyboost_grad_function_cpp_generator import PyboostGradFunctionsGenerator
|
|
28
|
+
from .pyboost_internal_functions_h_generator import PyboostInternalFunctionsHeaderGenerator
|
|
29
|
+
from .pyboost_internal_functions_cpp_generator import PyboostInternalFunctionsCppGenerator
|
|
30
|
+
from .pyboost_internal_kernel_info_adapter_generator import PyboostKernelInfoAdapterGenerator
|
|
30
31
|
from .pyboost_native_grad_functions_generator import (
|
|
31
32
|
PyboostGradFunctionsHeaderGenerator,
|
|
32
33
|
PyboostGradFunctionsCppGenerator,
|
|
@@ -35,6 +36,7 @@ from .pyboost_op_cpp_code_generator import (
|
|
|
35
36
|
PyboostCommonOpHeaderGenerator,
|
|
36
37
|
PyboostOpFunctionGenerator,
|
|
37
38
|
PyboostOpHeaderGenerator,
|
|
39
|
+
PyboostInternalOpHeaderGenerator,
|
|
38
40
|
delete_residual_files,
|
|
39
41
|
PyboostOpRegisterCppCodeGenerator,
|
|
40
42
|
)
|
|
@@ -43,18 +45,6 @@ from .auto_grad_impl_cc_generator import AutoGradImplGenerator
|
|
|
43
45
|
from .auto_grad_reg_cc_generator import AutoGradRegHeaderGenerator
|
|
44
46
|
|
|
45
47
|
|
|
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
48
|
def gen_pyboost_code(resource_mgr):
|
|
59
49
|
""" gen_pyboost_code """
|
|
60
50
|
work_path = K.WORK_DIR
|
|
@@ -62,12 +52,14 @@ def gen_pyboost_code(resource_mgr):
|
|
|
62
52
|
doc_yaml_data = resource_mgr.get_resource(ResourceType.OP_DOC_YAML)
|
|
63
53
|
mint_func_protos = resource_mgr.get_resource(ResourceType.MINT_FUNC_PROTOS)
|
|
64
54
|
alias_func_mapping = resource_mgr.get_resource(ResourceType.ALIAS_API_MAPPING)
|
|
65
|
-
clear_old_generated_code(work_path)
|
|
66
55
|
call_pyboost_inner_prim_generator(work_path, op_protos)
|
|
67
56
|
call_pyboost_functions_py_generator(work_path, op_protos, doc_yaml_data)
|
|
68
57
|
call_pyboost_functions_h_generator(work_path, op_protos)
|
|
69
58
|
call_pyboost_functions_cpp_generator(work_path, op_protos)
|
|
70
59
|
call_pyboost_overload_functions_cpp_generator(work_path, op_protos, mint_func_protos, alias_func_mapping)
|
|
60
|
+
call_pyboost_internal_functions_h_generator(work_path, op_protos)
|
|
61
|
+
call_pyboost_internal_functions_cpp_generator(work_path, op_protos)
|
|
62
|
+
call_pyboost_internal_kernel_info_adapter_generator(work_path, op_protos)
|
|
71
63
|
call_pyboost_grad_functions_cpp_generator(work_path, op_protos)
|
|
72
64
|
call_pyboost_native_grad_functions_generator(work_path, op_protos)
|
|
73
65
|
call_pyboost_op_cpp_code_generator(work_path, op_protos)
|
|
@@ -117,7 +109,27 @@ def call_pyboost_functions_h_generator(work_path, op_protos):
|
|
|
117
109
|
generator.generate(work_path, op_protos)
|
|
118
110
|
|
|
119
111
|
|
|
112
|
+
def call_pyboost_internal_functions_h_generator(work_path, op_protos):
|
|
113
|
+
"gen internal op functions headers"
|
|
114
|
+
generator = PyboostInternalFunctionsHeaderGenerator()
|
|
115
|
+
generator.generate(work_path, op_protos)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def call_pyboost_internal_functions_cpp_generator(work_path, op_protos):
|
|
119
|
+
"gen internal op functions sources"
|
|
120
|
+
generator = PyboostInternalFunctionsCppGenerator()
|
|
121
|
+
generator.generate(work_path, op_protos)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def call_pyboost_internal_kernel_info_adapter_generator(work_path, op_protos):
|
|
125
|
+
"gen kernel info adapter for internal op"
|
|
126
|
+
generator = PyboostKernelInfoAdapterGenerator()
|
|
127
|
+
generator.generate(work_path, op_protos)
|
|
128
|
+
|
|
129
|
+
|
|
120
130
|
def call_pyboost_functions_cpp_generator(work_path, op_protos):
|
|
131
|
+
impl_generator = PyboostFunctionsImplGenerator()
|
|
132
|
+
impl_generator.generate(work_path, op_protos)
|
|
121
133
|
generator = PyboostFunctionsGenerator()
|
|
122
134
|
generator.generate(work_path, op_protos)
|
|
123
135
|
|
|
@@ -160,8 +172,11 @@ def call_PyboostCommonOpCppCodeGenerator(work_path, op_protos):
|
|
|
160
172
|
|
|
161
173
|
|
|
162
174
|
def call_PyboostOpHeaderGenerator(work_path, op_protos):
|
|
175
|
+
""" generate pyboost op headers """
|
|
163
176
|
generator = PyboostOpHeaderGenerator('ascend')
|
|
164
177
|
generator.generate(work_path, op_protos)
|
|
178
|
+
generator = PyboostInternalOpHeaderGenerator('ascend')
|
|
179
|
+
generator.generate(work_path, op_protos)
|
|
165
180
|
|
|
166
181
|
generator = PyboostOpHeaderGenerator('gpu')
|
|
167
182
|
generator.generate(work_path, op_protos)
|
|
@@ -29,7 +29,7 @@ from common.op_proto import OpProto
|
|
|
29
29
|
from . import pyboost_utils
|
|
30
30
|
from .pyboost_utils import get_input_dtype, tuple_input_to_cpp_type, get_return_type, \
|
|
31
31
|
number_input_to_cpp_type, get_const_number_convert, get_tuple_input_convert, is_optional_param, \
|
|
32
|
-
get_input_args_type_str
|
|
32
|
+
get_input_args_type_str, basic_type_convert_str, input_dtype_to_cpp_type
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
class OpTemplateParser:
|
|
@@ -45,8 +45,42 @@ class OpTemplateParser:
|
|
|
45
45
|
|
|
46
46
|
def __init__(self, op_proto: OpProto):
|
|
47
47
|
self.op_proto = op_proto
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
self.tensor_arg_handler_prt_template = Template(
|
|
49
|
+
"parse_args.arg_list_[${idx}] = "
|
|
50
|
+
"py::cast((*pynative::${func_str}(\"${func_name}\", \"${op_arg_name}\", "
|
|
51
|
+
"parse_args.arg_list_[${idx}]))->value());\n"
|
|
52
|
+
"parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
|
|
53
|
+
"parse_args.dst_types_[${idx}] = ${new_type};\n"
|
|
54
|
+
)
|
|
55
|
+
self.function_arg_handler_prt_template = Template(
|
|
56
|
+
"parse_args.arg_list_[${idx}] = "
|
|
57
|
+
"py::cast((*${func_str}(\"${func_name}\", \"${op_arg_name}\", parse_args.arg_list_[${idx}]))->value());\n"
|
|
58
|
+
"parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
|
|
59
|
+
"parse_args.dst_types_[${idx}] = ${new_type};\n"
|
|
60
|
+
)
|
|
61
|
+
self.arg_handler_template = Template(
|
|
62
|
+
"parse_args.arg_list_[${idx}] = "
|
|
63
|
+
"py::cast(pynative::${func_str}(\"${func_name}\", \"${op_arg_name}\", parse_args.arg_list_[${idx}]));\n"
|
|
64
|
+
"parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
|
|
65
|
+
"parse_args.dst_types_[${idx}] = ${new_type};\n"
|
|
66
|
+
)
|
|
67
|
+
self.arg_handler_optional_template = Template(
|
|
68
|
+
'if (!py::isinstance<py::none>(parse_args.arg_list_[${idx}])) {\n'
|
|
69
|
+
' ${arg_handler_str}\n'
|
|
70
|
+
'}\n'
|
|
71
|
+
)
|
|
72
|
+
self.arg_handler_type_map = {"to_2d_paddings": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
73
|
+
"dtype_to_type_id": "ops::OP_DTYPE::DT_INT",
|
|
74
|
+
"to_kernel_size": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
75
|
+
"to_strides": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
76
|
+
"str_to_enum": "ops::OP_DTYPE::DT_INT",
|
|
77
|
+
"to_pair": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
78
|
+
"to_dilations": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
79
|
+
"to_output_padding": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
80
|
+
"to_rates": "ops::OP_DTYPE::DT_TUPLE_INT"}
|
|
81
|
+
|
|
82
|
+
@staticmethod
|
|
83
|
+
def _parse_call_args_types(op_proto, basic_type=False, is_convert=False):
|
|
50
84
|
"""
|
|
51
85
|
Parses the data types of the call arguments for the operator.
|
|
52
86
|
|
|
@@ -57,22 +91,37 @@ class OpTemplateParser:
|
|
|
57
91
|
list: A list of data types for the call arguments.
|
|
58
92
|
"""
|
|
59
93
|
call_args_types = []
|
|
60
|
-
|
|
94
|
+
if basic_type and not op_proto.op_view:
|
|
95
|
+
basic_type = False
|
|
96
|
+
raise Exception("Only view op support basic type now, please check.")
|
|
97
|
+
for op_arg in op_proto.op_args:
|
|
61
98
|
is_optional = is_optional_param(op_arg)
|
|
62
|
-
|
|
63
|
-
op_arg.
|
|
99
|
+
if is_convert:
|
|
100
|
+
if op_arg.is_type_id:
|
|
101
|
+
call_args_types.append('TypeId')
|
|
102
|
+
continue
|
|
103
|
+
call_args_types.append(input_dtype_to_cpp_type(
|
|
104
|
+
op_arg.arg_dtype, is_optional))
|
|
105
|
+
else:
|
|
106
|
+
call_args_types.append(get_input_dtype(
|
|
107
|
+
op_arg.arg_dtype, is_optional, basic_type))
|
|
64
108
|
return call_args_types
|
|
65
109
|
|
|
66
|
-
def parse_call_args_with_types(self):
|
|
110
|
+
def parse_call_args_with_types(self, basic_type=False, is_convert=False):
|
|
67
111
|
"""
|
|
68
112
|
Parses the original call arguments and their types for the operator.
|
|
69
113
|
|
|
70
114
|
Returns:
|
|
71
115
|
list: A list of formatted strings representing the call arguments with their types.
|
|
72
116
|
"""
|
|
73
|
-
call_args =
|
|
74
|
-
|
|
117
|
+
call_args = OpTemplateParser.parse_original_call_args(self.op_proto.op_args)
|
|
118
|
+
call_args_after_convert, _, _ = self.op_args_converter()
|
|
119
|
+
call_args_types = self._parse_call_args_types(self.op_proto, basic_type, is_convert)
|
|
75
120
|
call_args_with_types = []
|
|
121
|
+
if is_convert:
|
|
122
|
+
for type_name, arg_name in zip(call_args_types, call_args_after_convert):
|
|
123
|
+
call_args_with_types.append("const " + type_name + " &" + arg_name)
|
|
124
|
+
return call_args_with_types
|
|
76
125
|
for type_name, arg_name in zip(call_args_types, call_args):
|
|
77
126
|
call_args_with_types.append("const " + type_name + " &" + arg_name)
|
|
78
127
|
return call_args_with_types
|
|
@@ -90,7 +139,7 @@ class OpTemplateParser:
|
|
|
90
139
|
need_malloc_tensors = []
|
|
91
140
|
tensor_list_convert = []
|
|
92
141
|
call_args_with_tensor = []
|
|
93
|
-
call_args =
|
|
142
|
+
call_args = OpTemplateParser.parse_original_call_args(self.op_proto.op_args)
|
|
94
143
|
for op_arg, call_arg in zip(self.op_proto.op_args, call_args):
|
|
95
144
|
if pyboost_utils.is_tensor(op_arg):
|
|
96
145
|
call_arg = op_arg.arg_name + "_tensor"
|
|
@@ -105,7 +154,8 @@ class OpTemplateParser:
|
|
|
105
154
|
call_args_with_tensor.append(call_arg)
|
|
106
155
|
return need_malloc_tensors, tensor_list_convert, call_args_with_tensor
|
|
107
156
|
|
|
108
|
-
|
|
157
|
+
@staticmethod
|
|
158
|
+
def parse_original_call_args(op_args):
|
|
109
159
|
"""
|
|
110
160
|
Parses the original call arguments from the operator prototype.
|
|
111
161
|
|
|
@@ -139,7 +189,7 @@ class OpTemplateParser:
|
|
|
139
189
|
call_args_after_convert = []
|
|
140
190
|
value_tuple_convert = []
|
|
141
191
|
const_number_convert = []
|
|
142
|
-
call_args =
|
|
192
|
+
call_args = OpTemplateParser.parse_original_call_args(self.op_proto.op_args)
|
|
143
193
|
for op_arg, call_arg in zip(self.op_proto.op_args, call_args):
|
|
144
194
|
if number_input_to_cpp_type(op_arg.arg_dtype):
|
|
145
195
|
call_args_after_convert.append(call_arg + "_imm")
|
|
@@ -199,8 +249,7 @@ class OpTemplateParser:
|
|
|
199
249
|
args_signature = self.op_proto.op_args_signature
|
|
200
250
|
if args_signature is not None:
|
|
201
251
|
dtype_group = args_signature.dtype_group
|
|
202
|
-
indexes = {arg.arg_name: index for index,
|
|
203
|
-
arg in enumerate(self.op_proto.op_args)}
|
|
252
|
+
indexes = {arg.arg_name: index for index, arg in enumerate(self.op_proto.op_args)}
|
|
204
253
|
if dtype_group is not None:
|
|
205
254
|
match = re.findall(r'\((.*?)\)', dtype_group)
|
|
206
255
|
for item in match:
|
|
@@ -223,10 +272,10 @@ class OpTemplateParser:
|
|
|
223
272
|
list: A list of call arguments that are tensors.
|
|
224
273
|
"""
|
|
225
274
|
call_args_tensor = []
|
|
226
|
-
call_args_types = self._parse_call_args_types(self.op_proto
|
|
227
|
-
call_args =
|
|
275
|
+
call_args_types = self._parse_call_args_types(self.op_proto)
|
|
276
|
+
call_args = OpTemplateParser.parse_original_call_args(self.op_proto.op_args)
|
|
228
277
|
for _type, arg_name in zip(call_args_types, call_args):
|
|
229
|
-
if _type in ("mindspore::tensor::
|
|
278
|
+
if _type in ("mindspore::tensor::TensorPtr", "std::optional<mindspore::tensor::TensorPtr>"):
|
|
230
279
|
call_args_tensor.append(arg_name)
|
|
231
280
|
return call_args_tensor
|
|
232
281
|
|
|
@@ -258,8 +307,8 @@ class OpTemplateParser:
|
|
|
258
307
|
"""
|
|
259
308
|
returns_type = []
|
|
260
309
|
type_convert_to_base = {
|
|
261
|
-
'std::vector<mindspore::tensor::TensorPtr>': 'std::vector<mindspore::tensor::
|
|
262
|
-
'mindspore::tensor::TensorPtr': 'mindspore::tensor::
|
|
310
|
+
'std::vector<mindspore::tensor::TensorPtr>': 'std::vector<mindspore::tensor::TensorPtr>',
|
|
311
|
+
'mindspore::tensor::TensorPtr': 'mindspore::tensor::TensorPtr'
|
|
263
312
|
}
|
|
264
313
|
for return_obj in self.op_proto.op_returns:
|
|
265
314
|
temp_return = get_return_type(return_obj.arg_dtype)
|
|
@@ -316,14 +365,6 @@ class OpTemplateParser:
|
|
|
316
365
|
|
|
317
366
|
return op_outputs, call_outputs
|
|
318
367
|
|
|
319
|
-
def _is_input_arg(self, arg_name, op_name):
|
|
320
|
-
res = False
|
|
321
|
-
if op_name in K.INPUT_NAME_MAP and arg_name == K.INPUT_NAME_MAP[op_name]:
|
|
322
|
-
res = True
|
|
323
|
-
elif op_name not in K.INPUT_NAME_MAP and arg_name in K.INPUT_ARGS_NAME:
|
|
324
|
-
res = True
|
|
325
|
-
return res
|
|
326
|
-
|
|
327
368
|
def generate_signature_str(self, kw_only_args=None, varargs=None, *, is_tensor_api: bool) -> str:
|
|
328
369
|
"""
|
|
329
370
|
Generates a single function signature string for the given operation prototype.
|
|
@@ -348,7 +389,7 @@ class OpTemplateParser:
|
|
|
348
389
|
for arg in self.op_proto.op_args:
|
|
349
390
|
arg_name = arg.arg_name
|
|
350
391
|
|
|
351
|
-
if is_tensor_api and
|
|
392
|
+
if is_tensor_api and _is_input_arg(arg_name, op_name):
|
|
352
393
|
continue
|
|
353
394
|
|
|
354
395
|
single_arg = ''
|
|
@@ -398,42 +439,9 @@ class OpTemplateParser:
|
|
|
398
439
|
Returns:
|
|
399
440
|
str: Generated argument handler processing code.
|
|
400
441
|
"""
|
|
401
|
-
tensor_arg_handler_prt_template = Template(
|
|
402
|
-
"parse_args.arg_list_[${idx}] = "
|
|
403
|
-
"py::cast((*pynative::${func_str}(\"${func_name}\", \"${op_arg_name}\", \
|
|
404
|
-
parse_args.arg_list_[${idx}]))->value());\n"
|
|
405
|
-
"parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
|
|
406
|
-
"parse_args.dst_types_[${idx}] = ${new_type};\n"
|
|
407
|
-
)
|
|
408
|
-
function_arg_handler_prt_template = Template(
|
|
409
|
-
"parse_args.arg_list_[${idx}] = "
|
|
410
|
-
"py::cast((*${func_str}(\"${func_name}\", \"${op_arg_name}\", parse_args.arg_list_[${idx}]))->value());\n"
|
|
411
|
-
"parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
|
|
412
|
-
"parse_args.dst_types_[${idx}] = ${new_type};\n"
|
|
413
|
-
)
|
|
414
442
|
arg_handler_prt_template = (
|
|
415
|
-
tensor_arg_handler_prt_template) if is_tensor_api else function_arg_handler_prt_template
|
|
443
|
+
self.tensor_arg_handler_prt_template) if is_tensor_api else self.function_arg_handler_prt_template
|
|
416
444
|
|
|
417
|
-
arg_handler_template = Template(
|
|
418
|
-
"parse_args.arg_list_[${idx}] = "
|
|
419
|
-
"py::cast(pynative::${func_str}(\"${func_name}\", \"${op_arg_name}\", parse_args.arg_list_[${idx}]));\n"
|
|
420
|
-
"parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
|
|
421
|
-
"parse_args.dst_types_[${idx}] = ${new_type};\n"
|
|
422
|
-
)
|
|
423
|
-
arg_handler_optional_template = Template(
|
|
424
|
-
'if (!py::isinstance<py::none>(parse_args.arg_list_[${idx}])) {\n'
|
|
425
|
-
' ${arg_handler_str}\n'
|
|
426
|
-
'}\n'
|
|
427
|
-
)
|
|
428
|
-
arg_handler_type_map = {"to_2d_paddings": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
429
|
-
"dtype_to_type_id": "ops::OP_DTYPE::DT_INT",
|
|
430
|
-
"to_kernel_size": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
431
|
-
"to_strides": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
432
|
-
"str_to_enum": "ops::OP_DTYPE::DT_INT",
|
|
433
|
-
"to_pair": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
434
|
-
"to_dilations": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
435
|
-
"to_output_padding": "ops::OP_DTYPE::DT_TUPLE_INT",
|
|
436
|
-
"to_rates": "ops::OP_DTYPE::DT_TUPLE_INT"}
|
|
437
445
|
arg_handler_processor = []
|
|
438
446
|
op_args = op_proto.op_args
|
|
439
447
|
for idx, op_arg in enumerate(op_args):
|
|
@@ -442,7 +450,7 @@ parse_args.arg_list_[${idx}]))->value());\n"
|
|
|
442
450
|
for word in arg_handler.split('_'))
|
|
443
451
|
if arg_handler:
|
|
444
452
|
op_arg_name = op_arg.arg_name
|
|
445
|
-
new_type = arg_handler_type_map
|
|
453
|
+
new_type = self.arg_handler_type_map.get(arg_handler, "Not exist")
|
|
446
454
|
if func_str in ("StrToEnum", "DtypeToTypeId"):
|
|
447
455
|
arg_handler_str = arg_handler_prt_template.replace(func_str=func_str,
|
|
448
456
|
func_name=func_name,
|
|
@@ -450,20 +458,21 @@ parse_args.arg_list_[${idx}]))->value());\n"
|
|
|
450
458
|
idx=idx,
|
|
451
459
|
new_type=new_type)
|
|
452
460
|
else:
|
|
453
|
-
arg_handler_str = arg_handler_template.replace(func_str=func_str,
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
461
|
+
arg_handler_str = self.arg_handler_template.replace(func_str=func_str,
|
|
462
|
+
func_name=func_name,
|
|
463
|
+
op_arg_name=op_arg_name,
|
|
464
|
+
idx=idx,
|
|
465
|
+
new_type=new_type)
|
|
458
466
|
|
|
459
467
|
if op_arg.default == "None":
|
|
460
|
-
arg_handler_str = arg_handler_optional_template.replace(idx=idx,
|
|
461
|
-
|
|
468
|
+
arg_handler_str = self.arg_handler_optional_template.replace(idx=idx,
|
|
469
|
+
arg_handler_str=arg_handler_str)
|
|
462
470
|
arg_handler_processor.append(arg_handler_str)
|
|
463
471
|
|
|
464
472
|
return arg_handler_processor
|
|
465
473
|
|
|
466
|
-
|
|
474
|
+
@staticmethod
|
|
475
|
+
def get_input_tensor_index(op_proto):
|
|
467
476
|
"""
|
|
468
477
|
Get index of input.
|
|
469
478
|
|
|
@@ -500,14 +509,22 @@ parse_args.arg_list_[${idx}]))->value());\n"
|
|
|
500
509
|
if is_tensor_api:
|
|
501
510
|
self_index = self.get_input_tensor_index(op_proto)
|
|
502
511
|
convert_args_str = ""
|
|
512
|
+
arg_basic_convert_template = Template("parse_args.${convert_func}(${index}), ")
|
|
503
513
|
for idx, op_arg in enumerate(op_proto.op_args):
|
|
504
514
|
if is_tensor_api:
|
|
505
515
|
if self_index == idx:
|
|
506
516
|
convert_args_str += "input_tensor, "
|
|
507
517
|
continue
|
|
508
518
|
is_optional = is_optional_param(op_arg)
|
|
519
|
+
if op_proto.op_view:
|
|
520
|
+
convert_func = basic_type_convert_str(op_arg.arg_dtype, False)
|
|
521
|
+
if convert_func != "":
|
|
522
|
+
arg_convert_str = arg_basic_convert_template.replace(convert_func=convert_func,
|
|
523
|
+
index=idx)
|
|
524
|
+
convert_args_str += arg_convert_str
|
|
525
|
+
continue
|
|
509
526
|
arg_convert_template = Template("parse_args.ConvertOptional<${des_type}>(${index}), ") if is_optional \
|
|
510
|
-
|
|
527
|
+
else Template("parse_args.Convert<${des_type}>(${index}), ")
|
|
511
528
|
if op_arg.is_type_id:
|
|
512
529
|
arg_type_str = get_input_args_type_str('type', False)
|
|
513
530
|
else:
|
|
@@ -515,3 +532,12 @@ parse_args.arg_list_[${idx}]))->value());\n"
|
|
|
515
532
|
convert_args_str += arg_convert_template.replace(index=idx,
|
|
516
533
|
des_type=arg_type_str[:-3])
|
|
517
534
|
return convert_args_str[:-2]
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
def _is_input_arg(arg_name, op_name):
|
|
538
|
+
res = False
|
|
539
|
+
if op_name in K.INPUT_NAME_MAP and arg_name == K.INPUT_NAME_MAP[op_name]:
|
|
540
|
+
res = True
|
|
541
|
+
elif op_name not in K.INPUT_NAME_MAP and arg_name in K.INPUT_ARGS_NAME:
|
|
542
|
+
res = True
|
|
543
|
+
return res
|