mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0rc1__cp310-cp310-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 (491) 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 +6 -4
  5. mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -33
  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/parse/__init__.py +6 -7
  14. mindspore/_extends/parse/compile_config.py +19 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +24 -193
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +97 -74
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +4 -4
  27. mindspore/atlprov.dll +0 -0
  28. mindspore/avcodec-59.dll +0 -0
  29. mindspore/avdevice-59.dll +0 -0
  30. mindspore/avfilter-8.dll +0 -0
  31. mindspore/avformat-59.dll +0 -0
  32. mindspore/avutil-57.dll +0 -0
  33. mindspore/boost/__init__.py +2 -2
  34. mindspore/boost/base.py +3 -7
  35. mindspore/boost/boost_cell_wrapper.py +2 -2
  36. mindspore/c1.dll +0 -0
  37. mindspore/c1xx.dll +0 -0
  38. mindspore/c2.dll +0 -0
  39. mindspore/common/__init__.py +4 -3
  40. mindspore/common/_grad_function.py +56 -0
  41. mindspore/common/_pijit_context.py +14 -5
  42. mindspore/common/_register_for_tensor.py +1 -1
  43. mindspore/common/_stub_tensor.py +5 -10
  44. mindspore/common/_tensor_cpp_method.py +1 -1
  45. mindspore/common/_tensor_docs.py +1915 -3287
  46. mindspore/common/api.py +341 -354
  47. mindspore/common/auto_dynamic_shape.py +41 -44
  48. mindspore/common/dtype.py +5 -2
  49. mindspore/common/dump.py +7 -5
  50. mindspore/common/file_system.py +3 -0
  51. mindspore/common/hook_handle.py +5 -3
  52. mindspore/common/initializer.py +10 -6
  53. mindspore/common/jit_begin_end.py +94 -0
  54. mindspore/common/jit_config.py +6 -1
  55. mindspore/common/jit_context.py +76 -0
  56. mindspore/common/jit_trace.py +378 -0
  57. mindspore/common/lazy_inline.py +2 -2
  58. mindspore/common/mutable.py +5 -4
  59. mindspore/common/parameter.py +106 -39
  60. mindspore/common/seed.py +2 -2
  61. mindspore/common/sparse_tensor.py +23 -17
  62. mindspore/common/tensor.py +297 -714
  63. mindspore/communication/__init__.py +7 -5
  64. mindspore/communication/_comm_helper.py +47 -2
  65. mindspore/communication/comm_func.py +70 -53
  66. mindspore/communication/management.py +83 -17
  67. mindspore/context.py +214 -560
  68. mindspore/dataset/__init__.py +44 -20
  69. mindspore/dataset/audio/__init__.py +2 -8
  70. mindspore/dataset/audio/transforms.py +3 -17
  71. mindspore/dataset/core/config.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +1 -1
  73. mindspore/dataset/engine/datasets.py +102 -120
  74. mindspore/dataset/engine/datasets_audio.py +22 -22
  75. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  76. mindspore/dataset/engine/datasets_text.py +78 -85
  77. mindspore/dataset/engine/datasets_user_defined.py +108 -76
  78. mindspore/dataset/engine/datasets_vision.py +111 -108
  79. mindspore/dataset/engine/iterators.py +5 -3
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/samplers.py +279 -57
  82. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  83. mindspore/dataset/engine/validators.py +10 -0
  84. mindspore/dataset/text/__init__.py +7 -6
  85. mindspore/dataset/text/transforms.py +6 -5
  86. mindspore/dataset/text/utils.py +3 -3
  87. mindspore/dataset/transforms/__init__.py +0 -9
  88. mindspore/dataset/transforms/transforms.py +3 -3
  89. mindspore/dataset/utils/browse_dataset.py +1 -1
  90. mindspore/dataset/vision/__init__.py +2 -9
  91. mindspore/dataset/vision/transforms.py +202 -158
  92. mindspore/dataset/vision/utils.py +7 -5
  93. mindspore/device_context/ascend/op_debug.py +60 -1
  94. mindspore/device_context/ascend/op_tuning.py +0 -4
  95. mindspore/device_manager.py +39 -3
  96. mindspore/dnnl.dll +0 -0
  97. mindspore/dpcmi.dll +0 -0
  98. mindspore/experimental/es/embedding_service.py +35 -27
  99. mindspore/experimental/map_parameter.py +4 -4
  100. mindspore/experimental/optim/adadelta.py +22 -26
  101. mindspore/experimental/optim/adagrad.py +4 -4
  102. mindspore/experimental/optim/adam.py +4 -0
  103. mindspore/experimental/optim/adamax.py +4 -4
  104. mindspore/experimental/optim/adamw.py +4 -0
  105. mindspore/experimental/optim/asgd.py +1 -1
  106. mindspore/experimental/optim/lr_scheduler.py +40 -22
  107. mindspore/experimental/optim/radam.py +5 -5
  108. mindspore/experimental/optim/rprop.py +1 -1
  109. mindspore/experimental/optim/sgd.py +1 -1
  110. mindspore/hal/contiguous_tensors_handle.py +6 -10
  111. mindspore/hal/device.py +55 -81
  112. mindspore/hal/event.py +38 -55
  113. mindspore/hal/memory.py +93 -144
  114. mindspore/hal/stream.py +81 -125
  115. mindspore/include/dataset/constants.h +7 -4
  116. mindspore/include/dataset/execute.h +2 -2
  117. mindspore/jpeg62.dll +0 -0
  118. mindspore/log.py +40 -2
  119. mindspore/mindrecord/__init__.py +20 -7
  120. mindspore/mindspore_backend_common.dll +0 -0
  121. mindspore/mindspore_backend_manager.dll +0 -0
  122. mindspore/mindspore_common.dll +0 -0
  123. mindspore/mindspore_core.dll +0 -0
  124. mindspore/mindspore_dump.dll +0 -0
  125. mindspore/mindspore_frontend.dll +0 -0
  126. mindspore/mindspore_glog.dll +0 -0
  127. mindspore/mindspore_memory_pool.dll +0 -0
  128. mindspore/mindspore_ms_backend.dll +0 -0
  129. mindspore/mindspore_ops.dll +0 -0
  130. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  131. mindspore/mindspore_ops_kernel_common.dll +0 -0
  132. mindspore/mindspore_profiler.dll +0 -0
  133. mindspore/mindspore_pyboost.dll +0 -0
  134. mindspore/mindspore_pynative.dll +0 -0
  135. mindspore/mindspore_res_manager.dll +0 -0
  136. mindspore/mindspore_runtime_pipeline.dll +0 -0
  137. mindspore/mint/__init__.py +131 -700
  138. mindspore/mint/distributed/__init__.py +5 -1
  139. mindspore/mint/distributed/distributed.py +194 -109
  140. mindspore/mint/linalg/__init__.py +2 -0
  141. mindspore/mint/nn/__init__.py +280 -18
  142. mindspore/mint/nn/functional.py +282 -64
  143. mindspore/mint/nn/layer/__init__.py +4 -0
  144. mindspore/mint/nn/layer/_functions.py +7 -3
  145. mindspore/mint/nn/layer/activation.py +120 -13
  146. mindspore/mint/nn/layer/conv.py +218 -24
  147. mindspore/mint/nn/layer/normalization.py +15 -16
  148. mindspore/mint/nn/layer/padding.py +1 -1
  149. mindspore/mint/nn/layer/pooling.py +66 -1
  150. mindspore/mint/optim/__init__.py +2 -1
  151. mindspore/mint/optim/sgd.py +171 -0
  152. mindspore/msobj140.dll +0 -0
  153. mindspore/mspdb140.dll +0 -0
  154. mindspore/mspdbcore.dll +0 -0
  155. mindspore/mspdbst.dll +0 -0
  156. mindspore/mspft140.dll +0 -0
  157. mindspore/msvcdis140.dll +0 -0
  158. mindspore/msvcp140_1.dll +0 -0
  159. mindspore/msvcp140_2.dll +0 -0
  160. mindspore/msvcp140_atomic_wait.dll +0 -0
  161. mindspore/msvcp140_codecvt_ids.dll +0 -0
  162. mindspore/nn/__init__.py +4 -1
  163. mindspore/nn/cell.py +1250 -176
  164. mindspore/nn/layer/activation.py +23 -21
  165. mindspore/nn/layer/basic.py +22 -16
  166. mindspore/nn/layer/container.py +1 -1
  167. mindspore/nn/layer/conv.py +22 -17
  168. mindspore/nn/layer/embedding.py +9 -8
  169. mindspore/nn/layer/normalization.py +48 -42
  170. mindspore/nn/layer/pooling.py +75 -31
  171. mindspore/nn/layer/transformer.py +11 -10
  172. mindspore/nn/learning_rate_schedule.py +4 -2
  173. mindspore/nn/loss/loss.py +27 -19
  174. mindspore/nn/optim/ada_grad.py +6 -5
  175. mindspore/nn/optim/adadelta.py +9 -7
  176. mindspore/nn/optim/adafactor.py +1 -1
  177. mindspore/nn/optim/adam.py +16 -12
  178. mindspore/nn/optim/adamax.py +8 -7
  179. mindspore/nn/optim/adasum.py +5 -5
  180. mindspore/nn/optim/asgd.py +1 -1
  181. mindspore/nn/optim/ftrl.py +11 -9
  182. mindspore/nn/optim/lamb.py +1 -1
  183. mindspore/nn/optim/lazyadam.py +12 -10
  184. mindspore/nn/optim/momentum.py +7 -6
  185. mindspore/nn/optim/optimizer.py +2 -2
  186. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  187. mindspore/nn/optim/rmsprop.py +13 -12
  188. mindspore/nn/optim/rprop.py +9 -7
  189. mindspore/nn/optim/sgd.py +9 -6
  190. mindspore/nn/optim/tft_wrapper.py +5 -2
  191. mindspore/nn/probability/bijector/bijector.py +17 -11
  192. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  193. mindspore/nn/probability/bijector/invert.py +2 -2
  194. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  195. mindspore/nn/probability/bijector/softplus.py +3 -2
  196. mindspore/nn/probability/distribution/beta.py +3 -3
  197. mindspore/nn/probability/distribution/categorical.py +1 -1
  198. mindspore/nn/probability/distribution/cauchy.py +4 -2
  199. mindspore/nn/probability/distribution/exponential.py +6 -7
  200. mindspore/nn/probability/distribution/gamma.py +2 -2
  201. mindspore/nn/probability/distribution/gumbel.py +2 -2
  202. mindspore/nn/probability/distribution/half_normal.py +5 -3
  203. mindspore/nn/probability/distribution/logistic.py +5 -3
  204. mindspore/nn/probability/distribution/poisson.py +1 -1
  205. mindspore/nn/probability/distribution/uniform.py +5 -3
  206. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  207. mindspore/nn/reinforcement/tensor_array.py +1 -1
  208. mindspore/nn/wrap/__init__.py +6 -6
  209. mindspore/nn/wrap/cell_wrapper.py +178 -117
  210. mindspore/nn/wrap/grad_reducer.py +45 -36
  211. mindspore/nn/wrap/loss_scale.py +3 -3
  212. mindspore/numpy/array_creations.py +3 -3
  213. mindspore/numpy/array_ops.py +1 -1
  214. mindspore/numpy/math_ops.py +4 -4
  215. mindspore/numpy/utils.py +1 -2
  216. mindspore/numpy/utils_const.py +1 -2
  217. mindspore/opencv_core452.dll +0 -0
  218. mindspore/opencv_imgcodecs452.dll +0 -0
  219. mindspore/opencv_imgproc452.dll +0 -0
  220. mindspore/ops/__init__.py +3 -2
  221. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  222. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  223. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  224. mindspore/ops/_register_for_op.py +0 -11
  225. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  226. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  227. mindspore/ops/_vmap/vmap_array_ops.py +7 -6
  228. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  229. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  230. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  231. mindspore/ops/auto_generate/__init__.py +4 -3
  232. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
  233. mindspore/ops/auto_generate/gen_extend_func.py +281 -135
  234. mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
  235. mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
  236. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  237. mindspore/ops/composite/__init__.py +2 -1
  238. mindspore/ops/composite/base.py +19 -24
  239. mindspore/ops/composite/math_ops.py +6 -16
  240. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  241. mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
  242. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  243. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  244. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  248. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  249. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  250. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  251. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  252. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  254. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  255. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  256. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  257. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  259. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  260. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  263. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  264. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  267. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  268. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  271. mindspore/ops/function/__init__.py +28 -2
  272. mindspore/ops/function/_add_attr_func.py +58 -0
  273. mindspore/ops/function/array_func.py +1629 -2345
  274. mindspore/ops/function/clip_func.py +38 -45
  275. mindspore/ops/function/debug_func.py +36 -44
  276. mindspore/ops/function/grad/__init__.py +1 -0
  277. mindspore/ops/function/grad/grad_func.py +104 -71
  278. mindspore/ops/function/image_func.py +1 -1
  279. mindspore/ops/function/linalg_func.py +46 -78
  280. mindspore/ops/function/math_func.py +3035 -3705
  281. mindspore/ops/function/nn_func.py +676 -241
  282. mindspore/ops/function/other_func.py +159 -1
  283. mindspore/ops/function/parameter_func.py +17 -30
  284. mindspore/ops/function/random_func.py +204 -361
  285. mindspore/ops/function/reshard_func.py +4 -70
  286. mindspore/ops/function/sparse_func.py +3 -3
  287. mindspore/ops/function/sparse_unary_func.py +5 -5
  288. mindspore/ops/function/spectral_func.py +25 -58
  289. mindspore/ops/function/vmap_func.py +24 -17
  290. mindspore/ops/functional.py +6 -4
  291. mindspore/ops/functional_overload.py +547 -4
  292. mindspore/ops/op_info_register.py +32 -244
  293. mindspore/ops/operations/__init__.py +10 -5
  294. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  295. mindspore/ops/operations/_grad_ops.py +1 -10
  296. mindspore/ops/operations/_inner_ops.py +5 -76
  297. mindspore/ops/operations/_ms_kernel.py +4 -10
  298. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  299. mindspore/ops/operations/_scalar_ops.py +3 -2
  300. mindspore/ops/operations/_sequence_ops.py +1 -1
  301. mindspore/ops/operations/_tensor_array.py +1 -1
  302. mindspore/ops/operations/array_ops.py +37 -22
  303. mindspore/ops/operations/comm_ops.py +150 -107
  304. mindspore/ops/operations/custom_ops.py +221 -23
  305. mindspore/ops/operations/debug_ops.py +115 -16
  306. mindspore/ops/operations/inner_ops.py +1 -1
  307. mindspore/ops/operations/linalg_ops.py +1 -58
  308. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  309. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  310. mindspore/ops/operations/math_ops.py +21 -18
  311. mindspore/ops/operations/nn_ops.py +65 -191
  312. mindspore/ops/operations/other_ops.py +62 -9
  313. mindspore/ops/operations/random_ops.py +13 -7
  314. mindspore/ops/operations/reshard_ops.py +1 -1
  315. mindspore/ops/operations/sparse_ops.py +2 -2
  316. mindspore/ops/primitive.py +43 -32
  317. mindspore/ops/tensor_method.py +232 -13
  318. mindspore/ops_generate/__init__.py +0 -5
  319. mindspore/ops_generate/aclnn/__init__.py +0 -0
  320. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  321. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  322. mindspore/ops_generate/api/__init__.py +0 -0
  323. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  324. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  325. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  326. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  327. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  328. mindspore/ops_generate/api/gen_api.py +103 -0
  329. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  330. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  331. mindspore/ops_generate/common/__init__.py +0 -0
  332. mindspore/ops_generate/common/gen_constants.py +91 -0
  333. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  334. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  335. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  336. mindspore/ops_generate/gen_ops.py +23 -325
  337. mindspore/ops_generate/op_def/__init__.py +0 -0
  338. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  339. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  340. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
  341. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  342. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  343. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  344. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  345. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  346. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  347. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  348. mindspore/ops_generate/pyboost/__init__.py +0 -0
  349. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  350. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  351. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  352. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  353. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  354. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  355. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  356. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  357. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  358. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  359. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  360. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  361. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  362. mindspore/ops_generate/resources/__init__.py +0 -0
  363. mindspore/ops_generate/resources/resource_list.py +30 -0
  364. mindspore/ops_generate/resources/resource_loader.py +36 -0
  365. mindspore/ops_generate/resources/resource_manager.py +64 -0
  366. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  367. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  368. mindspore/parallel/__init__.py +6 -2
  369. mindspore/parallel/_auto_parallel_context.py +133 -6
  370. mindspore/parallel/_cell_wrapper.py +130 -15
  371. mindspore/parallel/_parallel_serialization.py +95 -4
  372. mindspore/parallel/_ps_context.py +1 -1
  373. mindspore/parallel/_recovery_context.py +7 -2
  374. mindspore/parallel/_tensor.py +142 -18
  375. mindspore/parallel/_utils.py +198 -25
  376. mindspore/parallel/algo_parameter_config.py +3 -3
  377. mindspore/parallel/auto_parallel.py +732 -0
  378. mindspore/parallel/checkpoint_convert.py +159 -0
  379. mindspore/parallel/checkpoint_transform.py +656 -37
  380. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  381. mindspore/parallel/cluster/run.py +1 -1
  382. mindspore/parallel/function/__init__.py +24 -0
  383. mindspore/parallel/function/reshard_func.py +259 -0
  384. mindspore/parallel/nn/__init__.py +25 -0
  385. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  386. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  387. mindspore/parallel/parameter_broadcast.py +24 -13
  388. mindspore/parallel/shard.py +137 -61
  389. mindspore/parallel/transform_safetensors.py +287 -95
  390. mindspore/pgodb140.dll +0 -0
  391. mindspore/pgort140.dll +0 -0
  392. mindspore/profiler/__init__.py +9 -5
  393. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  394. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  395. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
  397. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  398. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  399. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  400. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  401. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  402. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  403. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  404. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  405. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  406. mindspore/profiler/common/constant.py +12 -0
  407. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  408. mindspore/profiler/common/path_manager.py +24 -0
  409. mindspore/profiler/common/profiler_context.py +26 -2
  410. mindspore/profiler/common/profiler_meta_data.py +74 -0
  411. mindspore/profiler/common/profiler_parameters.py +59 -18
  412. mindspore/profiler/common/profiler_path_manager.py +66 -7
  413. mindspore/profiler/dynamic_profiler.py +112 -79
  414. mindspore/profiler/envprofiler.py +26 -1
  415. mindspore/profiler/experimental_config.py +197 -0
  416. mindspore/profiler/mstx.py +57 -14
  417. mindspore/profiler/platform/npu_profiler.py +33 -7
  418. mindspore/profiler/profiler.py +541 -45
  419. mindspore/profiler/profiler_action_controller.py +1 -1
  420. mindspore/profiler/profiler_interface.py +4 -0
  421. mindspore/profiler/schedule.py +57 -22
  422. mindspore/rewrite/api/node.py +15 -13
  423. mindspore/rewrite/api/symbol_tree.py +1 -1
  424. mindspore/run_check/_check_version.py +25 -14
  425. mindspore/run_check/run_check.py +1 -1
  426. mindspore/runtime/__init__.py +2 -2
  427. mindspore/runtime/executor.py +40 -11
  428. mindspore/runtime/memory.py +25 -8
  429. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  430. mindspore/swresample-4.dll +0 -0
  431. mindspore/swscale-6.dll +0 -0
  432. mindspore/tbbmalloc.dll +0 -0
  433. mindspore/tinyxml2.dll +0 -0
  434. mindspore/train/__init__.py +8 -8
  435. mindspore/train/_utils.py +35 -7
  436. mindspore/train/amp.py +1 -1
  437. mindspore/train/callback/__init__.py +2 -2
  438. mindspore/train/callback/_callback.py +2 -16
  439. mindspore/train/callback/_checkpoint.py +24 -40
  440. mindspore/train/callback/_cluster_monitor.py +14 -18
  441. mindspore/train/callback/_flops_collector.py +2 -3
  442. mindspore/train/callback/_history.py +7 -4
  443. mindspore/train/callback/_lambda_callback.py +2 -2
  444. mindspore/train/callback/_landscape.py +0 -3
  445. mindspore/train/callback/_loss_monitor.py +2 -1
  446. mindspore/train/callback/_on_request_exit.py +6 -5
  447. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  448. mindspore/train/callback/_summary_collector.py +8 -13
  449. mindspore/train/callback/_time_monitor.py +2 -1
  450. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
  451. mindspore/train/data_sink.py +25 -2
  452. mindspore/train/dataset_helper.py +4 -5
  453. mindspore/train/loss_scale_manager.py +8 -7
  454. mindspore/train/metrics/accuracy.py +3 -3
  455. mindspore/train/metrics/confusion_matrix.py +9 -9
  456. mindspore/train/metrics/error.py +3 -3
  457. mindspore/train/metrics/hausdorff_distance.py +4 -4
  458. mindspore/train/metrics/mean_surface_distance.py +3 -3
  459. mindspore/train/metrics/metric.py +0 -12
  460. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  461. mindspore/train/metrics/precision.py +8 -6
  462. mindspore/train/metrics/recall.py +9 -9
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  464. mindspore/train/mind_ir_pb2.py +19 -12
  465. mindspore/train/model.py +176 -103
  466. mindspore/train/serialization.py +246 -988
  467. mindspore/train/summary/_summary_adapter.py +2 -2
  468. mindspore/train/summary/summary_record.py +1 -1
  469. mindspore/turbojpeg.dll +0 -0
  470. mindspore/utils/__init__.py +3 -2
  471. mindspore/utils/dryrun.py +4 -2
  472. mindspore/utils/hooks.py +81 -0
  473. mindspore/utils/utils.py +138 -4
  474. mindspore/vcmeta.dll +0 -0
  475. mindspore/vcruntime140.dll +0 -0
  476. mindspore/vcruntime140_1.dll +0 -0
  477. mindspore/version.py +1 -1
  478. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
  479. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
  480. mindspore/_install_custom.py +0 -43
  481. mindspore/common/_register_for_adapter.py +0 -74
  482. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  483. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  484. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  485. mindspore/ops_generate/gen_constants.py +0 -190
  486. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  487. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  488. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  489. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  490. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -17,16 +17,16 @@ Generate aclnn kernelmod or call func by input name in ops.yaml
