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

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

Potentially problematic release.


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

Files changed (458) 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 +65 -84
  18. mindspore/_extends/parse/resources.py +39 -0
  19. mindspore/_extends/parse/standard_method.py +58 -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 +178 -53
  41. mindspore/common/_utils.py +9 -1
  42. mindspore/common/api.py +377 -203
  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 +5 -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 +117 -131
  59. mindspore/communication/_comm_helper.py +46 -4
  60. mindspore/communication/management.py +79 -7
  61. mindspore/context.py +67 -55
  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 +70 -24
  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 +3 -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 +27 -7
  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 +6 -46
  145. mindspore/mint/distributed/__init__.py +5 -0
  146. mindspore/mint/distributed/distributed.py +429 -23
  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 +140 -104
  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 +491 -623
  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 +117 -110
  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 +4 -6
  186. mindspore/nn/optim/adasum.py +2 -2
  187. mindspore/nn/optim/asgd.py +2 -0
  188. mindspore/nn/optim/lamb.py +1 -3
  189. mindspore/nn/optim/optimizer.py +1 -1
  190. mindspore/nn/optim/tft_wrapper.py +2 -3
  191. mindspore/nn/optim/thor.py +2 -2
  192. mindspore/nn/probability/distribution/_utils/utils.py +2 -2
  193. mindspore/nn/probability/distribution/exponential.py +2 -1
  194. mindspore/nn/probability/distribution/poisson.py +2 -1
  195. mindspore/nn/sparse/sparse.py +3 -3
  196. mindspore/nn/wrap/cell_wrapper.py +73 -42
  197. mindspore/nn/wrap/grad_reducer.py +37 -52
  198. mindspore/nn/wrap/loss_scale.py +72 -74
  199. mindspore/numpy/array_creations.py +7 -7
  200. mindspore/numpy/fft.py +1 -1
  201. mindspore/numpy/math_ops.py +5 -5
  202. mindspore/numpy/utils_const.py +1 -1
  203. mindspore/opencv_core452.dll +0 -0
  204. mindspore/opencv_imgcodecs452.dll +0 -0
  205. mindspore/opencv_imgproc452.dll +0 -0
  206. mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
  207. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
  208. mindspore/ops/_grad_experimental/grad_inner_ops.py +0 -9
  209. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  210. mindspore/{experimental/es/__init__.py → ops/_op_impl/cpu/joinedstr_op.py} +12 -6
  211. mindspore/ops/_vmap/vmap_array_ops.py +31 -13
  212. mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
  213. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +54 -13
  214. mindspore/ops/auto_generate/gen_extend_func.py +27 -145
  215. mindspore/ops/auto_generate/gen_ops_def.py +1027 -347
  216. mindspore/ops/auto_generate/gen_ops_prim.py +2341 -1117
  217. mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
  218. mindspore/ops/composite/__init__.py +10 -0
  219. mindspore/ops/composite/base.py +9 -5
  220. mindspore/ops/composite/multitype_ops/__init__.py +12 -1
  221. mindspore/ops/composite/multitype_ops/_compile_utils.py +133 -109
  222. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -1
  223. mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
  224. mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
  225. mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
  226. mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
  227. mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
  228. mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
  229. mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
  230. mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
  231. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
  232. mindspore/ops/function/__init__.py +4 -1
  233. mindspore/ops/function/_add_attr_func.py +11 -6
  234. mindspore/ops/function/array_func.py +19 -102
  235. mindspore/ops/function/debug_func.py +8 -5
  236. mindspore/ops/function/grad/grad_func.py +5 -13
  237. mindspore/ops/function/math_func.py +77 -572
  238. mindspore/ops/function/nn_func.py +46 -94
  239. mindspore/ops/function/other_func.py +4 -1
  240. mindspore/ops/function/random_func.py +44 -5
  241. mindspore/ops/function/vmap_func.py +2 -1
  242. mindspore/ops/functional.py +4 -4
  243. mindspore/ops/functional_overload.py +594 -18
  244. mindspore/ops/op_info_register.py +21 -0
  245. mindspore/ops/operations/__init__.py +16 -11
  246. mindspore/ops/operations/_custom_ops_utils.py +689 -34
  247. mindspore/ops/operations/_inner_ops.py +14 -18
  248. mindspore/ops/operations/_sequence_ops.py +1 -1
  249. mindspore/ops/operations/array_ops.py +5 -51
  250. mindspore/ops/operations/comm_ops.py +186 -41
  251. mindspore/ops/operations/custom_ops.py +303 -177
  252. mindspore/ops/operations/debug_ops.py +59 -4
  253. mindspore/ops/operations/image_ops.py +13 -13
  254. mindspore/ops/operations/manually_defined/ops_def.py +27 -28
  255. mindspore/ops/operations/math_ops.py +8 -9
  256. mindspore/ops/operations/nn_ops.py +8 -40
  257. mindspore/ops/primitive.py +9 -20
  258. mindspore/ops/tensor_method.py +63 -15
  259. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
  260. mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
  261. mindspore/ops_generate/api/functions_cc_generator.py +58 -10
  262. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
  263. mindspore/ops_generate/common/base_generator.py +14 -0
  264. mindspore/ops_generate/common/gen_constants.py +8 -3
  265. mindspore/ops_generate/common/gen_utils.py +0 -19
  266. mindspore/ops_generate/common/op_proto.py +11 -4
  267. mindspore/ops_generate/common/template.py +88 -11
  268. mindspore/ops_generate/gen_ops.py +1 -1
  269. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
  270. mindspore/ops_generate/op_def/ops_def_cc_generator.py +0 -3
  271. mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
  272. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
  273. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
  274. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
  275. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
  276. mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -16
  277. mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
  278. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
  279. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
  280. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
  281. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
  282. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
  283. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
  284. mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
  285. mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
  286. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
  287. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
  288. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
  289. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
  290. mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
  291. mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
  292. mindspore/parallel/_auto_parallel_context.py +16 -23
  293. mindspore/parallel/_cell_wrapper.py +113 -45
  294. mindspore/parallel/_parallel_serialization.py +4 -3
  295. mindspore/parallel/_ps_context.py +4 -6
  296. mindspore/parallel/_tensor.py +167 -12
  297. mindspore/parallel/_transformer/moe.py +1 -1
  298. mindspore/parallel/_transformer/transformer.py +17 -12
  299. mindspore/parallel/_utils.py +5 -11
  300. mindspore/parallel/auto_parallel.py +35 -14
  301. mindspore/parallel/checkpoint_convert.py +3 -3
  302. mindspore/parallel/checkpoint_transform.py +13 -7
  303. mindspore/parallel/cluster/process_entity/_api.py +88 -49
  304. mindspore/parallel/cluster/process_entity/_utils.py +95 -7
  305. mindspore/parallel/cluster/run.py +48 -7
  306. mindspore/parallel/function/__init__.py +8 -1
  307. mindspore/parallel/function/reshard_func.py +12 -12
  308. mindspore/parallel/nn/__init__.py +15 -2
  309. mindspore/parallel/nn/parallel_cell_wrapper.py +50 -14
  310. mindspore/parallel/nn/parallel_grad_reducer.py +7 -14
  311. mindspore/parallel/shard.py +10 -25
  312. mindspore/parallel/transform_safetensors.py +469 -174
  313. mindspore/pgodb140.dll +0 -0
  314. mindspore/pgort140.dll +0 -0
  315. mindspore/profiler/__init__.py +2 -1
  316. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
  317. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
  318. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +12 -6
  319. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
  320. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  321. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
  322. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
  323. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
  324. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
  325. mindspore/profiler/analysis/task_manager.py +1 -1
  326. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
  327. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
  328. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +10 -9
  329. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +43 -23
  330. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
  331. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
  332. mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
  333. mindspore/profiler/common/constant.py +16 -0
  334. mindspore/profiler/common/msprof_cmd_tool.py +2 -2
  335. mindspore/profiler/common/path_manager.py +9 -0
  336. mindspore/profiler/common/profiler_context.py +50 -29
  337. mindspore/profiler/common/profiler_info.py +0 -16
  338. mindspore/profiler/common/profiler_meta_data.py +1 -0
  339. mindspore/profiler/common/profiler_op_analyse.py +239 -0
  340. mindspore/profiler/common/profiler_output_path.py +23 -8
  341. mindspore/profiler/common/profiler_parameters.py +128 -35
  342. mindspore/profiler/dynamic_profile/__init__.py +0 -0
  343. mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
  344. mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
  345. mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
  346. mindspore/profiler/dynamic_profiler.py +374 -338
  347. mindspore/profiler/envprofiler.py +42 -12
  348. mindspore/profiler/experimental_config.py +112 -7
  349. mindspore/profiler/mstx.py +33 -12
  350. mindspore/profiler/platform/__init__.py +2 -3
  351. mindspore/profiler/platform/cpu_profiler.py +10 -4
  352. mindspore/profiler/platform/npu_profiler.py +30 -20
  353. mindspore/profiler/profiler.py +218 -154
  354. mindspore/profiler/profiler_action_controller.py +65 -77
  355. mindspore/profiler/profiler_interface.py +2 -2
  356. mindspore/profiler/schedule.py +10 -4
  357. mindspore/rewrite/common/config.py +1 -0
  358. mindspore/rewrite/common/namer.py +1 -0
  359. mindspore/rewrite/common/namespace.py +1 -0
  360. mindspore/rewrite/node/node.py +31 -11
  361. mindspore/rewrite/parsers/assign_parser.py +1 -1
  362. mindspore/rewrite/symbol_tree/symbol_tree.py +2 -2
  363. mindspore/run_check/_check_version.py +7 -10
  364. mindspore/runtime/__init__.py +8 -6
  365. mindspore/runtime/event.py +10 -4
  366. mindspore/runtime/executor.py +87 -45
  367. mindspore/runtime/memory.py +31 -32
  368. mindspore/runtime/thread_bind_core.py +299 -165
  369. mindspore/safeguard/rewrite_obfuscation.py +12 -13
  370. mindspore/swresample-4.dll +0 -0
  371. mindspore/swscale-6.dll +0 -0
  372. mindspore/tbbmalloc.dll +0 -0
  373. mindspore/tinyxml2.dll +0 -0
  374. mindspore/train/_utils.py +17 -7
  375. mindspore/train/amp.py +43 -23
  376. mindspore/train/callback/__init__.py +5 -5
  377. mindspore/train/callback/_callback.py +2 -1
  378. mindspore/train/callback/_checkpoint.py +4 -14
  379. mindspore/train/callback/_flops_collector.py +11 -7
  380. mindspore/train/callback/_landscape.py +0 -1
  381. mindspore/train/callback/_train_fault_tolerance.py +98 -21
  382. mindspore/train/data_sink.py +15 -6
  383. mindspore/train/dataset_helper.py +14 -5
  384. mindspore/train/model.py +133 -69
  385. mindspore/train/serialization.py +168 -126
  386. mindspore/train/summary/summary_record.py +13 -2
  387. mindspore/train/train_thor/model_thor.py +2 -2
  388. mindspore/turbojpeg.dll +0 -0
  389. mindspore/utils/__init__.py +3 -2
  390. mindspore/utils/dryrun.py +0 -6
  391. mindspore/utils/runtime_execution_order_check.py +163 -77
  392. mindspore/utils/sdc_detect.py +68 -0
  393. mindspore/utils/utils.py +14 -17
  394. mindspore/vcmeta.dll +0 -0
  395. mindspore/vcruntime140.dll +0 -0
  396. mindspore/vcruntime140_1.dll +0 -0
  397. mindspore/version.py +1 -1
  398. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
  399. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/RECORD +403 -442
  400. mindspore/_deprecated/jit.py +0 -198
  401. mindspore/_extends/remote/kernel_build_server_ascend.py +0 -75
  402. mindspore/communication/_hccl_management.py +0 -297
  403. mindspore/experimental/es/embedding_service.py +0 -891
  404. mindspore/experimental/es/embedding_service_layer.py +0 -581
  405. mindspore/profiler/common/validator/__init__.py +0 -14
  406. mindspore/profiler/common/validator/validate_path.py +0 -84
  407. mindspore/profiler/parser/__init__.py +0 -14
  408. mindspore/profiler/parser/aicpu_data_parser.py +0 -272
  409. mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
  410. mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
  411. mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
  412. mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
  413. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
  414. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
  415. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
  416. mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
  417. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
  418. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
  419. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
  420. mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
  421. mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
  422. mindspore/profiler/parser/ascend_flops_generator.py +0 -116
  423. mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
  424. mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
  425. mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
  426. mindspore/profiler/parser/ascend_memory_generator.py +0 -185
  427. mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
  428. mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
  429. mindspore/profiler/parser/ascend_op_generator.py +0 -334
  430. mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
  431. mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
  432. mindspore/profiler/parser/base_timeline_generator.py +0 -483
  433. mindspore/profiler/parser/container.py +0 -229
  434. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
  435. mindspore/profiler/parser/flops_parser.py +0 -531
  436. mindspore/profiler/parser/framework_enum.py +0 -111
  437. mindspore/profiler/parser/framework_parser.py +0 -464
  438. mindspore/profiler/parser/framework_struct.py +0 -61
  439. mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
  440. mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
  441. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
  442. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
  443. mindspore/profiler/parser/hccl_parser.py +0 -573
  444. mindspore/profiler/parser/hwts_log_parser.py +0 -122
  445. mindspore/profiler/parser/integrator.py +0 -526
  446. mindspore/profiler/parser/memory_usage_parser.py +0 -277
  447. mindspore/profiler/parser/minddata_analyzer.py +0 -800
  448. mindspore/profiler/parser/minddata_parser.py +0 -186
  449. mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
  450. mindspore/profiler/parser/op_intermediate_parser.py +0 -149
  451. mindspore/profiler/parser/optime_parser.py +0 -250
  452. mindspore/profiler/parser/profiler_info.py +0 -213
  453. mindspore/profiler/parser/step_trace_parser.py +0 -666
  454. mindspore/utils/hooks.py +0 -81
  455. /mindspore/common/{_auto_dynamic.py → dynamic_shape/_auto_dynamic.py} +0 -0
  456. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
  457. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
  458. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
