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
@@ -21,13 +21,15 @@ for different devices (Ascend, CPU, GPU) and manages residual files associated w
21
21
  import os
22
22
  import re
23
23
 
24
- from pyboost_utils import is_cube, AclnnUtils, get_return_type, merge_strings_by_chunk_size, is_op_multi_output
25
- import template
26
- import gen_constants as K
27
- from gen_utils import save_file
28
- from op_proto import OpProto
29
- from op_template_parser import OpTemplateParser
30
- from base_generator import BaseGenerator
24
+ import common.template as template
25
+ import common.gen_constants as K
26
+ from common.gen_utils import save_file
27
+ from common.op_proto import OpProto
28
+ from common.base_generator import BaseGenerator
29
+
30
+ from .pyboost_utils import is_cube, AclnnUtils, get_return_type, merge_strings_by_chunk_size, is_op_multi_output, \
31
+ chunk_list
32
+ from .op_template_parser import OpTemplateParser
31
33
 
32
34
 
33
35
  class PyboostCommonOpHeaderGenerator(BaseGenerator):
@@ -66,7 +68,7 @@ class PyboostCommonOpHeaderGenerator(BaseGenerator):
66
68
  call_args=call_args_with_type,
67
69
  return_type=cpp_func_return,
68
70
  output_is_tuple=output_is_tuple)
69
- save_path = os.path.join(work_path, f"{K.MS_COMMON_PYBOOST_KERNEL_PATH}/auto_generate/")
71
+ save_path = os.path.join(work_path, f"{K.MS_PYBOOST_BASE_PATH}/auto_generate/")
70
72
  file_name = f"{op_proto.op_name}.h"
71
73
  save_file(save_path, file_name, pyboost_op_header_str)
72
74
 
@@ -93,9 +95,11 @@ class PyboostOpHeaderGenerator(BaseGenerator):
93
95
  "gpu": template.PYBOOST_GPU_OP_HEADER_TEMPLATE,
94
96
  "cpu": template.PYBOOST_CPU_OP_HEADER_TEMPLATE}
95
97
  if device not in template_dict:
96
- raise ValueError(f"Device must be ascend, gpu, or cpu, {device} is not supported")
98
+ raise ValueError(
99
+ f"Device must be ascend, gpu, or cpu, {device} is not supported")
97
100
  self.PYBOOST_OP_HEADER_TEMPLATE = template_dict[device]
98
101
  self.code_generate_path = f"{K.MS_OPS_KERNEL_PATH}/{device}/pyboost/auto_generate/"
102
+ self.hccl_code_generate_path = "mindspore/ccsrc/plugin/device/ascend/kernel/hccl/pyboost/auto_generate/"
99
103
  self.device = device
100
104
 
101
105
  def generate(self, work_path, op_protos):
@@ -114,6 +118,7 @@ class PyboostOpHeaderGenerator(BaseGenerator):
114
118
  continue
115
119
  if getattr(op_proto.op_dispatch, self.device) == 'None':
116
120
  continue
121
+ is_ascend_comm_op = op_proto.op_dispatch.is_comm_op and self.device == 'ascend'
117
122
  op_parser = OpTemplateParser(op_proto)
118
123
  op_name_str = op_proto.op_class.name
119
124
  call_args_with_type = op_parser.parse_call_args_with_types()
@@ -125,7 +130,7 @@ class PyboostOpHeaderGenerator(BaseGenerator):
125
130
  call_args_with_type=call_args_with_type,
126
131
  return_type=cpp_func_return)
127
132
 
128
- save_path = os.path.join(work_path, self.code_generate_path)
133
+ save_path = os.path.join(work_path, self.code_generate_path if not is_ascend_comm_op else self.hccl_code_generate_path)
129
134
  file_name = f"{op_proto.op_name}.h"
130
135
  save_file(save_path, file_name, pyboost_op_str)
131
136
 
@@ -164,14 +169,17 @@ class PyboostOpCppGenerator:
164
169
  PYBOOST_SINGLE_OP_SOURCE_TEMPLATE = template.PYBOOST_GPU_SINGLE_OP_SOURCE_TEMPLATE
165
170
  gen_path = f"{K.MS_OPS_KERNEL_PATH}/gpu/pyboost/auto_generate/"
166
171
  else:
167
- raise ValueError(f"Device must be ascend, gpu, or cpu, {device} is not supported")
172
+ raise ValueError(
173
+ f"Device must be ascend, gpu, or cpu, {device} is not supported")
168
174
  self.PYBOOST_CUSTOMIZE_CALL_TEMPLATE = PYBOOST_CUSTOMIZE_CALL_TEMPLATE
169
175
  self.PYBOOST_SINGLE_OP_HEADER_TEMPLATE = PYBOOST_SINGLE_OP_HEADER_TEMPLATE
170
176
  self.PYBOOST_SINGLE_OP_SOURCE_TEMPLATE = PYBOOST_SINGLE_OP_SOURCE_TEMPLATE
177
+ self.PYBOOST_SINGLE_HCLL_OP_HEADER_TEMPLATE = template.PYBOOST_ASCEND_SINGLE_HCLL_OP_HEADER_TEMPLATE
171
178
  self.gen_path = gen_path
