mindspore 2.4.10__cp311-cp311-win_amd64.whl → 2.6.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 (602) 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 +13 -6
  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/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -38
  10. mindspore/_deprecated/__init__.py +17 -0
  11. mindspore/_deprecated/jit.py +198 -0
  12. mindspore/_extends/builtin_operations.py +1 -1
  13. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  14. mindspore/_extends/parse/__init__.py +6 -7
  15. mindspore/_extends/parse/compile_config.py +83 -0
  16. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  17. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  18. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  19. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  20. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  21. mindspore/_extends/parse/parser.py +47 -198
  22. mindspore/_extends/parse/resources.py +1 -5
  23. mindspore/_extends/parse/standard_method.py +229 -99
  24. mindspore/_extends/pijit/__init__.py +2 -2
  25. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  26. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  27. mindspore/_extends/utils.py +1 -1
  28. mindspore/amp.py +11 -5
  29. mindspore/atlprov.dll +0 -0
  30. mindspore/avcodec-59.dll +0 -0
  31. mindspore/avdevice-59.dll +0 -0
  32. mindspore/avfilter-8.dll +0 -0
  33. mindspore/avformat-59.dll +0 -0
  34. mindspore/avutil-57.dll +0 -0
  35. mindspore/boost/__init__.py +2 -2
  36. mindspore/boost/base.py +3 -7
  37. mindspore/boost/boost_cell_wrapper.py +138 -43
  38. mindspore/c1.dll +0 -0
  39. mindspore/c1xx.dll +0 -0
  40. mindspore/c2.dll +0 -0
  41. mindspore/common/__init__.py +6 -3
  42. mindspore/common/_grad_function.py +56 -0
  43. mindspore/common/_pijit_context.py +14 -5
  44. mindspore/common/_register_for_tensor.py +1 -2
  45. mindspore/common/_stub_tensor.py +30 -14
  46. mindspore/common/_tensor_cpp_method.py +17 -0
  47. mindspore/common/_tensor_docs.py +4760 -0
  48. mindspore/common/api.py +480 -372
  49. mindspore/common/auto_dynamic_shape.py +41 -44
  50. mindspore/common/dtype.py +39 -36
  51. mindspore/common/dump.py +9 -6
  52. mindspore/common/file_system.py +9 -1
  53. mindspore/common/generator.py +5 -0
  54. mindspore/common/hook_handle.py +6 -2
  55. mindspore/common/initializer.py +13 -10
  56. mindspore/common/jit_begin_end.py +94 -0
  57. mindspore/common/jit_config.py +6 -1
  58. mindspore/common/jit_context.py +76 -0
  59. mindspore/common/jit_trace.py +378 -0
  60. mindspore/common/lazy_inline.py +9 -3
  61. mindspore/common/mindir_util.py +10 -2
  62. mindspore/common/mutable.py +5 -4
  63. mindspore/common/parameter.py +135 -52
  64. mindspore/common/seed.py +2 -2
  65. mindspore/common/sparse_tensor.py +23 -17
  66. mindspore/common/tensor.py +975 -1981
  67. mindspore/communication/__init__.py +7 -5
  68. mindspore/communication/_comm_helper.py +52 -2
  69. mindspore/communication/comm_func.py +240 -181
  70. mindspore/communication/management.py +95 -26
  71. mindspore/context.py +324 -573
  72. mindspore/dataset/__init__.py +65 -37
  73. mindspore/dataset/audio/__init__.py +2 -8
  74. mindspore/dataset/audio/transforms.py +3 -17
  75. mindspore/dataset/callback/ds_callback.py +2 -1
  76. mindspore/dataset/core/config.py +87 -6
  77. mindspore/dataset/engine/cache_admin.py +3 -3
  78. mindspore/dataset/engine/cache_client.py +6 -5
  79. mindspore/dataset/engine/datasets.py +292 -267
  80. mindspore/dataset/engine/datasets_audio.py +22 -8
  81. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  82. mindspore/dataset/engine/datasets_text.py +78 -48
  83. mindspore/dataset/engine/datasets_user_defined.py +183 -117
  84. mindspore/dataset/engine/datasets_vision.py +120 -44
  85. mindspore/dataset/engine/iterators.py +283 -63
  86. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  87. mindspore/dataset/engine/obs/util.py +8 -0
  88. mindspore/dataset/engine/queue.py +40 -0
  89. mindspore/dataset/engine/samplers.py +289 -43
  90. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  91. mindspore/dataset/engine/validators.py +53 -11
  92. mindspore/dataset/text/__init__.py +7 -6
  93. mindspore/dataset/text/transforms.py +6 -5
  94. mindspore/dataset/text/utils.py +3 -3
  95. mindspore/dataset/transforms/__init__.py +0 -9
  96. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  97. mindspore/dataset/transforms/transforms.py +31 -14
  98. mindspore/dataset/utils/browse_dataset.py +1 -1
  99. mindspore/dataset/vision/__init__.py +2 -9
  100. mindspore/dataset/vision/transforms.py +202 -158
  101. mindspore/dataset/vision/utils.py +7 -5
  102. mindspore/dataset/vision/validators.py +1 -2
  103. mindspore/device_context/__init__.py +21 -0
  104. mindspore/device_context/ascend/__init__.py +25 -0
  105. mindspore/device_context/ascend/device.py +72 -0
  106. mindspore/device_context/ascend/op_debug.py +153 -0
  107. mindspore/device_context/ascend/op_precision.py +193 -0
  108. mindspore/device_context/ascend/op_tuning.py +123 -0
  109. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  110. mindspore/device_context/cpu/device.py +62 -0
  111. mindspore/device_context/cpu/op_tuning.py +43 -0
  112. mindspore/device_context/gpu/__init__.py +21 -0
  113. mindspore/device_context/gpu/device.py +70 -0
  114. mindspore/device_context/gpu/op_precision.py +67 -0
  115. mindspore/device_context/gpu/op_tuning.py +175 -0
  116. mindspore/device_manager.py +170 -0
  117. mindspore/dnnl.dll +0 -0
  118. mindspore/dpcmi.dll +0 -0
  119. mindspore/experimental/es/embedding_service.py +35 -27
  120. mindspore/experimental/llm_boost/__init__.py +1 -0
  121. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  122. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
  123. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  124. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  125. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  126. mindspore/experimental/llm_boost/register.py +1 -0
  127. mindspore/experimental/map_parameter.py +4 -4
  128. mindspore/experimental/optim/adadelta.py +6 -6
  129. mindspore/experimental/optim/adagrad.py +4 -4
  130. mindspore/experimental/optim/adam.py +7 -0
  131. mindspore/experimental/optim/adamax.py +4 -4
  132. mindspore/experimental/optim/adamw.py +4 -0
  133. mindspore/experimental/optim/asgd.py +1 -1
  134. mindspore/experimental/optim/lr_scheduler.py +73 -46
  135. mindspore/experimental/optim/radam.py +34 -31
  136. mindspore/experimental/optim/rprop.py +1 -1
  137. mindspore/experimental/optim/sgd.py +1 -1
  138. mindspore/hal/contiguous_tensors_handle.py +6 -10
  139. mindspore/hal/device.py +55 -53
  140. mindspore/hal/event.py +52 -52
  141. mindspore/hal/memory.py +179 -120
  142. mindspore/hal/stream.py +150 -109
  143. mindspore/include/api/context.h +0 -1
  144. mindspore/include/dataset/constants.h +7 -4
  145. mindspore/include/dataset/execute.h +2 -2
  146. mindspore/jpeg62.dll +0 -0
  147. mindspore/log.py +50 -0
  148. mindspore/mindrecord/__init__.py +21 -8
  149. mindspore/mindrecord/config.py +17 -316
  150. mindspore/mindrecord/filereader.py +1 -9
  151. mindspore/mindrecord/filewriter.py +5 -15
  152. mindspore/mindrecord/mindpage.py +1 -9
  153. mindspore/mindspore_backend_common.dll +0 -0
  154. mindspore/mindspore_backend_manager.dll +0 -0
  155. mindspore/mindspore_common.dll +0 -0
  156. mindspore/mindspore_core.dll +0 -0
  157. mindspore/mindspore_dump.dll +0 -0
  158. mindspore/mindspore_frontend.dll +0 -0
  159. mindspore/mindspore_glog.dll +0 -0
  160. mindspore/mindspore_memory_pool.dll +0 -0
  161. mindspore/mindspore_ms_backend.dll +0 -0
  162. mindspore/mindspore_ops.dll +0 -0
  163. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  164. mindspore/mindspore_ops_kernel_common.dll +0 -0
  165. mindspore/mindspore_profiler.dll +0 -0
  166. mindspore/mindspore_pyboost.dll +0 -0
  167. mindspore/mindspore_pynative.dll +0 -0
  168. mindspore/mindspore_res_manager.dll +0 -0
  169. mindspore/mindspore_runtime_pipeline.dll +0 -0
  170. mindspore/mint/__init__.py +798 -761
  171. mindspore/mint/distributed/__init__.py +70 -4
  172. mindspore/mint/distributed/distributed.py +2679 -44
  173. mindspore/mint/linalg/__init__.py +8 -0
  174. mindspore/mint/nn/__init__.py +743 -22
  175. mindspore/mint/nn/functional.py +716 -23
  176. mindspore/mint/nn/layer/__init__.py +21 -4
  177. mindspore/mint/nn/layer/_functions.py +334 -0
  178. mindspore/mint/nn/layer/activation.py +276 -1
  179. mindspore/mint/nn/layer/basic.py +123 -0
  180. mindspore/mint/nn/layer/conv.py +933 -0
  181. mindspore/mint/nn/layer/normalization.py +223 -28
  182. mindspore/mint/nn/layer/padding.py +797 -0
  183. mindspore/mint/nn/layer/pooling.py +235 -0
  184. mindspore/mint/optim/__init__.py +3 -1
  185. mindspore/mint/optim/adam.py +223 -0
  186. mindspore/mint/optim/adamw.py +26 -19
  187. mindspore/mint/optim/sgd.py +171 -0
  188. mindspore/mint/special/__init__.py +2 -1
  189. mindspore/msobj140.dll +0 -0
  190. mindspore/mspdb140.dll +0 -0
  191. mindspore/mspdbcore.dll +0 -0
  192. mindspore/mspdbst.dll +0 -0
  193. mindspore/mspft140.dll +0 -0
  194. mindspore/msvcdis140.dll +0 -0
  195. mindspore/msvcp140_1.dll +0 -0
  196. mindspore/msvcp140_2.dll +0 -0
  197. mindspore/msvcp140_atomic_wait.dll +0 -0
  198. mindspore/msvcp140_codecvt_ids.dll +0 -0
  199. mindspore/multiprocessing/__init__.py +5 -0
  200. mindspore/nn/__init__.py +4 -1
  201. mindspore/nn/cell.py +1373 -192
  202. mindspore/nn/dynamic_lr.py +2 -1
  203. mindspore/nn/layer/activation.py +29 -27
  204. mindspore/nn/layer/basic.py +51 -35
  205. mindspore/nn/layer/channel_shuffle.py +3 -3
  206. mindspore/nn/layer/container.py +1 -1
  207. mindspore/nn/layer/conv.py +53 -42
  208. mindspore/nn/layer/embedding.py +12 -11
  209. mindspore/nn/layer/normalization.py +56 -49
  210. mindspore/nn/layer/padding.py +4 -3
  211. mindspore/nn/layer/pooling.py +120 -42
  212. mindspore/nn/layer/rnn_cells.py +1 -1
  213. mindspore/nn/layer/rnns.py +2 -1
  214. mindspore/nn/layer/timedistributed.py +5 -5
  215. mindspore/nn/layer/transformer.py +59 -36
  216. mindspore/nn/learning_rate_schedule.py +8 -4
  217. mindspore/nn/loss/loss.py +58 -55
  218. mindspore/nn/optim/ada_grad.py +7 -5
  219. mindspore/nn/optim/adadelta.py +11 -9
  220. mindspore/nn/optim/adafactor.py +1 -1
  221. mindspore/nn/optim/adam.py +19 -15
  222. mindspore/nn/optim/adamax.py +8 -7
  223. mindspore/nn/optim/adasum.py +5 -5
  224. mindspore/nn/optim/asgd.py +3 -1
  225. mindspore/nn/optim/ftrl.py +11 -9
  226. mindspore/nn/optim/lamb.py +1 -1
  227. mindspore/nn/optim/lars.py +1 -4
  228. mindspore/nn/optim/lazyadam.py +12 -10
  229. mindspore/nn/optim/momentum.py +7 -6
  230. mindspore/nn/optim/optimizer.py +3 -3
  231. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  232. mindspore/nn/optim/rmsprop.py +13 -12
  233. mindspore/nn/optim/rprop.py +11 -9
  234. mindspore/nn/optim/sgd.py +9 -6
  235. mindspore/nn/optim/tft_wrapper.py +5 -2
  236. mindspore/nn/optim/thor.py +2 -1
  237. mindspore/nn/probability/bijector/bijector.py +17 -11
  238. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  239. mindspore/nn/probability/bijector/invert.py +2 -2
  240. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  241. mindspore/nn/probability/bijector/softplus.py +3 -2
  242. mindspore/nn/probability/distribution/beta.py +3 -3
  243. mindspore/nn/probability/distribution/categorical.py +1 -1
  244. mindspore/nn/probability/distribution/cauchy.py +4 -2
  245. mindspore/nn/probability/distribution/exponential.py +6 -7
  246. mindspore/nn/probability/distribution/gamma.py +2 -2
  247. mindspore/nn/probability/distribution/gumbel.py +2 -2
  248. mindspore/nn/probability/distribution/half_normal.py +5 -3
  249. mindspore/nn/probability/distribution/logistic.py +5 -3
  250. mindspore/nn/probability/distribution/poisson.py +1 -1
  251. mindspore/nn/probability/distribution/uniform.py +5 -3
  252. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  253. mindspore/nn/reinforcement/tensor_array.py +1 -1
  254. mindspore/nn/utils/init.py +13 -11
  255. mindspore/nn/wrap/__init__.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +181 -122
  257. mindspore/nn/wrap/grad_reducer.py +45 -36
  258. mindspore/nn/wrap/loss_scale.py +6 -7
  259. mindspore/numpy/array_creations.py +63 -65
  260. mindspore/numpy/array_ops.py +149 -144
  261. mindspore/numpy/logic_ops.py +41 -42
  262. mindspore/numpy/math_ops.py +361 -359
  263. mindspore/numpy/utils.py +17 -18
  264. mindspore/numpy/utils_const.py +5 -6
  265. mindspore/opencv_core452.dll +0 -0
  266. mindspore/opencv_imgcodecs452.dll +0 -0
  267. mindspore/opencv_imgproc452.dll +0 -0
  268. mindspore/ops/__init__.py +5 -3
  269. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  270. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  271. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  272. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  273. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  274. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  275. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  276. mindspore/ops/_register_for_op.py +0 -11
  277. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  278. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  279. mindspore/ops/_vmap/vmap_array_ops.py +52 -25
  280. mindspore/ops/_vmap/vmap_base.py +0 -2
  281. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  282. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  283. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  284. mindspore/ops/auto_generate/__init__.py +4 -3
  285. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
  286. mindspore/ops/auto_generate/gen_extend_func.py +757 -185
  287. mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
  288. mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
  289. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  290. mindspore/ops/composite/__init__.py +2 -1
  291. mindspore/ops/composite/base.py +20 -25
  292. mindspore/ops/composite/math_ops.py +6 -16
  293. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  294. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  295. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  296. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  297. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  299. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  301. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  302. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  303. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  304. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  305. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  306. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  307. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  308. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  309. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  310. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  311. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  312. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  313. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  314. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  315. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  316. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  317. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  318. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  319. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  320. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  321. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  324. mindspore/ops/function/__init__.py +40 -2
  325. mindspore/ops/function/_add_attr_func.py +58 -0
  326. mindspore/ops/function/array_func.py +2089 -2403
  327. mindspore/ops/function/clip_func.py +80 -23
  328. mindspore/ops/function/debug_func.py +57 -57
  329. mindspore/ops/function/grad/__init__.py +1 -0
  330. mindspore/ops/function/grad/grad_func.py +104 -71
  331. mindspore/ops/function/image_func.py +2 -2
  332. mindspore/ops/function/linalg_func.py +47 -78
  333. mindspore/ops/function/math_func.py +4351 -3813
  334. mindspore/ops/function/nn_func.py +1712 -637
  335. mindspore/ops/function/other_func.py +159 -1
  336. mindspore/ops/function/parameter_func.py +18 -84
  337. mindspore/ops/function/random_func.py +452 -387
  338. mindspore/ops/function/reshard_func.py +4 -70
  339. mindspore/ops/function/sparse_func.py +3 -3
  340. mindspore/ops/function/sparse_unary_func.py +6 -6
  341. mindspore/ops/function/spectral_func.py +25 -58
  342. mindspore/ops/function/vmap_func.py +26 -18
  343. mindspore/ops/functional.py +23 -7
  344. mindspore/ops/functional_overload.py +1548 -0
  345. mindspore/ops/op_info_register.py +32 -244
  346. mindspore/ops/operations/__init__.py +23 -15
  347. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  348. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  349. mindspore/ops/operations/_grad_ops.py +2 -43
  350. mindspore/ops/operations/_infer_ops.py +2 -1
  351. mindspore/ops/operations/_inner_ops.py +43 -84
  352. mindspore/ops/operations/_ms_kernel.py +4 -10
  353. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  354. mindspore/ops/operations/_scalar_ops.py +3 -2
  355. mindspore/ops/operations/_sequence_ops.py +1 -1
  356. mindspore/ops/operations/_tensor_array.py +1 -1
  357. mindspore/ops/operations/array_ops.py +81 -324
  358. mindspore/ops/operations/comm_ops.py +154 -108
  359. mindspore/ops/operations/custom_ops.py +298 -87
  360. mindspore/ops/operations/debug_ops.py +157 -59
  361. mindspore/ops/operations/inner_ops.py +7 -5
  362. mindspore/ops/operations/linalg_ops.py +1 -57
  363. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  364. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  365. mindspore/ops/operations/math_ops.py +32 -234
  366. mindspore/ops/operations/nn_ops.py +212 -531
  367. mindspore/ops/operations/other_ops.py +62 -9
  368. mindspore/ops/operations/random_ops.py +13 -7
  369. mindspore/ops/operations/reshard_ops.py +1 -1
  370. mindspore/ops/operations/sparse_ops.py +2 -2
  371. mindspore/ops/primitive.py +66 -53
  372. mindspore/ops/tensor_method.py +1895 -0
  373. mindspore/ops_generate/__init__.py +0 -5
  374. mindspore/ops_generate/aclnn/__init__.py +0 -0
  375. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  376. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  377. mindspore/ops_generate/api/__init__.py +0 -0
  378. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  379. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  380. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  381. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  382. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  383. mindspore/ops_generate/api/gen_api.py +103 -0
  384. mindspore/ops_generate/api/op_api_proto.py +235 -0
  385. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  386. mindspore/ops_generate/common/__init__.py +0 -0
  387. mindspore/ops_generate/common/base_generator.py +11 -0
  388. mindspore/ops_generate/common/gen_constants.py +91 -0
  389. mindspore/ops_generate/common/gen_utils.py +348 -0
  390. mindspore/ops_generate/common/op_proto.py +473 -0
  391. mindspore/ops_generate/common/template.py +523 -0
  392. mindspore/ops_generate/gen_ops.py +22 -1069
  393. mindspore/ops_generate/op_def/__init__.py +0 -0
  394. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  395. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  396. mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
  397. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  398. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  399. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  400. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  401. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  402. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  403. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  404. mindspore/ops_generate/pyboost/__init__.py +0 -0
  405. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  406. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  407. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  408. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  409. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  410. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  411. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  412. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  413. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  414. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  415. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  416. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  417. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  418. mindspore/ops_generate/resources/__init__.py +0 -0
  419. mindspore/ops_generate/resources/resource_list.py +30 -0
  420. mindspore/ops_generate/resources/resource_loader.py +36 -0
  421. mindspore/ops_generate/resources/resource_manager.py +64 -0
  422. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  423. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  424. mindspore/parallel/__init__.py +7 -3
  425. mindspore/parallel/_auto_parallel_context.py +159 -40
  426. mindspore/parallel/_cell_wrapper.py +132 -15
  427. mindspore/parallel/_parallel_serialization.py +107 -5
  428. mindspore/parallel/_ps_context.py +1 -1
  429. mindspore/parallel/_recovery_context.py +7 -2
  430. mindspore/parallel/_tensor.py +142 -18
  431. mindspore/parallel/_utils.py +199 -23
  432. mindspore/parallel/algo_parameter_config.py +4 -4
  433. mindspore/parallel/auto_parallel.py +732 -0
  434. mindspore/parallel/checkpoint_convert.py +159 -0
  435. mindspore/parallel/checkpoint_transform.py +700 -35
  436. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  437. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  438. mindspore/parallel/cluster/run.py +21 -4
  439. mindspore/parallel/function/__init__.py +24 -0
  440. mindspore/parallel/function/reshard_func.py +258 -0
  441. mindspore/parallel/nn/__init__.py +25 -0
  442. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  443. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  444. mindspore/parallel/parameter_broadcast.py +25 -14
  445. mindspore/parallel/shard.py +137 -59
  446. mindspore/parallel/transform_safetensors.py +364 -305
  447. mindspore/pgodb140.dll +0 -0
  448. mindspore/pgort140.dll +0 -0
  449. mindspore/profiler/__init__.py +22 -5
  450. mindspore/profiler/analysis/__init__.py +0 -0
  451. mindspore/profiler/analysis/parser/__init__.py +0 -0
  452. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  453. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  454. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  455. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  456. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  457. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  458. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  459. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  460. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
  461. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  462. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  463. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  464. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  465. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  466. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  467. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  468. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  469. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  470. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  471. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  472. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  473. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  474. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  475. mindspore/profiler/analysis/task_manager.py +131 -0
  476. mindspore/profiler/analysis/time_converter.py +84 -0
  477. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  478. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  479. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  480. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  481. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  482. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  483. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  484. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  485. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  486. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  487. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  488. mindspore/profiler/analysis/work_flow.py +73 -0
  489. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  490. mindspore/profiler/common/command_executor.py +90 -0
  491. mindspore/profiler/common/constant.py +186 -3
  492. mindspore/profiler/common/file_manager.py +208 -0
  493. mindspore/profiler/common/log.py +130 -0
  494. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  495. mindspore/profiler/common/path_manager.py +395 -0
  496. mindspore/profiler/common/process_bar.py +168 -0
  497. mindspore/profiler/common/process_pool.py +9 -3
  498. mindspore/profiler/common/profiler_context.py +500 -0
  499. mindspore/profiler/common/profiler_info.py +304 -0
  500. mindspore/profiler/common/profiler_meta_data.py +74 -0
  501. mindspore/profiler/common/profiler_output_path.py +284 -0
  502. mindspore/profiler/common/profiler_parameters.py +251 -0
  503. mindspore/profiler/common/profiler_path_manager.py +179 -0
  504. mindspore/profiler/common/record_function.py +76 -0
  505. mindspore/profiler/common/tlv_decoder.py +76 -0
  506. mindspore/profiler/common/util.py +75 -2
  507. mindspore/profiler/dynamic_profiler.py +341 -75
  508. mindspore/profiler/envprofiler.py +163 -0
  509. mindspore/profiler/experimental_config.py +197 -0
  510. mindspore/profiler/mstx.py +242 -0
  511. mindspore/profiler/platform/__init__.py +21 -0
  512. mindspore/profiler/platform/base_profiler.py +40 -0
  513. mindspore/profiler/platform/cpu_profiler.py +124 -0
  514. mindspore/profiler/platform/gpu_profiler.py +74 -0
  515. mindspore/profiler/platform/npu_profiler.py +335 -0
  516. mindspore/profiler/profiler.py +1073 -90
  517. mindspore/profiler/profiler_action_controller.py +187 -0
  518. mindspore/profiler/profiler_interface.py +118 -0
  519. mindspore/profiler/schedule.py +243 -0
  520. mindspore/rewrite/api/node.py +15 -13
  521. mindspore/rewrite/api/symbol_tree.py +2 -3
  522. mindspore/run_check/_check_version.py +27 -20
  523. mindspore/run_check/run_check.py +1 -1
  524. mindspore/runtime/__init__.py +37 -0
  525. mindspore/runtime/device.py +27 -0
  526. mindspore/runtime/event.py +209 -0
  527. mindspore/runtime/executor.py +177 -0
  528. mindspore/runtime/memory.py +416 -0
  529. mindspore/runtime/stream.py +460 -0
  530. mindspore/runtime/thread_bind_core.py +401 -0
  531. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  532. mindspore/swresample-4.dll +0 -0
  533. mindspore/swscale-6.dll +0 -0
  534. mindspore/tbbmalloc.dll +0 -0
  535. mindspore/tinyxml2.dll +0 -0
  536. mindspore/train/__init__.py +8 -8
  537. mindspore/train/_utils.py +96 -27
  538. mindspore/train/amp.py +9 -5
  539. mindspore/train/callback/__init__.py +2 -2
  540. mindspore/train/callback/_callback.py +2 -16
  541. mindspore/train/callback/_checkpoint.py +53 -55
  542. mindspore/train/callback/_cluster_monitor.py +14 -18
  543. mindspore/train/callback/_early_stop.py +1 -1
  544. mindspore/train/callback/_flops_collector.py +103 -68
  545. mindspore/train/callback/_history.py +8 -5
  546. mindspore/train/callback/_lambda_callback.py +2 -2
  547. mindspore/train/callback/_landscape.py +0 -3
  548. mindspore/train/callback/_loss_monitor.py +2 -1
  549. mindspore/train/callback/_on_request_exit.py +6 -5
  550. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  551. mindspore/train/callback/_summary_collector.py +52 -19
  552. mindspore/train/callback/_time_monitor.py +2 -1
  553. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
  554. mindspore/train/data_sink.py +25 -2
  555. mindspore/train/dataset_helper.py +15 -16
  556. mindspore/train/loss_scale_manager.py +8 -7
  557. mindspore/train/metrics/accuracy.py +3 -3
  558. mindspore/train/metrics/confusion_matrix.py +9 -9
  559. mindspore/train/metrics/error.py +3 -3
  560. mindspore/train/metrics/hausdorff_distance.py +4 -4
  561. mindspore/train/metrics/mean_surface_distance.py +3 -3
  562. mindspore/train/metrics/metric.py +0 -12
  563. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  564. mindspore/train/metrics/precision.py +11 -10
  565. mindspore/train/metrics/recall.py +9 -9
  566. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  567. mindspore/train/mind_ir_pb2.py +174 -46
  568. mindspore/train/model.py +269 -136
  569. mindspore/train/serialization.py +622 -978
  570. mindspore/train/summary/_summary_adapter.py +2 -2
  571. mindspore/train/summary/summary_record.py +2 -3
  572. mindspore/train/train_thor/model_thor.py +1 -1
  573. mindspore/turbojpeg.dll +0 -0
  574. mindspore/utils/__init__.py +6 -3
  575. mindspore/utils/dryrun.py +140 -0
  576. mindspore/utils/hooks.py +81 -0
  577. mindspore/utils/runtime_execution_order_check.py +552 -0
  578. mindspore/utils/utils.py +138 -4
  579. mindspore/vcmeta.dll +0 -0
  580. mindspore/vcruntime140.dll +0 -0
  581. mindspore/vcruntime140_1.dll +0 -0
  582. mindspore/version.py +1 -1
  583. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
  584. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
  585. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
  586. mindspore/_install_custom.py +0 -43
  587. mindspore/common/_register_for_adapter.py +0 -74
  588. mindspore/common/_tensor_overload.py +0 -139
  589. mindspore/mindspore_np_dtype.dll +0 -0
  590. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  591. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  592. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  593. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  594. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  595. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  596. mindspore/ops_generate/gen_utils.py +0 -209
  597. mindspore/ops_generate/op_proto.py +0 -145
  598. mindspore/ops_generate/template.py +0 -261
  599. mindspore/profiler/envprofiling.py +0 -254
  600. mindspore/profiler/profiling.py +0 -1926
  601. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  602. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,517 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """
16
+ This module defines the OpTemplateParser class for parsing operator prototypes.
17
+
18
+ The OpTemplateParser class is responsible for converting attributes of OpProto instances into strings
19
+ that can be directly used to fill in code templates. It handles the parsing of argument types,
20
+ function signatures, and generates conversion stubs for PyBoost operations.
21
+ """
22
+
23
+ import re
24
+
25
+ import common.gen_constants as K
26
+ from common.template import Template
27
+ from common.op_proto import OpProto
28
+
29
+ from . import pyboost_utils
30
+ from .pyboost_utils import get_input_dtype, tuple_input_to_cpp_type, get_return_type, \
31
+ number_input_to_cpp_type, get_const_number_convert, get_tuple_input_convert, is_optional_param, \
32
+ get_input_args_type_str
33
+
34
+
35
+ class OpTemplateParser:
36
+ """
37
+ Parses operator prototypes and generates template-compatible strings.
38
+
39
+ This class converts the attributes of an OpProto instance into the strings needed for code generation
40
+ in PyBoost operations.
41
+
42
+ Attributes:
43
+ op_proto (OpProto): The operator prototype containing the relevant information.
44
+ """
45
+
46
+ def __init__(self, op_proto: OpProto):
47
+ self.op_proto = op_proto
48
+
49
+ def _parse_call_args_types(self, op_args):
50
+ """
51
+ Parses the data types of the call arguments for the operator.
52
+
53
+ Args:
54
+ op_args (list): A list of operator arguments.
55
+
56
+ Returns:
57
+ list: A list of data types for the call arguments.
58
+ """
59
+ call_args_types = []
60
+ for op_arg in op_args:
61
+ is_optional = is_optional_param(op_arg)
62
+ call_args_types.append(get_input_dtype(
63
+ op_arg.arg_dtype, is_optional))
64
+ return call_args_types
65
+
66
+ def parse_call_args_with_types(self):
67
+ """
68
+ Parses the original call arguments and their types for the operator.
69
+
70
+ Returns:
71
+ list: A list of formatted strings representing the call arguments with their types.
72
+ """
73
+ call_args = self.parse_original_call_args(self.op_proto.op_args)
74
+ call_args_types = self._parse_call_args_types(self.op_proto.op_args)
75
+ call_args_with_types = []
76
+ for type_name, arg_name in zip(call_args_types, call_args):
77
+ call_args_with_types.append("const " + type_name + " &" + arg_name)
78
+ return call_args_with_types
79
+
80
+ def parse_need_malloc_tensors(self):
81
+ """
82
+ Parses the operator arguments to identify which tensors require memory allocation.
83
+
84
+ Returns:
85
+ tuple: A tuple containing:
86
+ - need_malloc_tensors (list): Arguments that need memory allocation.
87
+ - tensor_list_convert (list): Conversions needed for tensor lists.
88
+ - call_args_with_tensor (list): The call arguments formatted for tensors.
89
+ """
90
+ need_malloc_tensors = []
91
+ tensor_list_convert = []
92
+ call_args_with_tensor = []
93
+ call_args = self.parse_original_call_args(self.op_proto.op_args)
94
+ for op_arg, call_arg in zip(self.op_proto.op_args, call_args):
95
+ if pyboost_utils.is_tensor(op_arg):
96
+ call_arg = op_arg.arg_name + "_tensor"
97
+ need_malloc_tensors.append(call_arg)
98
+ call_args_with_tensor.append(call_arg)
99
+ elif tuple_input_to_cpp_type(op_arg.arg_dtype) and pyboost_utils.is_tensor_list(op_arg):
100
+ need_malloc_tensors.append(call_arg + "_vector")
101
+ tensor_list_convert.append(
102
+ get_tuple_input_convert(call_arg, op_arg.arg_dtype))
103
+ call_args_with_tensor.append(call_arg + "_vector")
104
+ else:
105
+ call_args_with_tensor.append(call_arg)
106
+ return need_malloc_tensors, tensor_list_convert, call_args_with_tensor
107
+
108
+ def parse_original_call_args(self, op_args):
109
+ """
110
+ Parses the original call arguments from the operator prototype.
111
+
112
+ Args:
113
+ op_args (list): A list of operator arguments.
114
+
115
+ Returns:
116
+ list: A list of formatted strings representing the original call arguments.
117
+ """
118
+ call_args = []
119
+ for op_arg in op_args:
120
+ if pyboost_utils.is_tensor(op_arg):
121
+ call_arg = op_arg.arg_name + "_tensor"
122
+ elif pyboost_utils.is_tensor_list(op_arg):
123
+ call_arg = op_arg.arg_name + "_tensor_list"
124
+ else:
125
+ call_arg = op_arg.arg_name
126
+ call_args.append(call_arg)
127
+ return call_args
128
+
129
+ def op_args_converter(self):
130
+ """
131
+ Converts operator arguments to the corresponding C++ data types.
132
+
133
+ Returns:
134
+ tuple: A tuple containing:
135
+ - call_args_after_convert (list): The converted call arguments.
136
+ - value_tuple_convert (list): Conversions needed for value tuples.
137
+ - const_number_convert (list): Conversions needed for constant numbers.
138
+ """
139
+ call_args_after_convert = []
140
+ value_tuple_convert = []
141
+ const_number_convert = []
142
+ call_args = self.parse_original_call_args(self.op_proto.op_args)
143
+ for op_arg, call_arg in zip(self.op_proto.op_args, call_args):
144
+ if number_input_to_cpp_type(op_arg.arg_dtype):
145
+ call_args_after_convert.append(call_arg + "_imm")
146
+ const_number_convert.append(
147
+ get_const_number_convert(call_arg, op_arg))
148
+ elif tuple_input_to_cpp_type(op_arg.arg_dtype):
149
+ call_args_after_convert.append(call_arg + "_vector")
150
+ value_tuple_convert.append(
151
+ get_tuple_input_convert(call_arg, op_arg.arg_dtype))
152
+ else:
153
+ call_args_after_convert.append(call_arg)
154
+ if const_number_convert:
155
+ const_number_convert.insert(
156
+ 0, '// Convert ValuePtr to c++ scalar\n')
157
+ if value_tuple_convert:
158
+ value_tuple_convert.insert(0, '// ValueTuple to std::vector\n')
159
+ return call_args_after_convert, value_tuple_convert, const_number_convert
160
+
161
+ def get_pyboost_func_name(self):
162
+ """
163
+ Gets the PyBoost function name based on the operator's class name.
164
+
165
+ Returns:
166
+ str: The generated PyBoost function name.
167
+ """
168
+ return "Pyboost_" + self.op_proto.op_class.name
169
+
170
+ def get_pyboost_name(self):
171
+ """
172
+ Gets the PyBoost name for the operator.
173
+
174
+ Returns:
175
+ str: The generated PyBoost name for the operator.
176
+ """
177
+ return "pyboost_" + self.op_proto.op_name
178
+
179
+ def get_op_def_name_str(self):
180
+ """
181
+ Gets the operator definition name string.
182
+
183
+ Returns:
184
+ str: The generated operator definition name string.
185
+ """
186
+ return "g" + self.op_proto.op_class.name
187
+
188
+ def gen_signature_same_type_table(self):
189
+ """
190
+ Generates a signature table for arguments of the same type.
191
+
192
+ Returns:
193
+ tuple: A tuple containing:
194
+ - type_num (int): The number of argument types.
195
+ - signature_table (str): The generated signature table as a string.
196
+ """
197
+ signature_table = ''
198
+ type_num = 0
199
+ args_signature = self.op_proto.op_args_signature
200
+ if args_signature is not None:
201
+ dtype_group = args_signature.dtype_group
202
+ indexes = {arg.arg_name: index for index,
203
+ arg in enumerate(self.op_proto.op_args)}
204
+ if dtype_group is not None:
205
+ match = re.findall(r'\((.*?)\)', dtype_group)
206
+ for item in match:
207
+ name_args = item.replace(' ', '').split(",")
208
+ signature_table += '{'
209
+ for arg in name_args:
210
+ arg_index = indexes[arg]
211
+ signature_table += f"""{arg_index}, """
212
+ signature_table = signature_table[:-2]
213
+ signature_table += '}, '
214
+ type_num += 1
215
+ signature_table = signature_table[:-2]
216
+ return type_num, signature_table
217
+
218
+ def get_call_args_tensor(self):
219
+ """
220
+ Retrieves the call arguments that are of tensor type.
221
+
222
+ Returns:
223
+ list: A list of call arguments that are tensors.
224
+ """
225
+ call_args_tensor = []
226
+ call_args_types = self._parse_call_args_types(self.op_proto.op_args)
227
+ call_args = self.parse_original_call_args(self.op_proto.op_args)
228
+ for _type, arg_name in zip(call_args_types, call_args):
229
+ if _type in ("mindspore::tensor::BaseTensorPtr", "std::optional<mindspore::tensor::BaseTensorPtr>"):
230
+ call_args_tensor.append(arg_name)
231
+ return call_args_tensor
232
+
233
+ def has_prim_init(self):
234
+ """
235
+ Checks if any arguments require primitive initialization.
236
+
237
+ Returns:
238
+ bool: True if any argument requires primitive initialization, otherwise False.
239
+ """
240
+ op_args = self.op_proto.op_args
241
+ has_prim_init = False
242
+ for op_arg in op_args:
243
+ prim_init = op_arg.is_prim_init
244
+ if prim_init:
245
+ has_prim_init = True
246
+ break
247
+ return has_prim_init
248
+
249
+ def generate_pyboost_op_func_return_type(self):
250
+ """
251
+ Generates the C++ return type for the PyBoost operator function.
252
+
253
+ Returns:
254
+ str: The generated C++ return type for the function.
255
+
256
+ Raises:
257
+ Exception: If no valid return type is found.
258
+ """
259
+ returns_type = []
260
+ type_convert_to_base = {
261
+ 'std::vector<mindspore::tensor::TensorPtr>': 'std::vector<mindspore::tensor::BaseTensorPtr>',
262
+ 'mindspore::tensor::TensorPtr': 'mindspore::tensor::BaseTensorPtr'
263
+ }
264
+ for return_obj in self.op_proto.op_returns:
265
+ temp_return = get_return_type(return_obj.arg_dtype)
266
+ if temp_return in type_convert_to_base:
267
+ returns_type.append(type_convert_to_base[temp_return])
268
+ else:
269
+ raise Exception("Not return found")
270
+ if len(returns_type) == 1:
271
+ cpp_func_return = returns_type[0]
272
+ elif len(returns_type) > 1:
273
+ cpp_func_return = "std::tuple<"
274
+ cpp_func_return += ','.join(s for s in returns_type)
275
+ cpp_func_return += ">"
276
+ else:
277
+ raise Exception("Not return found")
278
+ return cpp_func_return
279
+
280
+ def generate_pyboost_outputs(self):
281
+ """
282
+ Generates the output variables for the PyBoost operator function.
283
+
284
+ Returns:
285
+ tuple: A tuple containing:
286
+ - op_outputs (str): The output variable representation for the operator.
287
+ - call_outputs (str): The call output variable representation for the operator.
288
+ """
289
+ op_outputs = ''
290
+ call_outputs = ''
291
+ returns_type = []
292
+ for return_obj in self.op_proto.op_returns:
293
+ returns_type.append(get_return_type(return_obj.arg_dtype))
294
+
295
+ if len(returns_type) == 1:
296
+ if returns_type[0] == 'mindspore::tensor::TensorPtr':
297
+ op_outputs = 'outputs[0]'
298
+ call_outputs = 'outputs_[0]'
299
+ elif returns_type[0] == "std::vector<mindspore::tensor::TensorPtr>":
300
+ op_outputs = 'outputs'
301
+ call_outputs = 'outputs_'
302
+ else:
303
+ raise Exception(
304
+ "Not support return type {}".format(returns_type[0]))
305
+ elif len(returns_type) > 1:
306
+ outputs_str = ''
307
+ for i in range(len(returns_type)):
308
+ outputs_str += 'outputs[{}],'.format(i)
309
+ op_outputs = outputs_str[:-1]
310
+
311
+ outputs_str = ''
312
+ for i in range(len(returns_type)):
313
+ outputs_str += 'outputs_[{}],'.format(i)
314
+ outputs_str = outputs_str[:-1]
315
+ call_outputs = "std::make_tuple(" + outputs_str + ")"
316
+
317
+ return op_outputs, call_outputs
318
+
319
+ def _is_input_arg(self, arg_name, op_name):
320
+ res = False
321
+ if op_name in K.INPUT_NAME_MAP and arg_name == K.INPUT_NAME_MAP[op_name]:
322
+ res = True
323
+ elif op_name not in K.INPUT_NAME_MAP and arg_name in K.INPUT_ARGS_NAME:
324
+ res = True
325
+ return res
326
+
327
+ def generate_signature_str(self, kw_only_args=None, varargs=None, *, is_tensor_api: bool) -> str:
328
+ """
329
+ Generates a single function signature string for the given operation prototype.
330
+
331
+ Args:
332
+ kw_only_args (list[str]): List of keyword-only argument names.
333
+ varargs (list[str]): List of variable args names.
334
+
335
+ Kwargs:
336
+ is_tensor_api (bool): Whether this function is used in the Tensor API scenario.
337
+
338
+ Returns:
339
+ str: Generated function signature string.
340
+ """
341
+
342
+ op_name = self.op_proto.op_class.name
343
+ args_str = f'"{op_name}('
344
+ first_arg = True
345
+ kw_args_init_flag = False
346
+
347
+ arg_index = 0
348
+ for arg in self.op_proto.op_args:
349
+ arg_name = arg.arg_name
350
+
351
+ if is_tensor_api and self._is_input_arg(arg_name, op_name):
352
+ continue
353
+
354
+ single_arg = ''
355
+ if not first_arg:
356
+ single_arg = ', '
357
+
358
+ arg_handler = arg.arg_handler
359
+ if arg_handler:
360
+ if arg_handler in K.ARG_HANDLER_MAP:
361
+ arg_dtype = K.ARG_HANDLER_MAP[arg_handler]
362
+ else:
363
+ raise ValueError(
364
+ f"Generate failed. Check if {arg_handler} is registered in TensorFuncRegCppGenerator.")
365
+ else:
366
+ arg_dtype = arg.arg_dtype
367
+ for cast_type in arg.type_cast:
368
+ arg_dtype += f'|{cast_type}'
369
+
370
+ # handle varargs params
371
+ if varargs and arg_name in varargs and arg_index == 0:
372
+ single_arg += f"{arg_dtype} *{arg_name}"
373
+ else:
374
+ single_arg += f"{arg_dtype} {arg_name}"
375
+
376
+ if arg.as_init_arg:
377
+ single_arg += f"={arg.default}"
378
+
379
+ # handle keyword-only params
380
+ if kw_only_args and not kw_args_init_flag and arg_name == kw_only_args[0]:
381
+ single_arg = ("*, " if first_arg else ", *") + single_arg
382
+ kw_args_init_flag = True
383
+
384
+ args_str += single_arg
385
+ first_arg = False
386
+ arg_index += 1
387
+
388
+ return args_str + ')"'
389
+
390
+ def get_arg_handler_processor(self, func_name, op_proto, *, is_tensor_api):
391
+ """
392
+ Generates argument handler processing code for the given function prototype.
393
+
394
+ Args:
395
+ func_name (str): The name of the function.
396
+ op_proto (OpProto): Operator prototype instance to generate argument processing for.
397
+
398
+ Returns:
399
+ str: Generated argument handler processing code.
400
+ """
401
+ tensor_arg_handler_prt_template = Template(
402
+ "parse_args.arg_list_[${idx}] = "
403
+ "py::cast((*pynative::${func_str}(\"${func_name}\", \"${op_arg_name}\", \
404
+ parse_args.arg_list_[${idx}]))->value());\n"
405
+ "parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
406
+ "parse_args.dst_types_[${idx}] = ${new_type};\n"
407
+ )
408
+ function_arg_handler_prt_template = Template(
409
+ "parse_args.arg_list_[${idx}] = "
410
+ "py::cast((*${func_str}(\"${func_name}\", \"${op_arg_name}\", parse_args.arg_list_[${idx}]))->value());\n"
411
+ "parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
412
+ "parse_args.dst_types_[${idx}] = ${new_type};\n"
413
+ )
414
+ arg_handler_prt_template = (
415
+ tensor_arg_handler_prt_template) if is_tensor_api else function_arg_handler_prt_template
416
+
417
+ arg_handler_template = Template(
418
+ "parse_args.arg_list_[${idx}] = "
419
+ "py::cast(pynative::${func_str}(\"${func_name}\", \"${op_arg_name}\", parse_args.arg_list_[${idx}]));\n"
420
+ "parse_args.src_types_[${idx}] = ops::OP_DTYPE::DT_BEGIN;\n"
421
+ "parse_args.dst_types_[${idx}] = ${new_type};\n"
422
+ )
423
+ arg_handler_optional_template = Template(
424
+ 'if (!py::isinstance<py::none>(parse_args.arg_list_[${idx}])) {\n'
425
+ ' ${arg_handler_str}\n'
426
+ '}\n'
427
+ )
428
+ arg_handler_type_map = {"to_2d_paddings": "ops::OP_DTYPE::DT_TUPLE_INT",
429
+ "dtype_to_type_id": "ops::OP_DTYPE::DT_INT",
430
+ "to_kernel_size": "ops::OP_DTYPE::DT_TUPLE_INT",
431
+ "to_strides": "ops::OP_DTYPE::DT_TUPLE_INT",
432
+ "str_to_enum": "ops::OP_DTYPE::DT_INT",
433
+ "to_pair": "ops::OP_DTYPE::DT_TUPLE_INT",
434
+ "to_dilations": "ops::OP_DTYPE::DT_TUPLE_INT",
435
+ "to_output_padding": "ops::OP_DTYPE::DT_TUPLE_INT",
436
+ "to_rates": "ops::OP_DTYPE::DT_TUPLE_INT"}
437
+ arg_handler_processor = []
438
+ op_args = op_proto.op_args
439
+ for idx, op_arg in enumerate(op_args):
440
+ arg_handler = op_arg.arg_handler
441
+ func_str = ''.join(word.capitalize()
442
+ for word in arg_handler.split('_'))
443
+ if arg_handler:
444
+ op_arg_name = op_arg.arg_name
445
+ new_type = arg_handler_type_map[arg_handler]
446
+ if func_str in ("StrToEnum", "DtypeToTypeId"):
447
+ arg_handler_str = arg_handler_prt_template.replace(func_str=func_str,
448
+ func_name=func_name,
449
+ op_arg_name=op_arg_name,
450
+ idx=idx,
451
+ new_type=new_type)
452
+ else:
453
+ arg_handler_str = arg_handler_template.replace(func_str=func_str,
454
+ func_name=func_name,
455
+ op_arg_name=op_arg_name,
456
+ idx=idx,
457
+ new_type=new_type)
458
+
459
+ if op_arg.default == "None":
460
+ arg_handler_str = arg_handler_optional_template.replace(idx=idx,
461
+ arg_handler_str=arg_handler_str)
462
+ arg_handler_processor.append(arg_handler_str)
463
+
464
+ return arg_handler_processor
465
+
466
+ def get_input_tensor_index(self, op_proto):
467
+ """
468
+ Get index of input.
469
+
470
+ Args:
471
+ op_proto (OpProto): Function prototype to generate dispatch strings for.
472
+
473
+ Returns:
474
+ int: Index of input.
475
+ """
476
+ op_name = op_proto.op_class.name
477
+ op_args = op_proto.op_args
478
+ if op_name in K.INPUT_NAME_MAP:
479
+ self_index = [i for i in range(
480
+ len(op_args)) if op_args[i].arg_name == K.INPUT_NAME_MAP[op_name]]
481
+ else:
482
+ self_index = [i for i in range(
483
+ len(op_args)) if op_args[i].arg_name in K.INPUT_ARGS_NAME]
484
+ if len(self_index) != 1:
485
+ raise ValueError(
486
+ f'There must be only one field named \'input\'. But got {len(self_index)} in {op_name}')
487
+ return self_index[0]
488
+
489
+ def get_convert_args_str(self, op_proto, is_tensor_api):
490
+ """
491
+ Generates argument convert processing code for the given function prototype.
492
+
493
+ Args:
494
+ op_proto (OpProto): Operator prototype instance to generate argument processing for.
495
+
496
+ Returns:
497
+ str: Generated argument convert processing code.
498
+ """
499
+ self_index = 0
500
+ if is_tensor_api:
501
+ self_index = self.get_input_tensor_index(op_proto)
502
+ convert_args_str = ""
503
+ for idx, op_arg in enumerate(op_proto.op_args):
504
+ if is_tensor_api:
505
+ if self_index == idx:
506
+ convert_args_str += "input_tensor, "
507
+ continue
508
+ is_optional = is_optional_param(op_arg)
509
+ arg_convert_template = Template("parse_args.ConvertOptional<${des_type}>(${index}), ") if is_optional \
510
+ else Template("parse_args.Convert<${des_type}>(${index}), ")
511
+ if op_arg.is_type_id:
512
+ arg_type_str = get_input_args_type_str('type', False)
513
+ else:
514
+ arg_type_str = get_input_args_type_str(op_arg.arg_dtype, False)
515
+ convert_args_str += arg_convert_template.replace(index=idx,
516
+ des_type=arg_type_str[:-3])
517
+ return convert_args_str[:-2]