mindspore 2.6.0rc1__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 +65 -84
- mindspore/_extends/parse/resources.py +39 -0
- mindspore/_extends/parse/standard_method.py +58 -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 +178 -53
- mindspore/common/_utils.py +9 -1
- mindspore/common/api.py +377 -203
- 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 +5 -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 +117 -131
- mindspore/communication/_comm_helper.py +46 -4
- mindspore/communication/management.py +79 -7
- mindspore/context.py +67 -55
- 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 +70 -24
- 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 +3 -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 +27 -7
- 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 +6 -46
- mindspore/mint/distributed/__init__.py +5 -0
- mindspore/mint/distributed/distributed.py +429 -23
- 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 +140 -104
- 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 +491 -623
- 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 +117 -110
- 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 +4 -6
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -0
- 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 +5 -5
- 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 +31 -13
- mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +54 -13
- mindspore/ops/auto_generate/gen_extend_func.py +27 -145
- mindspore/ops/auto_generate/gen_ops_def.py +1027 -347
- mindspore/ops/auto_generate/gen_ops_prim.py +2341 -1117
- 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 +133 -109
- 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 +19 -102
- mindspore/ops/function/debug_func.py +8 -5
- mindspore/ops/function/grad/grad_func.py +5 -13
- mindspore/ops/function/math_func.py +77 -572
- mindspore/ops/function/nn_func.py +46 -94
- mindspore/ops/function/other_func.py +4 -1
- mindspore/ops/function/random_func.py +44 -5
- mindspore/ops/function/vmap_func.py +2 -1
- mindspore/ops/functional.py +4 -4
- mindspore/ops/functional_overload.py +594 -18
- mindspore/ops/op_info_register.py +21 -0
- mindspore/ops/operations/__init__.py +16 -11
- mindspore/ops/operations/_custom_ops_utils.py +689 -34
- mindspore/ops/operations/_inner_ops.py +14 -18
- mindspore/ops/operations/_sequence_ops.py +1 -1
- mindspore/ops/operations/array_ops.py +5 -51
- mindspore/ops/operations/comm_ops.py +186 -41
- mindspore/ops/operations/custom_ops.py +303 -177
- mindspore/ops/operations/debug_ops.py +59 -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 +8 -40
- mindspore/ops/primitive.py +9 -20
- mindspore/ops/tensor_method.py +63 -15
- 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 +8 -3
- 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_def_cc_generator.py +0 -3
- 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 +16 -23
- mindspore/parallel/_cell_wrapper.py +113 -45
- 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 +35 -14
- mindspore/parallel/checkpoint_convert.py +3 -3
- mindspore/parallel/checkpoint_transform.py +13 -7
- 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 +12 -12
- 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 +10 -25
- mindspore/parallel/transform_safetensors.py +469 -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 +12 -6
- 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 +31 -32
- 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 +17 -7
- 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 +98 -21
- mindspore/train/data_sink.py +15 -6
- mindspore/train/dataset_helper.py +14 -5
- mindspore/train/model.py +133 -69
- 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 +163 -77
- 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.0rc1.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/RECORD +403 -442
- 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.0rc1.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
- {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
|
@@ -29,7 +29,7 @@ from common.gen_utils import save_file
|
|
|
29
29
|
from common.op_proto import OpProto
|
|
30
30
|
from common.base_generator import BaseGenerator
|
|
31
31
|
from pyboost import pyboost_utils
|
|
32
|
-
from pyboost.pyboost_utils import get_convert_type_str, is_optional_param
|
|
32
|
+
from pyboost.pyboost_utils import get_convert_type_str, is_optional_param
|
|
33
33
|
|
|
34
34
|
from .op_template_parser import OpTemplateParser
|
|
35
35
|
|
|
@@ -48,28 +48,16 @@ class PyboostFunctionsGenerator(BaseGenerator):
|
|
|
48
48
|
self.pyboost_func_include_header_template = Template(
|
|
49
49
|
f'#include "{K.MS_PYBOOST_BASE_PATH}/auto_generate/${{operator_name}}.h"\n'
|
|
50
50
|
)
|
|
51
|
-
self.convert_optional_to_value_template = Template(
|
|
52
|
-
"auto ${output} = PyNativeAlgo::PyBoost::OptionalToValue(${input});\n"
|
|
53
|
-
)
|
|
54
|
-
self.convert_to_tensor_template = Template(
|
|
55
|
-
'auto ${output} = PyNativeAlgo::Common::ConvertStubNodeToTensor(${input}, ${need_contiguous}, '
|
|
56
|
-
'op_run_info->requires_grad);\n'
|
|
57
|
-
)
|
|
58
|
-
self.convert_to_tensor_list_template = Template(
|
|
59
|
-
'auto ${output} = PyNativeAlgo::Common::ConvertStubNodeToValueTuple(${input}, ${need_contiguous}, '
|
|
60
|
-
'op_run_info->requires_grad);\n'
|
|
61
|
-
)
|
|
62
51
|
self.convert_template = Template("auto $arg_name = converter.${convert_func}(args, $arg_index);\n")
|
|
63
|
-
self.
|
|
64
|
-
self.PYBOOST_FUNCTION_TEMPLATE = template.PYBOOST_FUNCTION_TEMPLATE
|
|
65
|
-
self.PYBOOST_COMM_FUNCTION_TEMPLATE = template.PYBOOST_COMM_FUNCTION_TEMPLATE
|
|
66
|
-
self.PYBOOST_FUNCTION_DYNAMIC_OUTPUT_TEMPLATE = template.PYBOOST_FUNCTION_DYNAMIC_OUTPUT_TEMPLATE
|
|
52
|
+
self.PYBOOST_REGISTRY_BODY_CC_TEMPLATE = template.PYBOOST_REGISTRY_BODY_CC_TEMPLATE
|
|
67
53
|
self.REGISTER_DEFINE_TEMPLATE = template.REGISTER_DEFINE_TEMPLATE
|
|
68
54
|
self.REGISTER_TEMPLATE = template.REGISTER_TEMPLATE
|
|
69
|
-
self.
|
|
55
|
+
self.PYBOOST_REGISTRY_CC_TEMPLATE = template.PYBOOST_REGISTRY_CC_TEMPLATE
|
|
70
56
|
self.TENSOR_FUNC_CLASS_REG = template.TENSOR_FUNC_CLASS_REG
|
|
71
57
|
self.OP_DEF_INC_HEAD_TEMPLATE = template.OP_DEF_INC_HEAD_TEMPLATE
|
|
72
58
|
|
|
59
|
+
self.pyboost_api_body_template = template.PYBOOST_API_BODY_CC_TEMPLATE
|
|
60
|
+
|
|
73
61
|
def generate(self, work_path, op_protos):
|
|
74
62
|
"""
|
|
75
63
|
Generates the C++ PyBoost functions and writes them to the specified files.
|
|
@@ -85,49 +73,18 @@ class PyboostFunctionsGenerator(BaseGenerator):
|
|
|
85
73
|
Returns:
|
|
86
74
|
None
|
|
87
75
|
"""
|
|
88
|
-
|
|
76
|
+
pyboost_registry_body_str = ''
|
|
89
77
|
pyboost_func_pybind_def = ''
|
|
90
78
|
pyboost_func_include_headers_str = ''
|
|
91
79
|
ops_inc_head_set = set()
|
|
92
80
|
for op_proto in op_protos:
|
|
93
81
|
if op_proto.op_dispatch is None or not op_proto.op_dispatch.enable:
|
|
94
82
|
continue
|
|
83
|
+
|
|
84
|
+
pyboost_registry_body_str += self._get_pyboost_registry_body_str(op_proto)
|
|
85
|
+
pyboost_registry_body_str += template.NEW_LINE + template.NEW_LINE
|
|
86
|
+
|
|
95
87
|
op_parser = OpTemplateParser(op_proto)
|
|
96
|
-
op_pyboost_func_name = op_parser.get_pyboost_func_name()
|
|
97
|
-
op_def_name_str = op_parser.get_op_def_name_str()
|
|
98
|
-
type_num, same_type = op_parser.gen_signature_same_type_table()
|
|
99
|
-
parser_body_str = self._generate_parser_func(op_proto)
|
|
100
|
-
op_args_str = [op_arg.arg_name for op_arg in op_proto.op_args]
|
|
101
|
-
convert_stub_str = self._get_convert_stub_str(op_proto)
|
|
102
|
-
optional_to_value_str = self._get_optional_to_value_str(op_proto)
|
|
103
|
-
call_args_str = self._get_call_args_str(op_proto)
|
|
104
|
-
grad_args_str = self._get_grad_args_str(op_proto)
|
|
105
|
-
cast_args_str = self._get_cast_to_value_str(op_proto)
|
|
106
|
-
view_arg_str = self._get_first_str(op_proto.op_view, grad_args_str)
|
|
107
|
-
op_input_args_str = self._get_input_args_str(op_proto)
|
|
108
|
-
view_arg_str = ", " + view_arg_str if view_arg_str else ''
|
|
109
|
-
multi_ouptut_str = 'Multi' if is_op_multi_output(op_proto.op_returns) else ''
|
|
110
|
-
output_num_str = len(op_proto.op_returns)
|
|
111
|
-
function_tpl = self._get_function_tpl(op_proto)
|
|
112
|
-
pyboost_func_str += function_tpl.replace(func_name=op_pyboost_func_name,
|
|
113
|
-
op_def_name=op_def_name_str,
|
|
114
|
-
type_num=type_num,
|
|
115
|
-
same_type=same_type,
|
|
116
|
-
input_args=op_input_args_str,
|
|
117
|
-
parser_body=parser_body_str,
|
|
118
|
-
op_name=op_proto.op_class.name,
|
|
119
|
-
class_name=op_proto.op_class.name,
|
|
120
|
-
op_args=op_args_str,
|
|
121
|
-
convert_stub=convert_stub_str,
|
|
122
|
-
optional_to_value=optional_to_value_str,
|
|
123
|
-
call_args=call_args_str,
|
|
124
|
-
grad_args=grad_args_str,
|
|
125
|
-
cast_args=cast_args_str,
|
|
126
|
-
view_arg=view_arg_str,
|
|
127
|
-
is_multi=multi_ouptut_str,
|
|
128
|
-
output_num=output_num_str,
|
|
129
|
-
operator_name=op_proto.op_name)
|
|
130
|
-
pyboost_func_str = pyboost_func_str + template.NEW_LINE + template.NEW_LINE
|
|
131
88
|
pyboost_op_name = op_parser.get_pyboost_name()
|
|
132
89
|
pyboost_func_name = op_parser.get_pyboost_func_name()
|
|
133
90
|
pyboost_func_pybind_def += self.REGISTER_DEFINE_TEMPLATE.replace(
|
|
@@ -139,21 +96,64 @@ class PyboostFunctionsGenerator(BaseGenerator):
|
|
|
139
96
|
ops_inc_head_set.add(self.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_proto.op_class.name[0].lower()))
|
|
140
97
|
register_func_str = self.REGISTER_TEMPLATE.replace(register_func=pyboost_func_pybind_def)
|
|
141
98
|
function_class_register = self._get_function_class_register(op_protos)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
99
|
+
pyboost_registry_file \
|
|
100
|
+
= self.PYBOOST_REGISTRY_CC_TEMPLATE.replace(ops_inc=list(sorted(ops_inc_head_set)),
|
|
101
|
+
include_op_header=pyboost_func_include_headers_str,
|
|
102
|
+
function_body=pyboost_registry_body_str,
|
|
103
|
+
register_function_body=register_func_str,
|
|
104
|
+
function_class_register=function_class_register)
|
|
147
105
|
save_path = os.path.join(work_path, K.PIPELINE_PYBOOST_FUNC_GEN_PATH)
|
|
148
|
-
file_name = "
|
|
149
|
-
save_file(save_path, file_name,
|
|
106
|
+
file_name = "pyboost_registry.cc"
|
|
107
|
+
save_file(save_path, file_name, pyboost_registry_file)
|
|
108
|
+
|
|
109
|
+
pyboost_function_base_str = self.get_pyboost_api_body_str(op_protos)
|
|
110
|
+
save_path = os.path.join(work_path, K.PIPELINE_PYBOOST_FUNC_GEN_PATH)
|
|
111
|
+
file_name = "pyboost_api.cc"
|
|
112
|
+
save_file(save_path, file_name, pyboost_function_base_str)
|
|
113
|
+
|
|
114
|
+
def get_pyboost_api_body_str(self, op_protos):
|
|
115
|
+
"""
|
|
116
|
+
Generates pyboost function base string.
|
|
150
117
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
118
|
+
Args:
|
|
119
|
+
op_protos (list): A list of tensor op prototypes.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
str: pyboost function base string.
|
|
123
|
+
"""
|
|
124
|
+
pyboost_api_cc_tpl = template.PYBOOST_API_CC_TEMPLATE
|
|
125
|
+
pyboost_api_body_str = ''
|
|
126
|
+
ops_inc_head_set = set()
|
|
127
|
+
for op_proto in op_protos:
|
|
128
|
+
if op_proto.op_dispatch is None or not op_proto.op_dispatch.enable:
|
|
129
|
+
continue
|
|
130
|
+
op_parser = OpTemplateParser(op_proto)
|
|
131
|
+
op_pyboost_func_name = op_parser.get_pyboost_func_name()
|
|
132
|
+
op_def_name_str = op_parser.get_op_def_name_str()
|
|
133
|
+
parser_body_str = self._generate_parser_func(op_proto)
|
|
134
|
+
op_args_str = [op_arg.arg_name for op_arg in op_proto.op_args]
|
|
135
|
+
pyboost_api_body_str += self.pyboost_api_body_template.replace(func_name=op_pyboost_func_name,
|
|
136
|
+
op_def_name=op_def_name_str,
|
|
137
|
+
parser_body=parser_body_str,
|
|
138
|
+
class_name=op_proto.op_class.name,
|
|
139
|
+
op_args=op_args_str)
|
|
140
|
+
|
|
141
|
+
ops_inc_head_set.add(self.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_proto.op_class.name[0].lower()))
|
|
142
|
+
|
|
143
|
+
return pyboost_api_cc_tpl.replace(pyboost_api_body=pyboost_api_body_str)
|
|
144
|
+
|
|
145
|
+
def _get_pyboost_registry_body_str(self, op_proto):
|
|
146
|
+
op_parser = OpTemplateParser(op_proto)
|
|
147
|
+
op_pyboost_func_name = op_parser.get_pyboost_func_name()
|
|
148
|
+
op_def_name_str = op_parser.get_op_def_name_str()
|
|
149
|
+
parser_body_str = self._generate_parser_func(op_proto)
|
|
150
|
+
op_args_str = [op_arg.arg_name for op_arg in op_proto.op_args]
|
|
151
|
+
registry_body_tpl = self.get_pyboost_registry_body_cc_tpl(op_proto)
|
|
152
|
+
return registry_body_tpl.replace(func_name=op_pyboost_func_name,
|
|
153
|
+
op_def_name=op_def_name_str,
|
|
154
|
+
parser_body=parser_body_str,
|
|
155
|
+
class_name=op_proto.op_class.name,
|
|
156
|
+
op_args=op_args_str)
|
|
157
157
|
|
|
158
158
|
def _get_function_class_register(self, op_protos) -> str:
|
|
159
159
|
"""
|
|
@@ -192,216 +192,13 @@ class PyboostFunctionsGenerator(BaseGenerator):
|
|
|
192
192
|
for index, op_arg in enumerate(op_proto.op_args):
|
|
193
193
|
is_optional = is_optional_param(op_arg)
|
|
194
194
|
if op_arg.is_type_id:
|
|
195
|
-
convert_type_str = get_convert_type_str('type', is_optional)
|
|
195
|
+
convert_type_str = get_convert_type_str('type', is_optional, op_proto.op_view)
|
|
196
196
|
else:
|
|
197
|
-
convert_type_str = get_convert_type_str(op_arg.arg_dtype, is_optional)
|
|
197
|
+
convert_type_str = get_convert_type_str(op_arg.arg_dtype, is_optional, op_proto.op_view)
|
|
198
198
|
|
|
199
199
|
parser_func_str += self.convert_template.replace(arg_name=op_arg.arg_name, convert_func=convert_type_str,
|
|
200
200
|
arg_index=pyboost_utils.get_index(index))
|
|
201
201
|
return parser_func_str
|
|
202
202
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
"""
|
|
206
|
-
Generates the input arguments list for the pyboost operator.
|
|
207
|
-
|
|
208
|
-
Args:
|
|
209
|
-
op_proto (OpProto): The operator prototype containing the argument information.
|
|
210
|
-
|
|
211
|
-
Returns:
|
|
212
|
-
str: The generated input arguments list as a string.
|
|
213
|
-
"""
|
|
214
|
-
parser_func_str = ''
|
|
215
|
-
for _, op_arg in enumerate(op_proto.op_args):
|
|
216
|
-
is_optional = is_optional_param(op_arg)
|
|
217
|
-
if op_arg.is_type_id:
|
|
218
|
-
arg_type_str = get_input_args_type_str('type', is_optional)
|
|
219
|
-
else:
|
|
220
|
-
arg_type_str = get_input_args_type_str(op_arg.arg_dtype, is_optional)
|
|
221
|
-
parser_func_str += self.input_args_template.replace(arg_name=op_arg.arg_name, arg_type=arg_type_str)
|
|
222
|
-
return parser_func_str[:-1]
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
def _get_convert_stub_str(self, op_proto: OpProto):
|
|
226
|
-
"""
|
|
227
|
-
Generates the conversion stub code for the operator's arguments.
|
|
228
|
-
|
|
229
|
-
This method creates code for converting operator arguments to tensor format, depending on whether they
|
|
230
|
-
are view operations or standard tensor operations.
|
|
231
|
-
|
|
232
|
-
Args:
|
|
233
|
-
op_proto (OpProto): The operator prototype containing the argument information.
|
|
234
|
-
|
|
235
|
-
Returns:
|
|
236
|
-
str: The generated conversion stub code as a string.
|
|
237
|
-
"""
|
|
238
|
-
convert_stub_str = ''
|
|
239
|
-
need_contiguous = 'true'
|
|
240
|
-
if op_proto.op_view:
|
|
241
|
-
# View/ACLNN op does not need to convert to contiguous tensor.
|
|
242
|
-
need_contiguous = 'false'
|
|
243
|
-
for op_arg in op_proto.op_args:
|
|
244
|
-
if pyboost_utils.is_tensor(op_arg):
|
|
245
|
-
convert_stub_output_name = op_arg.arg_name + '_optional' if is_optional_param(op_arg) \
|
|
246
|
-
else op_arg.arg_name + "_tensor"
|
|
247
|
-
convert_stub_str += self.convert_to_tensor_template.replace(input=op_arg.arg_name,
|
|
248
|
-
output=convert_stub_output_name,
|
|
249
|
-
need_contiguous=need_contiguous)
|
|
250
|
-
elif pyboost_utils.is_tensor_list(op_arg):
|
|
251
|
-
# To adapt the cases where TensorList is optional.
|
|
252
|
-
convert_stub_output_name = op_arg.arg_name + '_optional' if is_optional_param(op_arg) \
|
|
253
|
-
else op_arg.arg_name + "_tensor_list"
|
|
254
|
-
convert_stub_str += self.convert_to_tensor_list_template.replace(input=op_arg.arg_name,
|
|
255
|
-
output=convert_stub_output_name,
|
|
256
|
-
need_contiguous=need_contiguous)
|
|
257
|
-
return convert_stub_str
|
|
258
|
-
|
|
259
|
-
def _get_optional_to_value_str(self, op_proto: OpProto):
|
|
260
|
-
"""
|
|
261
|
-
Generates the code for converting optional arguments to their corresponding values.
|
|
262
|
-
|
|
263
|
-
This method constructs code to handle optional arguments and converts them to their actual values,
|
|
264
|
-
ensuring proper handling for tensors and lists.
|
|
265
|
-
|
|
266
|
-
Args:
|
|
267
|
-
op_proto (OpProto): The operator prototype containing the argument information.
|
|
268
|
-
|
|
269
|
-
Returns:
|
|
270
|
-
str: The generated code for converting optional arguments to values as a string.
|
|
271
|
-
"""
|
|
272
|
-
optional_to_value_str = ''
|
|
273
|
-
for op_arg in op_proto.op_args:
|
|
274
|
-
if is_optional_param(op_arg):
|
|
275
|
-
if pyboost_utils.is_tensor(op_arg) or pyboost_utils.is_tensor_list(op_arg):
|
|
276
|
-
convert_stub_output_name = op_arg.arg_name + '_optional'
|
|
277
|
-
cast_output = 'cast_' + convert_stub_output_name
|
|
278
|
-
convert_optional_to_value_name = op_arg.arg_name + '_value'
|
|
279
|
-
optional_to_value_str += \
|
|
280
|
-
self.convert_optional_to_value_template.replace(input=cast_output,
|
|
281
|
-
output=convert_optional_to_value_name)
|
|
282
|
-
else:
|
|
283
|
-
call_arg = op_arg.arg_name
|
|
284
|
-
convert_optional_to_value_name = op_arg.arg_name + '_value'
|
|
285
|
-
optional_to_value_str += \
|
|
286
|
-
self.convert_optional_to_value_template.replace(input=call_arg,
|
|
287
|
-
output=convert_optional_to_value_name)
|
|
288
|
-
return optional_to_value_str
|
|
289
|
-
|
|
290
|
-
def _get_call_args_str(self, op_proto: OpProto):
|
|
291
|
-
"""
|
|
292
|
-
Generates the list of call arguments for the operator.
|
|
293
|
-
|
|
294
|
-
This method constructs a list of argument names for the function call, adapting the names for
|
|
295
|
-
optional tensors and tensor lists as needed.
|
|
296
|
-
|
|
297
|
-
Args:
|
|
298
|
-
op_proto (OpProto): The operator prototype containing the argument information.
|
|
299
|
-
|
|
300
|
-
Returns:
|
|
301
|
-
list: A list of formatted argument names for the function call.
|
|
302
|
-
"""
|
|
303
|
-
call_args_str = []
|
|
304
|
-
for op_arg in op_proto.op_args:
|
|
305
|
-
if pyboost_utils.is_tensor(op_arg):
|
|
306
|
-
convert_stub_output_name = op_arg.arg_name + '_optional' if is_optional_param(op_arg) \
|
|
307
|
-
else op_arg.arg_name + "_tensor"
|
|
308
|
-
call_arg = convert_stub_output_name
|
|
309
|
-
elif pyboost_utils.is_tensor_list(op_arg):
|
|
310
|
-
convert_stub_output_name = op_arg.arg_name + '_optional' if is_optional_param(op_arg) \
|
|
311
|
-
else op_arg.arg_name + "_tensor_list"
|
|
312
|
-
call_arg = convert_stub_output_name
|
|
313
|
-
else:
|
|
314
|
-
call_arg = op_arg.arg_name
|
|
315
|
-
call_args_str.append(call_arg)
|
|
316
|
-
return call_args_str
|
|
317
|
-
|
|
318
|
-
def _get_grad_args_str(self, op_proto: OpProto):
|
|
319
|
-
"""
|
|
320
|
-
Generates the list of gradient arguments for the operator.
|
|
321
|
-
|
|
322
|
-
This method constructs a list of argument names used for computing gradients, adapting for
|
|
323
|
-
optional tensors and tensor lists as necessary.
|
|
324
|
-
|
|
325
|
-
Args:
|
|
326
|
-
op_proto (OpProto): The operator prototype containing the argument information.
|
|
327
|
-
|
|
328
|
-
Returns:
|
|
329
|
-
list: A list of formatted gradient argument names.
|
|
330
|
-
"""
|
|
331
|
-
grad_args_str = []
|
|
332
|
-
for op_arg in op_proto.op_args:
|
|
333
|
-
if pyboost_utils.is_tensor(op_arg):
|
|
334
|
-
grad_arg = op_arg.arg_name + "_value" if is_optional_param(op_arg) else \
|
|
335
|
-
f"cast_" + op_arg.arg_name + "_tensor"
|
|
336
|
-
elif pyboost_utils.is_tensor_list(op_arg):
|
|
337
|
-
if is_optional_param(op_arg):
|
|
338
|
-
# To adapt the cases where TensorList is optional.
|
|
339
|
-
convert_optional_to_value_name = op_arg.arg_name + "_value"
|
|
340
|
-
grad_arg = convert_optional_to_value_name
|
|
341
|
-
else:
|
|
342
|
-
convert_stub_output_name = op_arg.arg_name + "_tensor_list"
|
|
343
|
-
grad_arg = "cast_" + convert_stub_output_name
|
|
344
|
-
else:
|
|
345
|
-
grad_arg = "cast_" + op_arg.arg_name
|
|
346
|
-
if is_optional_param(op_arg):
|
|
347
|
-
convert_optional_to_value_name = op_arg.arg_name + "_value"
|
|
348
|
-
grad_arg = convert_optional_to_value_name
|
|
349
|
-
grad_args_str.append(grad_arg)
|
|
350
|
-
return grad_args_str
|
|
351
|
-
|
|
352
|
-
def _get_cast_to_value_str(self, op_proto: OpProto):
|
|
353
|
-
"""
|
|
354
|
-
Generates the list of cast arguments for the operator.
|
|
355
|
-
|
|
356
|
-
This method constructs a list of argument names that need to be cast to their corresponding types.
|
|
357
|
-
|
|
358
|
-
Args:
|
|
359
|
-
op_proto (OpProto): The operator prototype containing the argument information.
|
|
360
|
-
|
|
361
|
-
Returns:
|
|
362
|
-
list: A list of formatted cast argument names.
|
|
363
|
-
"""
|
|
364
|
-
cast_args_str = []
|
|
365
|
-
for op_arg in op_proto.op_args:
|
|
366
|
-
cast_str = 'cast_'
|
|
367
|
-
if pyboost_utils.is_tensor(op_arg):
|
|
368
|
-
convert_stub_output_name = op_arg.arg_name + '_optional' if is_optional_param(op_arg) \
|
|
369
|
-
else op_arg.arg_name + "_tensor"
|
|
370
|
-
cast_arg = cast_str + convert_stub_output_name
|
|
371
|
-
elif pyboost_utils.is_tensor_list(op_arg):
|
|
372
|
-
# To adapt the cases where TensorList is optional.
|
|
373
|
-
convert_stub_output_name = op_arg.arg_name + '_optional' if is_optional_param(op_arg) \
|
|
374
|
-
else op_arg.arg_name + "_tensor_list"
|
|
375
|
-
cast_arg = cast_str + convert_stub_output_name
|
|
376
|
-
else:
|
|
377
|
-
cast_arg = cast_str + op_arg.arg_name
|
|
378
|
-
cast_args_str.append(cast_arg)
|
|
379
|
-
return cast_args_str
|
|
380
|
-
|
|
381
|
-
def _get_first_str(self, is_view_or_inplace: bool, grad_args: list):
|
|
382
|
-
"""
|
|
383
|
-
Generates the view base str of arguments for the operator.
|
|
384
|
-
|
|
385
|
-
This method constructs a list of argument names that need to be cast to their corresponding types.
|
|
386
|
-
|
|
387
|
-
Args:
|
|
388
|
-
is_view_or_inplace (bool): Whether the op is view op or inplace op.
|
|
389
|
-
grad_args (list): grad args
|
|
390
|
-
|
|
391
|
-
Returns:
|
|
392
|
-
str: Formatted view or inplace first argument names.
|
|
393
|
-
"""
|
|
394
|
-
arg_str = ''
|
|
395
|
-
for i, grad_arg in enumerate(grad_args):
|
|
396
|
-
if is_view_or_inplace and i == 0:
|
|
397
|
-
arg_str = grad_arg
|
|
398
|
-
break
|
|
399
|
-
return arg_str
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
def _get_function_tpl(self, op_proto: OpProto):
|
|
403
|
-
if len(op_proto.op_returns) == 1 and is_tensor_list(op_proto.op_returns[0]):
|
|
404
|
-
# op output size is unknown
|
|
405
|
-
return self.PYBOOST_FUNCTION_DYNAMIC_OUTPUT_TEMPLATE
|
|
406
|
-
return self.PYBOOST_COMM_FUNCTION_TEMPLATE \
|
|
407
|
-
if op_proto.op_dispatch.is_comm_op else self.PYBOOST_FUNCTION_TEMPLATE
|
|
203
|
+
def get_pyboost_registry_body_cc_tpl(self, op_proto: OpProto):
|
|
204
|
+
return self.PYBOOST_REGISTRY_BODY_CC_TEMPLATE
|
|
@@ -42,11 +42,13 @@ class PyboostFunctionsHeaderGenerator(BaseGenerator):
|
|
|
42
42
|
"""Initializes the PyboostFunctionsHeaderGenerator with the necessary templates."""
|
|
43
43
|
self.PYBOOST_FUNCTION_HEADER_TEMPLATE = template.PYBOOST_FUNCTION_HEADER_TEMPLATE
|
|
44
44
|
|
|
45
|
+
self.PYBOOST_CORE_HEADER_TEMPLATE = template.PYBOOST_CORE_HEADER_TEMPLATE
|
|
46
|
+
|
|
45
47
|
self.pyboost_func_template = Template(
|
|
46
48
|
'py::object PYNATIVE_EXPORT ${func_name}_Base(const PrimitivePtr &prim, const py::list &args);'
|
|
47
49
|
)
|
|
48
50
|
self.pyboost_op_func_template = Template(
|
|
49
|
-
'py::object
|
|
51
|
+
'py::object PYNATIVE_EXPORT ${func_name}_OP(const PrimitivePtr &prim, '
|
|
50
52
|
'const std::vector<ops::OP_DTYPE>& source_type, ${input_args});'
|
|
51
53
|
)
|
|
52
54
|
self.input_args_template = Template(" const ${arg_type}& ${arg_name},")
|
|
@@ -73,12 +75,18 @@ class PyboostFunctionsHeaderGenerator(BaseGenerator):
|
|
|
73
75
|
prim_func_list.append(self.pyboost_func_template.replace(func_name=op_pyboost_func_name))
|
|
74
76
|
op_func_list_str.append(self.pyboost_op_func_template.replace(func_name=op_pyboost_func_name,
|
|
75
77
|
input_args=op_input_args_str))
|
|
76
|
-
pyboost_func_h_str = self.PYBOOST_FUNCTION_HEADER_TEMPLATE.replace(prim_func_list=prim_func_list
|
|
77
|
-
op_func_list=op_func_list_str)
|
|
78
|
+
pyboost_func_h_str = self.PYBOOST_FUNCTION_HEADER_TEMPLATE.replace(prim_func_list=prim_func_list)
|
|
78
79
|
save_path = os.path.join(work_path, K.PIPELINE_PYBOOST_FUNC_GEN_PATH)
|
|
79
|
-
file_name = "
|
|
80
|
+
file_name = "pyboost_api.h"
|
|
80
81
|
save_file(save_path, file_name, pyboost_func_h_str)
|
|
81
82
|
|
|
83
|
+
# impl header
|
|
84
|
+
pyboost_core_header_str = self.PYBOOST_CORE_HEADER_TEMPLATE.replace(op_func_list=op_func_list_str)
|
|
85
|
+
save_path = os.path.join(work_path, K.PIPELINE_PYBOOST_FUNC_GEN_PATH)
|
|
86
|
+
file_name = "pyboost_core.h"
|
|
87
|
+
save_file(save_path, file_name, pyboost_core_header_str)
|
|
88
|
+
|
|
89
|
+
|
|
82
90
|
def _get_input_args_str(self, op_proto: OpProto) -> str:
|
|
83
91
|
"""
|
|
84
92
|
Generates the input arguments list for the pyboost operator.
|
|
@@ -93,8 +101,8 @@ class PyboostFunctionsHeaderGenerator(BaseGenerator):
|
|
|
93
101
|
for _, op_arg in enumerate(op_proto.op_args):
|
|
94
102
|
is_optional = is_optional_param(op_arg)
|
|
95
103
|
if op_arg.is_type_id:
|
|
96
|
-
arg_type_str = get_input_args_type_str('type', is_optional)
|
|
104
|
+
arg_type_str = get_input_args_type_str('type', is_optional, op_proto.op_view)
|
|
97
105
|
else:
|
|
98
|
-
arg_type_str = get_input_args_type_str(op_arg.arg_dtype, is_optional)
|
|
106
|
+
arg_type_str = get_input_args_type_str(op_arg.arg_dtype, is_optional, op_proto.op_view)
|
|
99
107
|
parser_func_str += self.input_args_template.replace(arg_name=op_arg.arg_name, arg_type=arg_type_str)
|
|
100
108
|
return parser_func_str[:-1]
|