172
179
  self.device = device
173
180
 
174
- def generate_customize_op_cpp_code(self, op_protos, merge_op_header, merge_op_function):
181
+ def generate_customize_op_cpp_code(self, op_protos, merge_op_header, merge_op_function, merge_op_inc,
182
+ merge_op_hccl_header=None, merge_op_hccl_function=None, merge_op_hccl_inc=None):
175
183
  """
176
184
  Generate C++ code for PyBoost operations using the provided operation prototypes.
177
185
 
@@ -191,6 +199,7 @@ class PyboostOpCppGenerator:
191
199
  continue
192
200
  if getattr(op_proto.op_dispatch, self.device) == 'None':
193
201
  continue
202
+ is_ascend_comm_op = op_proto.op_dispatch.is_comm_op and self.device == 'ascend'
194
203
  op_parser = OpTemplateParser(op_proto)
195
204
  call_args = op_parser.parse_original_call_args(op_proto.op_args)
196
205
  call_args_with_type = op_parser.parse_call_args_with_types()
@@ -205,20 +214,40 @@ class PyboostOpCppGenerator:
205
214
  call_impl = self.PYBOOST_CUSTOMIZE_CALL_TEMPLATE.replace(
206
215
  call_args=call_args,
207
216
  return_values=call_func_outputs,
208
- customize_func=getattr(op_proto.op_dispatch, self.device) + "Customize",
217
+ customize_func=getattr(
218
+ op_proto.op_dispatch, self.device) + "Customize",
209
219
  check_expression=check_inplace_func,
210
220
  )
211
- customize_include = \
212
- f'#include "{K.MS_OPS_KERNEL_PATH}/{self.device}/pyboost/customize/{operator_name.lower()}.h"\n'
221
+ if is_ascend_comm_op and ((merge_op_hccl_header is None) or (merge_op_hccl_function is None)):
222
+ raise ValueError(f"merge_op_hccl_header and merge_op_hccl_function must be provided for comm op {operator_name}")
223
+
224
+ if is_ascend_comm_op:
225
+ customize_include = \
226
+ f'#include "mindspore/ccsrc/plugin/device/ascend/kernel/hccl/pyboost/{operator_name.lower()}.h"\n'
227
+ else:
228
+ customize_include = \
229
+ f'#include "{K.MS_OPS_KERNEL_PATH}/{self.device}/pyboost/customize/{operator_name.lower()}.h"\n'
230
+
213
231
  register_custom = self._get_register_custom_kernel(op_proto)
214
232
  cpp_func_return = _generate_cpp_func_return(op_proto)
215
- merge_op_header.append(self.PYBOOST_SINGLE_OP_HEADER_TEMPLATE.replace(operator_name=operator_name,
233
+ if is_ascend_comm_op:
234
+ merge_op_hccl_header.append(self.PYBOOST_SINGLE_HCLL_OP_HEADER_TEMPLATE.replace(operator_name=operator_name,
216
235
  customize_include=customize_include))
217
- merge_op_function.append(
218
- self.PYBOOST_SINGLE_OP_SOURCE_TEMPLATE.replace(op_name=op_name_str,
219
- call_args_with_type=call_args_with_type,
220
- return_type=cpp_func_return, call_impl=call_impl,
221
- register_custom_kernel=register_custom))
236
+ merge_op_hccl_function.append(
237
+ self.PYBOOST_SINGLE_OP_SOURCE_TEMPLATE.replace(op_name=op_name_str,
238
+ call_args_with_type=call_args_with_type,
239
+ return_type=cpp_func_return, call_impl=call_impl,
240
+ register_custom_kernel=register_custom))
241
+ merge_op_hccl_inc.append(op_name_str)
242
+ else:
243
+ merge_op_header.append(self.PYBOOST_SINGLE_OP_HEADER_TEMPLATE.replace(operator_name=operator_name,
244
+ customize_include=customize_include))
245
+ merge_op_function.append(
246
+ self.PYBOOST_SINGLE_OP_SOURCE_TEMPLATE.replace(op_name=op_name_str,
247
+ call_args_with_type=call_args_with_type,
248
+ return_type=cpp_func_return, call_impl=call_impl,
249
+ register_custom_kernel=register_custom))
250
+ merge_op_inc.append(op_name_str)
222
251
 
223
252
  def _get_register_custom_kernel(self, op_proto: OpProto):
224
253
  """
@@ -237,7 +266,8 @@ class PyboostOpCppGenerator:
237
266
  elif self.device == 'gpu':
238
267
  register_custom_kernel = f"MS_REG_PYBOOST_GPU_CUSTOM_KERNEL({op_proto.op_class.name});"
239
268
  else:
240
- raise ValueError(f"Device must be ascend, gpu, or cpu, {self.device} is not supported")
269
+ raise ValueError(
270
+ f"Device must be ascend, gpu, or cpu, {self.device} is not supported")
241
271
  return register_custom_kernel
242
272
 
243
273
 
