mindspore 2.4.10__cp39-cp39-win_amd64.whl → 2.6.0rc1__cp39-cp39-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 (577) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +13 -6
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +3 -0
  7. mindspore/_checkparam.py +3 -38
  8. mindspore/_deprecated/__init__.py +17 -0
  9. mindspore/_deprecated/jit.py +198 -0
  10. mindspore/_extends/builtin_operations.py +1 -1
  11. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  12. mindspore/_extends/parse/__init__.py +6 -7
  13. mindspore/_extends/parse/compile_config.py +83 -0
  14. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  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 +46 -197
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +217 -98
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +11 -5
  27. mindspore/avcodec-59.dll +0 -0
  28. mindspore/avdevice-59.dll +0 -0
  29. mindspore/avfilter-8.dll +0 -0
  30. mindspore/avformat-59.dll +0 -0
  31. mindspore/avutil-57.dll +0 -0
  32. mindspore/boost/__init__.py +2 -2
  33. mindspore/boost/base.py +3 -7
  34. mindspore/boost/boost_cell_wrapper.py +138 -43
  35. mindspore/common/__init__.py +6 -3
  36. mindspore/common/_grad_function.py +56 -0
  37. mindspore/common/_pijit_context.py +14 -5
  38. mindspore/common/_register_for_tensor.py +1 -2
  39. mindspore/common/_stub_tensor.py +30 -14
  40. mindspore/common/_tensor_cpp_method.py +17 -0
  41. mindspore/common/_tensor_docs.py +4760 -0
  42. mindspore/common/api.py +435 -371
  43. mindspore/common/auto_dynamic_shape.py +41 -44
  44. mindspore/common/dtype.py +39 -36
  45. mindspore/common/dump.py +9 -6
  46. mindspore/common/file_system.py +9 -1
  47. mindspore/common/generator.py +2 -0
  48. mindspore/common/hook_handle.py +6 -2
  49. mindspore/common/initializer.py +13 -10
  50. mindspore/common/jit_begin_end.py +94 -0
  51. mindspore/common/jit_config.py +6 -1
  52. mindspore/common/jit_context.py +76 -0
  53. mindspore/common/jit_trace.py +378 -0
  54. mindspore/common/lazy_inline.py +9 -3
  55. mindspore/common/mindir_util.py +10 -2
  56. mindspore/common/mutable.py +5 -4
  57. mindspore/common/parameter.py +135 -52
  58. mindspore/common/seed.py +2 -2
  59. mindspore/common/sparse_tensor.py +23 -17
  60. mindspore/common/tensor.py +951 -1992
  61. mindspore/communication/__init__.py +7 -5
  62. mindspore/communication/_comm_helper.py +52 -2
  63. mindspore/communication/comm_func.py +240 -181
  64. mindspore/communication/management.py +95 -26
  65. mindspore/context.py +314 -566
  66. mindspore/dataset/__init__.py +65 -37
  67. mindspore/dataset/audio/__init__.py +2 -8
  68. mindspore/dataset/audio/transforms.py +3 -17
  69. mindspore/dataset/callback/ds_callback.py +2 -1
  70. mindspore/dataset/core/config.py +87 -6
  71. mindspore/dataset/engine/cache_admin.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +6 -5
  73. mindspore/dataset/engine/datasets.py +292 -267
  74. mindspore/dataset/engine/datasets_audio.py +22 -8
  75. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  76. mindspore/dataset/engine/datasets_text.py +78 -48
  77. mindspore/dataset/engine/datasets_user_defined.py +182 -116
  78. mindspore/dataset/engine/datasets_vision.py +120 -44
  79. mindspore/dataset/engine/iterators.py +283 -63
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/obs/util.py +8 -0
  82. mindspore/dataset/engine/queue.py +40 -0
  83. mindspore/dataset/engine/samplers.py +289 -43
  84. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  85. mindspore/dataset/engine/validators.py +53 -11
  86. mindspore/dataset/text/__init__.py +7 -6
  87. mindspore/dataset/text/transforms.py +6 -5
  88. mindspore/dataset/text/utils.py +3 -3
  89. mindspore/dataset/transforms/__init__.py +0 -9
  90. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  91. mindspore/dataset/transforms/transforms.py +31 -14
  92. mindspore/dataset/utils/browse_dataset.py +1 -1
  93. mindspore/dataset/vision/__init__.py +2 -9
  94. mindspore/dataset/vision/transforms.py +202 -158
  95. mindspore/dataset/vision/utils.py +7 -5
  96. mindspore/dataset/vision/validators.py +1 -2
  97. mindspore/device_context/__init__.py +21 -0
  98. mindspore/device_context/ascend/__init__.py +25 -0
  99. mindspore/device_context/ascend/device.py +72 -0
  100. mindspore/device_context/ascend/op_debug.py +153 -0
  101. mindspore/device_context/ascend/op_precision.py +193 -0
  102. mindspore/device_context/ascend/op_tuning.py +123 -0
  103. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  104. mindspore/device_context/cpu/device.py +62 -0
  105. mindspore/device_context/cpu/op_tuning.py +43 -0
  106. mindspore/device_context/gpu/__init__.py +21 -0
  107. mindspore/device_context/gpu/device.py +70 -0
  108. mindspore/device_context/gpu/op_precision.py +67 -0
  109. mindspore/device_context/gpu/op_tuning.py +175 -0
  110. mindspore/device_manager.py +170 -0
  111. mindspore/experimental/es/embedding_service.py +35 -27
  112. mindspore/experimental/llm_boost/__init__.py +1 -0
  113. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  114. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +211 -0
  115. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  116. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  117. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  118. mindspore/experimental/llm_boost/register.py +1 -0
  119. mindspore/experimental/map_parameter.py +4 -4
  120. mindspore/experimental/optim/adadelta.py +6 -6
  121. mindspore/experimental/optim/adagrad.py +4 -4
  122. mindspore/experimental/optim/adam.py +7 -0
  123. mindspore/experimental/optim/adamax.py +4 -4
  124. mindspore/experimental/optim/adamw.py +4 -0
  125. mindspore/experimental/optim/asgd.py +1 -1
  126. mindspore/experimental/optim/lr_scheduler.py +73 -46
  127. mindspore/experimental/optim/radam.py +34 -31
  128. mindspore/experimental/optim/rprop.py +1 -1
  129. mindspore/experimental/optim/sgd.py +1 -1
  130. mindspore/hal/contiguous_tensors_handle.py +6 -10
  131. mindspore/hal/device.py +55 -53
  132. mindspore/hal/event.py +52 -52
  133. mindspore/hal/memory.py +157 -117
  134. mindspore/hal/stream.py +150 -109
  135. mindspore/include/api/context.h +0 -1
  136. mindspore/include/dataset/constants.h +7 -4
  137. mindspore/include/dataset/execute.h +2 -2
  138. mindspore/jpeg62.dll +0 -0
  139. mindspore/log.py +50 -0
  140. mindspore/mindrecord/__init__.py +21 -8
  141. mindspore/mindrecord/config.py +17 -316
  142. mindspore/mindrecord/filereader.py +1 -9
  143. mindspore/mindrecord/filewriter.py +5 -15
  144. mindspore/mindrecord/mindpage.py +1 -9
  145. mindspore/mindspore_backend_common.dll +0 -0
  146. mindspore/mindspore_backend_manager.dll +0 -0
  147. mindspore/mindspore_common.dll +0 -0
  148. mindspore/mindspore_core.dll +0 -0
  149. mindspore/mindspore_dump.dll +0 -0
  150. mindspore/mindspore_frontend.dll +0 -0
  151. mindspore/mindspore_memory_pool.dll +0 -0
  152. mindspore/mindspore_ms_backend.dll +0 -0
  153. mindspore/mindspore_ops.dll +0 -0
  154. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  155. mindspore/mindspore_ops_kernel_common.dll +0 -0
  156. mindspore/mindspore_profiler.dll +0 -0
  157. mindspore/mindspore_pyboost.dll +0 -0
  158. mindspore/mindspore_pynative.dll +0 -0
  159. mindspore/mindspore_res_manager.dll +0 -0
  160. mindspore/mindspore_runtime_pipeline.dll +0 -0
  161. mindspore/mint/__init__.py +796 -759
  162. mindspore/mint/distributed/__init__.py +70 -4
  163. mindspore/mint/distributed/distributed.py +2679 -44
  164. mindspore/mint/linalg/__init__.py +8 -0
  165. mindspore/mint/nn/__init__.py +743 -22
  166. mindspore/mint/nn/functional.py +716 -23
  167. mindspore/mint/nn/layer/__init__.py +21 -4
  168. mindspore/mint/nn/layer/_functions.py +334 -0
  169. mindspore/mint/nn/layer/activation.py +276 -1
  170. mindspore/mint/nn/layer/basic.py +123 -0
  171. mindspore/mint/nn/layer/conv.py +921 -0
  172. mindspore/mint/nn/layer/normalization.py +223 -28
  173. mindspore/mint/nn/layer/padding.py +797 -0
  174. mindspore/mint/nn/layer/pooling.py +235 -0
  175. mindspore/mint/optim/__init__.py +3 -1
  176. mindspore/mint/optim/adam.py +223 -0
  177. mindspore/mint/optim/adamw.py +26 -19
  178. mindspore/mint/optim/sgd.py +171 -0
  179. mindspore/mint/special/__init__.py +2 -1
  180. mindspore/multiprocessing/__init__.py +5 -0
  181. mindspore/nn/__init__.py +4 -1
  182. mindspore/nn/cell.py +1370 -189
  183. mindspore/nn/dynamic_lr.py +2 -1
  184. mindspore/nn/layer/activation.py +29 -27
  185. mindspore/nn/layer/basic.py +51 -35
  186. mindspore/nn/layer/channel_shuffle.py +3 -3
  187. mindspore/nn/layer/container.py +1 -1
  188. mindspore/nn/layer/conv.py +22 -17
  189. mindspore/nn/layer/embedding.py +12 -11
  190. mindspore/nn/layer/normalization.py +56 -49
  191. mindspore/nn/layer/padding.py +4 -3
  192. mindspore/nn/layer/pooling.py +120 -42
  193. mindspore/nn/layer/rnn_cells.py +1 -1
  194. mindspore/nn/layer/rnns.py +2 -1
  195. mindspore/nn/layer/timedistributed.py +5 -5
  196. mindspore/nn/layer/transformer.py +59 -36
  197. mindspore/nn/learning_rate_schedule.py +8 -4
  198. mindspore/nn/loss/loss.py +58 -55
  199. mindspore/nn/optim/ada_grad.py +7 -5
  200. mindspore/nn/optim/adadelta.py +11 -9
  201. mindspore/nn/optim/adafactor.py +1 -1
  202. mindspore/nn/optim/adam.py +17 -13
  203. mindspore/nn/optim/adamax.py +8 -7
  204. mindspore/nn/optim/adasum.py +5 -5
  205. mindspore/nn/optim/asgd.py +1 -1
  206. mindspore/nn/optim/ftrl.py +11 -9
  207. mindspore/nn/optim/lamb.py +1 -1
  208. mindspore/nn/optim/lars.py +1 -4
  209. mindspore/nn/optim/lazyadam.py +12 -10
  210. mindspore/nn/optim/momentum.py +7 -6
  211. mindspore/nn/optim/optimizer.py +3 -3
  212. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  213. mindspore/nn/optim/rmsprop.py +13 -12
  214. mindspore/nn/optim/rprop.py +11 -9
  215. mindspore/nn/optim/sgd.py +9 -6
  216. mindspore/nn/optim/tft_wrapper.py +5 -2
  217. mindspore/nn/optim/thor.py +2 -1
  218. mindspore/nn/probability/bijector/bijector.py +17 -11
  219. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  220. mindspore/nn/probability/bijector/invert.py +2 -2
  221. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  222. mindspore/nn/probability/bijector/softplus.py +3 -2
  223. mindspore/nn/probability/distribution/beta.py +3 -3
  224. mindspore/nn/probability/distribution/categorical.py +1 -1
  225. mindspore/nn/probability/distribution/cauchy.py +4 -2
  226. mindspore/nn/probability/distribution/exponential.py +6 -7
  227. mindspore/nn/probability/distribution/gamma.py +2 -2
  228. mindspore/nn/probability/distribution/gumbel.py +2 -2
  229. mindspore/nn/probability/distribution/half_normal.py +5 -3
  230. mindspore/nn/probability/distribution/logistic.py +5 -3
  231. mindspore/nn/probability/distribution/poisson.py +1 -1
  232. mindspore/nn/probability/distribution/uniform.py +5 -3
  233. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  234. mindspore/nn/reinforcement/tensor_array.py +1 -1
  235. mindspore/nn/utils/init.py +13 -11
  236. mindspore/nn/wrap/__init__.py +6 -6
  237. mindspore/nn/wrap/cell_wrapper.py +181 -122
  238. mindspore/nn/wrap/grad_reducer.py +45 -36
  239. mindspore/nn/wrap/loss_scale.py +6 -7
  240. mindspore/numpy/array_creations.py +63 -65
  241. mindspore/numpy/array_ops.py +149 -144
  242. mindspore/numpy/logic_ops.py +41 -42
  243. mindspore/numpy/math_ops.py +365 -363
  244. mindspore/numpy/utils.py +17 -18
  245. mindspore/numpy/utils_const.py +5 -6
  246. mindspore/opencv_core452.dll +0 -0
  247. mindspore/opencv_imgcodecs452.dll +0 -0
  248. mindspore/opencv_imgproc452.dll +0 -0
  249. mindspore/ops/__init__.py +5 -3
  250. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  251. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  252. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  253. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  254. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  255. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  256. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  257. mindspore/ops/_register_for_op.py +0 -11
  258. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  259. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  260. mindspore/ops/_vmap/vmap_array_ops.py +27 -25
  261. mindspore/ops/_vmap/vmap_base.py +0 -2
  262. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  263. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  264. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  265. mindspore/ops/auto_generate/__init__.py +4 -3
  266. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +236 -46
  267. mindspore/ops/auto_generate/gen_extend_func.py +764 -124
  268. mindspore/ops/auto_generate/gen_ops_def.py +4018 -2264
  269. mindspore/ops/auto_generate/gen_ops_prim.py +15463 -5037
  270. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  271. mindspore/ops/composite/__init__.py +2 -1
  272. mindspore/ops/composite/base.py +20 -25
  273. mindspore/ops/composite/math_ops.py +6 -16
  274. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  275. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  276. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  277. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  278. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  279. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  280. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  281. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  282. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  283. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  284. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  285. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  286. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  287. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  288. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  289. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  290. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  291. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  292. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  293. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  294. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  295. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  296. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  297. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  299. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  301. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  302. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  303. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  304. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  305. mindspore/ops/function/__init__.py +40 -2
  306. mindspore/ops/function/_add_attr_func.py +58 -0
  307. mindspore/ops/function/array_func.py +2089 -2403
  308. mindspore/ops/function/clip_func.py +80 -23
  309. mindspore/ops/function/debug_func.py +57 -57
  310. mindspore/ops/function/grad/__init__.py +1 -0
  311. mindspore/ops/function/grad/grad_func.py +104 -71
  312. mindspore/ops/function/image_func.py +2 -2
  313. mindspore/ops/function/linalg_func.py +47 -78
  314. mindspore/ops/function/math_func.py +4501 -3802
  315. mindspore/ops/function/nn_func.py +1726 -620
  316. mindspore/ops/function/other_func.py +159 -1
  317. mindspore/ops/function/parameter_func.py +18 -84
  318. mindspore/ops/function/random_func.py +440 -387
  319. mindspore/ops/function/reshard_func.py +4 -70
  320. mindspore/ops/function/sparse_func.py +3 -3
  321. mindspore/ops/function/sparse_unary_func.py +6 -6
  322. mindspore/ops/function/spectral_func.py +25 -58
  323. mindspore/ops/function/vmap_func.py +24 -17
  324. mindspore/ops/functional.py +22 -7
  325. mindspore/ops/functional_overload.py +1440 -0
  326. mindspore/ops/op_info_register.py +32 -244
  327. mindspore/ops/operations/__init__.py +13 -7
  328. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  329. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  330. mindspore/ops/operations/_grad_ops.py +2 -43
  331. mindspore/ops/operations/_infer_ops.py +2 -1
  332. mindspore/ops/operations/_inner_ops.py +43 -84
  333. mindspore/ops/operations/_ms_kernel.py +4 -10
  334. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  335. mindspore/ops/operations/_scalar_ops.py +3 -2
  336. mindspore/ops/operations/_sequence_ops.py +1 -1
  337. mindspore/ops/operations/_tensor_array.py +1 -1
  338. mindspore/ops/operations/array_ops.py +81 -324
  339. mindspore/ops/operations/comm_ops.py +154 -108
  340. mindspore/ops/operations/custom_ops.py +232 -78
  341. mindspore/ops/operations/debug_ops.py +153 -59
  342. mindspore/ops/operations/inner_ops.py +7 -5
  343. mindspore/ops/operations/linalg_ops.py +1 -57
  344. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  345. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  346. mindspore/ops/operations/math_ops.py +32 -234
  347. mindspore/ops/operations/nn_ops.py +210 -498
  348. mindspore/ops/operations/other_ops.py +62 -9
  349. mindspore/ops/operations/random_ops.py +13 -7
  350. mindspore/ops/operations/reshard_ops.py +1 -1
  351. mindspore/ops/operations/sparse_ops.py +2 -2
  352. mindspore/ops/primitive.py +66 -53
  353. mindspore/ops/tensor_method.py +1888 -0
  354. mindspore/ops_generate/__init__.py +0 -5
  355. mindspore/ops_generate/aclnn/__init__.py +0 -0
  356. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  357. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  358. mindspore/ops_generate/api/__init__.py +0 -0
  359. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  360. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  361. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  362. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  363. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  364. mindspore/ops_generate/api/gen_api.py +103 -0
  365. mindspore/ops_generate/api/op_api_proto.py +235 -0
  366. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  367. mindspore/ops_generate/common/__init__.py +0 -0
  368. mindspore/ops_generate/common/base_generator.py +11 -0
  369. mindspore/ops_generate/common/gen_constants.py +91 -0
  370. mindspore/ops_generate/common/gen_utils.py +348 -0
  371. mindspore/ops_generate/common/op_proto.py +473 -0
  372. mindspore/ops_generate/common/template.py +523 -0
  373. mindspore/ops_generate/gen_ops.py +22 -1069
  374. mindspore/ops_generate/op_def/__init__.py +0 -0
  375. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  376. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  377. mindspore/ops_generate/op_def/ops_def_cc_generator.py +299 -0
  378. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  379. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  380. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  381. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  382. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  383. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  384. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  385. mindspore/ops_generate/pyboost/__init__.py +0 -0
  386. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  387. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  388. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  389. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  390. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  391. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  392. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  393. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  394. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  395. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  396. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  397. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  398. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  399. mindspore/ops_generate/resources/__init__.py +0 -0
  400. mindspore/ops_generate/resources/resource_list.py +30 -0
  401. mindspore/ops_generate/resources/resource_loader.py +36 -0
  402. mindspore/ops_generate/resources/resource_manager.py +64 -0
  403. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  404. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  405. mindspore/parallel/__init__.py +7 -3
  406. mindspore/parallel/_auto_parallel_context.py +152 -34
  407. mindspore/parallel/_cell_wrapper.py +130 -15
  408. mindspore/parallel/_parallel_serialization.py +107 -5
  409. mindspore/parallel/_ps_context.py +1 -1
  410. mindspore/parallel/_recovery_context.py +7 -2
  411. mindspore/parallel/_tensor.py +142 -18
  412. mindspore/parallel/_utils.py +199 -23
  413. mindspore/parallel/algo_parameter_config.py +4 -4
  414. mindspore/parallel/auto_parallel.py +732 -0
  415. mindspore/parallel/checkpoint_convert.py +159 -0
  416. mindspore/parallel/checkpoint_transform.py +698 -35
  417. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  418. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  419. mindspore/parallel/cluster/run.py +21 -4
  420. mindspore/parallel/function/__init__.py +24 -0
  421. mindspore/parallel/function/reshard_func.py +259 -0
  422. mindspore/parallel/nn/__init__.py +25 -0
  423. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  424. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  425. mindspore/parallel/parameter_broadcast.py +25 -14
  426. mindspore/parallel/shard.py +137 -58
  427. mindspore/parallel/transform_safetensors.py +363 -305
  428. mindspore/profiler/__init__.py +22 -5
  429. mindspore/profiler/analysis/__init__.py +0 -0
  430. mindspore/profiler/analysis/parser/__init__.py +0 -0
  431. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  432. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  433. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  434. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  435. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  436. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  437. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  438. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  439. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +106 -0
  440. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  441. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  442. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  443. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  444. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  445. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  446. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  447. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  448. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  449. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  450. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  451. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  452. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  453. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  454. mindspore/profiler/analysis/task_manager.py +131 -0
  455. mindspore/profiler/analysis/time_converter.py +84 -0
  456. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  457. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  458. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  459. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  460. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  461. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  462. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  463. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  464. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  465. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  466. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  467. mindspore/profiler/analysis/work_flow.py +73 -0
  468. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  469. mindspore/profiler/common/command_executor.py +90 -0
  470. mindspore/profiler/common/constant.py +186 -3
  471. mindspore/profiler/common/file_manager.py +208 -0
  472. mindspore/profiler/common/log.py +130 -0
  473. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  474. mindspore/profiler/common/path_manager.py +395 -0
  475. mindspore/profiler/common/process_bar.py +168 -0
  476. mindspore/profiler/common/process_pool.py +9 -3
  477. mindspore/profiler/common/profiler_context.py +500 -0
  478. mindspore/profiler/common/profiler_info.py +304 -0
  479. mindspore/profiler/common/profiler_meta_data.py +74 -0
  480. mindspore/profiler/common/profiler_output_path.py +284 -0
  481. mindspore/profiler/common/profiler_parameters.py +251 -0
  482. mindspore/profiler/common/profiler_path_manager.py +179 -0
  483. mindspore/profiler/common/record_function.py +76 -0
  484. mindspore/profiler/common/tlv_decoder.py +76 -0
  485. mindspore/profiler/common/util.py +75 -2
  486. mindspore/profiler/dynamic_profiler.py +341 -75
  487. mindspore/profiler/envprofiler.py +163 -0
  488. mindspore/profiler/experimental_config.py +197 -0
  489. mindspore/profiler/mstx.py +242 -0
  490. mindspore/profiler/platform/__init__.py +21 -0
  491. mindspore/profiler/platform/base_profiler.py +40 -0
  492. mindspore/profiler/platform/cpu_profiler.py +124 -0
  493. mindspore/profiler/platform/gpu_profiler.py +74 -0
  494. mindspore/profiler/platform/npu_profiler.py +335 -0
  495. mindspore/profiler/profiler.py +1073 -90
  496. mindspore/profiler/profiler_action_controller.py +187 -0
  497. mindspore/profiler/profiler_interface.py +118 -0
  498. mindspore/profiler/schedule.py +243 -0
  499. mindspore/rewrite/api/node.py +15 -13
  500. mindspore/rewrite/api/symbol_tree.py +2 -3
  501. mindspore/run_check/_check_version.py +27 -20
  502. mindspore/run_check/run_check.py +1 -1
  503. mindspore/runtime/__init__.py +37 -0
  504. mindspore/runtime/device.py +27 -0
  505. mindspore/runtime/event.py +209 -0
  506. mindspore/runtime/executor.py +177 -0
  507. mindspore/runtime/memory.py +409 -0
  508. mindspore/runtime/stream.py +460 -0
  509. mindspore/runtime/thread_bind_core.py +401 -0
  510. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  511. mindspore/swresample-4.dll +0 -0
  512. mindspore/swscale-6.dll +0 -0
  513. mindspore/tinyxml2.dll +0 -0
  514. mindspore/train/__init__.py +8 -8
  515. mindspore/train/_utils.py +88 -25
  516. mindspore/train/amp.py +9 -5
  517. mindspore/train/callback/__init__.py +2 -2
  518. mindspore/train/callback/_callback.py +2 -16
  519. mindspore/train/callback/_checkpoint.py +53 -55
  520. mindspore/train/callback/_cluster_monitor.py +14 -18
  521. mindspore/train/callback/_early_stop.py +1 -1
  522. mindspore/train/callback/_flops_collector.py +103 -68
  523. mindspore/train/callback/_history.py +8 -5
  524. mindspore/train/callback/_lambda_callback.py +2 -2
  525. mindspore/train/callback/_landscape.py +0 -3
  526. mindspore/train/callback/_loss_monitor.py +2 -1
  527. mindspore/train/callback/_on_request_exit.py +6 -5
  528. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  529. mindspore/train/callback/_summary_collector.py +52 -19
  530. mindspore/train/callback/_time_monitor.py +2 -1
  531. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +204 -107
  532. mindspore/train/data_sink.py +25 -2
  533. mindspore/train/dataset_helper.py +15 -16
  534. mindspore/train/loss_scale_manager.py +8 -7
  535. mindspore/train/metrics/accuracy.py +3 -3
  536. mindspore/train/metrics/confusion_matrix.py +9 -9
  537. mindspore/train/metrics/error.py +3 -3
  538. mindspore/train/metrics/hausdorff_distance.py +4 -4
  539. mindspore/train/metrics/mean_surface_distance.py +3 -3
  540. mindspore/train/metrics/metric.py +0 -12
  541. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  542. mindspore/train/metrics/precision.py +11 -10
  543. mindspore/train/metrics/recall.py +9 -9
  544. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  545. mindspore/train/mind_ir_pb2.py +174 -46
  546. mindspore/train/model.py +184 -113
  547. mindspore/train/serialization.py +622 -978
  548. mindspore/train/summary/_summary_adapter.py +2 -2
  549. mindspore/train/summary/summary_record.py +2 -3
  550. mindspore/train/train_thor/model_thor.py +1 -1
  551. mindspore/turbojpeg.dll +0 -0
  552. mindspore/utils/__init__.py +6 -3
  553. mindspore/utils/dryrun.py +140 -0
  554. mindspore/utils/hooks.py +81 -0
  555. mindspore/utils/runtime_execution_order_check.py +550 -0
  556. mindspore/utils/utils.py +138 -4
  557. mindspore/version.py +1 -1
  558. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +3 -3
  559. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +562 -393
  560. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +1 -1
  561. mindspore/_install_custom.py +0 -43
  562. mindspore/common/_register_for_adapter.py +0 -74
  563. mindspore/common/_tensor_overload.py +0 -139
  564. mindspore/mindspore_np_dtype.dll +0 -0
  565. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  566. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  567. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  568. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  569. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  570. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  571. mindspore/ops_generate/gen_utils.py +0 -209
  572. mindspore/ops_generate/op_proto.py +0 -145
  573. mindspore/ops_generate/template.py +0 -261
  574. mindspore/profiler/envprofiling.py +0 -254
  575. mindspore/profiler/profiling.py +0 -1926
  576. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  577. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -1,209 +0,0 @@
