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

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

Potentially problematic release.


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

Files changed (455) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +2 -2
  5. mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
  8. mindspore/_checkparam.py +42 -11
  9. mindspore/_extends/builtin_operations.py +3 -3
  10. mindspore/{_deprecated → _extends/optimize}/__init__.py +9 -3
  11. mindspore/_extends/optimize/cell_utils.py +96 -0
  12. mindspore/_extends/parallel_compile/akg_compiler/custom.py +1109 -0
  13. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  14. mindspore/_extends/parse/__init__.py +3 -3
  15. mindspore/_extends/parse/compile_config.py +44 -22
  16. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +1 -2
  17. mindspore/_extends/parse/parser.py +64 -83
  18. mindspore/_extends/parse/resources.py +39 -0
  19. mindspore/_extends/parse/standard_method.py +47 -14
  20. mindspore/_extends/parse/trope.py +8 -1
  21. mindspore/_extends/pijit/__init__.py +1 -2
  22. mindspore/_extends/pijit/pijit_func_white_list.py +2 -5
  23. mindspore/amp.py +4 -22
  24. mindspore/atlprov.dll +0 -0
  25. mindspore/avcodec-59.dll +0 -0
  26. mindspore/avdevice-59.dll +0 -0
  27. mindspore/avfilter-8.dll +0 -0
  28. mindspore/avformat-59.dll +0 -0
  29. mindspore/avutil-57.dll +0 -0
  30. mindspore/boost/adasum.py +1 -1
  31. mindspore/boost/boost_cell_wrapper.py +4 -4
  32. mindspore/c1.dll +0 -0
  33. mindspore/c1xx.dll +0 -0
  34. mindspore/c2.dll +0 -0
  35. mindspore/common/__init__.py +43 -12
  36. mindspore/common/_grad_function.py +2 -1
  37. mindspore/common/_pijit_context.py +28 -7
  38. mindspore/common/_stub_tensor.py +1 -209
  39. mindspore/common/_tensor_cpp_method.py +1 -1
  40. mindspore/common/_tensor_docs.py +177 -52
  41. mindspore/common/_utils.py +9 -1
  42. mindspore/common/api.py +338 -208
  43. mindspore/common/dtype.py +108 -57
  44. mindspore/common/dump.py +11 -16
  45. mindspore/common/dynamic_shape/__init__.py +0 -0
  46. mindspore/common/{auto_dynamic_shape.py → dynamic_shape/auto_dynamic_shape.py} +17 -23
  47. mindspore/common/dynamic_shape/enable_dynamic.py +197 -0
  48. mindspore/common/file_system.py +59 -9
  49. mindspore/common/generator.py +2 -3
  50. mindspore/common/hook_handle.py +33 -5
  51. mindspore/common/jit_config.py +1 -1
  52. mindspore/common/jit_trace.py +84 -105
  53. mindspore/common/np_dtype.py +3 -3
  54. mindspore/common/parameter.py +27 -29
  55. mindspore/common/recompute.py +5 -7
  56. mindspore/common/sparse_tensor.py +0 -3
  57. mindspore/common/symbol.py +0 -1
  58. mindspore/common/tensor.py +84 -133
  59. mindspore/communication/_comm_helper.py +46 -4
  60. mindspore/communication/management.py +79 -7
  61. mindspore/context.py +47 -38
  62. mindspore/dataset/__init__.py +1 -1
  63. mindspore/dataset/audio/transforms.py +1 -1
  64. mindspore/dataset/core/config.py +38 -4
  65. mindspore/dataset/engine/datasets.py +350 -322
  66. mindspore/dataset/engine/datasets_user_defined.py +69 -23
  67. mindspore/dataset/engine/iterators.py +2 -2
  68. mindspore/dataset/engine/obs/config_loader.py +2 -2
  69. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +8 -0
  70. mindspore/dataset/transforms/c_transforms.py +2 -2
  71. mindspore/dataset/transforms/py_transforms.py +7 -3
  72. mindspore/dataset/transforms/transforms.py +10 -6
  73. mindspore/dataset/vision/__init__.py +1 -1
  74. mindspore/dataset/vision/py_transforms.py +8 -8
  75. mindspore/dataset/vision/transforms.py +17 -5
  76. mindspore/dataset/vision/utils.py +632 -21
  77. mindspore/dataset/vision/validators.py +1 -0
  78. mindspore/device_context/ascend/device.py +1 -1
  79. mindspore/device_context/ascend/op_tuning.py +35 -1
  80. mindspore/device_context/gpu/__init__.py +2 -2
  81. mindspore/device_context/gpu/device.py +1 -1
  82. mindspore/device_context/gpu/op_precision.py +4 -2
  83. mindspore/device_context/gpu/op_tuning.py +6 -3
  84. mindspore/device_manager.py +16 -9
  85. mindspore/dnnl.dll +0 -0
  86. mindspore/dpcmi.dll +0 -0
  87. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +5 -4
  88. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  89. mindspore/experimental/optim/adadelta.py +13 -20
  90. mindspore/experimental/optim/adagrad.py +15 -22
  91. mindspore/experimental/optim/adam.py +17 -24
  92. mindspore/experimental/optim/adamax.py +14 -22
  93. mindspore/experimental/optim/adamw.py +28 -34
  94. mindspore/experimental/optim/asgd.py +15 -25
  95. mindspore/experimental/optim/lr_scheduler.py +27 -45
  96. mindspore/experimental/optim/nadam.py +14 -24
  97. mindspore/experimental/optim/optimizer.py +13 -23
  98. mindspore/experimental/optim/radam.py +18 -24
  99. mindspore/experimental/optim/rmsprop.py +14 -25
  100. mindspore/experimental/optim/rprop.py +15 -26
  101. mindspore/experimental/optim/sgd.py +9 -19
  102. mindspore/hal/__init__.py +4 -4
  103. mindspore/hal/contiguous_tensors_handle.py +2 -2
  104. mindspore/hal/memory.py +1 -0
  105. mindspore/include/api/cell.h +65 -5
  106. mindspore/include/api/cfg.h +24 -7
  107. mindspore/include/api/context.h +1 -0
  108. mindspore/include/api/delegate.h +10 -2
  109. mindspore/include/api/dual_abi_helper.h +100 -19
  110. mindspore/include/api/graph.h +14 -1
  111. mindspore/include/api/kernel.h +16 -3
  112. mindspore/include/api/kernel_api.h +9 -1
  113. mindspore/include/api/metrics/accuracy.h +9 -0
  114. mindspore/include/api/model.h +8 -1
  115. mindspore/include/api/model_group.h +4 -0
  116. mindspore/include/api/model_parallel_runner.h +2 -0
  117. mindspore/include/api/status.h +48 -10
  118. mindspore/include/api/types.h +8 -3
  119. mindspore/include/c_api/model_c.h +0 -58
  120. mindspore/include/c_api/tensor_c.h +0 -26
  121. mindspore/include/dataset/constants.h +9 -0
  122. mindspore/include/dataset/vision_ascend.h +1 -1
  123. mindspore/jpeg62.dll +0 -0
  124. mindspore/mindrecord/tools/cifar10.py +61 -11
  125. mindspore/mindrecord/tools/cifar10_to_mr.py +5 -0
  126. mindspore/mindspore_backend_common.dll +0 -0
  127. mindspore/mindspore_backend_manager.dll +0 -0
  128. mindspore/mindspore_common.dll +0 -0
  129. mindspore/mindspore_core.dll +0 -0
  130. mindspore/mindspore_cpu_res_manager.dll +0 -0
  131. mindspore/mindspore_dump.dll +0 -0
  132. mindspore/mindspore_frontend.dll +0 -0
  133. mindspore/mindspore_glog.dll +0 -0
  134. mindspore/mindspore_memory_pool.dll +0 -0
  135. mindspore/mindspore_ms_backend.dll +0 -0
  136. mindspore/mindspore_ops.dll +0 -0
  137. mindspore/mindspore_ops_host.dll +0 -0
  138. mindspore/mindspore_ops_kernel_common.dll +0 -0
  139. mindspore/mindspore_profiler.dll +0 -0
  140. mindspore/mindspore_pyboost.dll +0 -0
  141. mindspore/mindspore_pynative.dll +0 -0
  142. mindspore/mindspore_res_manager.dll +0 -0
  143. mindspore/mindspore_runtime_pipeline.dll +0 -0
  144. mindspore/mint/__init__.py +4 -44
  145. mindspore/mint/distributed/__init__.py +5 -0
  146. mindspore/mint/distributed/distributed.py +425 -19
  147. mindspore/mint/nn/__init__.py +1 -1
  148. mindspore/mint/nn/functional.py +53 -6
  149. mindspore/mint/nn/layer/_functions.py +163 -294
  150. mindspore/mint/nn/layer/activation.py +8 -6
  151. mindspore/mint/nn/layer/conv.py +125 -101
  152. mindspore/mint/nn/layer/normalization.py +11 -25
  153. mindspore/mint/optim/adam.py +19 -18
  154. mindspore/mint/optim/adamw.py +14 -8
  155. mindspore/mint/optim/sgd.py +5 -5
  156. mindspore/msobj140.dll +0 -0
  157. mindspore/mspdb140.dll +0 -0
  158. mindspore/mspdbcore.dll +0 -0
  159. mindspore/mspdbst.dll +0 -0
  160. mindspore/mspft140.dll +0 -0
  161. mindspore/msvcdis140.dll +0 -0
  162. mindspore/msvcp140_1.dll +0 -0
  163. mindspore/msvcp140_2.dll +0 -0
  164. mindspore/msvcp140_atomic_wait.dll +0 -0
  165. mindspore/msvcp140_codecvt_ids.dll +0 -0
  166. mindspore/nn/cell.py +488 -620
  167. mindspore/nn/grad/cell_grad.py +11 -12
  168. mindspore/nn/layer/activation.py +36 -36
  169. mindspore/nn/layer/basic.py +74 -77
  170. mindspore/nn/layer/channel_shuffle.py +4 -4
  171. mindspore/nn/layer/combined.py +4 -2
  172. mindspore/nn/layer/conv.py +86 -85
  173. mindspore/nn/layer/dense.py +9 -7
  174. mindspore/nn/layer/embedding.py +50 -52
  175. mindspore/nn/layer/image.py +38 -40
  176. mindspore/nn/layer/math.py +111 -112
  177. mindspore/nn/layer/normalization.py +56 -44
  178. mindspore/nn/layer/pooling.py +58 -63
  179. mindspore/nn/layer/rnn_cells.py +33 -33
  180. mindspore/nn/layer/rnns.py +56 -56
  181. mindspore/nn/layer/thor_layer.py +74 -73
  182. mindspore/nn/layer/transformer.py +11 -1
  183. mindspore/nn/learning_rate_schedule.py +20 -20
  184. mindspore/nn/loss/loss.py +79 -81
  185. mindspore/nn/optim/adam.py +2 -4
  186. mindspore/nn/optim/adasum.py +2 -2
  187. mindspore/nn/optim/lamb.py +1 -3
  188. mindspore/nn/optim/optimizer.py +1 -1
  189. mindspore/nn/optim/tft_wrapper.py +2 -3
  190. mindspore/nn/optim/thor.py +2 -2
  191. mindspore/nn/probability/distribution/_utils/utils.py +2 -2
  192. mindspore/nn/probability/distribution/exponential.py +2 -1
  193. mindspore/nn/probability/distribution/poisson.py +2 -1
  194. mindspore/nn/sparse/sparse.py +3 -3
  195. mindspore/nn/wrap/cell_wrapper.py +73 -42
  196. mindspore/nn/wrap/grad_reducer.py +37 -52
  197. mindspore/nn/wrap/loss_scale.py +72 -74
  198. mindspore/numpy/array_creations.py +7 -7
  199. mindspore/numpy/fft.py +1 -1
  200. mindspore/numpy/math_ops.py +1 -1
  201. mindspore/numpy/utils_const.py +1 -1
  202. mindspore/opencv_core452.dll +0 -0
  203. mindspore/opencv_imgcodecs452.dll +0 -0
  204. mindspore/opencv_imgproc452.dll +0 -0
  205. mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
  206. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
  207. mindspore/ops/_grad_experimental/grad_inner_ops.py +0 -9
  208. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  209. mindspore/{experimental/es/__init__.py → ops/_op_impl/cpu/joinedstr_op.py} +12 -6
  210. mindspore/ops/_vmap/vmap_array_ops.py +6 -13
  211. mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
  212. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +29 -10
  213. mindspore/ops/auto_generate/gen_extend_func.py +5 -55
  214. mindspore/ops/auto_generate/gen_ops_def.py +753 -273
  215. mindspore/ops/auto_generate/gen_ops_prim.py +1687 -958
  216. mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
  217. mindspore/ops/composite/__init__.py +10 -0
  218. mindspore/ops/composite/base.py +9 -5
  219. mindspore/ops/composite/multitype_ops/__init__.py +12 -1
  220. mindspore/ops/composite/multitype_ops/_compile_utils.py +132 -108
  221. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -1
  222. mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
  223. mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
  224. mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
  225. mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
  226. mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
  227. mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
  228. mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
  229. mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
  230. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
  231. mindspore/ops/function/__init__.py +4 -1
  232. mindspore/ops/function/_add_attr_func.py +11 -6
  233. mindspore/ops/function/array_func.py +17 -100
  234. mindspore/ops/function/debug_func.py +8 -5
  235. mindspore/ops/function/grad/grad_func.py +5 -13
  236. mindspore/ops/function/math_func.py +65 -399
  237. mindspore/ops/function/nn_func.py +44 -61
  238. mindspore/ops/function/other_func.py +4 -1
  239. mindspore/ops/function/random_func.py +31 -4
  240. mindspore/ops/functional.py +2 -3
  241. mindspore/ops/functional_overload.py +486 -18
  242. mindspore/ops/op_info_register.py +21 -0
  243. mindspore/ops/operations/__init__.py +5 -2
  244. mindspore/ops/operations/_custom_ops_utils.py +675 -8
  245. mindspore/ops/operations/_inner_ops.py +14 -18
  246. mindspore/ops/operations/_sequence_ops.py +1 -1
  247. mindspore/ops/operations/array_ops.py +4 -50
  248. mindspore/ops/operations/comm_ops.py +186 -41
  249. mindspore/ops/operations/custom_ops.py +244 -175
  250. mindspore/ops/operations/debug_ops.py +55 -4
  251. mindspore/ops/operations/image_ops.py +13 -13
  252. mindspore/ops/operations/manually_defined/ops_def.py +27 -28
  253. mindspore/ops/operations/math_ops.py +8 -9
  254. mindspore/ops/operations/nn_ops.py +6 -7
  255. mindspore/ops/primitive.py +9 -20
  256. mindspore/ops/tensor_method.py +52 -11
  257. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
  258. mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
  259. mindspore/ops_generate/api/functions_cc_generator.py +58 -10
  260. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
  261. mindspore/ops_generate/common/base_generator.py +14 -0
  262. mindspore/ops_generate/common/gen_constants.py +7 -2
  263. mindspore/ops_generate/common/gen_utils.py +0 -19
  264. mindspore/ops_generate/common/op_proto.py +11 -4
  265. mindspore/ops_generate/common/template.py +88 -11
  266. mindspore/ops_generate/gen_ops.py +1 -1
  267. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
  268. mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
  269. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
  270. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
  271. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
  272. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
  273. mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -16
  274. mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
  275. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
  276. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
  277. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
  278. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
  279. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
  280. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
  281. mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
  282. mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
  283. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
  284. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
  285. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
  286. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
  287. mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
  288. mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
  289. mindspore/parallel/_auto_parallel_context.py +9 -17
  290. mindspore/parallel/_cell_wrapper.py +106 -40
  291. mindspore/parallel/_parallel_serialization.py +4 -3
  292. mindspore/parallel/_ps_context.py +4 -6
  293. mindspore/parallel/_tensor.py +167 -12
  294. mindspore/parallel/_transformer/moe.py +1 -1
  295. mindspore/parallel/_transformer/transformer.py +17 -12
  296. mindspore/parallel/_utils.py +5 -11
  297. mindspore/parallel/auto_parallel.py +33 -12
  298. mindspore/parallel/checkpoint_convert.py +3 -3
  299. mindspore/parallel/checkpoint_transform.py +5 -1
  300. mindspore/parallel/cluster/process_entity/_api.py +88 -49
  301. mindspore/parallel/cluster/process_entity/_utils.py +95 -7
  302. mindspore/parallel/cluster/run.py +48 -7
  303. mindspore/parallel/function/__init__.py +8 -1
  304. mindspore/parallel/function/reshard_func.py +7 -6
  305. mindspore/parallel/nn/__init__.py +15 -2
  306. mindspore/parallel/nn/parallel_cell_wrapper.py +50 -14
  307. mindspore/parallel/nn/parallel_grad_reducer.py +7 -14
  308. mindspore/parallel/shard.py +9 -23
  309. mindspore/parallel/transform_safetensors.py +468 -174
  310. mindspore/pgodb140.dll +0 -0
  311. mindspore/pgort140.dll +0 -0
  312. mindspore/profiler/__init__.py +2 -1
  313. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
  314. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
  315. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +3 -0
  316. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
  317. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  318. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
  319. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
  320. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
  321. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
  322. mindspore/profiler/analysis/task_manager.py +1 -1
  323. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
  324. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
  325. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +10 -9
  326. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +43 -23
  327. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
  328. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
  329. mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
  330. mindspore/profiler/common/constant.py +16 -0
  331. mindspore/profiler/common/msprof_cmd_tool.py +2 -2
  332. mindspore/profiler/common/path_manager.py +9 -0
  333. mindspore/profiler/common/profiler_context.py +50 -29
  334. mindspore/profiler/common/profiler_info.py +0 -16
  335. mindspore/profiler/common/profiler_meta_data.py +1 -0
  336. mindspore/profiler/common/profiler_op_analyse.py +239 -0
  337. mindspore/profiler/common/profiler_output_path.py +23 -8
  338. mindspore/profiler/common/profiler_parameters.py +128 -35
  339. mindspore/profiler/dynamic_profile/__init__.py +0 -0
  340. mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
  341. mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
  342. mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
  343. mindspore/profiler/dynamic_profiler.py +374 -338
  344. mindspore/profiler/envprofiler.py +42 -12
  345. mindspore/profiler/experimental_config.py +112 -7
  346. mindspore/profiler/mstx.py +33 -12
  347. mindspore/profiler/platform/__init__.py +2 -3
  348. mindspore/profiler/platform/cpu_profiler.py +10 -4
  349. mindspore/profiler/platform/npu_profiler.py +30 -20
  350. mindspore/profiler/profiler.py +218 -154
  351. mindspore/profiler/profiler_action_controller.py +65 -77
  352. mindspore/profiler/profiler_interface.py +2 -2
  353. mindspore/profiler/schedule.py +10 -4
  354. mindspore/rewrite/common/config.py +1 -0
  355. mindspore/rewrite/common/namer.py +1 -0
  356. mindspore/rewrite/common/namespace.py +1 -0
  357. mindspore/rewrite/node/node.py +31 -11
  358. mindspore/rewrite/parsers/assign_parser.py +1 -1
  359. mindspore/rewrite/symbol_tree/symbol_tree.py +2 -2
  360. mindspore/run_check/_check_version.py +7 -10
  361. mindspore/runtime/__init__.py +8 -6
  362. mindspore/runtime/event.py +10 -4
  363. mindspore/runtime/executor.py +87 -45
  364. mindspore/runtime/memory.py +22 -30
  365. mindspore/runtime/thread_bind_core.py +299 -165
  366. mindspore/safeguard/rewrite_obfuscation.py +12 -13
  367. mindspore/swresample-4.dll +0 -0
  368. mindspore/swscale-6.dll +0 -0
  369. mindspore/tbbmalloc.dll +0 -0
  370. mindspore/tinyxml2.dll +0 -0
  371. mindspore/train/_utils.py +9 -5
  372. mindspore/train/amp.py +43 -23
  373. mindspore/train/callback/__init__.py +5 -5
  374. mindspore/train/callback/_callback.py +2 -1
  375. mindspore/train/callback/_checkpoint.py +4 -14
  376. mindspore/train/callback/_flops_collector.py +11 -7
  377. mindspore/train/callback/_landscape.py +0 -1
  378. mindspore/train/callback/_train_fault_tolerance.py +72 -18
  379. mindspore/train/data_sink.py +15 -6
  380. mindspore/train/dataset_helper.py +14 -5
  381. mindspore/train/model.py +49 -47
  382. mindspore/train/serialization.py +168 -126
  383. mindspore/train/summary/summary_record.py +13 -2
  384. mindspore/train/train_thor/model_thor.py +2 -2
  385. mindspore/turbojpeg.dll +0 -0
  386. mindspore/utils/__init__.py +3 -2
  387. mindspore/utils/dryrun.py +0 -6
  388. mindspore/utils/runtime_execution_order_check.py +162 -78
  389. mindspore/utils/sdc_detect.py +68 -0
  390. mindspore/utils/utils.py +14 -17
  391. mindspore/vcmeta.dll +0 -0
  392. mindspore/vcruntime140.dll +0 -0
  393. mindspore/vcruntime140_1.dll +0 -0
  394. mindspore/version.py +1 -1
  395. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
  396. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/RECORD +400 -439
  397. mindspore/_deprecated/jit.py +0 -198
  398. mindspore/_extends/remote/kernel_build_server_ascend.py +0 -75
  399. mindspore/communication/_hccl_management.py +0 -297
  400. mindspore/experimental/es/embedding_service.py +0 -891
  401. mindspore/experimental/es/embedding_service_layer.py +0 -581
  402. mindspore/profiler/common/validator/__init__.py +0 -14
  403. mindspore/profiler/common/validator/validate_path.py +0 -84
  404. mindspore/profiler/parser/__init__.py +0 -14
  405. mindspore/profiler/parser/aicpu_data_parser.py +0 -272
  406. mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
  407. mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
  408. mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
  409. mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
  410. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
  411. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
  412. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
  413. mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
  414. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
  415. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
  416. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
  417. mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
  418. mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
  419. mindspore/profiler/parser/ascend_flops_generator.py +0 -116
  420. mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
  421. mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
  422. mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
  423. mindspore/profiler/parser/ascend_memory_generator.py +0 -185
  424. mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
  425. mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
  426. mindspore/profiler/parser/ascend_op_generator.py +0 -334
  427. mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
  428. mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
  429. mindspore/profiler/parser/base_timeline_generator.py +0 -483
  430. mindspore/profiler/parser/container.py +0 -229
  431. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
  432. mindspore/profiler/parser/flops_parser.py +0 -531
  433. mindspore/profiler/parser/framework_enum.py +0 -111
  434. mindspore/profiler/parser/framework_parser.py +0 -464
  435. mindspore/profiler/parser/framework_struct.py +0 -61
  436. mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
  437. mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
  438. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
  439. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
  440. mindspore/profiler/parser/hccl_parser.py +0 -573
  441. mindspore/profiler/parser/hwts_log_parser.py +0 -122
  442. mindspore/profiler/parser/integrator.py +0 -526
  443. mindspore/profiler/parser/memory_usage_parser.py +0 -277
  444. mindspore/profiler/parser/minddata_analyzer.py +0 -800
  445. mindspore/profiler/parser/minddata_parser.py +0 -186
  446. mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
  447. mindspore/profiler/parser/op_intermediate_parser.py +0 -149
  448. mindspore/profiler/parser/optime_parser.py +0 -250
  449. mindspore/profiler/parser/profiler_info.py +0 -213
  450. mindspore/profiler/parser/step_trace_parser.py +0 -666
  451. mindspore/utils/hooks.py +0 -81
  452. /mindspore/common/{_auto_dynamic.py → dynamic_shape/_auto_dynamic.py} +0 -0
  453. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
  454. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
  455. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
@@ -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]