@@ -275,14 +305,15 @@ class PyboostViewOpCppGenerator:
275
305
  PYBOOST_SINGLE_OP_SOURCE_TEMPLATE = template.PYBOOST_GPU_SINGLE_OP_SOURCE_TEMPLATE
276
306
  gen_path = f"{K.MS_OPS_KERNEL_PATH}/gpu/pyboost/auto_generate/"
277
307
  else:
278
- raise ValueError(f"Device must be ascend, gpu, or cpu, {device} is not supported")
308
+ raise ValueError(
309
+ f"Device must be ascend, gpu, or cpu, {device} is not supported")
279
310
  self.PYBOOST_VIEW_CALL_TEMPLATE = PYBOOST_VIEW_CALL_TEMPLATE
280
311
  self.PYBOOST_SINGLE_OP_HEADER_TEMPLATE = PYBOOST_SINGLE_OP_HEADER_TEMPLATE
281
312
  self.PYBOOST_SINGLE_OP_SOURCE_TEMPLATE = PYBOOST_SINGLE_OP_SOURCE_TEMPLATE
282
313
  self.gen_path = gen_path
283
314
  self.device = device
284
315
 
285
- def generate_view_op_cpp_code(self, op_protos, merge_op_header, merge_op_function):
316
+ def generate_view_op_cpp_code(self, op_protos, merge_op_header, merge_op_function, ascend_merge_op_inc):
286
317
  """
287
318
  Generate C++ code for view operations in PyBoost.
288
319
 
@@ -327,6 +358,7 @@ class PyboostViewOpCppGenerator:
327
358
  return_type=cpp_func_return,
328
359
  call_impl=call_impl,
329
360
  register_custom_kernel=""))
361
+ ascend_merge_op_inc.append(op_proto.op_class.name)
330
362
 
331
363
 
332
364
  class AclnnOpCppCodeGenerator:
@@ -366,16 +398,18 @@ class AclnnOpCppCodeGenerator:
366
398
  PYBOOST_SINGLE_OP_SOURCE_TEMPLATE = template.PYBOOST_GPU_SINGLE_OP_SOURCE_TEMPLATE
367
399
  gen_path = f"{K.MS_OPS_KERNEL_PATH}/gpu/pyboost/auto_generate/"
368
400
  else:
369
- raise ValueError(f"Device must be ascend, gpu, or cpu, {device} is not supported")
401
+ raise ValueError(
402
+ f"Device must be ascend, gpu, or cpu, {device} is not supported")
370
403
  self.PYBOOST_CALL_TEMPLATE = PYBOOST_CALL_TEMPLATE
371
404
  self.PYBOOST_SINGLE_OP_HEADER_TEMPLATE = template.Template(
372
405
  '#include "kernel/${device}/pyboost/auto_generate/${operator_name}.h"\n'
373
406
  )
407
+
374
408
  self.PYBOOST_SINGLE_OP_SOURCE_TEMPLATE = PYBOOST_SINGLE_OP_SOURCE_TEMPLATE
375
409
  self.gen_path = gen_path
376
410
  self.device = device
377
411
 
378
- def generate_aclnn_op_cpp_code(self, op_protos, merge_op_header, merge_op_function):
412
+ def generate_aclnn_op_cpp_code(self, op_protos, merge_op_header, merge_op_function, ascend_merge_op_inc):
379
413
  """
380
414
  Generate C++ code for ACLNN operations in PyBoost.
381
415
 
@@ -404,10 +438,12 @@ class AclnnOpCppCodeGenerator:
404
438
  aclnn_name = AclnnUtils.get_aclnn_interface(op_proto.op_class.name)
405
439
 
406
440
  call_args_tensor = op_parser.get_call_args_tensor()
407
- create_input_address = self._generate_create_input_address(op_parser)
441
+ create_input_address = self._generate_create_input_address(
442
+ op_parser)
408
443
  malloc_inputs = self._generate_malloc_input(op_parser)
409
444
  op_outputs, call_func_outputs = op_parser.generate_pyboost_outputs()
410
- get_inputs_kernel_tensors = self._generate_get_inputs_kernel_tensors(op_parser)
445
+ get_inputs_kernel_tensors = self._generate_get_inputs_kernel_tensors(
446
+ op_parser)
411
447
 
412
448
  cube_math_type, get_cube_math_type = '', ''
413
449
  if self.device == 'ascend' and is_cube(op_proto.op_class.name):
@@ -456,6 +492,7 @@ class AclnnOpCppCodeGenerator:
456
492
  return_type=cpp_func_return,
457
493
  call_impl=call_impl,
458
494
  register_custom_kernel=''))
495
+ ascend_merge_op_inc.append(op_proto.op_class.name)
459
496
 
460
497
  def _generate_tensor_cpu_cast_input_code(self, op_parser: OpTemplateParser):
