mindspore 2.7.0__cp311-cp311-win_amd64.whl → 2.7.1__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.

Files changed (290) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
  6. mindspore/_extends/parse/compile_config.py +24 -1
  7. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +6 -2
  8. mindspore/_extends/parse/resources.py +1 -1
  9. mindspore/_extends/parse/standard_method.py +8 -1
  10. mindspore/_extends/parse/trope.py +2 -1
  11. mindspore/_extends/pijit/pijit_func_white_list.py +7 -22
  12. mindspore/avcodec-59.dll +0 -0
  13. mindspore/avdevice-59.dll +0 -0
  14. mindspore/avfilter-8.dll +0 -0
  15. mindspore/avformat-59.dll +0 -0
  16. mindspore/avutil-57.dll +0 -0
  17. mindspore/boost/base.py +29 -2
  18. mindspore/common/_decorator.py +3 -2
  19. mindspore/common/_grad_function.py +3 -1
  20. mindspore/common/_tensor_cpp_method.py +1 -1
  21. mindspore/common/_tensor_docs.py +275 -64
  22. mindspore/common/_utils.py +0 -44
  23. mindspore/common/api.py +285 -35
  24. mindspore/common/dump.py +7 -108
  25. mindspore/common/dynamic_shape/auto_dynamic_shape.py +1 -3
  26. mindspore/common/hook_handle.py +60 -0
  27. mindspore/common/jit_config.py +5 -1
  28. mindspore/common/jit_trace.py +27 -12
  29. mindspore/common/lazy_inline.py +5 -3
  30. mindspore/common/parameter.py +13 -107
  31. mindspore/common/recompute.py +4 -11
  32. mindspore/common/tensor.py +16 -169
  33. mindspore/communication/_comm_helper.py +11 -1
  34. mindspore/communication/comm_func.py +138 -4
  35. mindspore/communication/management.py +85 -1
  36. mindspore/config/op_info.config +0 -15
  37. mindspore/context.py +5 -85
  38. mindspore/dataset/engine/datasets.py +8 -4
  39. mindspore/dataset/engine/datasets_vision.py +1 -1
  40. mindspore/dataset/engine/validators.py +1 -15
  41. mindspore/dnnl.dll +0 -0
  42. mindspore/{experimental/llm_boost/ascend_native → graph}/__init__.py +7 -7
  43. mindspore/graph/custom_pass.py +55 -0
  44. mindspore/include/dataset/execute.h +2 -2
  45. mindspore/jpeg62.dll +0 -0
  46. mindspore/mindrecord/__init__.py +3 -3
  47. mindspore/mindrecord/common/exceptions.py +1 -0
  48. mindspore/mindrecord/config.py +1 -1
  49. mindspore/{parallel/mpi → mindrecord/core}/__init__.py +4 -1
  50. mindspore/mindrecord/{shardheader.py → core/shardheader.py} +2 -1
  51. mindspore/mindrecord/{shardindexgenerator.py → core/shardindexgenerator.py} +1 -1
  52. mindspore/mindrecord/{shardreader.py → core/shardreader.py} +2 -1
  53. mindspore/mindrecord/{shardsegment.py → core/shardsegment.py} +2 -2
  54. mindspore/mindrecord/{shardutils.py → core/shardutils.py} +1 -1
  55. mindspore/mindrecord/{shardwriter.py → core/shardwriter.py} +1 -1
  56. mindspore/mindrecord/filereader.py +4 -4
  57. mindspore/mindrecord/filewriter.py +5 -5
  58. mindspore/mindrecord/mindpage.py +2 -2
  59. mindspore/mindrecord/tools/cifar10.py +1 -1
  60. mindspore/mindrecord/tools/cifar100.py +1 -1
  61. mindspore/mindrecord/tools/cifar100_to_mr.py +1 -1
  62. mindspore/mindrecord/tools/cifar10_to_mr.py +1 -1
  63. mindspore/mindrecord/tools/csv_to_mr.py +1 -1
  64. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  65. mindspore/mindrecord/tools/mnist_to_mr.py +1 -1
  66. mindspore/mindrecord/tools/tfrecord_to_mr.py +1 -1
  67. mindspore/mindspore_backend_common.dll +0 -0
  68. mindspore/mindspore_backend_manager.dll +0 -0
  69. mindspore/mindspore_cluster.dll +0 -0
  70. mindspore/mindspore_common.dll +0 -0
  71. mindspore/mindspore_core.dll +0 -0
  72. mindspore/mindspore_cpu.dll +0 -0
  73. mindspore/mindspore_dump.dll +0 -0
  74. mindspore/mindspore_frontend.dll +0 -0
  75. mindspore/mindspore_glog.dll +0 -0
  76. mindspore/mindspore_hardware_abstract.dll +0 -0
  77. mindspore/mindspore_memory_pool.dll +0 -0
  78. mindspore/mindspore_ms_backend.dll +0 -0
  79. mindspore/mindspore_ops.dll +0 -0
  80. mindspore/{mindspore_ops_host.dll → mindspore_ops_cpu.dll} +0 -0
  81. mindspore/mindspore_profiler.dll +0 -0
  82. mindspore/mindspore_pyboost.dll +0 -0
  83. mindspore/mindspore_pynative.dll +0 -0
  84. mindspore/mindspore_runtime_pipeline.dll +0 -0
  85. mindspore/mindspore_runtime_utils.dll +0 -0
  86. mindspore/mindspore_tools.dll +0 -0
  87. mindspore/mint/__init__.py +15 -10
  88. mindspore/mint/distributed/distributed.py +182 -62
  89. mindspore/mint/nn/__init__.py +2 -16
  90. mindspore/mint/nn/functional.py +4 -110
  91. mindspore/mint/nn/layer/__init__.py +0 -2
  92. mindspore/mint/nn/layer/activation.py +0 -6
  93. mindspore/mint/nn/layer/basic.py +0 -47
  94. mindspore/mint/nn/layer/conv.py +4 -4
  95. mindspore/mint/nn/layer/normalization.py +8 -13
  96. mindspore/mint/nn/layer/pooling.py +0 -4
  97. mindspore/nn/__init__.py +1 -3
  98. mindspore/nn/cell.py +16 -66
  99. mindspore/nn/layer/basic.py +49 -1
  100. mindspore/nn/layer/container.py +16 -0
  101. mindspore/nn/layer/embedding.py +4 -169
  102. mindspore/nn/layer/normalization.py +2 -1
  103. mindspore/nn/layer/thor_layer.py +4 -85
  104. mindspore/nn/optim/ada_grad.py +0 -1
  105. mindspore/nn/optim/adafactor.py +0 -1
  106. mindspore/nn/optim/adam.py +31 -124
  107. mindspore/nn/optim/adamax.py +0 -1
  108. mindspore/nn/optim/asgd.py +0 -1
  109. mindspore/nn/optim/ftrl.py +8 -102
  110. mindspore/nn/optim/lamb.py +0 -1
  111. mindspore/nn/optim/lars.py +0 -3
  112. mindspore/nn/optim/lazyadam.py +25 -218
  113. mindspore/nn/optim/momentum.py +5 -43
  114. mindspore/nn/optim/optimizer.py +6 -55
  115. mindspore/nn/optim/proximal_ada_grad.py +0 -1
  116. mindspore/nn/optim/rmsprop.py +0 -1
  117. mindspore/nn/optim/rprop.py +0 -1
  118. mindspore/nn/optim/sgd.py +0 -1
  119. mindspore/nn/optim/tft_wrapper.py +0 -1
  120. mindspore/nn/optim/thor.py +0 -2
  121. mindspore/nn/probability/bijector/bijector.py +7 -8
  122. mindspore/nn/probability/bijector/gumbel_cdf.py +2 -2
  123. mindspore/nn/probability/bijector/power_transform.py +20 -21
  124. mindspore/nn/probability/bijector/scalar_affine.py +5 -5
  125. mindspore/nn/probability/bijector/softplus.py +13 -14
  126. mindspore/nn/wrap/grad_reducer.py +4 -74
  127. mindspore/numpy/array_creations.py +2 -2
  128. mindspore/numpy/fft.py +9 -9
  129. mindspore/{nn/reinforcement → onnx}/__init__.py +5 -8
  130. mindspore/onnx/onnx_export.py +137 -0
  131. mindspore/opencv_core4110.dll +0 -0
  132. mindspore/opencv_imgcodecs4110.dll +0 -0
  133. mindspore/{opencv_imgproc452.dll → opencv_imgproc4110.dll} +0 -0
  134. mindspore/ops/__init__.py +2 -0
  135. mindspore/ops/_grad_experimental/grad_comm_ops.py +38 -2
  136. mindspore/ops/_op_impl/aicpu/__init__.py +0 -10
  137. mindspore/ops/_op_impl/cpu/__init__.py +0 -5
  138. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +16 -22
  139. mindspore/ops/auto_generate/gen_extend_func.py +2 -7
  140. mindspore/ops/auto_generate/gen_ops_def.py +98 -141
  141. mindspore/ops/auto_generate/gen_ops_prim.py +12708 -12686
  142. mindspore/ops/communication.py +97 -0
  143. mindspore/ops/composite/__init__.py +5 -2
  144. mindspore/ops/composite/base.py +15 -1
  145. mindspore/ops/composite/multitype_ops/__init__.py +3 -1
  146. mindspore/ops/composite/multitype_ops/_compile_utils.py +150 -8
  147. mindspore/ops/composite/multitype_ops/add_impl.py +7 -0
  148. mindspore/ops/composite/multitype_ops/mod_impl.py +27 -0
  149. mindspore/ops/function/__init__.py +1 -0
  150. mindspore/ops/function/array_func.py +14 -12
  151. mindspore/ops/function/comm_func.py +3883 -0
  152. mindspore/ops/function/debug_func.py +3 -4
  153. mindspore/ops/function/math_func.py +45 -54
  154. mindspore/ops/function/nn_func.py +75 -294
  155. mindspore/ops/function/random_func.py +9 -18
  156. mindspore/ops/functional.py +2 -0
  157. mindspore/ops/functional_overload.py +354 -18
  158. mindspore/ops/operations/__init__.py +2 -5
  159. mindspore/ops/operations/_custom_ops_utils.py +7 -9
  160. mindspore/ops/operations/_inner_ops.py +1 -38
  161. mindspore/ops/operations/_rl_inner_ops.py +0 -933
  162. mindspore/ops/operations/array_ops.py +1 -0
  163. mindspore/ops/operations/comm_ops.py +94 -2
  164. mindspore/ops/operations/custom_ops.py +228 -19
  165. mindspore/ops/operations/debug_ops.py +27 -29
  166. mindspore/ops/operations/manually_defined/ops_def.py +27 -306
  167. mindspore/ops/operations/nn_ops.py +2 -2
  168. mindspore/ops/operations/sparse_ops.py +0 -83
  169. mindspore/ops/primitive.py +1 -17
  170. mindspore/ops/tensor_method.py +72 -3
  171. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +5 -5
  172. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +8 -8
  173. mindspore/ops_generate/api/functions_cc_generator.py +53 -4
  174. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +25 -11
  175. mindspore/ops_generate/common/gen_constants.py +11 -10
  176. mindspore/ops_generate/common/op_proto.py +18 -1
  177. mindspore/ops_generate/common/template.py +102 -245
  178. mindspore/ops_generate/common/template_utils.py +212 -0
  179. mindspore/ops_generate/gen_custom_ops.py +69 -0
  180. mindspore/ops_generate/op_def/ops_def_cc_generator.py +78 -7
  181. mindspore/ops_generate/op_def_py/base_op_prim_py_generator.py +360 -0
  182. mindspore/ops_generate/op_def_py/custom_op_prim_py_generator.py +140 -0
  183. mindspore/ops_generate/op_def_py/op_def_py_generator.py +54 -7
  184. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -312
  185. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +74 -17
  186. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +22 -5
  187. mindspore/ops_generate/pyboost/op_template_parser.py +3 -2
  188. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +21 -5
  189. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +2 -2
  190. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +30 -10
  191. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +10 -3
  192. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +1 -1
  193. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +19 -9
  194. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +71 -28
  195. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +10 -9
  196. mindspore/ops_generate/pyboost/pyboost_utils.py +27 -16
  197. mindspore/ops_generate/resources/yaml_loader.py +13 -0
  198. mindspore/ops_generate/tensor_py_cc_generator.py +2 -2
  199. mindspore/parallel/_cell_wrapper.py +1 -1
  200. mindspore/parallel/_parallel_serialization.py +1 -4
  201. mindspore/parallel/_utils.py +29 -6
  202. mindspore/parallel/checkpoint_transform.py +18 -2
  203. mindspore/parallel/cluster/process_entity/_api.py +24 -32
  204. mindspore/parallel/cluster/process_entity/_utils.py +9 -5
  205. mindspore/{experimental/llm_boost/atb → parallel/distributed}/__init__.py +21 -23
  206. mindspore/parallel/distributed/distributed_data_parallel.py +393 -0
  207. mindspore/parallel/distributed/flatten_grad_buffer.py +295 -0
  208. mindspore/parallel/strategy.py +336 -0
  209. mindspore/parallel/transform_safetensors.py +117 -16
  210. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +3 -0
  211. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +1 -1
  212. mindspore/profiler/common/constant.py +5 -0
  213. mindspore/profiler/common/file_manager.py +9 -0
  214. mindspore/profiler/common/msprof_cmd_tool.py +38 -2
  215. mindspore/profiler/common/path_manager.py +56 -24
  216. mindspore/profiler/common/profiler_context.py +2 -12
  217. mindspore/profiler/common/profiler_info.py +3 -3
  218. mindspore/profiler/common/profiler_path_manager.py +13 -0
  219. mindspore/profiler/common/util.py +30 -3
  220. mindspore/profiler/experimental_config.py +2 -1
  221. mindspore/profiler/platform/npu_profiler.py +33 -6
  222. mindspore/run_check/_check_version.py +108 -24
  223. mindspore/runtime/__init__.py +3 -2
  224. mindspore/runtime/executor.py +11 -3
  225. mindspore/runtime/memory.py +112 -0
  226. mindspore/swresample-4.dll +0 -0
  227. mindspore/swscale-6.dll +0 -0
  228. mindspore/tinyxml2.dll +0 -0
  229. mindspore/{experimental/llm_boost → tools}/__init__.py +5 -5
  230. mindspore/tools/data_dump.py +130 -0
  231. mindspore/tools/sdc_detect.py +91 -0
  232. mindspore/tools/stress_detect.py +63 -0
  233. mindspore/train/__init__.py +6 -6
  234. mindspore/train/_utils.py +5 -18
  235. mindspore/train/amp.py +6 -4
  236. mindspore/train/callback/_checkpoint.py +0 -9
  237. mindspore/train/callback/_train_fault_tolerance.py +69 -18
  238. mindspore/train/data_sink.py +1 -5
  239. mindspore/train/model.py +38 -211
  240. mindspore/train/serialization.py +126 -387
  241. mindspore/turbojpeg.dll +0 -0
  242. mindspore/utils/__init__.py +6 -3
  243. mindspore/utils/dlpack.py +92 -0
  244. mindspore/utils/dryrun.py +1 -1
  245. mindspore/utils/runtime_execution_order_check.py +10 -0
  246. mindspore/utils/sdc_detect.py +14 -12
  247. mindspore/utils/stress_detect.py +43 -0
  248. mindspore/utils/utils.py +144 -8
  249. mindspore/version.py +1 -1
  250. {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/METADATA +3 -2
  251. {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/RECORD +254 -267
  252. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -210
  253. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +0 -52
  254. mindspore/experimental/llm_boost/atb/boost_base.py +0 -385
  255. mindspore/experimental/llm_boost/atb/llama_boost.py +0 -137
  256. mindspore/experimental/llm_boost/atb/qwen_boost.py +0 -124
  257. mindspore/experimental/llm_boost/register.py +0 -130
  258. mindspore/experimental/llm_boost/utils.py +0 -31
  259. mindspore/include/OWNERS +0 -7
  260. mindspore/mindspore_cpu_res_manager.dll +0 -0
  261. mindspore/mindspore_ops_kernel_common.dll +0 -0
  262. mindspore/mindspore_res_manager.dll +0 -0
  263. mindspore/nn/optim/_dist_optimizer_registry.py +0 -111
  264. mindspore/nn/reinforcement/_batch_read_write.py +0 -142
  265. mindspore/nn/reinforcement/_tensors_queue.py +0 -152
  266. mindspore/nn/reinforcement/tensor_array.py +0 -145
  267. mindspore/opencv_core452.dll +0 -0
  268. mindspore/opencv_imgcodecs452.dll +0 -0
  269. mindspore/ops/_op_impl/aicpu/priority_replay_buffer.py +0 -113
  270. mindspore/ops/_op_impl/aicpu/reservoir_replay_buffer.py +0 -96
  271. mindspore/ops/_op_impl/aicpu/sparse_cross.py +0 -42
  272. mindspore/ops/_op_impl/cpu/buffer_append.py +0 -28
  273. mindspore/ops/_op_impl/cpu/buffer_get.py +0 -28
  274. mindspore/ops/_op_impl/cpu/buffer_sample.py +0 -28
  275. mindspore/ops/_op_impl/cpu/priority_replay_buffer.py +0 -42
  276. mindspore/ops/operations/_tensor_array.py +0 -359
  277. mindspore/ops/operations/rl_ops.py +0 -288
  278. mindspore/parallel/_offload_context.py +0 -275
  279. mindspore/parallel/_recovery_context.py +0 -115
  280. mindspore/parallel/_transformer/__init__.py +0 -35
  281. mindspore/parallel/_transformer/layers.py +0 -765
  282. mindspore/parallel/_transformer/loss.py +0 -251
  283. mindspore/parallel/_transformer/moe.py +0 -693
  284. mindspore/parallel/_transformer/op_parallel_config.py +0 -222
  285. mindspore/parallel/_transformer/transformer.py +0 -3124
  286. mindspore/parallel/mpi/_mpi_config.py +0 -116
  287. mindspore/train/memory_profiling_pb2.py +0 -298
  288. {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/WHEEL +0 -0
  289. {mindspore-2.7.0.dist-info → mindspore-2.7.1.dist-info}/entry_points.txt +0 -0
  290. {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/opapi/aclnn_kernel_mod.h"
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/opapi/auto_generate")
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/opapi/'):
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/opapi/'
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/opapi/aclnn/')
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/opapi/aclnn/'
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/opapi/aclnn_auto_gen/'
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/opapi/'):
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/opapi/'
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/opapi/aclnn/')
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/opapi/aclnn_kernel_mod.h"
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/opapi/tmp_aclnn_kernel_register.cc'
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/opapi/aclnn_kernel_register_auto.cc'
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, const std::string& target);"
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
- func_include_headers_list.append(
144
- self.pyboost_func_include_header_template.replace(operator_name=op_proto.op_name))
145
- op_call_with_grad_list.append(self._get_function_body(op_proto))
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 == kAscendDevice || backend == kDavinciDevice) {\n'
68
+ 'if (backend == device::DeviceType::kAscend) {\n'
69
69
  ' ${ascend_dispatcher}\n'
70
- '} else if (backend == kCPUDevice) {\n'
70
+ '} else if (backend == device::DeviceType::kCPU) {\n'
71
71
  ' ${cpu_dispatcher}\n'
72
- '} else if (backend == kGPUDevice) {\n'
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
- ' return py::none();\n'
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::Capture(parse_args.arg_list_, mindspore::prim::kPrim${class_name}, &res);\n'
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(self, *py_args, **py_kwargs);\n'
91
- 'return res;\n'
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(self, *py_args, **py_kwargs);\n'
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
- "py::object TensorMethod${cpp_func_name}"
101
- "(const py::object &self, const py::args &py_args, const py::kwargs &py_kwargs);\n"
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 += ' return py::none();'
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/grad/function/auto_generate"
46
- PYBOOST_AUTO_GRAD_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/op_function/auto_generate"
47
- PIPELINE_PYBOOST_FUNC_GEN_PATH = "mindspore/ccsrc/pynative/op_function/auto_generate"
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/op_function/auto_generate"
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/pyboost/internal/functions")
94
- MS_INTERNAL_PYBOOST_GEN_PATH = "mindspore/ccsrc/plugin/device/ascend/kernel/internal/pyboost/auto_gen"
95
- MS_PLUGIN_INTERNAL_PATH = "mindspore/ccsrc/plugin/device/ascend/kernel/internal"
96
- MS_OPS_PYBOOST_INTERNAL = "mindspore/ops/kernel/ascend/pyboost/internal"
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
- self.yaml_paths = [ops_yaml_path, infer_ops_yaml_path]
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.