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