461
498
  """
@@ -573,6 +610,7 @@ class PyboostOpFunctionGenerator(BaseGenerator):
573
610
  self.ascend_gen_path = f"{K.MS_OPS_KERNEL_PATH}/ascend/pyboost/auto_generate/"
574
611
  self.cpu_gen_path = f"{K.MS_OPS_KERNEL_PATH}/cpu/pyboost/auto_generate/"
575
612
  self.gpu_gen_path = f"{K.MS_OPS_KERNEL_PATH}/gpu/pyboost/auto_generate/"
613
+ self.hccl_gen_path = "mindspore/ccsrc/plugin/device/ascend/kernel/hccl/pyboost/auto_generate/"
576
614
 
577
615
  def generate(self, work_path, op_protos):
578
616
  """
@@ -607,27 +645,52 @@ class PyboostOpFunctionGenerator(BaseGenerator):
607
645
  """
608
646
  ascend_merge_op_header = []
609
647
  ascend_merge_op_function = []
648
+ hccl_merge_op_header = []
649
+ hccl_merge_op_function = []
650
+ ascend_merge_op_inc = []
651
+ ascend_merge_op_hccl_inc = []
610
652
  self.ascend_op_cpp_generator.generate_customize_op_cpp_code(op_protos, ascend_merge_op_header,
611
- ascend_merge_op_function)
653
+ ascend_merge_op_function, ascend_merge_op_inc,
654
+ hccl_merge_op_header, hccl_merge_op_function,
655
+ ascend_merge_op_hccl_inc)
612
656
  self.ascend_view_op_cpp_generator.generate_view_op_cpp_code(op_protos, ascend_merge_op_header,
613
- ascend_merge_op_function)
657
+ ascend_merge_op_function,
658
+ ascend_merge_op_inc)
614
659
  self.ascend_aclnn_cpp_generator.generate_aclnn_op_cpp_code(op_protos, ascend_merge_op_header,
615
- ascend_merge_op_function)
660
+ ascend_merge_op_function,
661
+ ascend_merge_op_inc)
616
662
 
617
- ascend_op_header_merge_by_chunk_size = merge_strings_by_chunk_size(ascend_merge_op_header, chunk_size=120)
618
- ascend_op_function_merge_by_chunk_size = merge_strings_by_chunk_size(ascend_merge_op_function, chunk_size=120)
663
+ ascend_op_header_merge_by_chunk_size = merge_strings_by_chunk_size(
664
+ ascend_merge_op_header, chunk_size=120)
665
+ ascend_op_function_merge_by_chunk_size = merge_strings_by_chunk_size(
666
+ ascend_merge_op_function, chunk_size=120)
667
+ op_inc_list = chunk_list(ascend_merge_op_inc, n=120)
619
668
 
620
669
  new_gen_num = len(ascend_op_header_merge_by_chunk_size)
621
- self._delete_residual_merged_ops_files(os.path.join(work_path, self.ascend_gen_path), new_gen_num)
670
+ self._delete_residual_merged_ops_files(os.path.join(
671
+ work_path, self.ascend_gen_path), new_gen_num)
622
672
 
623
673
  for i, op_header, op_function in zip(range(len(ascend_op_header_merge_by_chunk_size)),
624
674
  ascend_op_header_merge_by_chunk_size,
625
675
  ascend_op_function_merge_by_chunk_size):
676
+ ops_inc_head_set = set()
677
+ for op_name_inc in op_inc_list[i]:
678
+ ops_inc_head_set.add(template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_name_inc[0].lower()))
679
+
626
680
  ascend_pyboost_op_source = self.PYBOOST_ASCEND_OP_SOURCE_TEMPLATE.replace(
627
- merge_op_header=op_header, merge_op_function=op_function)
681
+ merge_op_header=op_header, merge_op_function=op_function, ops_inc=list(sorted(ops_inc_head_set)))
628
682
  save_file(os.path.join(work_path, self.ascend_gen_path), f"pyboost_ascend_ops_{i}.cc",
629
683
  ascend_pyboost_op_source)
630
684
 
685
+ ops_hccl_inc_head_set = set()
686
+ for op_name_inc in ascend_merge_op_hccl_inc:
687
+ ops_hccl_inc_head_set.add(template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_name_inc[0].lower()))
688
+ hccl_pyboost_op_source = self.PYBOOST_ASCEND_OP_SOURCE_TEMPLATE.replace(
689
+ merge_op_header='\n'.join(hccl_merge_op_header), merge_op_function='\n'.join(hccl_merge_op_function),
690
+ ops_inc=list(sorted(ops_hccl_inc_head_set)))
691
+ save_file(os.path.join(work_path, self.hccl_gen_path), f"pyboost_hccl_ops.cc",
692
+ hccl_pyboost_op_source)
693
+
631
694
  def _generate_pyboost_cpu_ops(self, work_path, op_protos):
632
695
  """
633
696
  Generates CPU PyBoost ops functions source files after being merged into specific chunk sizes.