17
17
  """
18
18
  import argparse
19
19
  import os
20
- import stat
21
20
  import re
22
21
  import pathlib
23
22
  import logging
24
- import gen_utils
25
- import template
26
- from op_proto import OpProto
27
- from pyboost_utils import AclnnUtils, get_dtypes
28
- from gen_constants import MS_OPS_KERNEL_PATH
29
- import gen_constants as K
23
+ import common.gen_utils as gen_utils
24
+ import common.template as template
25
+ import common.gen_constants as K
26
+ from common.op_proto import OpProto
27
+ from common.gen_constants import MS_OPS_KERNEL_PATH
28
+ from pyboost.pyboost_utils import AclnnUtils, get_dtypes
29
+
30
30
  auto_gen = ''
31
31
 
32
32
 
@@ -37,25 +37,21 @@ def gen_h(kernelmod_name, aclnn_name, op_proto, kernelmod_h_path, need_update_sh
37
37
  if not need_update_shape:
38
38
  update_shape = "\n "
39
39
 
40
- temp_file = kernelmod_h_path + "_tmp.h"
41
- old_file = kernelmod_h_path + ".h"
42
- flags = os.O_WRONLY | os.O_CREAT
43
- mode = stat.S_IWUSR | stat.S_IRUSR
40
+ file_path = kernelmod_h_path + ".h"
44
41
  aclnn_kernel_h_str = template.ACLNN_KERNEL_H_TEMPLATE.replace(aclnn_name=aclnn_name,
45
42
  op_name=op_name.upper(),
46
43
  auto_gen=auto_gen.upper(),
47
44
  kernelmod_name=kernelmod_name,
48
45
  update_shape=update_shape,
49
46
  ops_kernel_path=MS_OPS_KERNEL_PATH)
50
- with os.fdopen(os.open(temp_file, flags, mode), 'w') as h_file:
51
- h_file.write(aclnn_kernel_h_str)
52
- gen_utils.check_change_and_replace_file(old_file, temp_file)
47
+ gen_utils.save_file(os.path.dirname(file_path), os.path.basename(file_path), aclnn_kernel_h_str)
53
48
 
54
49
 
55
50
  def gen_cc(kernelmod_name, aclnn_name, op_proto, kernelmod_cc_path, need_update_shape):
56
51
  """generate cc files"""
57
52
  op_name = op_proto.op_name
58
- tuple_tensor_not_supported = template.TUPLE_TENSOR_NOT_SUPPORTED.replace(op_name=op_name)
53
+ tuple_tensor_not_supported = template.TUPLE_TENSOR_NOT_SUPPORTED.replace(
54
+ op_name=op_name)
59
55
  input_templete = '\n '
60
56
  inputs = ''
61
57
  input_dtypes, output_dtypes, _ = get_dtypes(op_proto)
@@ -65,7 +61,7 @@ def gen_cc(kernelmod_name, aclnn_name, op_proto, kernelmod_cc_path, need_update_
65
61
  if dtype != 'tensor':
66
62
  if dtype == 'int':
67
63
  dtype = 'int64_t'
68
- input_templete += " auto {} = transform::ConvertKernelTensor<{}>(inputs[kIndex{}]);\n".format(
64
+ input_templete += " auto {} = device::ascend::ConvertKernelTensor<{}>(inputs[kIndex{}]);\n".format(
69
65
  n.arg_name, dtype, idx)
70
66
  input_name = n.arg_name + ", "
71
67
  if dtype == 'tuple[tensor]' and auto_gen == "_auto_gen":
@@ -78,7 +74,7 @@ def gen_cc(kernelmod_name, aclnn_name, op_proto, kernelmod_cc_path, need_update_
78
74
  if dtype != 'tensor':
79
75
  if dtype == 'int':
80
76
  dtype = 'int64_t'
81
- input_templete += " auto {} = transform::ConvertKernelTensor<{}>(outputs[kIndex{}]);\n".format(
77
+ input_templete += " auto {} = device::ascend::ConvertKernelTensor<{}>(outputs[kIndex{}]);\n".format(
82
78
  n.arg_name, dtype, idx)
83
79
  output_name = n.arg_name + ", "
84
80
  if dtype == 'tuple[tensor]' and auto_gen == "_auto_gen":
@@ -86,14 +82,12 @@ def gen_cc(kernelmod_name, aclnn_name, op_proto, kernelmod_cc_path, need_update_
86
82
  inputs += output_name
87
83
  inputs = inputs[:-2]
88
84
 
89
- update_shape = template.update_output_shape_and_size_template.replace(kernelmod_name=kernelmod_name)
85
+ update_shape = template.update_output_shape_and_size_template.replace(
86
+ kernelmod_name=kernelmod_name)
90
87
  if not need_update_shape:
91
88
  update_shape = ""
92
89
 
93
- temp_file = kernelmod_cc_path + "_tmp.cc"
94
- old_file = kernelmod_cc_path + ".cc"
95
- flags = os.O_WRONLY | os.O_CREAT
96
- mode = stat.S_IWUSR | stat.S_IRUSR
90
+ file_path = kernelmod_cc_path + ".cc"
97
91
  aclnn_kernel_cc_str = template.ACLNN_KERNEL_CC_TEMPLATE.replace(kernelmod_name=kernelmod_name,
98
92
  input_templete=input_templete,
99
93
  inputs=inputs,
@@ -102,9 +96,7 @@ def gen_cc(kernelmod_name, aclnn_name, op_proto, kernelmod_cc_path, need_update_
102
96
  auto_gen_path=MS_OPS_KERNEL_PATH,
103
97
  op_name=op_name,
104
98
  auto_gen=auto_gen) + " "
105
- with os.fdopen(os.open(temp_file, flags, mode), 'w') as cc_file:
106
- cc_file.write(aclnn_kernel_cc_str)
107
- gen_utils.check_change_and_replace_file(old_file, temp_file)
99
+ gen_utils.save_file(os.path.dirname(file_path), os.path.basename(file_path), aclnn_kernel_cc_str)
108
100
 
109
101
 
110
102
  def generate(kernelmod_name, class_name, op_proto, h_and_cc, need_update_shape):
@@ -119,13 +111,12 @@ def gen_aclnn_kernel(op_proto: OpProto, need_update_shape=False, auto=False):
119
111
  op_name = op_proto.op_name
120
112
  skip_aclnn_list = {"slice", "expand_dims", "squeeze", "split", "generator"}
121
113
  if op_name in skip_aclnn_list:
122
- logging.warning("Operator {%s} has no aclnn interface, no aclnn kernel will be generated.", op_name)
114
+ logging.warning(
115
+ "Operator {%s} has no aclnn interface, no aclnn kernel will be generated.", op_name)
123
116
  return
124
117
  if check_op_registed(op_proto.op_name) and not auto:
125
118
  logging.warning("Kernel {%s} is already registered.", op_name)
126
119
  return
127
- current_path = os.path.dirname(os.path.realpath(__file__))
128
- work_path = os.path.join(current_path, '../../../../')
129
120
 
130
121
  aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn/'
131
122
  # merge inner ops
@@ -133,39 +124,39 @@ def gen_aclnn_kernel(op_proto: OpProto, need_update_shape=False, auto=False):
133
124
  aclnn_name = ''.join(word.capitalize() for word in op_name.split('_'))
134
125
  kernelmod_name = op_proto.op_dispatch.ascend
135
126
  if not dispatch or not op_proto.op_dispatch.enable:
136
- raise ValueError("Op {} is not enabled dispatch, please check.".format(op_name))
127
+ raise ValueError(
128
+ "Op {} is not enabled dispatch, please check.".format(op_name))
137
129
  global auto_gen
138
130
  if auto:
139
- if check_op_registed(op_name, True):
140
- # Don't auto generate kernelmod if it is achieved manually.
141
- return
142
131
  auto_gen = "_auto_gen"
143
132
  kernelmod_name = aclnn_name + "Ascend"
144
133
  aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn_auto_gen/'
145
- pathlib.Path(os.path.join(work_path, aclnn_path)).mkdir(parents=True, exist_ok=True)
134
+ pathlib.Path(os.path.join(K.WORK_DIR, aclnn_path)
135
+ ).mkdir(parents=True, exist_ok=True)
146
136
  if dispatch.ascend is None:
147
137
  raise ValueError("KernelMod {} is auto generated. If need achieve it, "
148
138
  "please provide the KernelMod name in dispatch.".format(op_name))
149
139
  op_class = op_proto.op_class
150
140
  if op_class is not None and op_class.name is not None:
151
141
  aclnn_name = op_class.name
152
- kernelmod_h_and_cc_path = os.path.join(work_path, aclnn_path + '{}_aclnn_kernel'.format(op_name))
153
- generate(kernelmod_name, aclnn_name, op_proto, kernelmod_h_and_cc_path, need_update_shape)
142
+ kernelmod_h_and_cc_path = os.path.join(
143
+ K.WORK_DIR, aclnn_path + '{}_aclnn_kernel'.format(op_name))
144
+ generate(kernelmod_name, aclnn_name, op_proto,
145
+ kernelmod_h_and_cc_path, need_update_shape)
154
146
 
155
147
 
156
148
  def get_registed_ops(file_path=f'{MS_OPS_KERNEL_PATH}/ascend/opapi/'):
157
149
  '''get registered ops by search files'''
158
150
  # default search in 'ops/kernel/ascend/opapi/'
159
- current_path = os.path.dirname(os.path.realpath(__file__))
160
- work_path = os.path.join(current_path, '../../../../')
161
- search_path = os.path.join(work_path, file_path)
151
+ search_path = os.path.join(K.WORK_DIR, file_path)
162
152
  ret = []
163
153
  try:
164
154
  for root_path, _, files in os.walk(search_path):
165
155
  for file_name in files:
166
156
  with open(os.path.join(root_path, file_name), "r") as f:
167
157
  file_context = f.read()
168
- search_re = re.search(r"(?<=KERNEL_FACTORY_REG\()\w+(?=,)", file_context)
158
+ search_re = re.search(
159
+ r"(?<=KERNEL_FACTORY_REG\()\w+(?=,)", file_context)
169
160
  if search_re:
170
161
  ret.append(search_re.group())
171
162
  except OSError:
@@ -175,7 +166,8 @@ def get_registed_ops(file_path=f'{MS_OPS_KERNEL_PATH}/ascend/opapi/'):
175
166
 
176
167
 
177
168
  registed_ops = get_registed_ops()
178
- manual_registed_ops = get_registed_ops(f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn/')
169
+ manual_registed_ops = get_registed_ops(
170
+ f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn/')
179
171
 
180
172
 
181
173
  def check_op_registed(op_name, manual=False):
@@ -186,9 +178,7 @@ def check_op_registed(op_name, manual=False):
186
178
 
187
179
  def generate_aclnn_reg_code(yaml_data):
188
180
  """generate aclnn register code"""
189
- current_path = os.path.dirname(os.path.realpath(__file__))
190
- work_path = os.path.join(current_path, '../../../../')
191
- ops_yaml_path = os.path.join(work_path, K.PY_OPS_GEN_PATH, "ops.yaml")
181
+ ops_yaml_path = os.path.join(K.WORK_DIR, K.PY_OPS_GEN_PATH, "ops.yaml")
192
182
  yaml_str = gen_utils.safe_load_yaml(ops_yaml_path)
193
183
 
194
184
  reg_code = f"""
