mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0__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 (493) 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 +25 -194
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +109 -75
  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 +2014 -3386
  46. mindspore/common/api.py +386 -355
  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/generator.py +3 -0
  52. mindspore/common/hook_handle.py +5 -3
  53. mindspore/common/initializer.py +10 -6
  54. mindspore/common/jit_begin_end.py +94 -0
  55. mindspore/common/jit_config.py +6 -1
  56. mindspore/common/jit_context.py +76 -0
  57. mindspore/common/jit_trace.py +378 -0
  58. mindspore/common/lazy_inline.py +2 -2
  59. mindspore/common/mutable.py +5 -4
  60. mindspore/common/parameter.py +106 -39
  61. mindspore/common/seed.py +2 -2
  62. mindspore/common/sparse_tensor.py +23 -17
  63. mindspore/common/tensor.py +332 -714
  64. mindspore/communication/__init__.py +7 -5
  65. mindspore/communication/_comm_helper.py +47 -2
  66. mindspore/communication/comm_func.py +70 -53
  67. mindspore/communication/management.py +83 -17
  68. mindspore/context.py +228 -571
  69. mindspore/dataset/__init__.py +44 -20
  70. mindspore/dataset/audio/__init__.py +2 -8
  71. mindspore/dataset/audio/transforms.py +3 -17
  72. mindspore/dataset/core/config.py +3 -3
  73. mindspore/dataset/engine/cache_client.py +1 -1
  74. mindspore/dataset/engine/datasets.py +102 -120
  75. mindspore/dataset/engine/datasets_audio.py +22 -22
  76. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  77. mindspore/dataset/engine/datasets_text.py +78 -85
  78. mindspore/dataset/engine/datasets_user_defined.py +109 -77
  79. mindspore/dataset/engine/datasets_vision.py +111 -108
  80. mindspore/dataset/engine/iterators.py +5 -3
  81. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  82. mindspore/dataset/engine/samplers.py +279 -57
  83. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  84. mindspore/dataset/engine/validators.py +10 -0
  85. mindspore/dataset/text/__init__.py +7 -6
  86. mindspore/dataset/text/transforms.py +6 -5
  87. mindspore/dataset/text/utils.py +3 -3
  88. mindspore/dataset/transforms/__init__.py +0 -9
  89. mindspore/dataset/transforms/transforms.py +3 -3
  90. mindspore/dataset/utils/browse_dataset.py +1 -1
  91. mindspore/dataset/vision/__init__.py +2 -9
  92. mindspore/dataset/vision/transforms.py +202 -158
  93. mindspore/dataset/vision/utils.py +7 -5
  94. mindspore/device_context/ascend/op_debug.py +60 -1
  95. mindspore/device_context/ascend/op_tuning.py +0 -4
  96. mindspore/device_manager.py +39 -3
  97. mindspore/dnnl.dll +0 -0
  98. mindspore/dpcmi.dll +0 -0
  99. mindspore/experimental/es/embedding_service.py +35 -27
  100. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +0 -2
  101. mindspore/experimental/map_parameter.py +4 -4
  102. mindspore/experimental/optim/adadelta.py +22 -26
  103. mindspore/experimental/optim/adagrad.py +4 -4
  104. mindspore/experimental/optim/adam.py +4 -0
  105. mindspore/experimental/optim/adamax.py +4 -4
  106. mindspore/experimental/optim/adamw.py +4 -0
  107. mindspore/experimental/optim/asgd.py +1 -1
  108. mindspore/experimental/optim/lr_scheduler.py +40 -22
  109. mindspore/experimental/optim/radam.py +5 -5
  110. mindspore/experimental/optim/rprop.py +1 -1
  111. mindspore/experimental/optim/sgd.py +1 -1
  112. mindspore/hal/contiguous_tensors_handle.py +6 -10
  113. mindspore/hal/device.py +55 -81
  114. mindspore/hal/event.py +38 -55
  115. mindspore/hal/memory.py +115 -147
  116. mindspore/hal/stream.py +81 -125
  117. mindspore/include/dataset/constants.h +7 -4
  118. mindspore/include/dataset/execute.h +2 -2
  119. mindspore/jpeg62.dll +0 -0
  120. mindspore/log.py +40 -2
  121. mindspore/mindrecord/__init__.py +20 -7
  122. mindspore/mindspore_backend_common.dll +0 -0
  123. mindspore/mindspore_backend_manager.dll +0 -0
  124. mindspore/mindspore_common.dll +0 -0
  125. mindspore/mindspore_core.dll +0 -0
  126. mindspore/mindspore_dump.dll +0 -0
  127. mindspore/mindspore_frontend.dll +0 -0
  128. mindspore/mindspore_glog.dll +0 -0
  129. mindspore/mindspore_memory_pool.dll +0 -0
  130. mindspore/mindspore_ms_backend.dll +0 -0
  131. mindspore/mindspore_ops.dll +0 -0
  132. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  133. mindspore/mindspore_ops_kernel_common.dll +0 -0
  134. mindspore/mindspore_profiler.dll +0 -0
  135. mindspore/mindspore_pyboost.dll +0 -0
  136. mindspore/mindspore_pynative.dll +0 -0
  137. mindspore/mindspore_res_manager.dll +0 -0
  138. mindspore/mindspore_runtime_pipeline.dll +0 -0
  139. mindspore/mint/__init__.py +133 -702
  140. mindspore/mint/distributed/__init__.py +5 -1
  141. mindspore/mint/distributed/distributed.py +198 -113
  142. mindspore/mint/linalg/__init__.py +2 -0
  143. mindspore/mint/nn/__init__.py +280 -18
  144. mindspore/mint/nn/functional.py +282 -64
  145. mindspore/mint/nn/layer/__init__.py +4 -0
  146. mindspore/mint/nn/layer/_functions.py +7 -3
  147. mindspore/mint/nn/layer/activation.py +120 -13
  148. mindspore/mint/nn/layer/conv.py +234 -28
  149. mindspore/mint/nn/layer/normalization.py +15 -16
  150. mindspore/mint/nn/layer/padding.py +1 -1
  151. mindspore/mint/nn/layer/pooling.py +66 -1
  152. mindspore/mint/optim/__init__.py +2 -1
  153. mindspore/mint/optim/sgd.py +171 -0
  154. mindspore/msobj140.dll +0 -0
  155. mindspore/mspdb140.dll +0 -0
  156. mindspore/mspdbcore.dll +0 -0
  157. mindspore/mspdbst.dll +0 -0
  158. mindspore/mspft140.dll +0 -0
  159. mindspore/msvcdis140.dll +0 -0
  160. mindspore/msvcp140_1.dll +0 -0
  161. mindspore/msvcp140_2.dll +0 -0
  162. mindspore/msvcp140_atomic_wait.dll +0 -0
  163. mindspore/msvcp140_codecvt_ids.dll +0 -0
  164. mindspore/nn/__init__.py +4 -1
  165. mindspore/nn/cell.py +1253 -179
  166. mindspore/nn/layer/activation.py +23 -21
  167. mindspore/nn/layer/basic.py +22 -16
  168. mindspore/nn/layer/container.py +1 -1
  169. mindspore/nn/layer/conv.py +53 -42
  170. mindspore/nn/layer/embedding.py +9 -8
  171. mindspore/nn/layer/normalization.py +48 -42
  172. mindspore/nn/layer/pooling.py +75 -31
  173. mindspore/nn/layer/transformer.py +11 -10
  174. mindspore/nn/learning_rate_schedule.py +4 -2
  175. mindspore/nn/loss/loss.py +27 -19
  176. mindspore/nn/optim/ada_grad.py +6 -5
  177. mindspore/nn/optim/adadelta.py +9 -7
  178. mindspore/nn/optim/adafactor.py +1 -1
  179. mindspore/nn/optim/adam.py +18 -14
  180. mindspore/nn/optim/adamax.py +8 -7
  181. mindspore/nn/optim/adasum.py +5 -5
  182. mindspore/nn/optim/asgd.py +3 -1
  183. mindspore/nn/optim/ftrl.py +11 -9
  184. mindspore/nn/optim/lamb.py +1 -1
  185. mindspore/nn/optim/lazyadam.py +12 -10
  186. mindspore/nn/optim/momentum.py +7 -6
  187. mindspore/nn/optim/optimizer.py +2 -2
  188. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  189. mindspore/nn/optim/rmsprop.py +13 -12
  190. mindspore/nn/optim/rprop.py +9 -7
  191. mindspore/nn/optim/sgd.py +9 -6
  192. mindspore/nn/optim/tft_wrapper.py +5 -2
  193. mindspore/nn/probability/bijector/bijector.py +17 -11
  194. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  195. mindspore/nn/probability/bijector/invert.py +2 -2
  196. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  197. mindspore/nn/probability/bijector/softplus.py +3 -2
  198. mindspore/nn/probability/distribution/beta.py +3 -3
  199. mindspore/nn/probability/distribution/categorical.py +1 -1
  200. mindspore/nn/probability/distribution/cauchy.py +4 -2
  201. mindspore/nn/probability/distribution/exponential.py +6 -7
  202. mindspore/nn/probability/distribution/gamma.py +2 -2
  203. mindspore/nn/probability/distribution/gumbel.py +2 -2
  204. mindspore/nn/probability/distribution/half_normal.py +5 -3
  205. mindspore/nn/probability/distribution/logistic.py +5 -3
  206. mindspore/nn/probability/distribution/poisson.py +1 -1
  207. mindspore/nn/probability/distribution/uniform.py +5 -3
  208. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  209. mindspore/nn/reinforcement/tensor_array.py +1 -1
  210. mindspore/nn/wrap/__init__.py +6 -6
  211. mindspore/nn/wrap/cell_wrapper.py +178 -117
  212. mindspore/nn/wrap/grad_reducer.py +45 -36
  213. mindspore/nn/wrap/loss_scale.py +3 -3
  214. mindspore/numpy/array_creations.py +3 -3
  215. mindspore/numpy/array_ops.py +1 -1
  216. mindspore/numpy/utils.py +1 -2
  217. mindspore/numpy/utils_const.py +1 -2
  218. mindspore/opencv_core452.dll +0 -0
  219. mindspore/opencv_imgcodecs452.dll +0 -0
  220. mindspore/opencv_imgproc452.dll +0 -0
  221. mindspore/ops/__init__.py +3 -2
  222. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  223. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  224. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  225. mindspore/ops/_register_for_op.py +0 -11
  226. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  227. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  228. mindspore/ops/_vmap/vmap_array_ops.py +32 -6
  229. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  230. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  231. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  232. mindspore/ops/auto_generate/__init__.py +4 -3
  233. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +127 -52
  234. mindspore/ops/auto_generate/gen_extend_func.py +286 -208
  235. mindspore/ops/auto_generate/gen_ops_def.py +2783 -2335
  236. mindspore/ops/auto_generate/gen_ops_prim.py +8992 -2686
  237. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  238. mindspore/ops/composite/__init__.py +2 -1
  239. mindspore/ops/composite/base.py +19 -24
  240. mindspore/ops/composite/math_ops.py +6 -16
  241. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  242. mindspore/ops/composite/multitype_ops/_compile_utils.py +4 -5
  243. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  244. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  248. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  249. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  250. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  251. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  252. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  254. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  255. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  256. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  257. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  259. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  260. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  263. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  264. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  267. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  268. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  271. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  272. mindspore/ops/function/__init__.py +28 -2
  273. mindspore/ops/function/_add_attr_func.py +58 -0
  274. mindspore/ops/function/array_func.py +1631 -2347
  275. mindspore/ops/function/clip_func.py +38 -45
  276. mindspore/ops/function/debug_func.py +36 -44
  277. mindspore/ops/function/grad/__init__.py +1 -0
  278. mindspore/ops/function/grad/grad_func.py +104 -71
  279. mindspore/ops/function/image_func.py +1 -1
  280. mindspore/ops/function/linalg_func.py +46 -78
  281. mindspore/ops/function/math_func.py +3024 -3855
  282. mindspore/ops/function/nn_func.py +678 -274
  283. mindspore/ops/function/other_func.py +159 -1
  284. mindspore/ops/function/parameter_func.py +17 -30
  285. mindspore/ops/function/random_func.py +216 -361
  286. mindspore/ops/function/reshard_func.py +4 -70
  287. mindspore/ops/function/sparse_func.py +3 -3
  288. mindspore/ops/function/sparse_unary_func.py +5 -5
  289. mindspore/ops/function/spectral_func.py +25 -58
  290. mindspore/ops/function/vmap_func.py +26 -18
  291. mindspore/ops/functional.py +8 -5
  292. mindspore/ops/functional_overload.py +655 -4
  293. mindspore/ops/op_info_register.py +32 -244
  294. mindspore/ops/operations/__init__.py +21 -14
  295. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  296. mindspore/ops/operations/_grad_ops.py +1 -10
  297. mindspore/ops/operations/_inner_ops.py +5 -76
  298. mindspore/ops/operations/_ms_kernel.py +4 -10
  299. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  300. mindspore/ops/operations/_scalar_ops.py +3 -2
  301. mindspore/ops/operations/_sequence_ops.py +1 -1
  302. mindspore/ops/operations/_tensor_array.py +1 -1
  303. mindspore/ops/operations/array_ops.py +39 -24
  304. mindspore/ops/operations/comm_ops.py +150 -107
  305. mindspore/ops/operations/custom_ops.py +287 -32
  306. mindspore/ops/operations/debug_ops.py +119 -16
  307. mindspore/ops/operations/inner_ops.py +1 -1
  308. mindspore/ops/operations/linalg_ops.py +1 -58
  309. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  310. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  311. mindspore/ops/operations/math_ops.py +21 -18
  312. mindspore/ops/operations/nn_ops.py +67 -224
  313. mindspore/ops/operations/other_ops.py +62 -9
  314. mindspore/ops/operations/random_ops.py +13 -7
  315. mindspore/ops/operations/reshard_ops.py +1 -1
  316. mindspore/ops/operations/sparse_ops.py +2 -2
  317. mindspore/ops/primitive.py +43 -32
  318. mindspore/ops/tensor_method.py +243 -17
  319. mindspore/ops_generate/__init__.py +0 -5
  320. mindspore/ops_generate/aclnn/__init__.py +0 -0
  321. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  322. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  323. mindspore/ops_generate/api/__init__.py +0 -0
  324. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  325. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  326. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  327. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  328. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  329. mindspore/ops_generate/api/gen_api.py +103 -0
  330. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  331. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  332. mindspore/ops_generate/common/__init__.py +0 -0
  333. mindspore/ops_generate/common/gen_constants.py +91 -0
  334. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  335. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  336. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  337. mindspore/ops_generate/gen_ops.py +23 -325
  338. mindspore/ops_generate/op_def/__init__.py +0 -0
  339. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  340. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  341. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -10
  342. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  343. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  344. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  345. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  346. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  347. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  348. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  349. mindspore/ops_generate/pyboost/__init__.py +0 -0
  350. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  351. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  352. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  353. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  354. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  355. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  356. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  357. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  358. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  359. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  360. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  361. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  362. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  363. mindspore/ops_generate/resources/__init__.py +0 -0
  364. mindspore/ops_generate/resources/resource_list.py +30 -0
  365. mindspore/ops_generate/resources/resource_loader.py +36 -0
  366. mindspore/ops_generate/resources/resource_manager.py +64 -0
  367. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  368. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  369. mindspore/parallel/__init__.py +6 -2
  370. mindspore/parallel/_auto_parallel_context.py +140 -12
  371. mindspore/parallel/_cell_wrapper.py +132 -15
  372. mindspore/parallel/_parallel_serialization.py +95 -4
  373. mindspore/parallel/_ps_context.py +1 -1
  374. mindspore/parallel/_recovery_context.py +7 -2
  375. mindspore/parallel/_tensor.py +142 -18
  376. mindspore/parallel/_utils.py +198 -25
  377. mindspore/parallel/algo_parameter_config.py +3 -3
  378. mindspore/parallel/auto_parallel.py +732 -0
  379. mindspore/parallel/checkpoint_convert.py +159 -0
  380. mindspore/parallel/checkpoint_transform.py +658 -37
  381. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  382. mindspore/parallel/cluster/run.py +1 -1
  383. mindspore/parallel/function/__init__.py +24 -0
  384. mindspore/parallel/function/reshard_func.py +258 -0
  385. mindspore/parallel/nn/__init__.py +25 -0
  386. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  387. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  388. mindspore/parallel/parameter_broadcast.py +24 -13
  389. mindspore/parallel/shard.py +137 -62
  390. mindspore/parallel/transform_safetensors.py +288 -95
  391. mindspore/pgodb140.dll +0 -0
  392. mindspore/pgort140.dll +0 -0
  393. mindspore/profiler/__init__.py +9 -5
  394. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  395. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  397. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +25 -0
  398. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  399. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  400. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  401. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  402. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  403. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  404. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  405. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  406. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  407. mindspore/profiler/common/constant.py +12 -0
  408. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  409. mindspore/profiler/common/path_manager.py +24 -0
  410. mindspore/profiler/common/profiler_context.py +26 -2
  411. mindspore/profiler/common/profiler_meta_data.py +74 -0
  412. mindspore/profiler/common/profiler_parameters.py +59 -18
  413. mindspore/profiler/common/profiler_path_manager.py +66 -7
  414. mindspore/profiler/dynamic_profiler.py +112 -79
  415. mindspore/profiler/envprofiler.py +26 -1
  416. mindspore/profiler/experimental_config.py +197 -0
  417. mindspore/profiler/mstx.py +57 -14
  418. mindspore/profiler/platform/npu_profiler.py +33 -7
  419. mindspore/profiler/profiler.py +541 -45
  420. mindspore/profiler/profiler_action_controller.py +1 -1
  421. mindspore/profiler/profiler_interface.py +4 -0
  422. mindspore/profiler/schedule.py +57 -22
  423. mindspore/rewrite/api/node.py +15 -13
  424. mindspore/rewrite/api/symbol_tree.py +1 -1
  425. mindspore/run_check/_check_version.py +25 -14
  426. mindspore/run_check/run_check.py +1 -1
  427. mindspore/runtime/__init__.py +2 -2
  428. mindspore/runtime/executor.py +40 -11
  429. mindspore/runtime/memory.py +37 -13
  430. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  431. mindspore/swresample-4.dll +0 -0
  432. mindspore/swscale-6.dll +0 -0
  433. mindspore/tbbmalloc.dll +0 -0
  434. mindspore/tinyxml2.dll +0 -0
  435. mindspore/train/__init__.py +8 -8
  436. mindspore/train/_utils.py +43 -9
  437. mindspore/train/amp.py +1 -1
  438. mindspore/train/callback/__init__.py +2 -2
  439. mindspore/train/callback/_callback.py +2 -16
  440. mindspore/train/callback/_checkpoint.py +24 -40
  441. mindspore/train/callback/_cluster_monitor.py +14 -18
  442. mindspore/train/callback/_flops_collector.py +2 -3
  443. mindspore/train/callback/_history.py +7 -4
  444. mindspore/train/callback/_lambda_callback.py +2 -2
  445. mindspore/train/callback/_landscape.py +0 -3
  446. mindspore/train/callback/_loss_monitor.py +2 -1
  447. mindspore/train/callback/_on_request_exit.py +6 -5
  448. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  449. mindspore/train/callback/_summary_collector.py +8 -13
  450. mindspore/train/callback/_time_monitor.py +2 -1
  451. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +204 -105
  452. mindspore/train/data_sink.py +25 -2
  453. mindspore/train/dataset_helper.py +4 -5
  454. mindspore/train/loss_scale_manager.py +8 -7
  455. mindspore/train/metrics/accuracy.py +3 -3
  456. mindspore/train/metrics/confusion_matrix.py +9 -9
  457. mindspore/train/metrics/error.py +3 -3
  458. mindspore/train/metrics/hausdorff_distance.py +4 -4
  459. mindspore/train/metrics/mean_surface_distance.py +3 -3
  460. mindspore/train/metrics/metric.py +0 -12
  461. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  462. mindspore/train/metrics/precision.py +8 -6
  463. mindspore/train/metrics/recall.py +9 -9
  464. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  465. mindspore/train/mind_ir_pb2.py +19 -12
  466. mindspore/train/model.py +262 -127
  467. mindspore/train/serialization.py +246 -988
  468. mindspore/train/summary/_summary_adapter.py +2 -2
  469. mindspore/train/summary/summary_record.py +1 -1
  470. mindspore/turbojpeg.dll +0 -0
  471. mindspore/utils/__init__.py +3 -2
  472. mindspore/utils/dryrun.py +4 -2
  473. mindspore/utils/hooks.py +81 -0
  474. mindspore/utils/runtime_execution_order_check.py +2 -0
  475. mindspore/utils/utils.py +138 -4
  476. mindspore/vcmeta.dll +0 -0
  477. mindspore/vcruntime140.dll +0 -0
  478. mindspore/vcruntime140_1.dll +0 -0
  479. mindspore/version.py +1 -1
  480. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/METADATA +2 -1
  481. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/RECORD +485 -440
  482. mindspore/_install_custom.py +0 -43
  483. mindspore/common/_register_for_adapter.py +0 -74
  484. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  485. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  486. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  487. mindspore/ops_generate/gen_constants.py +0 -190
  488. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  489. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  490. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  492. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +0 -0
  493. {mindspore-2.5.0.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -21,14 +21,23 @@ 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 pyboost_utils
24
+ import common.gen_constants as K
25
+ import common.gen_utils as gen_utils
26
+ import common.template as template
27
+ from common.base_generator import BaseGenerator
28
+ from pyboost import pyboost_utils
27
29
 
28
- # refactored
29
- import template
30
30
 
31
- from base_generator import BaseGenerator
31
+ OP_NAME_OP_DEF = """
32
+ #ifndef MINDSPORE_CORE_OP_NAME_${suffix}_H_
33
+ #define MINDSPORE_CORE_OP_NAME_${suffix}_H_
34
+
35
+ namespace mindspore::ops {
36
+ $ops_namespace_body
37
+ } // namespace mindspore::ops
38
+
39
+ #endif // MINDSPORE_CORE_OP_NAME_${suffix}_H_
40
+ """
32
41
 
33
42
 
34
43
  class OpsNameHGenerator(BaseGenerator):
@@ -40,7 +49,7 @@ class OpsNameHGenerator(BaseGenerator):
40
49
  """
41
50
  Initializes the OpsNameHGenerator instance.
42
51
  """
43
- self.op_name_op_def_template = template.Template(K.OP_NAME_OP_DEF)
52
+ self.op_name_op_def_template = template.Template(OP_NAME_OP_DEF)
44
53
  self.op_def_body_template = template.Template("""constexpr auto kName${k_name_op} = "${k_name_op}";\n""")
45
54
 
46
55
  def generate(self, work_path, op_protos):
@@ -54,15 +63,21 @@ class OpsNameHGenerator(BaseGenerator):
54
63
  Returns:
55
64
  None
56
65
  """
57
- op_name_gen_list = []
66
+ import os
67
+ import collections
68
+
69
+ op_name_gen_dict = collections.defaultdict(list)
70
+
58
71
  for op_proto in op_protos:
59
72
  k_name_op = pyboost_utils.get_op_name(op_proto.op_name, op_proto.op_class.name)
60
- op_name_gen_list.append(self.op_def_body_template.replace(k_name_op=k_name_op))
61
-
62
- op_name_code = self.op_name_op_def_template.replace(ops_namespace_body=op_name_gen_list)
73
+ first_char = k_name_op[0].lower()
74
+ op_name_gen_dict[first_char].append(self.op_def_body_template.replace(k_name_op=k_name_op))
63
75
 
64
- op_name_code = template.CC_LICENSE_STR + op_name_code
76
+ for first_char, op_name_gen_list in op_name_gen_dict.items():
77
+ op_name_code = self.op_name_op_def_template.replace(ops_namespace_body=op_name_gen_list,
78
+ suffix=first_char.upper())
79
+ op_name_code = template.CC_LICENSE_STR + op_name_code
65
80
 
66
- save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
67
- file_name = "gen_ops_name.h"
68
- gen_utils.save_file(save_path, file_name, op_name_code)
81
+ save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
82
+ file_name = f"gen_ops_name_{first_char}.h"
83
+ gen_utils.save_file(save_path, file_name, op_name_code)
@@ -0,0 +1,125 @@
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
+ Module for generating C++ header files for operator primitives.
17
+
18
+ This module defines the `OpsPrimitiveHGenerator` class, which creates C++ header files
19
+ containing definitions for operator primitives based on provided operator prototypes.
20
+ """
21
+
22
+ import os
23
+
24
+ import common.gen_constants as K
25
+ import common.gen_utils as gen_utils
26
+ import common.template as template
27
+ from common.base_generator import BaseGenerator
28
+ from pyboost import pyboost_utils
29
+
30
+
31
+ OP_PRIM_OP_DEF_H = """
32
+ #ifndef MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
33
+ #define MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
34
+
35
+ #include "ir/primitive.h"
36
+ #include "mindapi/base/macros.h"
37
+ #include "$auto_gen_path/gen_ops_name_${suffix}.h"
38
+
39
+ namespace mindspore::prim {
40
+ $ops_prim_gen
41
+ } // namespace mindspore::prim
42
+ #endif // MINDSPORE_CORE_OPS_GEN_OPS_PRIMITIVE_${suffix}_H_
43
+ """
44
+
45
+
46
+ OP_PRIM_OP_DEF_CC = """
47
+
48
+ #include "$auto_gen_path/gen_ops_primitive_${suffix}.h"
49
+
50
+ #include <memory>
51
+
52
+ namespace mindspore::prim {
53
+ $ops_prim_gen
54
+ } // namespace mindspore::prim
55
+
56
+ """
57
+
58
+
59
+ class OpsPrimitiveHGenerator(BaseGenerator):
60
+ """
61
+ This class generates the header file for operator primitives.
62
+ """
63
+
64
+ def __init__(self):
65
+ """
66
+ Initializes the generator with templates for operator primitive definitions.
67
+ """
68
+ self.op_prim_op_def_template = template.Template(OP_PRIM_OP_DEF_H)
69
+ self.op_prim_op_def_cc_template = template.Template(OP_PRIM_OP_DEF_CC)
70
+ self.op_def_h_template = template.Template(
71
+ "OPS_API extern const PrimitivePtr kPrim${k_name_op};\n")
72
+ self.op_def_template = template.Template(
73
+ "const PrimitivePtr kPrim${k_name_op} = std::make_shared<Primitive>(ops::kName${k_name_op});\n")
74
+ self.op_def_rw_template = template.Template(
75
+ "const PrimitivePtr kPrim${k_name_op} = std::make_shared<Primitive>(ops::kName${k_name_op}, "
76
+ "true, kPrimTypeBuiltIn, true);\n")
77
+
78
+ def generate(self, work_path, op_protos):
79
+ """
80
+ Generates the header file content for operator primitives and saves it.
81
+
82
+ Args:
83
+ work_path (str): The directory to save the generated files.
84
+ op_protos (list): A list of operator prototypes.
85
+
86
+ Returns:
87
+ None
88
+
89
+ The method generates the content of the header file for each operator primitive
90
+ defined in the 'op_protos' list and saves it to the specified work path.
91
+ """
92
+ import os
93
+ import collections
94
+ ops_prim_gen_dict = collections.defaultdict(list)
95
+ ops_prim_cc_gen_dict = collections.defaultdict(list)
96
+
97
+ for op_proto in op_protos:
98
+ k_name_op = pyboost_utils.get_op_name(op_proto.op_name, op_proto.op_class.name)
99
+ first_char = k_name_op[0].lower()
100
+ if op_proto.op_args_signature:
101
+ if op_proto.op_args_signature.rw_write:
102
+ ops_prim_gen_dict[first_char].append(self.op_def_h_template.replace(k_name_op=k_name_op))
103
+ ops_prim_cc_gen_dict[first_char].append(self.op_def_rw_template.replace(k_name_op=k_name_op))
104
+ continue
105
+
106
+ ops_prim_gen_dict[first_char].append(self.op_def_h_template.replace(k_name_op=k_name_op))
107
+ ops_prim_cc_gen_dict[first_char].append(self.op_def_template.replace(k_name_op=k_name_op))
108
+
109
+ for first_char, ops_prim_gen_list in ops_prim_gen_dict.items():
110
+ op_prim_op_def = self.op_prim_op_def_template.replace(auto_gen_path=K.MS_OP_DEF_AUTO_GENERATE_PATH,
111
+ ops_prim_gen=ops_prim_gen_list, suffix=first_char)
112
+ res_str = template.CC_LICENSE_STR + op_prim_op_def
113
+
114
+ save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
115
+ file_name = f"gen_ops_primitive_{first_char}.h"
116
+ gen_utils.save_file(save_path, file_name, res_str)
117
+
118
+ for first_char, ops_prim_gen_list in ops_prim_cc_gen_dict.items():
119
+ op_prim_op_def = self.op_prim_op_def_cc_template.replace(auto_gen_path=K.MS_OP_DEF_AUTO_GENERATE_PATH,
120
+ ops_prim_gen=ops_prim_gen_list, suffix=first_char)
121
+ res_str = template.CC_LICENSE_STR + op_prim_op_def
122
+
123
+ save_path = os.path.join(work_path, K.MS_OP_DEF_AUTO_GENERATE_PATH)
124
+ file_name = f"gen_ops_primitive_{first_char}.cc"
125
+ gen_utils.save_file(save_path, file_name, res_str)
File without changes
@@ -0,0 +1,47 @@
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 operator definition python files.
17
+ """
18
+ import os
19
+ import shutil
20
+
21
+ from op_def_py.op_prim_py_generator import OpPrimPyGenerator
22
+ from op_def_py.op_def_py_generator import OpDefPyGenerator
23
+ from resources.resource_list import ResourceType
24
+ from common import gen_constants as K
25
+
26
+
27
+ def generate_ops_prim_file(work_path, op_protos, doc_dict, file_pre):
28
+ generator = OpPrimPyGenerator()
29
+ generator.generate(work_path, op_protos, doc_dict, file_pre)
30
+
31
+
32
+ def generate_ops_def_file(work_path, os_protos, doc_dict, file_pre):
33
+ generator = OpDefPyGenerator()
34
+ generator.generate(work_path, os_protos, doc_dict, file_pre)
35
+
36
+
37
+ def generate_ops_py_files(resource_mgr, file_pre='gen'):
38
+ """
39
+ Generate ops python file from yaml.
40
+ """
41
+ op_protos = resource_mgr.get_resource(ResourceType.OP_PROTO)
42
+ op_protos += resource_mgr.get_resource(ResourceType.FUNC_OP_PROTO)
43
+ doc_dict = resource_mgr.get_resource(ResourceType.OP_DOC_YAML)
44
+ generate_ops_prim_file(K.WORK_DIR, op_protos, doc_dict, file_pre)
45
+ generate_ops_def_file(K.WORK_DIR, op_protos, doc_dict, file_pre)
46
+ shutil.copy(os.path.join(K.WORK_DIR, K.PY_OPS_GEN_PATH, 'ops_auto_generate_init.txt'),
47
+ os.path.join(K.WORK_DIR, K.PY_AUTO_GEN_PATH, "__init__.py"))
@@ -18,13 +18,13 @@ Generate Python operator definitions.
18
18
 
19
19
  import os
20
20
 
21
- import gen_constants as K
22
- import gen_utils
21
+ import common.gen_constants as K
22
+ import common.gen_utils as gen_utils
23
23
 
24
24
  # refactored
25
- import template
25
+ import common.template as template
26
26
 
27
- from base_generator import BaseGenerator
27
+ from common.base_generator import BaseGenerator
28
28
 
29
29
 
30
30
  class OpDefPyGenerator(BaseGenerator):
@@ -93,7 +93,8 @@ class OpDefPyGenerator(BaseGenerator):
93
93
  gen_py += func_code
94
94
  gen_py += "\n"
95
95
 
96
- res_str = template.PY_LICENCE_STR + template.OPS_PY_DEF_HEADER + gen_py[:-len(template.NEW_LINE)]
96
+ res_str = template.PY_LICENSE_STR + \
97
+ template.OPS_PY_DEF_HEADER + gen_py[:-len(template.NEW_LINE)]
97
98
  save_path = os.path.join(work_path, K.PY_AUTO_GEN_PATH)
98
99
  file_name = f"{file_pre}_ops_def.py"
99
100
  gen_utils.save_file(save_path, file_name, res_str)
@@ -18,16 +18,13 @@ Module for generating Python primitive operator definitions from specifications.
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
- from op_proto import OpProto
27
- import template
28
- from template import Template
29
-
30
- 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 common.op_proto import OpProto
26
+ from common.template import Template
27
+ from pyboost import pyboost_utils
31
28
 
32
29
 
33
30
  class OpPrimPyGenerator(BaseGenerator):
@@ -89,7 +86,8 @@ class OpPrimPyGenerator(BaseGenerator):
89
86
  gen_py += f"\n\n{op_proto.op_name}_op={op_proto.op_class.name}()\n"
90
87
 
91
88
  pyboost_import_header = self.generate_pyboost_import_header(op_protos)
92
- res_str = template.PY_LICENCE_STR + template.OPS_PY_PRIM_HEADER + pyboost_import_header + gen_py
89
+ res_str = template.PY_LICENSE_STR + \
90
+ template.OPS_PY_PRIM_HEADER + pyboost_import_header + gen_py
93
91
 
94
92
  save_path = os.path.join(work_path, K.PY_AUTO_GEN_PATH)
95
93
  file_name = f"{file_pre}_ops_prim.py"
@@ -281,8 +279,8 @@ class OpPrimPyGenerator(BaseGenerator):
281
279
  call_method_args_str = ", ".join(call_args)
282
280
  call_method_body_str = self._get_call_method_body_str(args_handlers, init_args, inputs_args, inputs_default,
283
281
  op_proto)
284
- call_code_str += f""" def __call__(self, {call_method_args_str}):\n"""
285
- call_code_str += f""" {call_method_body_str}"""
282
+ call_code_str += f""" def __call__(self, {call_method_args_str}):"""
283
+ call_code_str += f"""{call_method_body_str}"""
286
284
  return call_code_str
287
285
 
288
286
  def _get_call_method_body_str(self, args_handlers, init_args, inputs_args, inputs_default, op_proto: OpProto):
@@ -317,10 +315,21 @@ class OpPrimPyGenerator(BaseGenerator):
317
315
  call_method_body_str = ""
318
316
  is_pyboost = op_proto.op_dispatch and op_proto.op_dispatch.enable
319
317
  if is_pyboost:
318
+ call_method_body_str += f"""
319
+ # Add for jit context.
320
+ if jit_context() and jit_context().compiled:
321
+ return None"""
320
322
  pyboost_func_name = pyboost_utils.get_pyboost_name(op_proto.op_name)
321
- call_method_body_str += f"""return _convert_stub({pyboost_func_name}(self, [{call_args_list_str}]))"""
323
+ call_method_body_str += f"""
324
+ res = {pyboost_func_name}(self, [{call_args_list_str}])"""
325
+ call_method_body_str += f"""
326
+ # Add for jit context.
327
+ if jit_context():
328
+ return jit_context().run_op(self, res, {call_args_list_str})
329
+ return res\n"""
322
330
  else:
323
- call_method_body_str += f"""return super().__call__({call_args_list_str})\n"""
331
+ call_method_body_str += f"""
332
+ return super().__call__({call_args_list_str})\n"""
324
333
  return call_method_body_str
325
334
 
326
335
  def _generate_py_op_signature(self, op_proto: OpProto, args_name, args_default):
File without changes
@@ -18,12 +18,12 @@ This module provides a generator class for creating C++ implementation files for
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, is_op_multi_output
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, is_op_multi_output
27
27
 
28
28
 
29
29
  class AutoGradImplGenerator(BaseGenerator):
@@ -35,6 +35,7 @@ class AutoGradImplGenerator(BaseGenerator):
35
35
  """
36
36
  Initialize the AutoGrad implementation generator with templates for code generation.
37
37
  """
38
+ self.OP_DEF_INC_HEAD_TEMPLATE = template.OP_DEF_INC_HEAD_TEMPLATE
38
39
  self.AUTO_GRAD_IMPL_CC_TEMPLATE = template.AUTO_GRAD_IMPL_CC_TEMPLATE
39
40
  self.DO_GRAD_FUNCTION_BODY_TEMPLATE = template.DO_GRAD_FUNCTION_BODY_TEMPLATE
40
41
  self.auto_grad_reg_template = Template("const_cast<kernel::pyboost::${class_name}GradFunc&>(" + \
@@ -55,13 +56,16 @@ class AutoGradImplGenerator(BaseGenerator):
55
56
  """
56
57
  auto_grad_reg_list = []
57
58
  do_grad_op_list = []
59
+ ops_inc_head_set = set()
58
60
  for op_proto in op_protos:
59
61
  if op_proto.op_dispatch is None or op_proto.op_dispatch.is_comm_op:
60
62
  continue
61
63
  auto_grad_reg_list.append(self.auto_grad_reg_template.replace(class_name=op_proto.op_class.name))
62
64
  do_grad_op_list.append(self._get_single_do_grad_op(op_proto))
65
+ ops_inc_head_set.add(self.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_proto.op_class.name[0].lower()))
63
66
  pyboost_func_h_str = self.AUTO_GRAD_IMPL_CC_TEMPLATE.replace(do_grad_op=do_grad_op_list,
64
- auto_grad_reg=auto_grad_reg_list)
67
+ auto_grad_reg=auto_grad_reg_list,
68
+ ops_inc=list(sorted(ops_inc_head_set)))
65
69
  save_path = os.path.join(work_path, K.PYBOOST_AUTO_GRAD_FUNC_GEN_PATH)