@@ -639,20 +702,31 @@ class PyboostOpFunctionGenerator(BaseGenerator):
639
702
  """
640
703
  cpu_merge_op_header = []
641
704
  cpu_merge_op_function = []
642
- self.cpu_op_cpp_generator.generate_customize_op_cpp_code(op_protos, cpu_merge_op_header, cpu_merge_op_function)
643
- self.cpu_view_op_cpp_generator.generate_view_op_cpp_code(op_protos, cpu_merge_op_header, cpu_merge_op_function)
644
- self.cpu_aclnn_cpp_generator.generate_aclnn_op_cpp_code(op_protos, cpu_merge_op_header, cpu_merge_op_function)
645
- cpu_op_header_merge_by_chunk_size = merge_strings_by_chunk_size(cpu_merge_op_header, chunk_size=120)
646
- cpu_op_function_merge_by_chunk_size = merge_strings_by_chunk_size(cpu_merge_op_function, chunk_size=120)
705
+ cpu_merge_op_inc = []
706
+ self.cpu_op_cpp_generator.generate_customize_op_cpp_code(
707
+ op_protos, cpu_merge_op_header, cpu_merge_op_function, cpu_merge_op_inc)
708
+ self.cpu_view_op_cpp_generator.generate_view_op_cpp_code(
709
+ op_protos, cpu_merge_op_header, cpu_merge_op_function, cpu_merge_op_inc)
710
+ self.cpu_aclnn_cpp_generator.generate_aclnn_op_cpp_code(
711
+ op_protos, cpu_merge_op_header, cpu_merge_op_function, cpu_merge_op_inc)
712
+ cpu_op_header_merge_by_chunk_size = merge_strings_by_chunk_size(
713
+ cpu_merge_op_header, chunk_size=120)
714
+ cpu_op_function_merge_by_chunk_size = merge_strings_by_chunk_size(
715
+ cpu_merge_op_function, chunk_size=120)
716
+ op_inc_list = chunk_list(cpu_merge_op_inc, n=120)
647
717
 
648
718
  new_gen_num = len(cpu_op_header_merge_by_chunk_size)
649
- self._delete_residual_merged_ops_files(os.path.join(work_path, self.cpu_gen_path), new_gen_num)
719
+ self._delete_residual_merged_ops_files(
720
+ os.path.join(work_path, self.cpu_gen_path), new_gen_num)
650
721
 
651
722
  for i, op_header, op_function in zip(range(len(cpu_op_header_merge_by_chunk_size)),
652
723
  cpu_op_header_merge_by_chunk_size,
653
724
  cpu_op_function_merge_by_chunk_size):
725
+ ops_inc_head_set = set()
726
+ for op_name_inc in op_inc_list[i]:
727
+ ops_inc_head_set.add(template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_name_inc[0].lower()))
654
728
  cpu_pyboost_op_source = self.PYBOOST_CPU_OP_SOURCE_TEMPLATE.replace(
655
- merge_op_header=op_header, merge_op_function=op_function)
729
+ merge_op_header=op_header, merge_op_function=op_function, ops_inc=list(sorted(ops_inc_head_set)))
656
730
  save_file(os.path.join(work_path, self.cpu_gen_path), f"pyboost_cpu_ops_{i}.cc",
657
731
  cpu_pyboost_op_source)
658
732
 
@@ -667,20 +741,31 @@ class PyboostOpFunctionGenerator(BaseGenerator):
667
741
  """
668
742
  gpu_merge_op_header = []
669
743
  gpu_merge_op_function = []
670
- self.gpu_op_cpp_generator.generate_customize_op_cpp_code(op_protos, gpu_merge_op_header, gpu_merge_op_function)
671
- self.gpu_view_op_cpp_generator.generate_view_op_cpp_code(op_protos, gpu_merge_op_header, gpu_merge_op_function)
672
- self.gpu_aclnn_cpp_generator.generate_aclnn_op_cpp_code(op_protos, gpu_merge_op_header, gpu_merge_op_function)
673
- gpu_op_header_merge_by_chunk_size = merge_strings_by_chunk_size(gpu_merge_op_header, chunk_size=120)
674
- gpu_op_function_merge_by_chunk_size = merge_strings_by_chunk_size(gpu_merge_op_function, chunk_size=120)
744
+ gpu_merge_op_inc = []
745
+ self.gpu_op_cpp_generator.generate_customize_op_cpp_code(
746
+ op_protos, gpu_merge_op_header, gpu_merge_op_function, gpu_merge_op_inc)
747
+ self.gpu_view_op_cpp_generator.generate_view_op_cpp_code(
748
+ op_protos, gpu_merge_op_header, gpu_merge_op_function, gpu_merge_op_inc)
749
+ self.gpu_aclnn_cpp_generator.generate_aclnn_op_cpp_code(
750
+ op_protos, gpu_merge_op_header, gpu_merge_op_function, gpu_merge_op_inc)
751
+ gpu_op_header_merge_by_chunk_size = merge_strings_by_chunk_size(
752
+ gpu_merge_op_header, chunk_size=120)
753
+ gpu_op_function_merge_by_chunk_size = merge_strings_by_chunk_size(
754
+ gpu_merge_op_function, chunk_size=120)
755
+ op_inc_list = chunk_list(gpu_merge_op_inc, n=120)
675
756
 
676
757
  new_gen_num = len(gpu_op_header_merge_by_chunk_size)