@@ -205,17 +195,20 @@ namespace kernel {{
205
195
  if Ascend is not None: # KernelMod is provided by yaml, don't auto generate it.
206
196
  continue
207
197
  if check_op_registed(operator_name):
208
- logging.warning("Kernel {%s} is already registered.", operator_name)
198
+ logging.warning(
199
+ "Kernel {%s} is already registered.", operator_name)
209
200
  continue
210
201
  _, _, none_tensor_exist = get_dtypes(operator_data)
211
202
  if none_tensor_exist:
212
203
  gen_aclnn_kernel(operator_name, yaml_str, auto=True)
213
204
  continue
214
- class_name = ''.join(word.capitalize() for word in operator_name.split('_'))
205
+ class_name = ''.join(word.capitalize()
206
+ for word in operator_name.split('_'))
215
207
  op_class = operator_data.get("class")
216
208
  if op_class and op_class.get("name") is not None:
217
209
  class_name = op_class.get("name")
218
- inputs_outputs_num = len(operator_data.get("args")) + len(operator_data.get("returns"))
210
+ inputs_outputs_num = len(operator_data.get(
211
+ "args")) + len(operator_data.get("returns"))
219
212
  aclnn_name = AclnnUtils.get_aclnn_interface(class_name)
220
213
  reg_code += f"""
221
214
  MS_ACLNN_COMMON_KERNEL_FACTORY_REG({class_name}, {aclnn_name}, {inputs_outputs_num});"""
@@ -230,10 +223,13 @@ def generate_aclnn_reg_file(work_path, yaml_str):
230
223
  """
231
224
  Generate nnacl kernelmod register
232
225
  """
233
- tmp_register_file = work_path + f'{MS_OPS_KERNEL_PATH}/ascend/opapi/tmp_aclnn_kernel_register.cc'
234
- register_file = work_path + f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn_kernel_register_auto.cc'
226
+ tmp_register_file = work_path + \
227
+ f'{MS_OPS_KERNEL_PATH}/ascend/opapi/tmp_aclnn_kernel_register.cc'
228
+ register_file = work_path + \
229
+ f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn_kernel_register_auto.cc'
235
230
  reg_code = generate_aclnn_reg_code(yaml_str)
236
- gen_utils.write_file(tmp_register_file, gen_utils.cc_license_str + reg_code)
231
+ gen_utils.save_file(
232
+ os.path.dirname(tmp_register_file), os.path.basename(tmp_register_file), gen_utils.cc_license_str + reg_code)
237
233
  gen_utils.check_change_and_replace_file(register_file, tmp_register_file)
238
234
 
239
235
 
@@ -243,7 +239,8 @@ def main(op_name, need_update_shape):
243
239
 
244
240
 
245
241
  parser = argparse.ArgumentParser(description="Generate aclnn KernelMod.")
246
- parser.add_argument('-n', '--name', type=str, default=None, help='Kernel name in yaml.')
242
+ parser.add_argument('-n', '--name', type=str, default=None,
243
+ help='Kernel name in yaml.')
247
244
  parser.add_argument('-d', '--need_update_shape', type=bool, default=False,
248
245
  help="Some kernel like:unique need update shape and size after launch. Default: False")
249
246
  options, _ = parser.parse_known_args()
@@ -252,7 +249,8 @@ if __name__ == "__main__":
252
249
  try:
253
250
  name = options.name
254
251
  if name is None:
255
- raise ValueError("Please provide op name to generate aclnn kernelmod.")
252
+ raise ValueError(
253
+ "Please provide op name to generate aclnn kernelmod.")
256
254
  is_need_update_shape = options.need_update_shape
257
255
  main(name, is_need_update_shape)
258
256
  except Exception as e: # pylint: disable=W0703
File without changes
@@ -17,11 +17,11 @@ Generates mindspore/common/_tensor_docs.py that attaches docs to tensor func API
17
17
  """
18
18
 
19
19
  import os
20
- import gen_constants as K
21
- from gen_utils import save_file
22
- import template
23
- from template import Template
24
- from base_generator import BaseGenerator
20
+ import common.gen_constants as K
21
+ from common.gen_utils import save_file, safe_load_yaml_from_dir
22
+ import common.template as template
23
+ from common.template import Template
24
+ from common.base_generator import BaseGenerator
25
25
 
26
26
 
27
27
  class AddTensorDocsGenerator(BaseGenerator):
@@ -32,8 +32,9 @@ class AddTensorDocsGenerator(BaseGenerator):
32
32
  def __init__(self):
33
33
  self.ADD_TENSOR_DOCS_TEMPLATE = template.ADD_TENSOR_DOCS_TEMPLATE
34
34
  self.attach_single_docstr_template = Template('attach_docstr("${api_name}", r"""${docstr}""")')
35
+ self.tensor_method_doc_yaml_dir_path = os.path.join(K.WORK_DIR, K.MS_TENSOR_METHOD_DOC_YAML_PATH)
35
36
 
36
- def generate(self, work_path, tensor_docs_data):
37
+ def generate(self):
37
38
  """
38
39
  Generates the content for the helper file and saves it to the specified path.
39
40
 
@@ -45,10 +46,11 @@ class AddTensorDocsGenerator(BaseGenerator):
45
46
  None
46
47
  """
47
48
  add_doc_statements = []
49
+ tensor_docs_data = safe_load_yaml_from_dir(self.tensor_method_doc_yaml_dir_path)
48
50
  for api_name, tensor_doc in tensor_docs_data.items():
49
51
  single_add_doc_statement = self.attach_single_docstr_template.replace(api_name=api_name,
50
52
  docstr=tensor_doc['description'])
51
53
  single_add_doc_statement += template.NEW_LINE
52
54
  add_doc_statements.append(single_add_doc_statement)
53
55
  _tensor_docs_py_str = self.ADD_TENSOR_DOCS_TEMPLATE.replace(add_doc_statements=add_doc_statements)
54
- save_file(os.path.join(work_path, K.ADD_TENSOR_DOCS_PY_PATH), "_tensor_docs.py", _tensor_docs_py_str)
56
+ save_file(os.path.join(K.WORK_DIR, K.ADD_TENSOR_DOCS_PY_PATH), "_tensor_docs.py", _tensor_docs_py_str)
@@ -18,14 +18,11 @@ Generates C++ helper files for primitive instance creation based on operator met
18
18
 
19
19
  import os
20
20
 
21
- import gen_constants as K
22
- import gen_utils
23
- import pyboost_utils
24
-
25
- # refactored
26
- import template
27
-
28
- from base_generator import BaseGenerator
21
+ import common.gen_constants as K
22
+ import common.gen_utils as gen_utils
23
+ import common.template as template
24
+ from common.base_generator import BaseGenerator
25
+ from pyboost import pyboost_utils
29
26
 
30
27
 
31
28
  class CppCreatePrimInstanceHelperGenerator(BaseGenerator):
@@ -56,7 +53,7 @@ class CppCreatePrimInstanceHelperGenerator(BaseGenerator):
56
53
  """
57
54
  py_arg_default = self.generate_op_arg_default_value(op_protos)
58
55
  py_labels = self.generate_op_labels(op_protos)
59
- res_str = (template.PY_LICENCE_STR + py_arg_default + py_labels)
56
+ res_str = (template.PY_LICENSE_STR + py_arg_default + py_labels)
60
57
 
61
58
  save_path = os.path.join(work_path, K.PY_AUTO_GEN_PATH)
62
59
  file_name = "cpp_create_prim_instance_helper.py"
@@ -17,11 +17,12 @@ Generates C++ functional map header files for graph mode.
17
17
  """
18
18
 
19
19
  import os
20
- import template
21
- import pyboost_utils
22
- import gen_constants as K
23
- from gen_utils import save_file
24
- from base_generator import BaseGenerator
20
+
21
+ import common.gen_constants as K
22
+ import common.template as template
23
+ from common.gen_utils import save_file, OrderedSet
24
+ from common.base_generator import BaseGenerator
25
+ from pyboost import pyboost_utils
25
26
 
26
27
 
27
28
  class FunctionalMapCppGenerator(BaseGenerator):
@@ -79,9 +80,11 @@ class FunctionalMapCppGenerator(BaseGenerator):
79
80
  Returns:
80
81
  None
81
82
  """
83
+ ops_inc_head_set = set()
82
84
  dep_method_decl_list = self._get_dep_method_decl_list(tensor_method_protos_data)
83
- tensor_method_overload_list = self._get_functional_method_map(tensor_method_protos_data, alias_func_mapping)
84
- mint_overload_list = self._get_functional_mint_map(mint_func_protos_data, alias_func_mapping)
85
+ tensor_method_overload_list, op_inc_1 = self._get_functional_method_map(tensor_method_protos_data,
86
+ alias_func_mapping)
87
+ mint_overload_list, op_inc_2 = self._get_functional_mint_map(mint_func_protos_data, alias_func_mapping)
85
88
  tensor_method_kw_only_args_list = self._get_tensor_method_kwonlyargs_map(tensor_method_protos_data)
86
89
  mint_kw_only_args_list = self._get_mint_kwonlyargs_map(mint_func_protos_data, alias_func_mapping)
87
90
  tensor_varargs_map_list = self._get_tensor_varargs_map_list(tensor_method_protos_data)
@@ -90,8 +93,12 @@ class FunctionalMapCppGenerator(BaseGenerator):
90
93
  self._get_func_sigs_list(tensor_method_protos_data, alias_func_mapping, is_tensor_method=True))
91
94
  funcs_mint_sigs_map = (
92
95
  self._get_func_sigs_list(mint_func_protos_data, alias_func_mapping, is_tensor_method=False))
96
+ merge_op_inc = op_inc_1 | op_inc_2
97
+ for op_inc in merge_op_inc:
98
+ ops_inc_head_set.add(template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_inc[0].lower()))
93
99
  functional_map_cc_code = (
94
- self.FUNCTIONAL_MAP_CC_TEMPLATE.replace(deprecated_method_decl=dep_method_decl_list,
100
+ self.FUNCTIONAL_MAP_CC_TEMPLATE.replace(ops_inc=list(sorted(ops_inc_head_set)),
101
+ deprecated_method_decl=dep_method_decl_list,
95
102
  tensor_method_map=tensor_method_overload_list,
96
103
  mint_map=mint_overload_list,
97
104
  tensor_method_kwonlyargs_map=tensor_method_kw_only_args_list,
@@ -100,7 +107,7 @@ class FunctionalMapCppGenerator(BaseGenerator):
100
107
  mint_varargs_map=mint_varargs_map_list,
101
108
  tensor_method_sigs_map=funcs_sig_map_list,
102
109
  mint_sigs_map=funcs_mint_sigs_map))
103
- save_path = os.path.join(work_path, K.PIPELINE_PYBOOST_FUNC_GEN_PATH)
110
+ save_path = os.path.join(work_path, K.FUNCTIONAL_OVERLOAD_GEN_PATH)
104
111
  save_file(save_path, "functional_map.cc", functional_map_cc_code)
105
112
  save_file(save_path, "functional_map.h", self.FUNCTIONAL_MAP_H_TEMPLATE.replace())
106
113
 
@@ -138,7 +145,7 @@ class FunctionalMapCppGenerator(BaseGenerator):
138
145
  Returns:
139
146
  str: Generated function signatures string.
140
147
  """
141
- sig_set = set()
148
+ sig_set = OrderedSet()
142
149
  for tensor_proto in func_protos:
143
150
  sig_set.add(self._generate_single_signature_str(func_api_name, tensor_proto, is_tensor_method))
144
151
  sig_list = list(sig_set)
@@ -312,6 +319,8 @@ class FunctionalMapCppGenerator(BaseGenerator):
312
319
  list: A list of strings, each representing a functional method map.
313
320
  """
314
321
 
322
+ op_inc_set = set()
323
+
315
324
  def get_sort_func_method_list(func_protos):
316
325
  """
317
326
  Retrieves a sorted list of operator primitives, prioritizing deprecated operators.
@@ -323,6 +332,7 @@ class FunctionalMapCppGenerator(BaseGenerator):
323
332
  func_method_list.append(k_op_name)
324
333
  else:
325
334
  func_method_list.append(self.k_prim_op_template.replace(camel_op_name=k_op_name))
335
+ op_inc_set.add(k_op_name)
326
336
 
327
337
  func_method_list.sort(key=lambda x: x.startswith("Deprecated"), reverse=True)
328
338
  return func_method_list
@@ -340,13 +350,15 @@ class FunctionalMapCppGenerator(BaseGenerator):
340
350
  self.functional_method_map_template.replace(op_name=alias,
341
351
  sort_func_method_list_str=sort_func_method_list))
342
352
 
343
- return deprecated_method_decl_list
353
+ return deprecated_method_decl_list, op_inc_set
344
354
 
345
355
  def _get_functional_mint_map(self, mint_func_protos_data, alias_func_mapping):
346
356
  """
347
357
  mint_func_protos_data (dict): A dictionary mapping mint API names to their prototype data.
348
358
  """
349
359
 
360
+ op_inc_set = set()
361
+
350
362
  def get_mint_func_list(func_protos):
351
363
  """
352
364
  Retrieves a sorted list of operator primitives, prioritizing deprecated operators.
@@ -355,6 +367,7 @@ class FunctionalMapCppGenerator(BaseGenerator):
355
367
  for func_proto in func_protos:
356
368
  k_op_name = pyboost_utils.get_op_name(func_proto.op_proto.op_name, func_proto.op_proto.op_class.name)
357
369
  func_method_list.append(self.k_prim_op_template.replace(camel_op_name=k_op_name))
370
+ op_inc_set.add(k_op_name)
358
371
 
359
372
  return func_method_list
360
373
 
@@ -369,7 +382,7 @@ class FunctionalMapCppGenerator(BaseGenerator):
369
382
  mint_func_decl_list.append(
370
383
  self.functional_method_map_template.replace(op_name=alias,
371
384
  sort_func_method_list_str=mint_func_list))
372
- return mint_func_decl_list
385
+ return mint_func_decl_list, op_inc_set
373
386
 
374
387
  def _get_and_append_single_op_kw_only_args_list(self, func_protos, single_op_kw_only_args_list):
375
388
  """
@@ -21,12 +21,12 @@ constants for operator names based on given prototypes.
21
21
 
22
22
  import os
23
23
 
24
- import gen_constants as K
25
- import gen_utils
26
- import template
27
- from template import Template
24
+ import common.gen_constants as K
25
+ import common.gen_utils as gen_utils
26
+ import common.template as template
27
+ from common.template import Template
28
28
 
29
- from base_generator import BaseGenerator
29
+ from common.base_generator import BaseGenerator
30
30
 
31
31
 
32
32
  class FunctionalOverloadPyGenerator(BaseGenerator):
@@ -40,6 +40,7 @@ class FunctionalOverloadPyGenerator(BaseGenerator):
40
40
  """
41
41
  self.FUNCTIONAL_OVERLOAD_PY_TEMPLATE = template.FUNCTIONAL_OVERLOAD_PY_TEMPLATE
42
42
 
43
+ self.mint_func_doc_yaml_dir_path = os.path.join(K.WORK_DIR, K.MS_MINT_FUNC_DOC_YAML_PATH)
43
44
  self.import_mint_template = Template("from mindspore._c_expression import _${cpp_func_name}_instance\n")
44
45
  self.mint_def_template = Template(
45
46
  'def ${mint_func_name}(*args, **kwargs):\n'
@@ -47,7 +48,7 @@ class FunctionalOverloadPyGenerator(BaseGenerator):
47
48
  ' return _${cpp_func_name}_instance(*args, **kwargs)\n\n\n'
48
49
  )
49
50
 
50
- def generate(self, work_path, mint_func_protos_data, function_doc_data, alias_api_mapping):
51
+ def generate(self, work_path, mint_func_protos_data, alias_api_mapping):
51
52
  """
52
53
  Generates python code for operator names and saves it to a header file.
53
54
 
@@ -56,6 +57,7 @@ class FunctionalOverloadPyGenerator(BaseGenerator):
56
57
  function_doc_data (dict): A dictionary mapping function names to their docstring data.
57
58
  alias_api_mapping (dict): A dictionary mapping aliases to their prototype data.
58
59
  """
60
+ function_doc_data = gen_utils.safe_load_yaml_from_dir(self.mint_func_doc_yaml_dir_path)
59
61
  validate_func_docs(mint_func_protos_data, function_doc_data, alias_api_mapping)
60
62
  import_mint_list, mint_init_list, mint_def_list, add_to_all_list = [], [], [], []
61
63
  for mint_api_name, _ in mint_func_protos_data.items():
@@ -18,12 +18,12 @@ This module provides classes for generating C++ header and implementation files
18
18
 
19
19
  import os
20
20
 
21
- import template
22
- from template import Template
23
- import gen_constants as K
24
- from gen_utils import save_file
25
- from base_generator import BaseGenerator
26
- from pyboost_utils import is_optional_param, get_input_dtype, get_return_type
21
+ import common.template as template
22
+ from common.template import Template
23
+ import common.gen_constants as K
24
+ from common.gen_utils import save_file
25
+ from common.base_generator import BaseGenerator
26
+ from pyboost.pyboost_utils import is_optional_param, get_input_dtype, get_return_type
27
27
 
28
28
 
29
29
  class FunctionsHeaderGenerator(BaseGenerator):
@@ -57,7 +57,7 @@ class FunctionsHeaderGenerator(BaseGenerator):
57
57
  return_type=return_type_str)