66
70
  file_name = "auto_grad_impl.cc"
67
71
  save_file(save_path, file_name, pyboost_func_h_str)
@@ -18,12 +18,12 @@ This module provides a generator class for creating C++ header files for AutoGra
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
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
27
27
 
28
28
 
29
29
  class AutoGradRegHeaderGenerator(BaseGenerator):
@@ -70,7 +70,7 @@ class AutoGradRegHeaderGenerator(BaseGenerator):
70
70
  op_grad_func=op_grad_func_list,
71
71
  op_grad_func_obj=op_grad_func_obj_list)
72
72
 
73
- save_path = os.path.join(work_path, K.MS_OPS_KERNEL_FUNCTIONS_AUTO_GEN_PATH)
73
+ save_path = os.path.join(work_path, K.MS_PYBOOST_FUNCTIONS_AUTO_GEN_PATH)
74
74
  file_name = "auto_grad_op_reg.h"
75
75
  save_file(save_path, file_name, pyboost_func_h_str)
76
76
 
@@ -16,34 +16,57 @@
16
16
  Generate pyboost function from pyboost_op.yaml
17
17
  """
18
18
 
19
- from pyboost_inner_prim_generator import PyboostInnerPrimGenerator
20
- from pyboost_functions_py_generator import PyboostFunctionsPyGenerator
21
- from pyboost_functions_h_generator import PyboostFunctionsHeaderGenerator
22
- from pyboost_functions_cpp_generator import PyboostFunctionsGenerator
23
- from pyboost_grad_function_cpp_generator import PyboostGradFunctionsGenerator
24
- from pyboost_native_grad_functions_generator import (
19
+ import os
20
+ import shutil
21
+ import logging
22
+ from resources.resource_list import ResourceType
23
+ from common import gen_constants as K
24
+ from api.functions_cc_generator import FunctionsGenerator, FunctionsHeaderGenerator
25
+ from .pyboost_inner_prim_generator import PyboostInnerPrimGenerator
26
+ from .pyboost_functions_py_generator import PyboostFunctionsPyGenerator
27
+ from .pyboost_functions_h_generator import PyboostFunctionsHeaderGenerator
28
+ from .pyboost_functions_cpp_generator import PyboostFunctionsGenerator
29
+ from .pyboost_grad_function_cpp_generator import PyboostGradFunctionsGenerator
30
+ from .pyboost_native_grad_functions_generator import (
25
31
  PyboostGradFunctionsHeaderGenerator,
26
32
  PyboostGradFunctionsCppGenerator,
27
33
  )
28
- from pyboost_op_cpp_code_generator import (
34
+ from .pyboost_op_cpp_code_generator import (
29
35
  PyboostCommonOpHeaderGenerator,
30
36
  PyboostOpFunctionGenerator,
31
37
  PyboostOpHeaderGenerator,
32
38
  delete_residual_files,
33
39
  PyboostOpRegisterCppCodeGenerator,
34
40
  )
35
- from pyboost_overload_functions_cpp_generator import PyboostOverloadFunctionsGenerator
36
- from auto_grad_impl_cc_generator import AutoGradImplGenerator
37
- from auto_grad_reg_cc_generator import AutoGradRegHeaderGenerator
38
- from functions_cc_generator import FunctionsGenerator, FunctionsHeaderGenerator
41
+ from .pyboost_overload_functions_cpp_generator import PyboostOverloadFunctionsGenerator
42
+ from .auto_grad_impl_cc_generator import AutoGradImplGenerator
43
+ from .auto_grad_reg_cc_generator import AutoGradRegHeaderGenerator
39
44
 
40
45
 
41
- def gen_pyboost_code(work_path, op_protos, doc_yaml_data, tensor_method_protos, mint_func_protos, alias_func_mapping):
46
+ def clear_old_generated_code(work_path):
47
+ """ delete old generated files to prevent compilation failure """
48
+ files_to_clear = ['mindspore/ops/kernel/common/pyboost',
49
+ 'mindspore/ops/kernel/functions/auto_generate',
50
+ 'mindspore/ccsrc/runtime/pynative/op_function']
51
+ for f in files_to_clear:
52
+ real_path = os.path.join(work_path, f)
53
+ if os.path.exists(real_path):
54
+ shutil.rmtree(real_path)
55
+ logging.warning("rm file %s", real_path)
56
+
57
+
58
+ def gen_pyboost_code(resource_mgr):
42
59
  """ gen_pyboost_code """
60
+ work_path = K.WORK_DIR
61
+ op_protos = resource_mgr.get_resource(ResourceType.OP_PROTO)
62
+ doc_yaml_data = resource_mgr.get_resource(ResourceType.OP_DOC_YAML)
63
+ mint_func_protos = resource_mgr.get_resource(ResourceType.MINT_FUNC_PROTOS)
64
+ alias_func_mapping = resource_mgr.get_resource(ResourceType.ALIAS_API_MAPPING)
65
+ clear_old_generated_code(work_path)
43
66
  call_pyboost_inner_prim_generator(work_path, op_protos)
44
67
  call_pyboost_functions_py_generator(work_path, op_protos, doc_yaml_data)
45
68
  call_pyboost_functions_h_generator(work_path, op_protos)
46
- call_pyboost_functions_cpp_generator(work_path, op_protos, tensor_method_protos)
69
+ call_pyboost_functions_cpp_generator(work_path, op_protos)
47
70
  call_pyboost_overload_functions_cpp_generator(work_path, op_protos, mint_func_protos, alias_func_mapping)
48
71
  call_pyboost_grad_functions_cpp_generator(work_path, op_protos)
49
72
  call_pyboost_native_grad_functions_generator(work_path, op_protos)
@@ -94,14 +117,15 @@ def call_pyboost_functions_h_generator(work_path, op_protos):
94
117
  generator.generate(work_path, op_protos)
95
118
 
96
119
 
97
- def call_pyboost_functions_cpp_generator(work_path, op_protos, tensor_method_protos):
120
+ def call_pyboost_functions_cpp_generator(work_path, op_protos):
98
121
  generator = PyboostFunctionsGenerator()
99
- generator.generate(work_path, op_protos, tensor_method_protos)
122
+ generator.generate(work_path, op_protos)
100
123
 
101
124
 
102
125
  def call_pyboost_overload_functions_cpp_generator(work_path, op_protos, mint_func_protos, alias_func_mapping):
103
126
  generator = PyboostOverloadFunctionsGenerator()
104
- generator.generate(work_path, op_protos, mint_func_protos, alias_func_mapping)
127
+ generator.generate(work_path, op_protos,
128
+ mint_func_protos, alias_func_mapping)
105
129
 
106
130
 
107
131
  def call_pyboost_grad_functions_cpp_generator(work_path, op_protos):