677
- self._delete_residual_merged_ops_files(os.path.join(work_path, self.gpu_gen_path), new_gen_num)
758
+ self._delete_residual_merged_ops_files(
759
+ os.path.join(work_path, self.gpu_gen_path), new_gen_num)
678
760
 
679
761
  for i, op_header, op_function in zip(range(len(gpu_op_header_merge_by_chunk_size)),
680
762
  gpu_op_header_merge_by_chunk_size,
681
763
  gpu_op_function_merge_by_chunk_size):
764
+ ops_inc_head_set = set()
765
+ for op_name_inc in op_inc_list[i]:
766
+ ops_inc_head_set.add(template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_name_inc[0].lower()))
682
767
  gpu_pyboost_op_source = self.PYBOOST_GPU_OP_SOURCE_TEMPLATE.replace(
683
- merge_op_header=op_header, merge_op_function=op_function)
768
+ merge_op_header=op_header, merge_op_function=op_function, ops_inc=list(sorted(ops_inc_head_set)))
684
769
  save_file(os.path.join(work_path, self.gpu_gen_path), f"pyboost_gpu_ops_{i}.cc",
685
770
  gpu_pyboost_op_source)
686
771
 
@@ -703,7 +788,8 @@ class PyboostOpFunctionGenerator(BaseGenerator):
703
788
  None
704
789
  """
705
790
  all_files = os.listdir(files_path)
706
- old_pyboost_ops_files = [file for file in all_files if re.match(r'pyboost_.*_ops_.*\.cc', file)]
791
+ old_pyboost_ops_files = [file for file in all_files if re.match(
792
+ r'pyboost_.*_ops_.*\.cc', file)]
707
793
  old_files_num = len(old_pyboost_ops_files)
708
794
  if new_gen_num != old_files_num:
709
795
  for file in old_pyboost_ops_files:
@@ -782,7 +868,8 @@ def delete_residual_files(work_path, op_protos):
782
868
  all_operator_name.append(op_proto.op_name)
783
869
  code_generate_path_list = [f"{K.MS_OPS_KERNEL_PATH}/{device}/pyboost/auto_generate/" for device in
784
870
  ["ascend", "gpu", "cpu"]]
785
- code_generate_path_list.append(f"{K.MS_COMMON_PYBOOST_KERNEL_PATH}/auto_generate/")
871
+ code_generate_path_list.append(
872
+ f"{K.MS_COMMON_PYBOOST_KERNEL_PATH}/auto_generate/")
786
873
  for code_generate_path in code_generate_path_list:
787
874
  filter_files = []
788
875
  code_generate_path = os.path.join(work_path, code_generate_path)
@@ -843,9 +930,9 @@ class PyboostOpRegisterCppCodeGenerator:
843
930
  for op_name in all_op_names:
844
931
  factory_str += "template class OpFactory<{0}>;\n".format(op_name)
845
932
  for operator_name in all_functional_names:
846
- include_str += f'#include "{K.MS_COMMON_PYBOOST_KERNEL_PATH}/auto_generate/{operator_name}.h"\n'
933
+ include_str += f'#include "{K.MS_PYBOOST_BASE_PATH}/auto_generate/{operator_name}.h"\n'
847
934
  op_register_file_str = self.PYBOOST_OP_REGISTER_TEMPLATE.replace(op_includes=include_str,
848
935
  op_factory_templates=factory_str)
849
- save_path = os.path.join(work_path, f"{K.MS_COMMON_PYBOOST_KERNEL_PATH}/auto_generate/")
936
+ save_path = os.path.join(work_path, f"{K.MS_PYBOOST_BASE_PATH}/auto_generate/")
850
937
  file_name = "op_register.cc"
851
938
  save_file(save_path, file_name, op_register_file_str)
@@ -21,15 +21,17 @@ the necessary header files for the generated functions.
21
21
  """
22
22
 
23
23
  import os
24
- import template
25
- from template import Template
26
- import gen_constants as K
27
- import pyboost_utils
28
- import op_api_proto
29
- from gen_utils import save_file
30
- from op_proto import OpProto
31
- from op_template_parser import OpTemplateParser
32
- from base_generator import BaseGenerator
24
+
25
+ import common.template as template
26
+ import common.gen_constants as K
27
+ from common.template import Template
28
+ from common.gen_utils import save_file
29
+ from common.op_proto import OpProto
30
+ from common.base_generator import BaseGenerator
31
+ from pyboost import pyboost_utils
32
+ import api.op_api_proto as op_api_proto
33
+
34
+ from .op_template_parser import OpTemplateParser
33
35
 
34
36
 
35
37
  class PyboostOverloadFunctionsGenerator(BaseGenerator):
@@ -68,7 +70,9 @@ class PyboostOverloadFunctionsGenerator(BaseGenerator):
68
70
  self.pyboost_return_template = Template(
69
71
  '${arg_handler_processor}\n'
70
72
  'MS_LOG(INFO) << "Call Tensor${class_name}";\n'
71
- 'return mindspore::tensor::ToPython(${pyboost_base_func_name}_Base(${prim_name}, arg_list));\n'
73
+ 'auto res = ${pyboost_base_func_name}_OP(${prim_name}, parse_args.src_types_, ${convert_args});\n'
74
+ 'trace::Capture(parse_args.arg_list_, "${class_name}", &res);\n'
75
+ 'return res;\n'
72
76
  )
