mindspore 2.7.0__cp310-cp310-win_amd64.whl → 2.7.1__cp310-cp310-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +4 -1
- mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
- mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
- mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
- mindspore/_extends/parse/compile_config.py +24 -1
- mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +6 -2
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +8 -1
- mindspore/_extends/parse/trope.py +2 -1
- mindspore/_extends/pijit/pijit_func_white_list.py +7 -22
- 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/base.py +29 -2
- mindspore/common/_decorator.py +3 -2
- mindspore/common/_grad_function.py +3 -1
- mindspore/common/_tensor_cpp_method.py +1 -1
- mindspore/common/_tensor_docs.py +275 -64
- mindspore/common/_utils.py +0 -44
- mindspore/common/api.py +285 -35
- mindspore/common/dump.py +7 -108
- mindspore/common/dynamic_shape/auto_dynamic_shape.py +1 -3
- mindspore/common/hook_handle.py +60 -0
- mindspore/common/jit_config.py +5 -1
- mindspore/common/jit_trace.py +27 -12
- mindspore/common/lazy_inline.py +5 -3
- mindspore/common/parameter.py +13 -107
- mindspore/common/recompute.py +4 -11
- mindspore/common/tensor.py +16 -169
- mindspore/communication/_comm_helper.py +11 -1
- mindspore/communication/comm_func.py +138 -4
- mindspore/communication/management.py +85 -1
- mindspore/config/op_info.config +0 -15
- mindspore/context.py +5 -85
- mindspore/dataset/engine/datasets.py +8 -4
- mindspore/dataset/engine/datasets_vision.py +1 -1
- mindspore/dataset/engine/validators.py +1 -15
- mindspore/dnnl.dll +0 -0
- mindspore/{experimental/llm_boost/ascend_native → graph}/__init__.py +7 -7
- mindspore/graph/custom_pass.py +55 -0
- mindspore/include/dataset/execute.h +2 -2
- mindspore/jpeg62.dll +0 -0
- mindspore/mindrecord/__init__.py +3 -3
- mindspore/mindrecord/common/exceptions.py +1 -0
- mindspore/mindrecord/config.py +1 -1
- mindspore/{parallel/mpi → mindrecord/core}/__init__.py +4 -1
- mindspore/mindrecord/{shardheader.py → core/shardheader.py} +2 -1
- mindspore/mindrecord/{shardindexgenerator.py → core/shardindexgenerator.py} +1 -1
- mindspore/mindrecord/{shardreader.py → core/shardreader.py} +2 -1
- mindspore/mindrecord/{shardsegment.py → core/shardsegment.py} +2 -2
- mindspore/mindrecord/{shardutils.py → core/shardutils.py} +1 -1
- mindspore/mindrecord/{shardwriter.py → core/shardwriter.py} +1 -1
- mindspore/mindrecord/filereader.py +4 -4
- mindspore/mindrecord/filewriter.py +5 -5
- mindspore/mindrecord/mindpage.py +2 -2
- mindspore/mindrecord/tools/cifar10.py +1 -1
- mindspore/mindrecord/tools/cifar100.py +1 -1
- mindspore/mindrecord/tools/cifar100_to_mr.py +1 -1
- mindspore/mindrecord/tools/cifar10_to_mr.py +1 -1
- mindspore/mindrecord/tools/csv_to_mr.py +1 -1
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +1 -1
- mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -1
- mindspore/mindspore_backend_common.dll +0 -0
- mindspore/mindspore_backend_manager.dll +0 -0
- mindspore/mindspore_cluster.dll +0 -0
- mindspore/mindspore_common.dll +0 -0
- mindspore/mindspore_core.dll +0 -0
- mindspore/mindspore_cpu.dll +0 -0
- mindspore/mindspore_dump.dll +0 -0
- mindspore/mindspore_frontend.dll +0 -0
- mindspore/mindspore_glog.dll +0 -0
- mindspore/mindspore_hardware_abstract.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 → mindspore_ops_cpu.dll} +0 -0
- mindspore/mindspore_profiler.dll +0 -0
- mindspore/mindspore_pyboost.dll +0 -0
- mindspore/mindspore_pynative.dll +0 -0
- mindspore/mindspore_runtime_pipeline.dll +0 -0
- mindspore/mindspore_runtime_utils.dll +0 -0
- mindspore/mindspore_tools.dll +0 -0
- mindspore/mint/__init__.py +15 -10
- mindspore/mint/distributed/distributed.py +182 -62
- mindspore/mint/nn/__init__.py +2 -16
- mindspore/mint/nn/functional.py +4 -110
- mindspore/mint/nn/layer/__init__.py +0 -2
- mindspore/mint/nn/layer/activation.py +0 -6
- mindspore/mint/nn/layer/basic.py +0 -47
- mindspore/mint/nn/layer/conv.py +4 -4
- mindspore/mint/nn/layer/normalization.py +8 -13
- mindspore/mint/nn/layer/pooling.py +0 -4
- mindspore/nn/__init__.py +1 -3
- mindspore/nn/cell.py +16 -66
- mindspore/nn/layer/basic.py +49 -1
- mindspore/nn/layer/container.py +16 -0
- mindspore/nn/layer/embedding.py +4 -169
- mindspore/nn/layer/normalization.py +2 -1
- mindspore/nn/layer/thor_layer.py +4 -85
- mindspore/nn/optim/ada_grad.py +0 -1
- mindspore/nn/optim/adafactor.py +0 -1
- mindspore/nn/optim/adam.py +31 -124
- mindspore/nn/optim/adamax.py +0 -1
- mindspore/nn/optim/asgd.py +0 -1
- mindspore/nn/optim/ftrl.py +8 -102
- mindspore/nn/optim/lamb.py +0 -1
- mindspore/nn/optim/lars.py +0 -3
- mindspore/nn/optim/lazyadam.py +25 -218
- mindspore/nn/optim/momentum.py +5 -43
- mindspore/nn/optim/optimizer.py +6 -55
- mindspore/nn/optim/proximal_ada_grad.py +0 -1
- mindspore/nn/optim/rmsprop.py +0 -1
- mindspore/nn/optim/rprop.py +0 -1
- mindspore/nn/optim/sgd.py +0 -1
- mindspore/nn/optim/tft_wrapper.py +0 -1
- mindspore/nn/optim/thor.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +7 -8
- mindspore/nn/probability/bijector/gumbel_cdf.py +2 -2
- mindspore/nn/probability/bijector/power_transform.py +20 -21
- mindspore/nn/probability/bijector/scalar_affine.py +5 -5
- mindspore/nn/probability/bijector/softplus.py +13 -14
- mindspore/nn/wrap/grad_reducer.py +4 -74
- mindspore/numpy/array_creations.py +2 -2
- mindspore/numpy/fft.py +9 -9
- mindspore/{nn/reinforcement → onnx}/__init__.py +5 -8
- mindspore/onnx/onnx_export.py +137 -0
- mindspore/opencv_core4110.dll +0 -0
- mindspore/opencv_imgcodecs4110.dll +0 -0
- mindspore/{opencv_imgproc452.dll → opencv_imgproc4110.dll} +0 -0
- mindspore/ops/__init__.py +2 -0
- mindspore/ops/_grad_experimental/grad_comm_ops.py +38 -2
- mindspore/ops/_op_impl/aicpu/__init__.py +0 -10
- mindspore/ops/_op_impl/cpu/__init__.py +0 -5
- mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +16 -22
- mindspore/ops/auto_generate/gen_extend_func.py +2 -7
- mindspore/ops/auto_generate/gen_ops_def.py +98 -141
- mindspore/ops/auto_generate/gen_ops_prim.py +12708 -12686
- mindspore/ops/communication.py +97 -0
- mindspore/ops/composite/__init__.py +5 -2
- mindspore/ops/composite/base.py +15 -1
- mindspore/ops/composite/multitype_ops/__init__.py +3 -1
- mindspore/ops/composite/multitype_ops/_compile_utils.py +150 -8
- mindspore/ops/composite/multitype_ops/add_impl.py +7 -0
- mindspore/ops/composite/multitype_ops/mod_impl.py +27 -0
- mindspore/ops/function/__init__.py +1 -0
- mindspore/ops/function/array_func.py +14 -12
- mindspore/ops/function/comm_func.py +3883 -0
- mindspore/ops/function/debug_func.py +3 -4
- mindspore/ops/function/math_func.py +45 -54
- mindspore/ops/function/nn_func.py +75 -294
- mindspore/ops/function/random_func.py +9 -18
- mindspore/ops/functional.py +2 -0
- mindspore/ops/functional_overload.py +354 -18
- mindspore/ops/operations/__init__.py +2 -5
- mindspore/ops/operations/_custom_ops_utils.py +7 -9
- mindspore/ops/operations/_inner_ops.py +1 -38
- mindspore/ops/operations/_rl_inner_ops.py +0 -933
- mindspore/ops/operations/array_ops.py +1 -0
- mindspore/ops/operations/comm_ops.py +94 -2
- mindspore/ops/operations/custom_ops.py +228 -19
- mindspore/ops/operations/debug_ops.py +27 -29
- mindspore/ops/operations/manually_defined/ops_def.py +27 -306
- mindspore/ops/operations/nn_ops.py +2 -2
- mindspore/ops/operations/sparse_ops.py +0 -83
- mindspore/ops/primitive.py +1 -17
- mindspore/ops/tensor_method.py +72 -3
- mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +5 -5
- mindspore/ops_generate/aclnn/gen_aclnn_implement.py +8 -8
- mindspore/ops_generate/api/functions_cc_generator.py +53 -4
- mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +25 -11
- mindspore/ops_generate/common/gen_constants.py +11 -10
- mindspore/ops_generate/common/op_proto.py +18 -1
- mindspore/ops_generate/common/template.py +102 -245
- mindspore/ops_generate/common/template_utils.py +212 -0
- mindspore/ops_generate/gen_custom_ops.py +69 -0
- mindspore/ops_generate/op_def/ops_def_cc_generator.py +78 -7
- mindspore/ops_generate/op_def_py/base_op_prim_py_generator.py +360 -0
- mindspore/ops_generate/op_def_py/custom_op_prim_py_generator.py +140 -0
- mindspore/ops_generate/op_def_py/op_def_py_generator.py +54 -7
- mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -312
- mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +74 -17
- mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +22 -5
- mindspore/ops_generate/pyboost/op_template_parser.py +3 -2
- mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +21 -5
- mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +2 -2
- mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +30 -10
- mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +10 -3
- mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +1 -1
- mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +19 -9
- mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +71 -28
- mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +10 -9
- mindspore/ops_generate/pyboost/pyboost_utils.py +27 -16
- mindspore/ops_generate/resources/yaml_loader.py +13 -0
- mindspore/ops_generate/tensor_py_cc_generator.py +2 -2
- mindspore/parallel/_cell_wrapper.py +1 -1
- mindspore/parallel/_parallel_serialization.py +1 -4
- mindspore/parallel/_utils.py +29 -6
- mindspore/parallel/checkpoint_transform.py +18 -2
- mindspore/parallel/cluster/process_entity/_api.py +24 -32
- mindspore/parallel/cluster/process_entity/_utils.py +9 -5
- mindspore/{experimental/llm_boost/atb → parallel/distributed}/__init__.py +21 -23
- mindspore/parallel/distributed/distributed_data_parallel.py +393 -0
- mindspore/parallel/distributed/flatten_grad_buffer.py +295 -0
- mindspore/parallel/strategy.py +336 -0
- mindspore/parallel/transform_safetensors.py +117 -16
- mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +3 -0
- mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +1 -1
- mindspore/profiler/common/constant.py +5 -0
- mindspore/profiler/common/file_manager.py +9 -0
- mindspore/profiler/common/msprof_cmd_tool.py +38 -2
- mindspore/profiler/common/path_manager.py +56 -24
- mindspore/profiler/common/profiler_context.py +2 -12
- mindspore/profiler/common/profiler_info.py +3 -3
- mindspore/profiler/common/profiler_path_manager.py +13 -0
- mindspore/profiler/common/util.py +30 -3
- mindspore/profiler/experimental_config.py +2 -1
- mindspore/profiler/platform/npu_profiler.py +33 -6
- mindspore/run_check/_check_version.py +108 -24
- mindspore/runtime/__init__.py +3 -2
- mindspore/runtime/executor.py +11 -3
- mindspore/runtime/memory.py +112 -0
- mindspore/swresample-4.dll +0 -0
- mindspore/swscale-6.dll +0 -0
- mindspore/tinyxml2.dll +0 -0
- mindspore/{experimental/llm_boost → tools}/__init__.py +5 -5
- mindspore/tools/data_dump.py +130 -0
- mindspore/tools/sdc_detect.py +91 -0
- mindspore/tools/stress_detect.py +63 -0
- mindspore/train/__init__.py +6 -6
- mindspore/train/_utils.py +5 -18
- mindspore/train/amp.py +6 -4
- mindspore/train/callback/_checkpoint.py +0 -9
- mindspore/train/callback/_train_fault_tolerance.py +69 -18
- mindspore/train/data_sink.py +1 -5
- mindspore/train/model.py +38 -211
- mindspore/train/serialization.py +126 -387
- mindspore/turbojpeg.dll +0 -0
- mindspore/utils/__init__.py +6 -3
- mindspore/utils/dlpack.py +92 -0
- mindspore/utils/dryrun.py +1 -1
- mindspore/utils/runtime_execution_order_check.py +10 -0
- mindspore/utils/sdc_detect.py +14 -12
- mindspore/utils/stress_detect.py +43 -0
- mindspore/utils/utils.py +144 -8
- mindspore/version.py +1 -1
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/METADATA +3 -2
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/RECORD +254 -267
- mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -210
- mindspore/experimental/llm_boost/ascend_native/llm_boost.py +0 -52
- mindspore/experimental/llm_boost/atb/boost_base.py +0 -385
- mindspore/experimental/llm_boost/atb/llama_boost.py +0 -137
- mindspore/experimental/llm_boost/atb/qwen_boost.py +0 -124
- mindspore/experimental/llm_boost/register.py +0 -130
- mindspore/experimental/llm_boost/utils.py +0 -31
- mindspore/include/OWNERS +0 -7
- mindspore/mindspore_cpu_res_manager.dll +0 -0
- mindspore/mindspore_ops_kernel_common.dll +0 -0
- mindspore/mindspore_res_manager.dll +0 -0
- mindspore/nn/optim/_dist_optimizer_registry.py +0 -111
- mindspore/nn/reinforcement/_batch_read_write.py +0 -142
- mindspore/nn/reinforcement/_tensors_queue.py +0 -152
- mindspore/nn/reinforcement/tensor_array.py +0 -145
- mindspore/opencv_core452.dll +0 -0
- mindspore/opencv_imgcodecs452.dll +0 -0
- mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +0 -113
- mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +0 -96
- mindspore/ops/_op_impl/aicpu/sparse_cross.py +0 -42
- mindspore/ops/_op_impl/cpu/buffer_append.py +0 -28
- mindspore/ops/_op_impl/cpu/buffer_get.py +0 -28
- mindspore/ops/_op_impl/cpu/buffer_sample.py +0 -28
- mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +0 -42
- mindspore/ops/operations/_tensor_array.py +0 -359
- mindspore/ops/operations/rl_ops.py +0 -288
- mindspore/parallel/_offload_context.py +0 -275
- mindspore/parallel/_recovery_context.py +0 -115
- mindspore/parallel/_transformer/__init__.py +0 -35
- mindspore/parallel/_transformer/layers.py +0 -765
- mindspore/parallel/_transformer/loss.py +0 -251
- mindspore/parallel/_transformer/moe.py +0 -693
- mindspore/parallel/_transformer/op_parallel_config.py +0 -222
- mindspore/parallel/_transformer/transformer.py +0 -3124
- mindspore/parallel/mpi/_mpi_config.py +0 -116
- mindspore/train/memory_profiling_pb2.py +0 -298
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/WHEEL +0 -0
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/entry_points.txt +0 -0
- {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/top_level.txt +0 -0
|
@@ -30,7 +30,7 @@ from resources.resource_list import ResourceType
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
ACLNN_REG_CODE = """
|
|
33
|
-
#include "$ops_gen_kernel_path/ascend/
|
|
33
|
+
#include "$ops_gen_kernel_path/ascend/aclnn/kernel_mod_impl/aclnn_kernel_mod.h"
|
|
34
34
|
|
|
35
35
|
namespace mindspore {
|
|
36
36
|
namespace kernel {
|
|
@@ -88,14 +88,14 @@ class AclnnKernelRegisterAutoCcGenerator(BaseGenerator):
|
|
|
88
88
|
res_str = template.CC_LICENSE_STR + reg_code
|
|
89
89
|
|
|
90
90
|
save_path = os.path.join(
|
|
91
|
-
work_path, f"{K.MS_OPS_KERNEL_PATH}/ascend/
|
|
91
|
+
work_path, f"{K.MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/auto_generate")
|
|
92
92
|
file_name = "aclnn_kernel_register_auto.cc"
|
|
93
93
|
gen_utils.save_file(save_path, file_name, res_str)
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
def get_registed_ops(file_path=f'{K.MS_OPS_KERNEL_PATH}/ascend/
|
|
96
|
+
def get_registed_ops(file_path=f'{K.MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/'):
|
|
97
97
|
'''get registered ops by search files'''
|
|
98
|
-
# default search in 'ops/kernel/ascend/
|
|
98
|
+
# default search in 'ops/kernel/ascend/aclnn/kernel_mod_impl/'
|
|
99
99
|
search_path = os.path.join(K.WORK_DIR, file_path)
|
|
100
100
|
ret = []
|
|
101
101
|
try:
|
|
@@ -117,7 +117,7 @@ def get_registed_ops(file_path=f'{K.MS_OPS_KERNEL_PATH}/ascend/opapi/'):
|
|
|
117
117
|
|
|
118
118
|
registed_ops = get_registed_ops()
|
|
119
119
|
manual_registed_ops = get_registed_ops(
|
|
120
|
-
f'{K.MS_OPS_KERNEL_PATH}/ascend/
|
|
120
|
+
f'{K.MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/customize/')
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
def check_op_registed(op_name, manual=False):
|
|
@@ -118,7 +118,7 @@ def gen_aclnn_kernel(op_proto: OpProto, need_update_shape=False, auto=False):
|
|
|
118
118
|
logging.warning("Kernel {%s} is already registered.", op_name)
|
|
119
119
|
return
|
|
120
120
|
|
|
121
|
-
aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/
|
|
121
|
+
aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/customize/'
|
|
122
122
|
# merge inner ops
|
|
123
123
|
dispatch = op_proto.op_dispatch
|
|
124
124
|
aclnn_name = ''.join(word.capitalize() for word in op_name.split('_'))
|
|
@@ -130,7 +130,7 @@ def gen_aclnn_kernel(op_proto: OpProto, need_update_shape=False, auto=False):
|
|
|
130
130
|
if auto:
|
|
131
131
|
auto_gen = "_auto_gen"
|
|
132
132
|
kernelmod_name = aclnn_name + "Ascend"
|
|
133
|
-
aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/
|
|
133
|
+
aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/aclnn_auto_gen/'
|
|
134
134
|
pathlib.Path(os.path.join(K.WORK_DIR, aclnn_path)
|
|
135
135
|
).mkdir(parents=True, exist_ok=True)
|
|
136
136
|
if dispatch.ascend is None:
|
|
@@ -145,9 +145,9 @@ def gen_aclnn_kernel(op_proto: OpProto, need_update_shape=False, auto=False):
|
|
|
145
145
|
kernelmod_h_and_cc_path, need_update_shape)
|
|
146
146
|
|
|
147
147
|
|
|
148
|
-
def get_registed_ops(file_path=f'{MS_OPS_KERNEL_PATH}/ascend/
|
|
148
|
+
def get_registed_ops(file_path=f'{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/'):
|
|
149
149
|
'''get registered ops by search files'''
|
|
150
|
-
# default search in 'ops/kernel/ascend/
|
|
150
|
+
# default search in 'ops/kernel/ascend/aclnn/kernel_mod_impl/'
|
|
151
151
|
search_path = os.path.join(K.WORK_DIR, file_path)
|
|
152
152
|
ret = []
|
|
153
153
|
try:
|
|
@@ -167,7 +167,7 @@ def get_registed_ops(file_path=f'{MS_OPS_KERNEL_PATH}/ascend/opapi/'):
|
|
|
167
167
|
|
|
168
168
|
registed_ops = get_registed_ops()
|
|
169
169
|
manual_registed_ops = get_registed_ops(
|
|
170
|
-
f'{MS_OPS_KERNEL_PATH}/ascend/
|
|
170
|
+
f'{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/customize/')
|
|
171
171
|
|
|
172
172
|
|
|
173
173
|
def check_op_registed(op_name, manual=False):
|
|
@@ -182,7 +182,7 @@ def generate_aclnn_reg_code(yaml_data):
|
|
|
182
182
|
yaml_str = gen_utils.safe_load_yaml(ops_yaml_path)
|
|
183
183
|
|
|
184
184
|
reg_code = f"""
|
|
185
|
-
#include "{MS_OPS_KERNEL_PATH}/ascend/
|
|
185
|
+
#include "{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/aclnn_kernel_mod.h"
|
|
186
186
|
|
|
187
187
|
namespace mindspore {{
|
|
188
188
|
namespace kernel {{
|
|
@@ -224,9 +224,9 @@ def generate_aclnn_reg_file(work_path, yaml_str):
|
|
|
224
224
|
Generate nnacl kernelmod register
|
|
225
225
|
"""
|
|
226
226
|
tmp_register_file = work_path + \
|
|
227
|
-
f'{MS_OPS_KERNEL_PATH}/ascend/
|
|
227
|
+
f'{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/tmp_aclnn_kernel_register.cc'
|
|
228
228
|
register_file = work_path + \
|
|
229
|
-
f'{MS_OPS_KERNEL_PATH}/ascend/
|
|
229
|
+
f'{MS_OPS_KERNEL_PATH}/ascend/aclnn/kernel_mod_impl/aclnn_kernel_register_auto.cc'
|
|
230
230
|
reg_code = generate_aclnn_reg_code(yaml_str)
|
|
231
231
|
gen_utils.save_file(
|
|
232
232
|
os.path.dirname(tmp_register_file), os.path.basename(tmp_register_file), gen_utils.cc_license_str + reg_code)
|
|
@@ -23,6 +23,7 @@ from common.template import Template
|
|
|
23
23
|
import common.gen_constants as K
|
|
24
24
|
from common.gen_utils import save_file
|
|
25
25
|
from common.base_generator import BaseGenerator
|
|
26
|
+
from pyboost.op_template_parser import OpTemplateParser
|
|
26
27
|
from pyboost.pyboost_utils import is_optional_param, get_input_dtype, get_return_type
|
|
27
28
|
|
|
28
29
|
|
|
@@ -39,7 +40,7 @@ class FunctionsHeaderGenerator(BaseGenerator):
|
|
|
39
40
|
self.function_interface_template = Template("${return_type} BACKEND_EXPORT ${op_name}(${input_args});")
|
|
40
41
|
self.function_interface_template_comm = Template(
|
|
41
42
|
"${return_type} BACKEND_EXPORT ${op_name}_inner(${input_args}," \
|
|
42
|
-
"CommHandlePtr comm_handle,
|
|
43
|
+
"CommHandlePtr comm_handle, device::DeviceType target);"
|
|
43
44
|
)
|
|
44
45
|
self.function_interface_template_comm_return_handle = Template(
|
|
45
46
|
"${return_type_with_handle} BACKEND_EXPORT ${op_name}(${input_args});"
|
|
@@ -112,10 +113,15 @@ class FunctionsGenerator(BaseGenerator):
|
|
|
112
113
|
"""
|
|
113
114
|
self.FUNCTIONS_CC_TEMPLATE = template.FUNCTIONS_CC_TEMPLATE
|
|
114
115
|
self.FUNCTION_BODY_TEMPLATE = template.FUNCTION_BODY_TEMPLATE
|
|
116
|
+
self.FUNCTION_VIEW_BODY_TEMPLATE = template.FUNCTION_VIEW_BODY_TEMPLATE
|
|
117
|
+
self.FUNCTION_VIEW_CUSTOMIZE_BODY_TEMPLATE = template.FUNCTION_VIEW_CUSTOMIZE_BODY_TEMPLATE
|
|
115
118
|
self.FUNCTION_COMM_BODY_TEMPLATE = template.FUNCTION_COMM_BODY_TEMPLATE
|
|
116
119
|
self.pyboost_func_include_header_template = Template(
|
|
117
120
|
f'#include "{K.MS_PYBOOST_BASE_PATH}/auto_generate/${{operator_name}}.h"\n'
|
|
118
121
|
)
|
|
122
|
+
self.pyboost_view_func_include_header_template = Template(
|
|
123
|
+
f'#include "{K.MS_OPS_VIEW_PATH}/${{operator_name}}_strides_calc.h"\n'
|
|
124
|
+
)
|
|
119
125
|
self.clone_inplace_input_template = Template(
|
|
120
126
|
'GetCloneFunc()(op, prim::kPrim${class_name}, device_target, {${grad_args}});'
|
|
121
127
|
)
|
|
@@ -140,9 +146,14 @@ class FunctionsGenerator(BaseGenerator):
|
|
|
140
146
|
for op_proto in op_protos:
|
|
141
147
|
if op_proto.op_dispatch is None:
|
|
142
148
|
continue
|
|
143
|
-
|
|
144
|
-
self.
|
|
145
|
-
|
|
149
|
+
if op_proto.op_view:
|
|
150
|
+
function_body, pyboost_func_include_header = self._get_function_view_body(op_proto)
|
|
151
|
+
else:
|
|
152
|
+
pyboost_func_include_header = self.pyboost_func_include_header_template.\
|
|
153
|
+
replace(operator_name=op_proto.op_name)
|
|
154
|
+
function_body = self._get_function_body(op_proto)
|
|
155
|
+
func_include_headers_list.append(pyboost_func_include_header)
|
|
156
|
+
op_call_with_grad_list.append(function_body)
|
|
146
157
|
ops_inc_head_set.add(
|
|
147
158
|
template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_proto.op_class.name[0].lower()))
|
|
148
159
|
pyboost_func_h_str = self.FUNCTIONS_CC_TEMPLATE.replace(op_call_with_grad=op_call_with_grad_list,
|
|
@@ -152,6 +163,44 @@ class FunctionsGenerator(BaseGenerator):
|
|
|
152
163
|
file_name = "functions.cc"
|
|
153
164
|
save_file(save_path, file_name, pyboost_func_h_str)
|
|
154
165
|
|
|
166
|
+
def _get_function_view_body(self, op_proto):
|
|
167
|
+
"""
|
|
168
|
+
Get the function body for a given view operator prototype.
|
|
169
|
+
|
|
170
|
+
Args:
|
|
171
|
+
op_proto: The operator prototype.
|
|
172
|
+
|
|
173
|
+
Returns:
|
|
174
|
+
str: The generated function body.
|
|
175
|
+
"""
|
|
176
|
+
function_body_template = self.FUNCTION_VIEW_BODY_TEMPLATE
|
|
177
|
+
pyboost_func_include_header = self.pyboost_view_func_include_header_template.\
|
|
178
|
+
replace(operator_name=op_proto.op_name)
|
|
179
|
+
if not op_proto.bprop_expander or op_proto.op_name in ["reshape"]:
|
|
180
|
+
function_body_template = self.FUNCTION_VIEW_CUSTOMIZE_BODY_TEMPLATE
|
|
181
|
+
pyboost_func_include_header = ""
|
|
182
|
+
op_parser = OpTemplateParser(op_proto)
|
|
183
|
+
input_args = self._get_input_args(op_proto, False)
|
|
184
|
+
input_args_with_type = self._get_input_args(op_proto, True)
|
|
185
|
+
call_args_with_type = op_parser.parse_call_args_with_types(True)
|
|
186
|
+
call_args = OpTemplateParser.parse_original_call_args(op_proto.op_args)
|
|
187
|
+
call_args_tensors = op_parser.get_call_args_tensor()
|
|
188
|
+
storage_calc_str = op_proto.op_class.name
|
|
189
|
+
return_values, _ = op_parser.generate_pyboost_outputs()
|
|
190
|
+
return_type_str = _get_return_type_str(op_proto)
|
|
191
|
+
function_body = function_body_template.replace(op_name=op_proto.op_name,
|
|
192
|
+
class_name=op_proto.op_class.name,
|
|
193
|
+
input_args_with_type=input_args_with_type,
|
|
194
|
+
input_args=input_args,
|
|
195
|
+
storage_calc=storage_calc_str,
|
|
196
|
+
call_args_with_type=call_args_with_type,
|
|
197
|
+
call_args=call_args,
|
|
198
|
+
call_tensors=call_args_tensors,
|
|
199
|
+
input=call_args[0],
|
|
200
|
+
return_values=return_values,
|
|
201
|
+
return_type=return_type_str)
|
|
202
|
+
return function_body, pyboost_func_include_header
|
|
203
|
+
|
|
155
204
|
def _get_function_body(self, op_proto):
|
|
156
205
|
"""
|
|
157
206
|
Get the function body for a given operator prototype.
|
|
@@ -65,15 +65,15 @@ class TensorFuncRegCppGenerator(BaseGenerator):
|
|
|
65
65
|
' ${device_dispatcher}\n'
|
|
66
66
|
)
|
|
67
67
|
self.device_dispatcher_template = Template(
|
|
68
|
-
'if (backend ==
|
|
68
|
+
'if (backend == device::DeviceType::kAscend) {\n'
|
|
69
69
|
' ${ascend_dispatcher}\n'
|
|
70
|
-
'} else if (backend ==
|
|
70
|
+
'} else if (backend == device::DeviceType::kCPU) {\n'
|
|
71
71
|
' ${cpu_dispatcher}\n'
|
|
72
|
-
'} else if (backend ==
|
|
72
|
+
'} else if (backend == device::DeviceType::kGPU) {\n'
|
|
73
73
|
' ${gpu_dispatcher}\n'
|
|
74
74
|
'} else {\n'
|
|
75
75
|
' MS_LOG(ERROR) << "Device target is not supported!";\n'
|
|
76
|
-
'
|
|
76
|
+
' Py_RETURN_NONE;\n'
|
|
77
77
|
'}'
|
|
78
78
|
)
|
|
79
79
|
self.pyboost_return_template = Template(
|
|
@@ -81,24 +81,32 @@ class TensorFuncRegCppGenerator(BaseGenerator):
|
|
|
81
81
|
'MS_LOG(INFO) << "Call Tensor${class_name}";\n'
|
|
82
82
|
'auto res = mindspore::pynative::'
|
|
83
83
|
'${pyboost_function}(mindspore::prim::kPrim${class_name}, parse_args.src_types_, ${convert_args});\n'
|
|
84
|
-
'trace::
|
|
84
|
+
'trace::CapturePy(parse_args.arg_list_, mindspore::prim::kPrim${class_name}, &res);\n'
|
|
85
85
|
'return res;\n'
|
|
86
86
|
)
|
|
87
87
|
self.callback_python_template = Template(
|
|
88
|
+
'py::object self_new = py::reinterpret_borrow<py::object>(self);\n'
|
|
89
|
+
'py::args py_args_new = py::reinterpret_borrow<py::args>(py_args);\n'
|
|
90
|
+
'py::dict empty_dict = py::dict();\n'
|
|
91
|
+
'py::kwargs py_kwargs_new = py::kwargs(empty_dict);\n'
|
|
92
|
+
'if (py_kwargs != NULL && py_kwargs != Py_None) {\n'
|
|
93
|
+
' py_kwargs_new = py::reinterpret_borrow<py::kwargs>(py_kwargs);\n'
|
|
94
|
+
'}\n'
|
|
88
95
|
'MS_LOG(INFO) << "Callback python method: ${py_method}";\n'
|
|
89
96
|
'py::function fn = python_adapter::GetPyFn(\"mindspore.ops.tensor_method\", \"${py_method}\");\n'
|
|
90
|
-
'py::object res = fn(
|
|
91
|
-
'
|
|
97
|
+
'py::object res = fn(self_new, *py_args_new, **py_kwargs_new);\n'
|
|
98
|
+
'MS_LOG(INFO) << "after Callback python method: ${py_method}";\n'
|
|
99
|
+
'return res.release().ptr();\n'
|
|
92
100
|
)
|
|
93
101
|
self.callback_python_in_ut_template = Template(
|
|
94
102
|
'MS_LOG(INFO) << "Callback python method in UT: ${py_method}";\n'
|
|
95
103
|
'fn = python_adapter::GetPyFn(\"mindspore.ops.tensor_method\", \"${py_method}\");\n'
|
|
96
|
-
'res = fn(
|
|
104
|
+
'res = fn(self_new, *py_args_new, **py_kwargs_new);\n'
|
|
97
105
|
'break;\n'
|
|
98
106
|
)
|
|
99
107
|
self.header_func_header_template = Template(
|
|
100
|
-
"
|
|
101
|
-
"(
|
|
108
|
+
"PyObject* TensorMethod${cpp_func_name}"
|
|
109
|
+
"(PyObject* self, PyObject* py_args, PyObject* py_kwargs);\n"
|
|
102
110
|
)
|
|
103
111
|
|
|
104
112
|
def generate(self, work_path, op_protos, func_protos_data, alias_func_mapping):
|
|
@@ -303,15 +311,21 @@ class TensorFuncRegCppGenerator(BaseGenerator):
|
|
|
303
311
|
|
|
304
312
|
max_size = 0
|
|
305
313
|
self_index = 0
|
|
314
|
+
mark_side_effect_str = "pynative::PyNativeAlgo::PyBoost::MarkSideEffect(self);"
|
|
315
|
+
has_side_effect = False
|
|
306
316
|
for tensor_proto in func_protos:
|
|
307
317
|
op_proto = tensor_proto.op_proto
|
|
308
318
|
op_args = op_proto.op_args
|
|
309
319
|
max_size = max(len(op_args), max_size)
|
|
310
320
|
self_index = self._get_input_tensor_index(tensor_proto)
|
|
321
|
+
if op_proto.op_view or op_proto.op_inplace:
|
|
322
|
+
has_side_effect = True
|
|
311
323
|
cpp_func_name = pyboost_utils.format_func_api_name(func_api_name)
|
|
324
|
+
mark_side_effect = mark_side_effect_str if has_side_effect else ""
|
|
312
325
|
overload_func_call_str = self.TENSOR_FUNC_OVERLOAD_CALL_BODY.replace(cpp_func_name=cpp_func_name,
|
|
313
326
|
func_name=func_api_name,
|
|
314
327
|
signatures=signatures_str,
|
|
328
|
+
mark_side_effect=mark_side_effect,
|
|
315
329
|
dispatch_cases=dispatch_cases,
|
|
316
330
|
max_args=max_size,
|
|
317
331
|
self_index=self_index,
|
|
@@ -383,7 +397,7 @@ class TensorFuncRegCppGenerator(BaseGenerator):
|
|
|
383
397
|
dispatch_cases_str += self.single_case_template.replace(case_id=idx,
|
|
384
398
|
device_dispatcher=device_dispatcher_str)
|
|
385
399
|
dispatch_cases_str += 'default:\n'
|
|
386
|
-
dispatch_cases_str += '
|
|
400
|
+
dispatch_cases_str += ' Py_RETURN_NONE;'
|
|
387
401
|
return dispatch_cases_str
|
|
388
402
|
|
|
389
403
|
def _get_ut_dispatch_cases(self, func_protos):
|
|
@@ -42,16 +42,16 @@ MS_OP_API_YAML_PATH = "mindspore/ops/api_def"
|
|
|
42
42
|
MS_TENSOR_METHOD_DOC_YAML_PATH = "mindspore/ops/api_def/method_doc"
|
|
43
43
|
MS_MINT_FUNC_DOC_YAML_PATH = "mindspore/ops/api_def/function_doc"
|
|
44
44
|
MS_MINT_FUNC_OVERLOAD_PATH = "mindspore/python/mindspore/ops"
|
|
45
|
-
PYBOOST_NATIVE_GRAD_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/
|
|
46
|
-
PYBOOST_AUTO_GRAD_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/
|
|
47
|
-
PIPELINE_PYBOOST_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/
|
|
45
|
+
PYBOOST_NATIVE_GRAD_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/backward/op_grad/auto_generate"
|
|
46
|
+
PYBOOST_AUTO_GRAD_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/forward/pyboost/auto_generate"
|
|
47
|
+
PIPELINE_PYBOOST_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/forward/pyboost/auto_generate"
|
|
48
48
|
FUNCTIONAL_OVERLOAD_GEN_PATH = "mindspore/ccsrc/frontend/operator/composite/auto_generate"
|
|
49
49
|
PYBOOST_GRAD_FUNC_GEN_PATH = "mindspore/ccsrc/pyboost/grad_functions/auto_generate"
|
|
50
|
-
TENSOR_FUNC_REGISTER_PATH = "mindspore/ccsrc/pynative/
|
|
51
|
-
TENSOR_API_PATH = "mindspore/ccsrc/pybind_api/ir/tensor_api/auto_generate"
|
|
50
|
+
TENSOR_FUNC_REGISTER_PATH = "mindspore/ccsrc/pynative/forward/pyboost/auto_generate"
|
|
51
|
+
TENSOR_API_PATH = "mindspore/ccsrc/pybind_api/ir/tensor/tensor_api/auto_generate"
|
|
52
52
|
ADD_TENSOR_DOCS_PY_PATH = "mindspore/python/mindspore/common"
|
|
53
53
|
ADD_MINT_DOCS_PY_PATH = "mindspore/python/mindspore/mint"
|
|
54
|
-
TENSOR_PY_CC_PATH = "mindspore/ccsrc/pybind_api/ir/tensor_register/auto_generate"
|
|
54
|
+
TENSOR_PY_CC_PATH = "mindspore/ccsrc/pybind_api/ir/tensor/tensor_register/auto_generate"
|
|
55
55
|
|
|
56
56
|
# yaml keys def
|
|
57
57
|
OP_KEYS = {'args', 'args_signature', 'returns', 'function', 'class', 'view', 'graph_view', 'dispatch', 'labels',
|
|
@@ -80,6 +80,7 @@ INPUT_NAME_MAP = {"DeprecatedExpandAs": "input"}
|
|
|
80
80
|
|
|
81
81
|
# infer
|
|
82
82
|
MS_OPS_FUNC_IMPL_PATH = "mindspore/ops/infer/ops_func_impl"
|
|
83
|
+
MS_OPS_COMM_FUNC_IMPL_PATH = "mindspore/ops/infer/ops_func_impl/communication"
|
|
83
84
|
|
|
84
85
|
# view
|
|
85
86
|
MS_OPS_VIEW_PATH = "mindspore/ops/view"
|
|
@@ -90,7 +91,7 @@ MS_PYBOOST_FUNCTIONS_AUTO_GEN_PATH = "mindspore/ccsrc/pyboost/functions/auto_gen
|
|
|
90
91
|
MS_COMMON_PYBOOST_KERNEL_PATH = os.path.join(MS_OPS_KERNEL_PATH, "common/pyboost")
|
|
91
92
|
MS_PYBOOST_BASE_PATH = "mindspore/ccsrc/pyboost"
|
|
92
93
|
MS_PYBOOST_INTERNAL_FUNCTIONS_AUTO_GEN_PATH = os.path.join(MS_OPS_KERNEL_PATH,
|
|
93
|
-
"ascend/
|
|
94
|
-
MS_INTERNAL_PYBOOST_GEN_PATH = "mindspore/
|
|
95
|
-
MS_PLUGIN_INTERNAL_PATH = "mindspore/
|
|
96
|
-
MS_OPS_PYBOOST_INTERNAL = "mindspore/ops/kernel/ascend/
|
|
94
|
+
"ascend/aclnn/pyboost_impl/internal/functions")
|
|
95
|
+
MS_INTERNAL_PYBOOST_GEN_PATH = "mindspore/ops/kernel/ascend/internal/pyboost/auto_gen"
|
|
96
|
+
MS_PLUGIN_INTERNAL_PATH = "mindspore/ops/kernel/ascend/internal"
|
|
97
|
+
MS_OPS_PYBOOST_INTERNAL = "mindspore/ops/kernel/ascend/aclnn/pyboost_impl/internal"
|
|
@@ -225,10 +225,12 @@ class OpProtoLoader(ResourceLoader):
|
|
|
225
225
|
"""
|
|
226
226
|
OpProtoLoader is a class for loading operator prototypes from YAML data.
|
|
227
227
|
"""
|
|
228
|
+
|
|
228
229
|
def __init__(self):
|
|
229
230
|
ops_yaml_path = os.path.join(K.WORK_DIR, K.MS_OP_DEF_YAML_PATH)
|
|
230
231
|
infer_ops_yaml_path = os.path.join(ops_yaml_path, 'infer')
|
|
231
|
-
|
|
232
|
+
comm_ops_yaml_path = os.path.join(ops_yaml_path, 'communication')
|
|
233
|
+
self.yaml_paths = [ops_yaml_path, infer_ops_yaml_path, comm_ops_yaml_path]
|
|
232
234
|
self.type = ResourceType.OP_PROTO
|
|
233
235
|
self.is_deprecated = False
|
|
234
236
|
self.func_op = False
|
|
@@ -257,6 +259,7 @@ class DeprecatedOpProtoLoader(OpProtoLoader):
|
|
|
257
259
|
"""
|
|
258
260
|
DeprecatedOpProtoLoader is a class for loading deprecated operator prototypes from YAML data.
|
|
259
261
|
"""
|
|
262
|
+
|
|
260
263
|
def __init__(self):
|
|
261
264
|
super().__init__()
|
|
262
265
|
self.yaml_paths = [os.path.join(K.WORK_DIR, K.MS_OP_DEPRECATED_DEF_YAML_PATH)]
|
|
@@ -269,6 +272,7 @@ class FuncOpProtoLoader(OpProtoLoader):
|
|
|
269
272
|
"""
|
|
270
273
|
FuncOpProtoLoader is a class for loading func_op operator prototypes from YAML data.
|
|
271
274
|
"""
|
|
275
|
+
|
|
272
276
|
def __init__(self):
|
|
273
277
|
super().__init__()
|
|
274
278
|
self.yaml_paths = [os.path.join(K.WORK_DIR, K.MS_OP_DEF_FUNC_OP_YAML_PATH)]
|
|
@@ -277,6 +281,19 @@ class FuncOpProtoLoader(OpProtoLoader):
|
|
|
277
281
|
self.func_op = True
|
|
278
282
|
|
|
279
283
|
|
|
284
|
+
class CustomOpProtoLoader(OpProtoLoader):
|
|
285
|
+
"""
|
|
286
|
+
CustomOpProtoLoader is a class for loading custom_op operator prototypes from YAML data.
|
|
287
|
+
"""
|
|
288
|
+
|
|
289
|
+
def __init__(self, yaml_dir_path):
|
|
290
|
+
super().__init__()
|
|
291
|
+
self.yaml_paths = [yaml_dir_path]
|
|
292
|
+
self.type = ResourceType.OP_PROTO
|
|
293
|
+
self.is_deprecated = False
|
|
294
|
+
self.func_op = False
|
|
295
|
+
|
|
296
|
+
|
|
280
297
|
def get_op_args_signature(op_name, op_data):
|
|
281
298
|
"""
|
|
282
299
|
Retrieves the argument signature from the operation data.
|