@@ -47,6 +47,6 @@ def main():
47
47
  if __name__ == "__main__":
48
48
  try:
49
49
  main()
50
- except Exception as e: # pylint: disable=broad-except
50
+ except Exception as e:
51
51
  logging.critical("Auto generate failed, err info: %s", e)
52
52
  raise e
@@ -24,7 +24,6 @@ import common.template as template
24
24
  from common.base_generator import BaseGenerator
25
25
  from pyboost import pyboost_utils
26
26
 
27
-
28
27
  LITE_OPS_H = """
29
28
  #ifndef MINDSPORE_CORE_OPS_GEN_LITE_OPS_H_
30
29
  #define MINDSPORE_CORE_OPS_GEN_LITE_OPS_H_
@@ -122,9 +121,10 @@ class LiteOpsCcGenerator(BaseGenerator):
122
121
  self.inc_ops_head_templat = template.Template(INC_OPS_HEAD)
123
122
  self.lite_ops_cc_template = template.Template(LITE_OPS_CC)
124
123
  self.op_template = template.op_template
125
- self.register_primitive_c_template = template.Template("${op_name}::${op_name}():BaseOperator(kName${op_name}) {}\n"
126
- "REGISTER_PRIMITIVE_C(kName${op_name}, ${op_name});\n"
127
- "MIND_API_OPERATOR_IMPL(${op_name}, BaseOperator);\n\n")
124
+ self.register_primitive_c_template = template.Template(
125
+ "${op_name}::${op_name}():BaseOperator(kName${op_name}) {}\n"
126
+ "REGISTER_PRIMITIVE_C(kName${op_name}, ${op_name});\n"
127
+ "MIND_API_OPERATOR_IMPL(${op_name}, BaseOperator);\n\n")
128
128
 
129
129
  def generate(self, work_path, op_protos):
130
130
  """