73
77
  self.callback_python_template = Template(
74
78
  'MS_LOG(INFO) << "Callback python method: ${py_method}";\n'
@@ -112,8 +116,9 @@ class PyboostOverloadFunctionsGenerator(BaseGenerator):
112
116
  """
113
117
 
114
118
  mint_classes_def_list = []
115
-
116
- _, single_mint_func_data, overload_mint_func_data = op_api_proto.categorize_func_data(mint_func_protos_data)
119
+ ops_inc_head_set = set()
120
+ _, single_mint_func_data, overload_mint_func_data, op_class_name_set = op_api_proto.categorize_func_data(
121
+ mint_func_protos_data)
117
122
  single_func_call_body_list, single_cpp_class_name_list = (
118
123
  self._get_single_func_call_body_list(single_mint_func_data))
119
124
  overload_func_call_body_list, overload_cpp_class_name_list = (
@@ -125,9 +130,11 @@ class PyboostOverloadFunctionsGenerator(BaseGenerator):
125
130
  cpp_class_name_list = single_cpp_class_name_list + overload_cpp_class_name_list
126
131
  mint_classes_reg_list = (
127
132
  self._get_mint_func_reg_list(single_mint_func_data, overload_mint_func_data, cpp_class_name_list))
128
-
133
+ for op_class_name in op_class_name_set:
134
+ ops_inc_head_set.add(template.OP_DEF_INC_HEAD_TEMPLATE.replace(prefix_char=op_class_name[0].lower()))
129
135
  pyboost_overload_file_str = (
130
- self.PYBOOST_OVERLOAD_FUNCTIONS_TEMPLATE.replace(mint_func_classes_def=mint_classes_def_list,
136
+ self.PYBOOST_OVERLOAD_FUNCTIONS_TEMPLATE.replace(ops_inc=list(sorted(ops_inc_head_set)),
137
+ mint_func_classes_def=mint_classes_def_list,
131
138
  pybind_register_code=mint_classes_reg_list))
132
139
  save_path = os.path.join(work_path, K.PIPELINE_PYBOOST_FUNC_GEN_PATH)
133
140
  file_name = "pyboost_overload_functions.cc"
@@ -306,13 +313,15 @@ class PyboostOverloadFunctionsGenerator(BaseGenerator):
306
313
  func_proto_device = getattr(func_proto, device)
307
314
  if func_proto_device == 'pyboost':
308
315
  arg_handler_processor_str = self._get_arg_handler_processor(func_proto.func_name, func_proto.op_proto)
316
+ convert_args_str = self._get_convert_args_str(func_proto.op_proto)
309
317
  op_parser = OpTemplateParser(func_proto.op_proto)
310
318
  op_pyboost_func_name = op_parser.get_pyboost_func_name()
311
319
  prim_name = f"prim::kPrim{func_proto.op_proto.op_class.name}"
312
320
  return self.pyboost_return_template.replace(arg_handler_processor=arg_handler_processor_str,
313
321
  class_name=func_proto.op_proto.op_class.name,
314
322
  prim_name=prim_name,
315
- pyboost_base_func_name=op_pyboost_func_name)
323
+ pyboost_base_func_name=op_pyboost_func_name,
324
+ convert_args=convert_args_str)
316
325
  if func_proto_device == 'py_method':
317
326
  return self.callback_python_template.replace(py_method=func_proto.py_method)
318
327
 
@@ -322,6 +331,10 @@ class PyboostOverloadFunctionsGenerator(BaseGenerator):
322
331
  op_parser = OpTemplateParser(op_proto)
323
332
  return op_parser.get_arg_handler_processor(func_name, op_proto, is_tensor_api=False)
324
333
 
334
+ def _get_convert_args_str(self, op_proto):
335
+ op_parser = OpTemplateParser(op_proto)
336
+ return op_parser.get_convert_args_str(op_proto, is_tensor_api=False)
337
+
325
338
  def _get_mint_func_reg_list(self, single_mint_func_data, overload_mint_func_data, cpp_class_names):
326
339
  """
327
340
  Generates the list of pybind definition strings for mint functions.
@@ -16,8 +16,9 @@
16
16
 
17
17
  import os
18
18
  import logging
19
- from gen_utils import safe_load_yaml
20
- from op_proto import OpProto
19
+ from common.gen_utils import safe_load_yaml
20
+ from common.op_proto import OpProto
21
+ import common.gen_constants as K
21
22
 
22
23
 
23
24
  def is_optional_param(op_arg):
@@ -114,6 +115,54 @@ def get_convert_type_str(dtype: str, optional):
114
115
  raise TypeError(f"""Unsupported convert type {dtype} for args.""")
115
116
 
116
117
 
118
+ def get_input_args_type_str(dtype: str, optional):
119
+ """
120
+ Convert type
121
+ """
122
+ # add more type here
123
+ native_type = {
124
+ 'int': 'Int64ImmPtr',
125
+ 'float': 'FP32ImmPtr',
126
+ 'bool': 'BoolImmPtr',
127
+ 'number': 'ScalarPtr',
128
+ 'tuple[int]': 'ValueTuplePtr',
129
+ 'tuple[float]': 'ValueTuplePtr',
130
+ 'tuple[bool]': 'ValueTuplePtr',
131
+ 'tuple[tensor]': 'ValueTuplePtr',
132
+ 'list[int]': 'ValueTuplePtr',
133
+ 'list[float]': 'ValueTuplePtr',
134
+ 'list[bool]': 'ValueTuplePtr',
135
+ 'list[tensor]': 'ValueTuplePtr',
136
+ 'tensor': 'ValuePtr',
137
+ 'str': 'StringImmPtr',
138
+ 'type': 'Int64ImmPtr',
139
+ }
140
+ optional_type = {
141
+ 'int': 'std::optional<Int64ImmPtr>',
142
+ 'float': 'std::optional<FP32ImmPtr>',
143
+ 'number': 'std::optional<ScalarPtr>',
144
+ 'tensor': 'std::optional<ValuePtr>',
145
+ 'type': 'std::optional<Int64ImmPtr>',
146
+ 'str': 'std::optional<StringImmPtr>',
147
+ 'tuple[int]': 'std::optional<ValueTuplePtr>',
148
+ 'tuple[float]': 'std::optional<ValueTuplePtr>',
149
+ 'tuple[bool]': 'std::optional<ValueTuplePtr>',
150
+ 'tuple[tensor]': 'std::optional<ValueTuplePtr>',
151
+ 'list[int]': 'std::optional<ValueTuplePtr>',
152
+ 'list[float]': 'std::optional<ValueTuplePtr>',
153
+ 'list[bool]': 'std::optional<ValueTuplePtr>',
154
+ 'list[tensor]': 'std::optional<ValueTuplePtr>',
155
+ }
156
+ if optional:
157
+ if dtype in optional_type:
158
+ return optional_type[dtype]
159
+ raise TypeError(f"""Unknown optional type {dtype} for args.""")
160
+ if dtype in native_type:
161
+ return native_type[dtype]
162
+ raise TypeError(f"""Unknown type {dtype} for args.""")
163
+
164
+
165
+
117
166
  def get_value_convert_type_str(dtype: str, optional):
118
167
  """
119
168
  Convert type
@@ -407,12 +456,47 @@ def merge_strings_by_chunk_size(string_list, chunk_size=50):
407
456
  return merged_strings
408
457
 
409
458
 
459
+ def chunk_list(lst, n):
460
+ """
461
+ Divide a list into sublists of length 'n'.
462
+
463
+ This function takes a list `lst` and an integer `n`, and returns a new list
464
+ where each element is a sublist of `lst` containing up to `n` elements.
465
+ If the length of `lst` is not a multiple of `n`, the last sublist will contain
466
+ fewer than `n` elements.
467
+
468
+ Args:
469
+ lst (list): The original list to be divided.
470
+ n (int): The number of elements per sublist.
471
+
472
+ Returns:
473
+ list: A list of sublists, where each sublist has up to `n` elements.
474
+
475
+ Raises:
476
+ ValueError: If `n` is less than or equal to 0.
477
+
478
+ Example:
479
+ >>> my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
480
+ >>> chunked_list = chunk_list(my_list, 3)
481
+ >>> print(chunked_list)
482
+ [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
483
+
484
+ Note:
485
+ This function assumes that `n` is a positive integer. If `n` is not a
486
+ positive integer, a ValueError is raised.
487
+ """
488
+ if n <= 0:
489
+ raise ValueError("The chunk size 'n' must be a positive integer.")
490
+
491
+ return [lst[i:i + n] for i in range(0, len(lst), n)]
492
+
493
+
410
494
  class AclnnUtils:
411
495
  """
412
496
  aclnn utils
413
497
  """
414
- work_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../../../")
415
- aclnn_map = safe_load_yaml(os.path.join(work_path, "./mindspore/python/mindspore/ops_generate/aclnn_config.yaml"))
498
+ aclnn_map = safe_load_yaml(os.path.join(
499
+ K.WORK_DIR, K.PY_OPS_GEN_PATH, "pyboost/aclnn_config.yaml"))
416
500
 
417
501
  @staticmethod
418
502
  def get_aclnn_interface(class_name):
File without changes
@@ -0,0 +1,30 @@
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
+ """Resource list."""
17
+
18
+ from enum import Enum
19
+
20
+
21
+ class ResourceType(Enum):
22
+ OP_PROTO = 0
23
+ DEPRECATED_OP_PROTO = 1
24
+ OP_DOC_YAML = 2
25
+ TENSOR_METHOD_DOC_YAML = 3
26
+ MINT_FUNC_DOC_YAML = 4
27
+ TENSOR_METHOD_PROTOS = 5
28
+ MINT_FUNC_PROTOS = 6
29
+ ALIAS_API_MAPPING = 7
30
+ FUNC_OP_PROTO = 8