58
58
  functions_list.append(functions)
59
59
  pyboost_func_h_str = self.FUNCTIONS_H_TEMPLATE.replace(op_call_with_grad=functions_list)
60
- save_path = os.path.join(work_path, K.MS_OPS_KERNEL_FUNCTIONS_AUTO_GEN_PATH)
60
+ save_path = os.path.join(work_path, K.MS_PYBOOST_FUNCTIONS_AUTO_GEN_PATH)
61
61
  file_name = "functions.h"
62
62
  save_file(save_path, file_name, pyboost_func_h_str)
63
63
 
@@ -90,7 +90,7 @@ class FunctionsGenerator(BaseGenerator):
90
90
  self.FUNCTIONS_CC_TEMPLATE = template.FUNCTIONS_CC_TEMPLATE
91
91
  self.FUNCTION_BODY_TEMPLATE = template.FUNCTION_BODY_TEMPLATE
92
92
  self.pyboost_func_include_header_template = Template(
93
- f'#include "{K.MS_COMMON_PYBOOST_KERNEL_PATH}/auto_generate/${{operator_name}}.h"\n'
93
+ f'#include "{K.MS_PYBOOST_BASE_PATH}/auto_generate/${{operator_name}}.h"\n'
94
94
  )
95
95
  self.clone_inplace_input_template = Template(
96
96
  'GetCloneFunc()(op, prim::kPrim${class_name}, device_target, {${grad_args}});'
@@ -106,15 +106,19 @@ class FunctionsGenerator(BaseGenerator):
106
106
  """
107
107
  func_include_headers_list = []
108
108
  op_call_with_grad_list = []
109
+ ops_inc_head_set = set()
109
110
  for op_proto in op_protos:
110
111
  if op_proto.op_dispatch is None or op_proto.op_dispatch.is_comm_op:
111
112
  continue
112
113
  func_include_headers_list.append(
113
114
  self.pyboost_func_include_header_template.replace(operator_name=op_proto.op_name))
114
115
  op_call_with_grad_list.append(self._get_function_body(op_proto))
116
+ ops_inc_head_set.add(
117
+ template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_proto.op_class.name[0].lower()))
115
118
  pyboost_func_h_str = self.FUNCTIONS_CC_TEMPLATE.replace(op_call_with_grad=op_call_with_grad_list,
116
- pyboost_op_header_include=func_include_headers_list)
117
- save_path = os.path.join(work_path, K.MS_OPS_KERNEL_FUNCTIONS_AUTO_GEN_PATH)
119
+ pyboost_op_header_include=func_include_headers_list,
120
+ ops_inc=list(sorted(ops_inc_head_set)))
121
+ save_path = os.path.join(work_path, K.MS_PYBOOST_FUNCTIONS_AUTO_GEN_PATH)
118
122
  file_name = "functions.cc"
119
123
  save_file(save_path, file_name, pyboost_func_h_str)
120
124
 
@@ -0,0 +1,103 @@
1
+ # Copyright 2025 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
+ Generate api definition files
17
+ """
18
+ import copy
19
+
20
+ from resources.resource_list import ResourceType
21
+ from common import gen_constants as K
22
+ from tensor_py_cc_generator import TensorPyCppGenerator
23
+
24
+ from .tensor_func_reg_cpp_generator import TensorFuncRegCppGenerator
25
+ from .functional_map_cpp_generator import FunctionalMapCppGenerator
26
+ from .add_tensor_docs_generator import AddTensorDocsGenerator
27
+ from .functional_overload_py_generator import FunctionalOverloadPyGenerator
28
+ from .cpp_create_prim_instance_helper_generator import CppCreatePrimInstanceHelperGenerator
29
+
30
+
31
+ def gen_tensor_func_code(work_path, op_protos, func_protos, alias_api_mapping):
32
+ generator = TensorFuncRegCppGenerator()
33
+ generator.generate(work_path, op_protos, func_protos, alias_api_mapping)
34
+
35
+
36
+ def gen_functional_map_code(work_path, tensor_method_protos, mint_func_protos, alias_api_mapping):
37
+ generator = FunctionalMapCppGenerator()
38
+ generator.generate(work_path, tensor_method_protos, mint_func_protos, alias_api_mapping)
39
+
40
+
41
+ def gen_tensor_docs_code():
42
+ generator = AddTensorDocsGenerator()
43
+ generator.generate()
44
+
45
+
46
+ def gen_functional_overload_py(work_path, mint_func_protos, alias_api_mapping):
47
+ generator = FunctionalOverloadPyGenerator()
48
+ generator.generate(work_path, mint_func_protos, alias_api_mapping)
49
+
50
+
51
+ def gen_tensor_py_cc(work_path, tensor_method_protos, alias_api_mapping):
52
+ generator = TensorPyCppGenerator()
53
+ generator.generate(work_path, tensor_method_protos, alias_api_mapping)
54
+
55
+
56
+ def generate_create_instance_helper_file(resource_mgr):
57
+ """
58
+ Generate C++ helper file from yaml.
59
+ """
60
+ op_protos = resource_mgr.get_resource(ResourceType.OP_PROTO)
61
+ tensor_method_protos = resource_mgr.get_resource(ResourceType.TENSOR_METHOD_PROTOS)
62
+ op_protos_with_deprecated = get_tensor_op_protos_with_deprecated(tensor_method_protos, op_protos)
63
+ generator = CppCreatePrimInstanceHelperGenerator()
64
+ generator.generate(K.WORK_DIR, op_protos_with_deprecated)
65
+
66
+
67
+ def get_tensor_op_protos_with_deprecated(func_protos, op_protos):
68
+ """
69
+ Get op_protos with deprecated op_protos from func_protos.
70
+ """
71
+ tensor_op_protos = copy.deepcopy(op_protos)
72
+ for _, item in func_protos.items():
73
+ for func_proto in item:
74
+ op_name = func_proto.op_proto.op_name
75
+ if "deprecated" in func_proto.op_proto.op_name:
76
+ func_proto.op_proto.op_class.name = ''.join(word.capitalize() for word in op_name.split('_'))
77
+ if func_proto.op_proto.op_name[-1] == '_':
78
+ func_proto.op_proto.op_class.name += '_'
79
+ tensor_op_protos.append(func_proto.op_proto)
80
+ return tensor_op_protos
81
+
82
+
83
+ def generate_api_files(resource_mgr):
84
+ """
85
+ Generate api-related files.
86
+ """
87
+ work_path = K.WORK_DIR
88
+ op_protos = resource_mgr.get_resource(ResourceType.OP_PROTO)
89
+ tensor_method_protos = resource_mgr.get_resource(ResourceType.TENSOR_METHOD_PROTOS)
90
+ mint_func_protos = resource_mgr.get_resource(ResourceType.MINT_FUNC_PROTOS)
91
+ alias_api_mapping = resource_mgr.get_resource(ResourceType.ALIAS_API_MAPPING)
92
+ # generate create prim instance helper file
93
+ generate_create_instance_helper_file(resource_mgr)
94
+ # generate tensor_py func code
95
+ gen_tensor_func_code(work_path, op_protos, tensor_method_protos, alias_api_mapping)
96
+ # generate functional map code
97
+ gen_functional_map_code(work_path, tensor_method_protos, mint_func_protos, alias_api_mapping)
98
+ # generate _tensor_docs.py that attaches docs to tensor func APIs when import mindspore
99
+ gen_tensor_docs_code()
100
+ # generate functional_overload.py which init pybind mint APIs from cpp
101
+ gen_functional_overload_py(work_path, mint_func_protos, alias_api_mapping)
102
+ # generate tensor_py.cc
103
+ gen_tensor_py_cc(work_path, tensor_method_protos, alias_api_mapping)