@@ -101,9 +101,6 @@ class OpsDefCcGenerator(BaseGenerator):
101
101
  is_graph_view=is_graph_view,
102
102
  func_impl_declaration=func_impl_declaration_str,
103
103
  func_impl_define=func_impl_define)
104
- if op_proto.op_view:
105
- view_op_def = op_def_cc.replace(class_name, class_name + "View")
106
- op_def_cc += view_op_def
107
104
 
108
105
  if "deprecated" not in operator_name:
109
106
  gen_cc_list.append(op_def_cc)
@@ -19,15 +19,12 @@ This module defines the `OpsNameHGenerator` class, which produces C++ code to de
19
19
  constants for operator names based on given prototypes.
20
20
  """
21
21
 
22
- import os
23
-
24
22
  import common.gen_constants as K
25
23
  import common.gen_utils as gen_utils
26
24
  import common.template as template
27
25
  from common.base_generator import BaseGenerator
28
26
  from pyboost import pyboost_utils
29
27
 
30
-
31
28
  OP_NAME_OP_DEF = """
32
29
  #ifndef MINDSPORE_CORE_OP_NAME_${suffix}_H_
33
30
  #define MINDSPORE_CORE_OP_NAME_${suffix}_H_
@@ -19,15 +19,12 @@ This module defines the `OpsPrimitiveHGenerator` class, which creates C++ header
19
19
  containing definitions for operator primitives based on provided operator prototypes.
