mindspore 2.6.0__cp311-cp311-win_amd64.whl → 2.7.0__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

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