1
- # Copyright 2023-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 utils function
17
- """
18
- import os
19
- import glob
20
- import hashlib
21
- import stat
22
- import yaml
23
-
24
-
25
- py_licence_str = f"""# Copyright 2023 Huawei Technologies Co., Ltd
26
- #
27
- # Licensed under the Apache License, Version 2.0 (the "License");
28
- # you may not use this file except in compliance with the License.
29
- # You may obtain a copy of the License at
30
- #
31
- # http://www.apache.org/licenses/LICENSE-2.0
32
- #
33
- # Unless required by applicable law or agreed to in writing, software
34
- # distributed under the License is distributed on an "AS IS" BASIS,
35
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36
- # See the License for the specific language governing permissions and
37
- # limitations under the License.
38
- # ============================================================================
39
- """
40
-
41
- cc_license_str = f"""/**
42
- * Copyright 2023 Huawei Technologies Co., Ltd
43
- *
44
- * Licensed under the Apache License, Version 2.0 (the "License");
45
- * you may not use this file except in compliance with the License.
46
- * You may obtain a copy of the License at
47
- *
48
- * http://www.apache.org/licenses/LICENSE-2.0
49
- *
50
- * Unless required by applicable law or agreed to in writing, software
51
- * distributed under the License is distributed on an "AS IS" BASIS,
52
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
53
- * See the License for the specific language governing permissions and
54
- * limitations under the License.
55
- */"""
56
-
57
-
58
- def convert_dtype_str(dtype_str):
59
- """
60
- Convert dtype str to expression in ops file
61
- """
62
- return 'DT_' + dtype_str.replace('[', '_').replace(']', '').upper()
63
-
64
-
65
- def get_type_str(type_str):
66
- """
67
- Get the unified type str for operator arg dtype.
68
- """
69
- # add more type here
70
- type_kind_set = {
71
- 'int',
72
- 'float',
73
- 'bool',
74
- 'number',
75
- 'tuple[int]',
76
- 'tuple[float]',
77
- 'tuple[bool]',
78
- 'tuple[tensor]',
79
- 'tuple[str]',
80
- 'list[int]',
81
- 'list[float]',
82
- 'list[bool]',
83
- 'list[tensor]',
84
- 'list[str]',
85
- 'tensor',
86
- 'type',
87
- }
88
- if type_str in type_kind_set:
89
- return "OpDtype." + convert_dtype_str(type_str)
90
- raise TypeError(f"""Unsupported type {type_str} for args.""")
91
-
92
-
93
- def get_file_md5(file_path):
94
- """
95
- Get the md5 value for file.
96
- """
97
- if not os.path.exists(file_path):
98
- return ""
99
- if os.path.isdir(file_path):
100
- return ""
101
- with open(file_path, 'rb') as f:
102
- data = f.read()
103
- md5_value = hashlib.md5(data).hexdigest()
104
- return md5_value
105
-
106
-
107
- def check_change_and_replace_file(last_file_path, tmp_file_path):
108
- """
109
- Compare tmp_file with the md5 value of the last generated file.
110
- If the md5 value is the same, retain the last generated file.
111
- Otherwise, update the last generated file to tmp_file.
112
- """
113
- last_md5 = get_file_md5(last_file_path)
114
- tmp_md5 = get_file_md5(tmp_file_path)
115
-
116
- if last_md5 == tmp_md5:
117
- os.remove(tmp_file_path)
118
- else:
119
- if os.path.exists(last_file_path):
120
- os.remove(last_file_path)
121
- os.rename(tmp_file_path, last_file_path)
122
-
123
-
124
- def merge_files_to_one_file(file_paths, merged_file_path):
125
- """
126
- Merge multiple files into one file.
127
- """
128
- merged_content = ''
129
- file_paths.sort()
130
- for file_path in file_paths:
131
- with open(file_path, 'r') as file:
132
- merged_content += file.read()
133
- merged_content += '\n'
134
- with open(merged_file_path, 'w') as file:
135
- file.write(merged_content)
136
-
137
-
138
- def merge_files(origin_dir, merged_file_path, file_format):
139
- """
140
- Merge multiple files into one file.
141
- origin_dir: indicates the origin file directory.
142
- merged_file_path: indicates the merged file path.
143
- file_format: indicates the format of regular matching.
144
- Files whose names meet the regular matching in 'origin_dir' directory will be merged into one file.
145
- """
146
- op_yaml_file_names = glob.glob(os.path.join(origin_dir, file_format))
147
- merge_files_to_one_file(op_yaml_file_names, merged_file_path)
148
-
149
-
150
- def merge_files_append(origin_dir, merged_file_path, file_format):
151
- """
152
- Merge multiple files into one file.
153
- origin_dir: indicates the origin file directory.
154
- merged_file_path: indicates the merged file path.
155
- file_format: indicates the format of regular matching.
156
- Files whose names meet the regular matching in 'origin_dir' directory will be merged into one file.
157
- """
158
- file_paths = glob.glob(os.path.join(origin_dir, file_format))
159
- merged_content = ''
160
- file_paths.sort()
161
- for file_path in file_paths:
162
- with open(file_path, 'r') as file:
163
- merged_content += file.read()
164
- merged_content += '\n'
165
- with open(merged_file_path, 'a') as file:
166
- file.write(merged_content)
167
-
168
-
169
- def safe_load_yaml(yaml_file_path):
170
- """
171
- Load yaml dictionary from file.
172
- """
173
- yaml_str = dict()
174
- with open(yaml_file_path, 'r') as yaml_file:
175
- yaml_str.update(yaml.safe_load(yaml_file))
176
- return yaml_str
177
-
178
-
179
- def get_assign_str_by_type_it(class_name, arg_info, arg_name, dtype):
180
- """
181
- Make type_it(arg, src_types, dst_type) python sentences.
182
- """
183
- assign_str = ""
184
- type_cast = arg_info.get('type_cast')
185
- if type_cast is not None:
186
- type_cast_tuple = tuple(ct.strip() for ct in type_cast.split(","))
187
- assign_str += f"type_it('{class_name}', '{arg_name}', {arg_name}, "
188
- if len(type_cast_tuple) == 1:
189
- assign_str += get_type_str(type_cast_tuple[0]) + ', '
190
- else:
191
- assign_str += '(' + ', '.join(get_type_str(ct) for ct in type_cast_tuple) + '), '
192
- assign_str += get_type_str(dtype) + ')'
193
- else:
194
- assign_str = arg_name
195
- return assign_str
196
-
197
-
198
- def write_file(path, data):
199
- """
200
- write data to path
201
- :param path:
202
- :param data:
203
- :return:
204
- """
205
- flags = os.O_RDWR | os.O_CREAT
206
- mode = stat.S_IWUSR | stat.S_IRUSR
207
- fd = os.open(path, flags, mode)
208
- with os.fdopen(fd, "w") as f:
209
- f.write(data)
@@ -1,145 +0,0 @@
1
- # Copyright 2023 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
- """Op Proto."""
16
- from pyboost_utils import convert_python_func_name_to_c, is_op_multi_output
17
-
18
-
19
- class Arg:
20
- def __init__(self, arg_name, arg_dtype, type_cast, is_type_id=False, as_init_arg=False, default=-1, inplace=''):
21
- self.arg_name = arg_name
22
- self.arg_dtype = arg_dtype
23
- self.type_cast = type_cast
24
- self.is_type_id = is_type_id
25
- self.as_init_arg = as_init_arg
26
- self.default = default
27
- self.inplace = inplace
28
-
29
-
30
- class OpProto:
31
- """
32
- This class defines mindspore op prototype, we parse ops.yaml to the object, to auto generate primitive
33
- and pyboost function.
34
- """
35
-
36
- def __init__(self,
37
- operator_name,
38
- op_args,
39
- returns,
40
- class_name,
41
- is_pyboost,
42
- is_view,
43
- cpu,
44
- gpu,
45
- ascend,
46
- prim_init,
47
- is_dispatch,
48
- is_multi_output,
49
- is_comm_op):
50
- self.operator_name = operator_name
51
- self.class_name = class_name
52
- self.op_args = op_args
53
- self.returns = returns
54
- self.indexes = {arg.arg_name: index for index, arg in enumerate(op_args)}
55
- self.pyboost_function_name = "Pyboost_" + self.class_name
56
- self.is_pyboost = is_pyboost
57
- self.is_view = is_view
58
- self.cpu = cpu
59
- self.gpu = gpu
60
- self.ascend = ascend
61
- self.prim_init = prim_init
62
- self.is_dispatch = is_dispatch
63
- self.is_multi_output = is_multi_output
64
- self.is_comm_op = is_comm_op
65
-
66
- @staticmethod
67
- def get_device_special_name(dispatch, gpu, cpu, ascend):
68
- if 'GPU' in dispatch.keys():
69
- gpu = dispatch['GPU']
70
- if 'CPU' in dispatch.keys():
71
- cpu = dispatch['CPU']
72
- if 'Ascend' in dispatch.keys():
73
- ascend = dispatch['Ascend']
74
- return gpu, cpu, ascend
75
-
76
- @staticmethod
77
- def load_from_yaml(op_name, yaml):
78
- """
79
- load from yaml
80
- :param op_name:
81
- :param yaml:
82
- :return:
83
- """
84
- if 'args' not in yaml.keys():
85
- raise TypeError("op define need key 'args'")
86
- args_dict = yaml.get('args')
87
- op_args = []
88
- default_str = 'default'
89
- is_type_id = False
90
- prim_init = False
91
- for arg_name in args_dict.keys():
92
- arg_dtype = args_dict[arg_name]['dtype']
93
- if arg_dtype == 'TypeId':
94
- arg_dtype = 'int'
95
- default = None
96
- as_init_arg = False
97
- is_type_id = False
98
- type_cast = []
99
- if default_str in args_dict[arg_name]:
100
- default = args_dict[arg_name][default_str]
101
- as_init_arg = True
102
- if 'prim_init' in args_dict[arg_name]:
103
- prim_init = args_dict[arg_name]['prim_init']
104
- if 'type_cast' in args_dict[arg_name]:
105
- type_cast = [cast_type.strip() for cast_type in args_dict[arg_name]['type_cast'].split(',')]
106
- arg_handler_key = 'arg_handler'
107
- if arg_handler_key in args_dict[arg_name] and args_dict[arg_name][arg_handler_key] == 'dtype_to_type_id':
108
- is_type_id = True
109
- arg = Arg(arg_name, arg_dtype, type_cast, is_type_id, as_init_arg, default)
110
- op_args.append(arg)
111
- if 'returns' not in yaml.keys():
112
- raise TypeError("op define need key 'returns'")
113
-
114
- is_pyboost = False
115
- is_dispatch = False
116
- is_comm_op = False
117
- gpu = default_str
118
- cpu = default_str
119
- ascend = default_str
120
- dispatch_key = 'dispatch'
121
- if dispatch_key in yaml.keys():
122
- is_dispatch = True
123
- is_pyboost = yaml[dispatch_key].get('enable')
124
- gpu, cpu, ascend = OpProto.get_device_special_name(yaml[dispatch_key], gpu, cpu, ascend)
125
- is_comm_op = yaml[dispatch_key].get('is_comm_op')
126
- return_dict = yaml['returns']
127
- class_name = convert_python_func_name_to_c(op_name)
128
- class_key = 'class'
129
- if class_key in yaml.keys() and 'name' in yaml[class_key].keys():
130
- class_name = yaml[class_key]['name']
131
- return_args = []
132
- for return_name in return_dict.keys():
133
- inplace = ''
134
- if 'inplace' in return_dict[return_name]:
135
- inplace = return_dict[return_name]['inplace']
136
- dtype = return_dict[return_name]['dtype']
137
- arg = Arg(return_name, dtype, type_cast=[], inplace=inplace)
138
- return_args.append(arg)
139
- is_multi_output = is_op_multi_output(return_args)
140
- is_view = False
141
- if 'view' in yaml.keys():
142
- is_view = True
143
- op_proto = OpProto(op_name, op_args, return_args, class_name,
144
- is_pyboost, is_view, cpu, gpu, ascend, prim_init, is_dispatch, is_multi_output, is_comm_op)
145
- return op_proto
@@ -1,261 +0,0 @@
1
- # Copyright 2023 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
- """Template."""
16
- import re
17
- import os
18
- import gen_constants as K
19
-
20
-
21
- class CppTemplate:
22
- """
23
- template for generate c++ code
24
- """
25
- regular_str = r"(^[^\n\S]*)?\$([^\d\W]\w*|\{,?[^\d\W]\w*\,?})"
26
- regular_match = re.compile(regular_str, re.MULTILINE)
27
-
28
- def __init__(self, code_pattern):
29
- self.code_pattern = code_pattern
30
-
31
- @staticmethod
32
- def load_from_file(file_path):
33
- with open(file_path, "r") as f:
34
- return CppTemplate(f.read())
35
-
36
- def replace(self, **kwargs):
37
- """
38
- replace param.
39
- :param kwargs:
40
- :return:
41
- """
42
-
43
- def find(key: str):
44
- if key in kwargs:
45
- return kwargs[key]
46
- raise TypeError(f"{key} should be in kwargs!")
47
-
48
- def add_indent(indent, var):
49
- return "".join([indent + line + "\n" for data in var for line in str(data).splitlines()]).rstrip()
50
-
51
- def extract_variable(key):
52
- start = ""
53
- end = ""
54
- if key[0] == "{":
55
- key = key[1:-1]
56
- if key[0] == ",":
57
- start = ","
58
- key = key[1:]
59
- if key[-1] == ",":
60
- end = ", "
61
- key = key[:-1]
62
- return find(key), start, end
63
-
64
- def match_rule(match):
65
- indent = match.group(1)
66
- key = match.group(2)
67
- var, start, end = extract_variable(key)
68
- if indent is not None:
69
- if not isinstance(var, list):
70
- return add_indent(indent, [var])
71
- return add_indent(indent, var)
72
- if isinstance(var, list):
73
- code = ", ".join(str(x) for x in var)
74
- if not var:
75
- return code
76
- return start + code + end
77
- return str(var)
78
-
79
- return self.regular_match.sub(match_rule, self.code_pattern)
80
-
81
-
82
- NEW_LINE = "\n"
83
- WORK_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../../../")
84
-
85
- PYTHON_PRIM_TEMPLATE = CppTemplate("""
86
-
87
- class _Pyboost${class_name}Prim(${class_name}Prim_):
88
- def __call__(self, ${input_args}):
89
- ${process_func}
90
- return _convert_stub(super().__call__(${processed_args}))
91
-
92
-
93
- ${func_impl_name}_impl = _Pyboost${class_name}Prim()
94
- """)
95
-
96
- IMPORT_PYBOOST_PRIM_HEADER = f"""
97
- from mindspore.common._stub_tensor import _convert_stub
98
- from mindspore.ops.auto_generate.gen_arg_handler import *
99
- """
100
-
101
- IMPORT_PYBOOST_FUNC_HEADER = f"""
102
- from mindspore.common import dtype as mstype
103
- from mindspore.ops.auto_generate.pyboost_inner_prim import *
104
-
105
- """
106
-
107
- REGISTER_DEFINE_TEMPLATE = CppTemplate(
108
- """
109
- (void)py::class_<${class_name}PrimAdapter, PrimitiveFunctionAdapter, std::shared_ptr<${class_name}PrimAdapter>>(
110
- *m, "${class_name}Prim_")
111
- .def(py::init<>())
112
- .def("__call__", &${class_name}PrimAdapter::Call, "Call ${class_name} op.");
113
- m->def(\"${pyboost_op_name}\", &mindspore::pynative::${pyboost_cfunc_name}, \"Encrypt the data.\");""")
114
- REGISTER_TEMPLATE = CppTemplate("void RegisterPyBoostFunction(py::module *m) {${register_func}\n}")
115
-
116
- REGISTER_PYBOOST_GRAD_DEFINE_TEMPLATE = CppTemplate(
117
- "MS_REG_PYBOOST_GRAD_OP(${pyboost_op_name}, mindspore::runtime::${pyboost_cfunc_name});\n")
118
- REGISTER_PYBOOST_GRAD_TEMPLATE = CppTemplate("${register_func}")
119
-
120
- PYBOOST_FUNCTION_TEMPLATE = CppTemplate.load_from_file(
121
- os.path.join(WORK_PATH, './mindspore/ccsrc/pipeline/pynative/op_function/template/pyboost_function.tpl'))
122
-
123
- PYBOOS_COMM_FUNCTION_TEMPLATE = CppTemplate.load_from_file(
124
- os.path.join(WORK_PATH, './mindspore/ccsrc/pipeline/pynative/op_function/template/pyboost_comm_function.tpl'))
125
-
126
- PYBOOST_HEADER_TEMPLATE = CppTemplate.load_from_file(
127
- os.path.join(WORK_PATH, './mindspore/ccsrc/pipeline/pynative/op_function/template/pyboost_function_header.tpl'))
128
-
129
- PYBOOST_GRAD_FUNCTION_TEMPLATE = CppTemplate.load_from_file(
130
- os.path.join(WORK_PATH, './mindspore/ccsrc/runtime/pynative/op_function/template/pyboost_grad_function.tpl'))
131
-
132
- PYBOOST_GRAD_HEADER_TEMPLATE = CppTemplate.load_from_file(
133
- os.path.join(WORK_PATH, './mindspore/ccsrc/runtime/pynative/op_function/template/pyboost_grad_function_header.tpl'))
134
-
135
- PYBOOST_NATIVE_GRAD_FUNCTION_TEMPLATE = CppTemplate.load_from_file(
136
- os.path.join(WORK_PATH, './mindspore/ccsrc/pipeline/pynative/grad/function/template/native_grad_function.tpl'))
137
-
138
- PYBOOST_NATIVE_GRAD_FUNCTIONS_TEMPLATE = CppTemplate.load_from_file(
139
- os.path.join(WORK_PATH,
140
- './mindspore/ccsrc/pipeline/pynative/grad/function/template/pyboost_native_grad_functions.tpl'))
141
-
142
- PYBOOST_NATIVE_GRAD_FUNCTIONS_HEADER_TEMPLATE = CppTemplate.load_from_file(
143
- os.path.join(WORK_PATH,
144
- './mindspore/ccsrc/pipeline/pynative/grad/function/template/pyboost_native_grad_functions_header.tpl'))
145
-
146
- GEN_OPS_DEF_HEADER_TEMPLATE = CppTemplate.load_from_file(
147
- os.path.join(WORK_PATH, './mindspore/python/mindspore/ops_generate/gen_ops_def_header.tpl'))
148
-
149
- PYBOOST_BASE_OP_DEFINE_TEMPLATE = CppTemplate.load_from_file(
150
- os.path.join(WORK_PATH, f'./{K.MS_COMMON_PYBOOST_KERNEL_PATH}/template/pyboost_op_header.tpl'))
151
-
152
- PYBOOST_OP_REGISTER_TEMPLATE = CppTemplate.load_from_file(
153
- os.path.join(WORK_PATH, f'./{K.MS_COMMON_PYBOOST_KERNEL_PATH}/template/pyboost_op_register.tpl'))
154
-
155
- # Ascend op generate
156
- PYBOOST_ASCEND_OP_HEADER_TEMPLATE = CppTemplate.load_from_file(
157
- os.path.join(WORK_PATH,
158
- f'./{K.MS_OPS_KERNEL_PATH}/ascend/pyboost/template/pyboost_aclnn_header_template.tpl'))
159
-
160
- PYBOOST_ASCEND_OP_SOURCE_TEMPLATE = CppTemplate.load_from_file(
161
- os.path.join(WORK_PATH,
162
- f'./{K.MS_OPS_KERNEL_PATH}/ascend/pyboost/template/pyboost_aclnn_source_template.tpl'))
163
-
164
- PYBOOST_ASCEND_CALL_TEMPLATE = CppTemplate.load_from_file(
165
- os.path.join(WORK_PATH,
166
- f'./{K.MS_OPS_KERNEL_PATH}/ascend/pyboost/template/pyboost_ascend_call_template.tpl'))
167
-
168
- PYBOOST_ASCEND_VIEW_CALL_TEMPLATE = CppTemplate.load_from_file(
169
- os.path.join(WORK_PATH,
170
- f'./{K.MS_COMMON_PYBOOST_KERNEL_PATH}/template/'
171
- 'pyboost_view_template.tpl'))
172
-
173
- PYBOOST_ASCEND_CUSTOMIZE_CALL_TEMPLATE = CppTemplate.load_from_file(
174
- os.path.join(WORK_PATH,
175
- f'./{K.MS_OPS_KERNEL_PATH}/ascend/pyboost/template'
176
- '/pyboost_ascend_customize_call_template.tpl'))
177
-
178
- # GPU op generate
179
- PYBOOST_GPU_OP_HEADER_TEMPLATE = CppTemplate.load_from_file(
180
- os.path.join(WORK_PATH,
181
- './mindspore/ops/kernel/gpu/pyboost/template/pyboost_gpu_header_template.tpl'))
182
-
183
- PYBOOST_GPU_OP_SOURCE_TEMPLATE = CppTemplate.load_from_file(
184
- os.path.join(WORK_PATH,
185
- './mindspore/ops/kernel/gpu/pyboost/template/pyboost_gpu_source_template.tpl'))
186
-
187
- PYBOOST_GPU_CALL_TEMPLATE = CppTemplate.load_from_file(
188
- os.path.join(WORK_PATH,
189
- './mindspore/ops/kernel/gpu/pyboost/template/pyboost_gpu_call_template.tpl'))
190
-
191
- PYBOOST_GPU_VIEW_CALL_TEMPLATE = CppTemplate.load_from_file(
192
- os.path.join(WORK_PATH,
193
- f'./{K.MS_COMMON_PYBOOST_KERNEL_PATH}/template/pyboost_view_template.tpl'))
194
-
195
- PYBOOST_GPU_CUSTOMIZE_CALL_TEMPLATE = CppTemplate.load_from_file(
196
- os.path.join(WORK_PATH,
197
- './mindspore/ops/kernel/gpu/pyboost/template'
198
- '/pyboost_gpu_customize_call_template.tpl'))
199
-
200
- # CPU op generate
201
- PYBOOST_CPU_OP_HEADER_TEMPLATE = CppTemplate.load_from_file(
202
- os.path.join(WORK_PATH,
203
- f'./{K.MS_OPS_KERNEL_PATH}/cpu/pyboost/template/pyboost_cpu_header_template.tpl'))
204
-
205
- PYBOOST_CPU_OP_SOURCE_TEMPLATE = CppTemplate.load_from_file(
206
- os.path.join(WORK_PATH,
207
- f'./{K.MS_OPS_KERNEL_PATH}/cpu/pyboost/template/pyboost_cpu_source_template.tpl'))
208
-
209
- PYBOOST_CPU_CALL_TEMPLATE = CppTemplate.load_from_file(
210
- os.path.join(WORK_PATH,
211
- f'./{K.MS_OPS_KERNEL_PATH}/cpu/pyboost/template/pyboost_cpu_call_template.tpl'))
212
-
213
- PYBOOST_CPU_VIEW_CALL_TEMPLATE = CppTemplate.load_from_file(
214
- os.path.join(WORK_PATH,
215
- f'./{K.MS_COMMON_PYBOOST_KERNEL_PATH}/template/pyboost_view_template.tpl'))
216
-
217
- PYBOOST_CPU_CUSTOMIZE_CALL_TEMPLATE = CppTemplate.load_from_file(
218
- os.path.join(WORK_PATH,
219
- f'./{K.MS_OPS_KERNEL_PATH}/cpu/pyboost/template'
220
- '/pyboost_cpu_customize_call_template.tpl'))
221
-
222
- PYBOOST_PY_FUNC_IMPORT_HEADEAR = CppTemplate(
223
- """from mindspore._c_expression import ${class_name}Prim_\n"""
224
- )
225
-
226
- PYBOOST_PY_FUNC_TEMPLATE = CppTemplate("""
227
- def ${func_name}(${func_args}):
228
- r\"\"\"
229
- ${description}
230
- \"\"\"
231
- return ${func_impl_name}_impl(${input_args})\n\n""")
232
-
233
- OP_PROTO_TEMPLATE = CppTemplate("""
234
- ${class_name}FuncImpl g${class_name}FuncImpl;
235
- OpDef g${class_name} = {
236
- /*.name_=*/"${class_name}",
237
- /*.args_=*/ {
238
- ${input_args}
239
- },
240
- /* .returns_ = */ {
241
- ${return_args}
242
- },
243
- /*.signatures_ =*/ {
244
- ${signatures}
245
- },
246
- /*.indexes_ =*/ {
247
- ${indexes}
248
- },
249
- /*.func_impl_=*/g${class_name}FuncImpl,
250
- /*.enable_dispatch_ =*/${enable_dispatch},
251
- /*.is_view_ =*/${is_view},
252
- };
253
- REGISTER_PRIMITIVE_OP_DEF(${class_name}, &g${class_name});
254
- """)
255
-
256
- MULTI_OUTPUT_TEMPLATE = """
257
- ValuePtrList values;
258
- (void)std::transform(op->outputs().begin(), op->outputs().end(), std::back_inserter(values),
259
- [](const auto &value){ return value;});
260
- auto output_value = std::make_shared<ValueTuple>(values);
261
- """