20
20
  """
21
21
 
22
- import os
23
-
24
22
  import common.gen_constants as K
25
23
  import common.gen_utils as gen_utils
26
24
  import common.template as template
27
25
  from common.base_generator import BaseGenerator
28
26
  from pyboost import pyboost_utils
29
27
 
30
-
31
28
  OP_PRIM_OP_DEF_H = """
32
29
  #ifndef MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
33
30
  #define MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
@@ -42,7 +39,6 @@ $ops_prim_gen
42
39
  #endif // MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
43
40
  """
44
41
 
45
-
46
42
  OP_PRIM_OP_DEF_CC = """
47
43
 
48
44
  #include "$auto_gen_path/gen_ops_primitive_${suffix}.h"
@@ -142,7 +142,10 @@ class OpPrimPyGenerator(BaseGenerator):
142
142
  # step1.3: get args set prim arg expression:
143
143
  assign_str = self._get_assign_str_by_type_it(op_proto.op_class.name, arg)
144
144
  if arg.arg_handler:
145
- assign_str = f""" self._set_prim_arg_with_handler("{arg.arg_name}", {assign_str}, {arg.arg_handler})"""
145
+ assign_str = (
146
+ f' self._set_prim_arg_with_handler('
147
+ f'"{arg.arg_name}", {assign_str}, {arg.arg_handler})'
148
+ )
146
149
  else:
147
150
  assign_str = f""" self._set_prim_arg("{arg.arg_name}", {assign_str})"""
148
151
  args_assign.append(assign_str)
@@ -318,7 +321,7 @@ class OpPrimPyGenerator(BaseGenerator):
318
321
  call_method_body_str += f"""
319
322
  # Add for jit context.
320
323
  if jit_context() and jit_context().compiled:
321
- return None"""
324
+ return jit_context().default_output()"""
322
325
  pyboost_func_name = pyboost_utils.get_pyboost_name(op_proto.op_name)
323
326
  call_method_body_str += f"""
324
327
  res = {pyboost_func_name}(self, [{call_args_list_str}])"""
@@ -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