mindspore 2.4.10__cp311-cp311-win_amd64.whl → 2.6.0__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

Files changed (602) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +13 -6
  5. mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -38
  10. mindspore/_deprecated/__init__.py +17 -0
  11. mindspore/_deprecated/jit.py +198 -0
  12. mindspore/_extends/builtin_operations.py +1 -1
  13. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  14. mindspore/_extends/parse/__init__.py +6 -7
  15. mindspore/_extends/parse/compile_config.py +83 -0
  16. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  17. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  18. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  19. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  20. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  21. mindspore/_extends/parse/parser.py +47 -198
  22. mindspore/_extends/parse/resources.py +1 -5
  23. mindspore/_extends/parse/standard_method.py +229 -99
  24. mindspore/_extends/pijit/__init__.py +2 -2
  25. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  26. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  27. mindspore/_extends/utils.py +1 -1
  28. mindspore/amp.py +11 -5
  29. mindspore/atlprov.dll +0 -0
  30. mindspore/avcodec-59.dll +0 -0
  31. mindspore/avdevice-59.dll +0 -0
  32. mindspore/avfilter-8.dll +0 -0
  33. mindspore/avformat-59.dll +0 -0
  34. mindspore/avutil-57.dll +0 -0
  35. mindspore/boost/__init__.py +2 -2
  36. mindspore/boost/base.py +3 -7
  37. mindspore/boost/boost_cell_wrapper.py +138 -43
  38. mindspore/c1.dll +0 -0
  39. mindspore/c1xx.dll +0 -0
  40. mindspore/c2.dll +0 -0
  41. mindspore/common/__init__.py +6 -3
  42. mindspore/common/_grad_function.py +56 -0
  43. mindspore/common/_pijit_context.py +14 -5
  44. mindspore/common/_register_for_tensor.py +1 -2
  45. mindspore/common/_stub_tensor.py +30 -14
  46. mindspore/common/_tensor_cpp_method.py +17 -0
  47. mindspore/common/_tensor_docs.py +4760 -0
  48. mindspore/common/api.py +480 -372
  49. mindspore/common/auto_dynamic_shape.py +41 -44
  50. mindspore/common/dtype.py +39 -36
  51. mindspore/common/dump.py +9 -6
  52. mindspore/common/file_system.py +9 -1
  53. mindspore/common/generator.py +5 -0
  54. mindspore/common/hook_handle.py +6 -2
  55. mindspore/common/initializer.py +13 -10
  56. mindspore/common/jit_begin_end.py +94 -0
  57. mindspore/common/jit_config.py +6 -1
  58. mindspore/common/jit_context.py +76 -0
  59. mindspore/common/jit_trace.py +378 -0
  60. mindspore/common/lazy_inline.py +9 -3
  61. mindspore/common/mindir_util.py +10 -2
  62. mindspore/common/mutable.py +5 -4
  63. mindspore/common/parameter.py +135 -52
  64. mindspore/common/seed.py +2 -2
  65. mindspore/common/sparse_tensor.py +23 -17
  66. mindspore/common/tensor.py +975 -1981
  67. mindspore/communication/__init__.py +7 -5
  68. mindspore/communication/_comm_helper.py +52 -2
  69. mindspore/communication/comm_func.py +240 -181
  70. mindspore/communication/management.py +95 -26
  71. mindspore/context.py +324 -573
  72. mindspore/dataset/__init__.py +65 -37
  73. mindspore/dataset/audio/__init__.py +2 -8
  74. mindspore/dataset/audio/transforms.py +3 -17
  75. mindspore/dataset/callback/ds_callback.py +2 -1
  76. mindspore/dataset/core/config.py +87 -6
  77. mindspore/dataset/engine/cache_admin.py +3 -3
  78. mindspore/dataset/engine/cache_client.py +6 -5
  79. mindspore/dataset/engine/datasets.py +292 -267
  80. mindspore/dataset/engine/datasets_audio.py +22 -8
  81. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  82. mindspore/dataset/engine/datasets_text.py +78 -48
  83. mindspore/dataset/engine/datasets_user_defined.py +183 -117
  84. mindspore/dataset/engine/datasets_vision.py +120 -44
  85. mindspore/dataset/engine/iterators.py +283 -63
  86. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  87. mindspore/dataset/engine/obs/util.py +8 -0
  88. mindspore/dataset/engine/queue.py +40 -0
  89. mindspore/dataset/engine/samplers.py +289 -43
  90. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  91. mindspore/dataset/engine/validators.py +53 -11
  92. mindspore/dataset/text/__init__.py +7 -6
  93. mindspore/dataset/text/transforms.py +6 -5
  94. mindspore/dataset/text/utils.py +3 -3
  95. mindspore/dataset/transforms/__init__.py +0 -9
  96. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  97. mindspore/dataset/transforms/transforms.py +31 -14
  98. mindspore/dataset/utils/browse_dataset.py +1 -1
  99. mindspore/dataset/vision/__init__.py +2 -9
  100. mindspore/dataset/vision/transforms.py +202 -158
  101. mindspore/dataset/vision/utils.py +7 -5
  102. mindspore/dataset/vision/validators.py +1 -2
  103. mindspore/device_context/__init__.py +21 -0
  104. mindspore/device_context/ascend/__init__.py +25 -0
  105. mindspore/device_context/ascend/device.py +72 -0
  106. mindspore/device_context/ascend/op_debug.py +153 -0
  107. mindspore/device_context/ascend/op_precision.py +193 -0
  108. mindspore/device_context/ascend/op_tuning.py +123 -0
  109. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  110. mindspore/device_context/cpu/device.py +62 -0
  111. mindspore/device_context/cpu/op_tuning.py +43 -0
  112. mindspore/device_context/gpu/__init__.py +21 -0
  113. mindspore/device_context/gpu/device.py +70 -0
  114. mindspore/device_context/gpu/op_precision.py +67 -0
  115. mindspore/device_context/gpu/op_tuning.py +175 -0
  116. mindspore/device_manager.py +170 -0
  117. mindspore/dnnl.dll +0 -0
  118. mindspore/dpcmi.dll +0 -0
  119. mindspore/experimental/es/embedding_service.py +35 -27
  120. mindspore/experimental/llm_boost/__init__.py +1 -0
  121. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  122. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
  123. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  124. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  125. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  126. mindspore/experimental/llm_boost/register.py +1 -0
  127. mindspore/experimental/map_parameter.py +4 -4
  128. mindspore/experimental/optim/adadelta.py +6 -6
  129. mindspore/experimental/optim/adagrad.py +4 -4
  130. mindspore/experimental/optim/adam.py +7 -0
  131. mindspore/experimental/optim/adamax.py +4 -4
  132. mindspore/experimental/optim/adamw.py +4 -0
  133. mindspore/experimental/optim/asgd.py +1 -1
  134. mindspore/experimental/optim/lr_scheduler.py +73 -46
  135. mindspore/experimental/optim/radam.py +34 -31
  136. mindspore/experimental/optim/rprop.py +1 -1
  137. mindspore/experimental/optim/sgd.py +1 -1
  138. mindspore/hal/contiguous_tensors_handle.py +6 -10
  139. mindspore/hal/device.py +55 -53
  140. mindspore/hal/event.py +52 -52
  141. mindspore/hal/memory.py +179 -120
  142. mindspore/hal/stream.py +150 -109
  143. mindspore/include/api/context.h +0 -1
  144. mindspore/include/dataset/constants.h +7 -4
  145. mindspore/include/dataset/execute.h +2 -2
  146. mindspore/jpeg62.dll +0 -0
  147. mindspore/log.py +50 -0
  148. mindspore/mindrecord/__init__.py +21 -8
  149. mindspore/mindrecord/config.py +17 -316
  150. mindspore/mindrecord/filereader.py +1 -9
  151. mindspore/mindrecord/filewriter.py +5 -15
  152. mindspore/mindrecord/mindpage.py +1 -9
  153. mindspore/mindspore_backend_common.dll +0 -0
  154. mindspore/mindspore_backend_manager.dll +0 -0
  155. mindspore/mindspore_common.dll +0 -0
  156. mindspore/mindspore_core.dll +0 -0
  157. mindspore/mindspore_dump.dll +0 -0
  158. mindspore/mindspore_frontend.dll +0 -0
  159. mindspore/mindspore_glog.dll +0 -0
  160. mindspore/mindspore_memory_pool.dll +0 -0
  161. mindspore/mindspore_ms_backend.dll +0 -0
  162. mindspore/mindspore_ops.dll +0 -0
  163. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  164. mindspore/mindspore_ops_kernel_common.dll +0 -0
  165. mindspore/mindspore_profiler.dll +0 -0
  166. mindspore/mindspore_pyboost.dll +0 -0
  167. mindspore/mindspore_pynative.dll +0 -0
  168. mindspore/mindspore_res_manager.dll +0 -0
  169. mindspore/mindspore_runtime_pipeline.dll +0 -0
  170. mindspore/mint/__init__.py +798 -761
  171. mindspore/mint/distributed/__init__.py +70 -4
  172. mindspore/mint/distributed/distributed.py +2679 -44
  173. mindspore/mint/linalg/__init__.py +8 -0
  174. mindspore/mint/nn/__init__.py +743 -22
  175. mindspore/mint/nn/functional.py +716 -23
  176. mindspore/mint/nn/layer/__init__.py +21 -4
  177. mindspore/mint/nn/layer/_functions.py +334 -0
  178. mindspore/mint/nn/layer/activation.py +276 -1
  179. mindspore/mint/nn/layer/basic.py +123 -0
  180. mindspore/mint/nn/layer/conv.py +933 -0
  181. mindspore/mint/nn/layer/normalization.py +223 -28
  182. mindspore/mint/nn/layer/padding.py +797 -0
  183. mindspore/mint/nn/layer/pooling.py +235 -0
  184. mindspore/mint/optim/__init__.py +3 -1
  185. mindspore/mint/optim/adam.py +223 -0
  186. mindspore/mint/optim/adamw.py +26 -19
  187. mindspore/mint/optim/sgd.py +171 -0
  188. mindspore/mint/special/__init__.py +2 -1
  189. mindspore/msobj140.dll +0 -0
  190. mindspore/mspdb140.dll +0 -0
  191. mindspore/mspdbcore.dll +0 -0
  192. mindspore/mspdbst.dll +0 -0
  193. mindspore/mspft140.dll +0 -0
  194. mindspore/msvcdis140.dll +0 -0
  195. mindspore/msvcp140_1.dll +0 -0
  196. mindspore/msvcp140_2.dll +0 -0
  197. mindspore/msvcp140_atomic_wait.dll +0 -0
  198. mindspore/msvcp140_codecvt_ids.dll +0 -0
  199. mindspore/multiprocessing/__init__.py +5 -0
  200. mindspore/nn/__init__.py +4 -1
  201. mindspore/nn/cell.py +1373 -192
  202. mindspore/nn/dynamic_lr.py +2 -1
  203. mindspore/nn/layer/activation.py +29 -27
  204. mindspore/nn/layer/basic.py +51 -35
  205. mindspore/nn/layer/channel_shuffle.py +3 -3
  206. mindspore/nn/layer/container.py +1 -1
  207. mindspore/nn/layer/conv.py +53 -42
  208. mindspore/nn/layer/embedding.py +12 -11
  209. mindspore/nn/layer/normalization.py +56 -49
  210. mindspore/nn/layer/padding.py +4 -3
  211. mindspore/nn/layer/pooling.py +120 -42
  212. mindspore/nn/layer/rnn_cells.py +1 -1
  213. mindspore/nn/layer/rnns.py +2 -1
  214. mindspore/nn/layer/timedistributed.py +5 -5
  215. mindspore/nn/layer/transformer.py +59 -36
  216. mindspore/nn/learning_rate_schedule.py +8 -4
  217. mindspore/nn/loss/loss.py +58 -55
  218. mindspore/nn/optim/ada_grad.py +7 -5
  219. mindspore/nn/optim/adadelta.py +11 -9
  220. mindspore/nn/optim/adafactor.py +1 -1
  221. mindspore/nn/optim/adam.py +19 -15
  222. mindspore/nn/optim/adamax.py +8 -7
  223. mindspore/nn/optim/adasum.py +5 -5
  224. mindspore/nn/optim/asgd.py +3 -1
  225. mindspore/nn/optim/ftrl.py +11 -9
  226. mindspore/nn/optim/lamb.py +1 -1
  227. mindspore/nn/optim/lars.py +1 -4
  228. mindspore/nn/optim/lazyadam.py +12 -10
  229. mindspore/nn/optim/momentum.py +7 -6
  230. mindspore/nn/optim/optimizer.py +3 -3
  231. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  232. mindspore/nn/optim/rmsprop.py +13 -12
  233. mindspore/nn/optim/rprop.py +11 -9
  234. mindspore/nn/optim/sgd.py +9 -6
  235. mindspore/nn/optim/tft_wrapper.py +5 -2
  236. mindspore/nn/optim/thor.py +2 -1
  237. mindspore/nn/probability/bijector/bijector.py +17 -11
  238. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  239. mindspore/nn/probability/bijector/invert.py +2 -2
  240. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  241. mindspore/nn/probability/bijector/softplus.py +3 -2
  242. mindspore/nn/probability/distribution/beta.py +3 -3
  243. mindspore/nn/probability/distribution/categorical.py +1 -1
  244. mindspore/nn/probability/distribution/cauchy.py +4 -2
  245. mindspore/nn/probability/distribution/exponential.py +6 -7
  246. mindspore/nn/probability/distribution/gamma.py +2 -2
  247. mindspore/nn/probability/distribution/gumbel.py +2 -2
  248. mindspore/nn/probability/distribution/half_normal.py +5 -3
  249. mindspore/nn/probability/distribution/logistic.py +5 -3
  250. mindspore/nn/probability/distribution/poisson.py +1 -1
  251. mindspore/nn/probability/distribution/uniform.py +5 -3
  252. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  253. mindspore/nn/reinforcement/tensor_array.py +1 -1
  254. mindspore/nn/utils/init.py +13 -11
  255. mindspore/nn/wrap/__init__.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +181 -122
  257. mindspore/nn/wrap/grad_reducer.py +45 -36
  258. mindspore/nn/wrap/loss_scale.py +6 -7
  259. mindspore/numpy/array_creations.py +63 -65
  260. mindspore/numpy/array_ops.py +149 -144
  261. mindspore/numpy/logic_ops.py +41 -42
  262. mindspore/numpy/math_ops.py +361 -359
  263. mindspore/numpy/utils.py +17 -18
  264. mindspore/numpy/utils_const.py +5 -6
  265. mindspore/opencv_core452.dll +0 -0
  266. mindspore/opencv_imgcodecs452.dll +0 -0
  267. mindspore/opencv_imgproc452.dll +0 -0
  268. mindspore/ops/__init__.py +5 -3
  269. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  270. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  271. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  272. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  273. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  274. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  275. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  276. mindspore/ops/_register_for_op.py +0 -11
  277. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  278. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  279. mindspore/ops/_vmap/vmap_array_ops.py +52 -25
  280. mindspore/ops/_vmap/vmap_base.py +0 -2
  281. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  282. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  283. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  284. mindspore/ops/auto_generate/__init__.py +4 -3
  285. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
  286. mindspore/ops/auto_generate/gen_extend_func.py +757 -185
  287. mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
  288. mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
  289. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  290. mindspore/ops/composite/__init__.py +2 -1
  291. mindspore/ops/composite/base.py +20 -25
  292. mindspore/ops/composite/math_ops.py +6 -16
  293. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  294. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  295. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  296. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  297. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  299. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  301. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  302. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  303. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  304. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  305. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  306. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  307. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  308. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  309. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  310. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  311. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  312. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  313. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  314. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  315. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  316. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  317. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  318. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  319. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  320. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  321. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  324. mindspore/ops/function/__init__.py +40 -2
  325. mindspore/ops/function/_add_attr_func.py +58 -0
  326. mindspore/ops/function/array_func.py +2089 -2403
  327. mindspore/ops/function/clip_func.py +80 -23
  328. mindspore/ops/function/debug_func.py +57 -57
  329. mindspore/ops/function/grad/__init__.py +1 -0
  330. mindspore/ops/function/grad/grad_func.py +104 -71
  331. mindspore/ops/function/image_func.py +2 -2
  332. mindspore/ops/function/linalg_func.py +47 -78
  333. mindspore/ops/function/math_func.py +4351 -3813
  334. mindspore/ops/function/nn_func.py +1712 -637
  335. mindspore/ops/function/other_func.py +159 -1
  336. mindspore/ops/function/parameter_func.py +18 -84
  337. mindspore/ops/function/random_func.py +452 -387
  338. mindspore/ops/function/reshard_func.py +4 -70
  339. mindspore/ops/function/sparse_func.py +3 -3
  340. mindspore/ops/function/sparse_unary_func.py +6 -6
  341. mindspore/ops/function/spectral_func.py +25 -58
  342. mindspore/ops/function/vmap_func.py +26 -18
  343. mindspore/ops/functional.py +23 -7
  344. mindspore/ops/functional_overload.py +1548 -0
  345. mindspore/ops/op_info_register.py +32 -244
  346. mindspore/ops/operations/__init__.py +23 -15
  347. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  348. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  349. mindspore/ops/operations/_grad_ops.py +2 -43
  350. mindspore/ops/operations/_infer_ops.py +2 -1
  351. mindspore/ops/operations/_inner_ops.py +43 -84
  352. mindspore/ops/operations/_ms_kernel.py +4 -10
  353. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  354. mindspore/ops/operations/_scalar_ops.py +3 -2
  355. mindspore/ops/operations/_sequence_ops.py +1 -1
  356. mindspore/ops/operations/_tensor_array.py +1 -1
  357. mindspore/ops/operations/array_ops.py +81 -324
  358. mindspore/ops/operations/comm_ops.py +154 -108
  359. mindspore/ops/operations/custom_ops.py +298 -87
  360. mindspore/ops/operations/debug_ops.py +157 -59
  361. mindspore/ops/operations/inner_ops.py +7 -5
  362. mindspore/ops/operations/linalg_ops.py +1 -57
  363. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  364. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  365. mindspore/ops/operations/math_ops.py +32 -234
  366. mindspore/ops/operations/nn_ops.py +212 -531
  367. mindspore/ops/operations/other_ops.py +62 -9
  368. mindspore/ops/operations/random_ops.py +13 -7
  369. mindspore/ops/operations/reshard_ops.py +1 -1
  370. mindspore/ops/operations/sparse_ops.py +2 -2
  371. mindspore/ops/primitive.py +66 -53
  372. mindspore/ops/tensor_method.py +1895 -0
  373. mindspore/ops_generate/__init__.py +0 -5
  374. mindspore/ops_generate/aclnn/__init__.py +0 -0
  375. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  376. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  377. mindspore/ops_generate/api/__init__.py +0 -0
  378. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  379. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  380. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  381. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  382. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  383. mindspore/ops_generate/api/gen_api.py +103 -0
  384. mindspore/ops_generate/api/op_api_proto.py +235 -0
  385. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  386. mindspore/ops_generate/common/__init__.py +0 -0
  387. mindspore/ops_generate/common/base_generator.py +11 -0
  388. mindspore/ops_generate/common/gen_constants.py +91 -0
  389. mindspore/ops_generate/common/gen_utils.py +348 -0
  390. mindspore/ops_generate/common/op_proto.py +473 -0
  391. mindspore/ops_generate/common/template.py +523 -0
  392. mindspore/ops_generate/gen_ops.py +22 -1069
  393. mindspore/ops_generate/op_def/__init__.py +0 -0
  394. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  395. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  396. mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
  397. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  398. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  399. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  400. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  401. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  402. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  403. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  404. mindspore/ops_generate/pyboost/__init__.py +0 -0
  405. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  406. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  407. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  408. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  409. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  410. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  411. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  412. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  413. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  414. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  415. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  416. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  417. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  418. mindspore/ops_generate/resources/__init__.py +0 -0
  419. mindspore/ops_generate/resources/resource_list.py +30 -0
  420. mindspore/ops_generate/resources/resource_loader.py +36 -0
  421. mindspore/ops_generate/resources/resource_manager.py +64 -0
  422. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  423. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  424. mindspore/parallel/__init__.py +7 -3
  425. mindspore/parallel/_auto_parallel_context.py +159 -40
  426. mindspore/parallel/_cell_wrapper.py +132 -15
  427. mindspore/parallel/_parallel_serialization.py +107 -5
  428. mindspore/parallel/_ps_context.py +1 -1
  429. mindspore/parallel/_recovery_context.py +7 -2
  430. mindspore/parallel/_tensor.py +142 -18
  431. mindspore/parallel/_utils.py +199 -23
  432. mindspore/parallel/algo_parameter_config.py +4 -4
  433. mindspore/parallel/auto_parallel.py +732 -0
  434. mindspore/parallel/checkpoint_convert.py +159 -0
  435. mindspore/parallel/checkpoint_transform.py +700 -35
  436. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  437. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  438. mindspore/parallel/cluster/run.py +21 -4
  439. mindspore/parallel/function/__init__.py +24 -0
  440. mindspore/parallel/function/reshard_func.py +258 -0
  441. mindspore/parallel/nn/__init__.py +25 -0
  442. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  443. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  444. mindspore/parallel/parameter_broadcast.py +25 -14
  445. mindspore/parallel/shard.py +137 -59
  446. mindspore/parallel/transform_safetensors.py +364 -305
  447. mindspore/pgodb140.dll +0 -0
  448. mindspore/pgort140.dll +0 -0
  449. mindspore/profiler/__init__.py +22 -5
  450. mindspore/profiler/analysis/__init__.py +0 -0
  451. mindspore/profiler/analysis/parser/__init__.py +0 -0
  452. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  453. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  454. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  455. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  456. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  457. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  458. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  459. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  460. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
  461. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  462. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  463. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  464. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  465. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  466. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  467. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  468. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  469. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  470. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  471. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  472. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  473. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  474. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  475. mindspore/profiler/analysis/task_manager.py +131 -0
  476. mindspore/profiler/analysis/time_converter.py +84 -0
  477. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  478. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  479. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  480. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  481. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  482. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  483. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  484. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  485. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  486. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  487. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  488. mindspore/profiler/analysis/work_flow.py +73 -0
  489. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  490. mindspore/profiler/common/command_executor.py +90 -0
  491. mindspore/profiler/common/constant.py +186 -3
  492. mindspore/profiler/common/file_manager.py +208 -0
  493. mindspore/profiler/common/log.py +130 -0
  494. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  495. mindspore/profiler/common/path_manager.py +395 -0
  496. mindspore/profiler/common/process_bar.py +168 -0
  497. mindspore/profiler/common/process_pool.py +9 -3
  498. mindspore/profiler/common/profiler_context.py +500 -0
  499. mindspore/profiler/common/profiler_info.py +304 -0
  500. mindspore/profiler/common/profiler_meta_data.py +74 -0
  501. mindspore/profiler/common/profiler_output_path.py +284 -0
  502. mindspore/profiler/common/profiler_parameters.py +251 -0
  503. mindspore/profiler/common/profiler_path_manager.py +179 -0
  504. mindspore/profiler/common/record_function.py +76 -0
  505. mindspore/profiler/common/tlv_decoder.py +76 -0
  506. mindspore/profiler/common/util.py +75 -2
  507. mindspore/profiler/dynamic_profiler.py +341 -75
  508. mindspore/profiler/envprofiler.py +163 -0
  509. mindspore/profiler/experimental_config.py +197 -0
  510. mindspore/profiler/mstx.py +242 -0
  511. mindspore/profiler/platform/__init__.py +21 -0
  512. mindspore/profiler/platform/base_profiler.py +40 -0
  513. mindspore/profiler/platform/cpu_profiler.py +124 -0
  514. mindspore/profiler/platform/gpu_profiler.py +74 -0
  515. mindspore/profiler/platform/npu_profiler.py +335 -0
  516. mindspore/profiler/profiler.py +1073 -90
  517. mindspore/profiler/profiler_action_controller.py +187 -0
  518. mindspore/profiler/profiler_interface.py +118 -0
  519. mindspore/profiler/schedule.py +243 -0
  520. mindspore/rewrite/api/node.py +15 -13
  521. mindspore/rewrite/api/symbol_tree.py +2 -3
  522. mindspore/run_check/_check_version.py +27 -20
  523. mindspore/run_check/run_check.py +1 -1
  524. mindspore/runtime/__init__.py +37 -0
  525. mindspore/runtime/device.py +27 -0
  526. mindspore/runtime/event.py +209 -0
  527. mindspore/runtime/executor.py +177 -0
  528. mindspore/runtime/memory.py +416 -0
  529. mindspore/runtime/stream.py +460 -0
  530. mindspore/runtime/thread_bind_core.py +401 -0
  531. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  532. mindspore/swresample-4.dll +0 -0
  533. mindspore/swscale-6.dll +0 -0
  534. mindspore/tbbmalloc.dll +0 -0
  535. mindspore/tinyxml2.dll +0 -0
  536. mindspore/train/__init__.py +8 -8
  537. mindspore/train/_utils.py +96 -27
  538. mindspore/train/amp.py +9 -5
  539. mindspore/train/callback/__init__.py +2 -2
  540. mindspore/train/callback/_callback.py +2 -16
  541. mindspore/train/callback/_checkpoint.py +53 -55
  542. mindspore/train/callback/_cluster_monitor.py +14 -18
  543. mindspore/train/callback/_early_stop.py +1 -1
  544. mindspore/train/callback/_flops_collector.py +103 -68
  545. mindspore/train/callback/_history.py +8 -5
  546. mindspore/train/callback/_lambda_callback.py +2 -2
  547. mindspore/train/callback/_landscape.py +0 -3
  548. mindspore/train/callback/_loss_monitor.py +2 -1
  549. mindspore/train/callback/_on_request_exit.py +6 -5
  550. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  551. mindspore/train/callback/_summary_collector.py +52 -19
  552. mindspore/train/callback/_time_monitor.py +2 -1
  553. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
  554. mindspore/train/data_sink.py +25 -2
  555. mindspore/train/dataset_helper.py +15 -16
  556. mindspore/train/loss_scale_manager.py +8 -7
  557. mindspore/train/metrics/accuracy.py +3 -3
  558. mindspore/train/metrics/confusion_matrix.py +9 -9
  559. mindspore/train/metrics/error.py +3 -3
  560. mindspore/train/metrics/hausdorff_distance.py +4 -4
  561. mindspore/train/metrics/mean_surface_distance.py +3 -3
  562. mindspore/train/metrics/metric.py +0 -12
  563. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  564. mindspore/train/metrics/precision.py +11 -10
  565. mindspore/train/metrics/recall.py +9 -9
  566. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  567. mindspore/train/mind_ir_pb2.py +174 -46
  568. mindspore/train/model.py +269 -136
  569. mindspore/train/serialization.py +622 -978
  570. mindspore/train/summary/_summary_adapter.py +2 -2
  571. mindspore/train/summary/summary_record.py +2 -3
  572. mindspore/train/train_thor/model_thor.py +1 -1
  573. mindspore/turbojpeg.dll +0 -0
  574. mindspore/utils/__init__.py +6 -3
  575. mindspore/utils/dryrun.py +140 -0
  576. mindspore/utils/hooks.py +81 -0
  577. mindspore/utils/runtime_execution_order_check.py +552 -0
  578. mindspore/utils/utils.py +138 -4
  579. mindspore/vcmeta.dll +0 -0
  580. mindspore/vcruntime140.dll +0 -0
  581. mindspore/vcruntime140_1.dll +0 -0
  582. mindspore/version.py +1 -1
  583. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
  584. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
  585. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
  586. mindspore/_install_custom.py +0 -43
  587. mindspore/common/_register_for_adapter.py +0 -74
  588. mindspore/common/_tensor_overload.py +0 -139
  589. mindspore/mindspore_np_dtype.dll +0 -0
  590. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  591. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  592. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  593. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  594. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  595. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  596. mindspore/ops_generate/gen_utils.py +0 -209
  597. mindspore/ops_generate/op_proto.py +0 -145
  598. mindspore/ops_generate/template.py +0 -261
  599. mindspore/profiler/envprofiling.py +0 -254
  600. mindspore/profiler/profiling.py +0 -1926
  601. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  602. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -1,197 +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
- """Operator argument handle function."""
16
-
17
- from mindspore.ops_generate.gen_ops_inner_prim import DtypeToEnum, StringToEnum
18
- # Enum Class:
19
- from mindspore._c_expression import FormatEnum as Format
20
- from mindspore._c_expression import ReductionEnum as Reduction
21
- from mindspore.common import Tensor
22
- from mindspore.common import dtype as mstype
23
-
24
-
25
- def arg_invalid_info(op_name, arg_name, arg_val):
26
- """
27
- generate invalid msg.
28
- """
29
- return f"For '{op_name}', the value of '{arg_name}' is invalid: '{arg_val}'."
30
-
31
-
32
- def to_pair(op_name, arg_name, arg_val):
33
- """
34
- convert arg_val: int/tuple[int*2] -> tuple[int*2].
35
- """
36
- if isinstance(arg_val, (int, float)):
37
- return (arg_val, arg_val)
38
- if isinstance(arg_val, (list, tuple)):
39
- return arg_val
40
- raise ValueError(arg_invalid_info(op_name, arg_name, arg_val))
41
-
42
-
43
- def to_kernel_size(op_name, arg_name, kernel_size):
44
- """
45
- convert kernel_size: int/tuple[int*4] -> tuple[int*2].
46
- """
47
- if isinstance(kernel_size, int):
48
- return (kernel_size, kernel_size)
49
- if isinstance(kernel_size, (tuple, list)):
50
- if len(kernel_size) == 4:
51
- return (kernel_size[2], kernel_size[3])
52
- return kernel_size
53
- raise ValueError(arg_invalid_info(op_name, arg_name, kernel_size))
54
-
55
-
56
- def to_strides(op_name, arg_name, stride):
57
- """
58
- convert strides: int/tuple[int*4] -> tuple[int*2].
59
- """
60
- if isinstance(stride, int):
61
- return (stride, stride)
62
- if isinstance(stride, (tuple, list)):
63
- if len(stride) == 4:
64
- return (stride[2], stride[3])
65
- return stride
66
- raise ValueError(arg_invalid_info(op_name, arg_name, stride))
67
-
68
-
69
- def to_rates(op_name, arg_name, rates):
70
- """
71
- convert rates: int/tuple[int*4] -> tuple[int*2].
72
- """
73
- if isinstance(rates, int):
74
- return (rates, rates)
75
- if isinstance(rates, (tuple, list)):
76
- if len(rates) == 4:
77
- return (rates[2], rates[3])
78
- return rates
79
- raise ValueError(arg_invalid_info(op_name, arg_name, rates))
80
-
81
-
82
- def to_dilations(op_name, arg_name, dilation):
83
- """
84
- convert dilations: int/tuple[int*4] -> tuple[int*2].
85
- """
86
- if isinstance(dilation, int):
87
- return (dilation, dilation)
88
- if isinstance(dilation, (tuple, list)):
89
- if len(dilation) == 4:
90
- return (dilation[2], dilation[3])
91
- return dilation
92
- raise ValueError(arg_invalid_info(op_name, arg_name, dilation))
93
-
94
-
95
- def to_output_padding(op_name, arg_name, output_padding):
96
- """
97
- convert output_padding: int/tuple[int*4] -> tuple[int*2].
98
- """
99
- if isinstance(output_padding, int):
100
- return (output_padding, output_padding)
101
- if isinstance(output_padding, (tuple, list)):
102
- if len(output_padding) == 4:
103
- return (output_padding[2], output_padding[3])
104
- return output_padding
105
- raise ValueError(arg_invalid_info(op_name, arg_name, output_padding))
106
-
107
-
108
- def to_2d_paddings(op_name, arg_name, pad):
109
- """
110
- convert paddings: int -> tuple[int*2].
111
- """
112
- if isinstance(pad, int):
113
- return (pad,) * 2
114
- if isinstance(pad, (tuple, list)):
115
- return pad
116
- raise ValueError(arg_invalid_info(op_name, arg_name, pad))
117
-
118
-
119
- def to_paddings(op_name, arg_name, pad):
120
- """
121
- convert paddings: int -> tuple[int*4].
122
- """
123
- if isinstance(pad, int):
124
- return (pad,) * 4
125
- if isinstance(pad, (tuple, list)):
126
- return pad
127
- raise ValueError(arg_invalid_info(op_name, arg_name, pad))
128
-
129
-
130
- def to_3d_kernel_size(op_name, arg_name, kernel_size):
131
- """
132
- convert 3d kernel_size: int/tuple[int*6] -> tuple[int*3].
133
- """
134
- if isinstance(kernel_size, int):
135
- return (kernel_size, kernel_size, kernel_size)
136
- if isinstance(kernel_size, (tuple, list)):
137
- if len(kernel_size) == 5:
138
- return (kernel_size[2], kernel_size[3], kernel_size[4])
139
- return kernel_size
140
- raise ValueError(arg_invalid_info(op_name, arg_name, kernel_size))
141
-
142
-
143
- def to_3d_strides(op_name, arg_name, stride):
144
- """
145
- convert 3d stride: int/tuple[int*6] -> tuple[int*3].
146
- """
147
- if isinstance(stride, int):
148
- return (stride, stride, stride)
149
- if isinstance(stride, (tuple, list)):
150
- if len(stride) == 5:
151
- return (stride[2], stride[3], stride[4])
152
- return stride
153
- raise ValueError(arg_invalid_info(op_name, arg_name, stride))
154
-
155
-
156
- def to_3d_dilations(op_name, arg_name, dilation):
157
- """
158
- convert 3d dilation: int/tuple[int*6] -> tuple[int*3].
159
- """
160
- if isinstance(dilation, int):
161
- return (dilation, dilation, dilation)
162
- if isinstance(dilation, (tuple, list)):
163
- if len(dilation) == 5:
164
- return (dilation[2], dilation[3], dilation[4])
165
- return dilation
166
- raise ValueError(arg_invalid_info(op_name, arg_name, dilation))
167
-
168
-
169
- def to_3d_paddings(op_name, arg_name, pad):
170
- """
171
- convert 3d paddings: int -> tuple[int*6].
172
- """
173
- if isinstance(pad, int):
174
- return (pad,) * 6
175
- if isinstance(pad, (tuple, list)):
176
- return pad
177
- raise ValueError(arg_invalid_info(op_name, arg_name, pad))
178
-
179
-
180
- def generator_handler(op_name, arg_name, inputs):
181
- """
182
- convert constant value in tuple to tensor
183
- """
184
- new_inputs = []
185
- for input_ in inputs:
186
- if isinstance(input_, int):
187
- new_inputs.append(Tensor(input_, mstype.int64))
188
- else:
189
- new_inputs.append(input_)
190
- return tuple(new_inputs)
191
-
192
- dtype_to_type_id = DtypeToEnum()
193
-
194
- # string to enum
195
- # A function for converting str type to enum type are written here,
196
- # but the backend supports str input, and converting str input to enum input is not necessary.
197
- str_to_enum = StringToEnum()
@@ -1,41 +0,0 @@
1
- # Copyright 2022 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
- """Register pyfunc for opaque_func_cpu_kernel"""
17
-
18
- from mindspore.ops._register_for_op import OpaquePredicateRegistry
19
-
20
-
21
- registered_func_name = OpaquePredicateRegistry()
22
-
23
-
24
- def add_opaque_predicate(fn_name, func):
25
- """restore opaque predicate functions"""
26
- registered_func_name.register(fn_name, func)
27
-
28
-
29
- def get_opaque_predicate(fn_name):
30
- """get opaque predicate function by their name"""
31
- return registered_func_name.get(fn_name)
32
-
33
-
34
- def get_func_names():
35
- """get function names"""
36
- return registered_func_name.func_names
37
-
38
-
39
- def clean_funcs():
40
- """clean restored functions"""
41
- registered_func_name.func_names = []
@@ -1,263 +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
- """
16
- Generate aclnn kernelmod or call func by input name in ops.yaml
17
- """
18
- import argparse
19
- import os
20
- import stat
21
- import re
22
- import pathlib
23
- import logging
24
- import gen_utils
25
- from pyboost_utils import AclnnUtils, get_dtypes
26
- from gen_constants import MS_OPS_KERNEL_PATH
27
-
28
- auto_gen = ''
29
-
30
-
31
- def gen_h(op_name, aclnn_name, op_yaml, kernelmod_h_path, need_update_shape):
32
- """generate h files"""
33
- kernelmod_name = op_yaml.get('dispatch').get("Ascend")
34
- h_head = f"""
35
- #ifndef MINDSPORE_CCSRC_BACKEND_KERNEL_COMPILER_{op_name.upper()}_ACLNN{auto_gen.upper()}_KERNEL_MOD_H_
36
- #define MINDSPORE_CCSRC_BACKEND_KERNEL_COMPILER_{op_name.upper()}_ACLNN{auto_gen.upper()}_KERNEL_MOD_H_
37
- #include <vector>
38
- #include "ops/base_operator.h"
39
- #include "{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn_kernel_mod.h"
40
- #include "transform/acl_ir/acl_convert.h"
41
- """
42
- update_shape = f"""
43
- bool IsNeedUpdateOutputShapeAndSize() override {{ return true; }}
44
- void UpdateOutputShapeAndSize(const std::vector<KernelTensor *> &inputs, const std::vector<KernelTensor *> &outputs);
45
- """
46
- if not need_update_shape:
47
- update_shape = ""
48
- h_body = f"""
49
- namespace mindspore {{
50
- namespace kernel {{
51
-
52
- class {kernelmod_name} : public AclnnKernelMod {{
53
- public:
54
- {kernelmod_name}() : AclnnKernelMod(std::move("{aclnn_name}")) {{}}
55
- ~{kernelmod_name}() = default;
56
- bool Launch(const std::vector<KernelTensor *> &inputs, const std::vector<KernelTensor *> &workspace,
57
- const std::vector<KernelTensor *> &outputs, void *stream_ptr) override;
58
- void GetWorkSpaceInfo(const std::vector<KernelTensor *> &inputs, const std::vector<KernelTensor *> &outputs) override;
59
- {update_shape}
60
-
61
- private:
62
- DEFINE_GET_WORKSPACE_FOR_RESIZE()
63
- }};
64
- }} // namespace kernel
65
- }} // namespace mindspore
66
-
67
- #endif // MINDSPORE_CCSRC_BACKEND_KERNEL_COMPILER_{op_name.upper()}_ACLNN{auto_gen.upper()}_KERNEL_MOD_H_
68
- """
69
- temp_file = kernelmod_h_path + "_tmp.h"
70
- old_file = kernelmod_h_path + ".h"
71
- flags = os.O_WRONLY | os.O_CREAT
72
- mode = stat.S_IWUSR | stat.S_IRUSR
73
- with os.fdopen(os.open(temp_file, flags, mode), 'w') as h_file:
74
- h_file.write(gen_utils.cc_license_str + h_head + h_body)
75
- gen_utils.check_change_and_replace_file(old_file, temp_file)
76
-
77
-
78
- def gen_cc(op_name, class_name, op_yaml, kernelmod_cc_path, need_update_shape):
79
- """generate cc files"""
80
- kernelmod_name = op_yaml.get('dispatch').get("Ascend")
81
- cc_head = f"""
82
- #include "{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn{auto_gen}/{op_name}_aclnn_kernel.h"
83
- #include <algorithm>
84
- #include <vector>
85
- #include <memory>
86
- #include <functional>
87
- #include "ir/tensor.h"
88
- #include "runtime/device/kernel_runtime.h"
89
- #include "transform/acl_ir/op_api_convert.h"
90
- #include "abstract/ops/primitive_infer_map.h"
91
-
92
- namespace mindspore {{
93
- namespace kernel {{
94
- """
95
- tuple_tensor_not_supported = f"""
96
- It is not supported for {op_name} with tuple[tensor] inputs when using auto generate.
97
- Please provide a KernelMod name in yaml and using python gen_aclnn_implement.py -n xx manually."""
98
- input_templete = ''
99
- inputs = ''
100
- input_dtypes, output_dtypes, _ = get_dtypes(op_yaml)
101
- for idx, n in enumerate(input_dtypes):
102
- input_name = "inputs[kIndex" + str(idx) + "], "
103
- dtype = input_dtypes.get(n)
104
- if dtype != 'tensor':
105
- if dtype == 'int':
106
- dtype = 'int64_t'
107
- input_templete += " auto {} = transform::ConvertKernelTensor<{}>(inputs[kIndex{}]);\n".format(
108
- n, dtype, idx)
109
- input_name = n + ", "
110
- if dtype == 'tuple[tensor]' and auto_gen == "_auto_gen":
111
- raise NotImplementedError(tuple_tensor_not_supported)
112
- inputs += input_name
113
-
114
- for idx, n in enumerate(output_dtypes):
115
- output_name = "outputs[kIndex" + str(idx) + "], "
116
- dtype = output_dtypes.get(n)
117
- if dtype != 'tensor':
118
- if dtype == 'int':
119
- dtype = 'int64_t'
120
- input_templete += " auto {} = transform::ConvertKernelTensor<{}>(outputs[kIndex{}]);\n".format(
121
- n, dtype, idx)
122
- output_name = n + ", "
123
- if dtype == 'tuple[tensor]' and auto_gen == "_auto_gen":
124
- raise NotImplementedError(tuple_tensor_not_supported)
125
- inputs += output_name
126
- inputs = inputs[:-2]
127
- workspace_info = f"""
128
- void {kernelmod_name}::GetWorkSpaceInfo(const std::vector<KernelTensor *> &inputs,
129
- const std::vector<KernelTensor *> &outputs) {{
130
- {input_templete}
131
- GetWorkspaceForResize({inputs});
132
- }}
133
- """
134
- launch = f"""
135
- bool {kernelmod_name}::Launch(const std::vector<KernelTensor *> &inputs, const std::vector<KernelTensor *> &workspace,
136
- const std::vector<KernelTensor *> &outputs, void *stream_ptr) {{
137
- MS_EXCEPTION_IF_NULL(stream_ptr);
138
- {input_templete}
139
- RunOp(stream_ptr, workspace, {inputs});
140
- return true;
141
- }}
142
- """
143
- update_shape = f"""
144
- void {kernelmod_name}::UpdateOutputShapeAndSize(const std::vector<KernelTensor *> &,
145
- const std::vector<KernelTensor *> &outputs) {{
146
- // Delete these comment and complete the function:
147
- // Using outputs[index_x]->SetShapeVector(update_shape) and outputs[index_x]->set_size(update_size)
148
- }}
149
- """
150
- if not need_update_shape:
151
- update_shape = ""
152
-
153
- reg = f"""
154
- MS_ACLNN_KERNEL_FACTORY_REG({class_name}, {kernelmod_name});
155
- }} // namespace kernel
156
- }} // namespace mindspore
157
-
158
- """
159
- temp_file = kernelmod_cc_path + "_tmp.cc"
160
- old_file = kernelmod_cc_path + ".cc"
161
- flags = os.O_WRONLY | os.O_CREAT
162
- mode = stat.S_IWUSR | stat.S_IRUSR
163
- with os.fdopen(os.open(temp_file, flags, mode), 'w') as cc_file:
164
- cc_file.write(gen_utils.cc_license_str + cc_head + workspace_info + launch + update_shape + reg)
165
- gen_utils.check_change_and_replace_file(old_file, temp_file)
166
-
167
-
168
- def generate(op_name, class_name, op_yaml, h_and_cc, need_update_shape):
169
- """generate cc and h files"""
170
- aclnn_name = AclnnUtils.get_aclnn_interface(class_name)
171
- gen_h(op_name, aclnn_name, op_yaml, h_and_cc, need_update_shape)
172
- gen_cc(op_name, class_name, op_yaml, h_and_cc, need_update_shape)
173
-
174
-
175
- def gen_aclnn_kernel(op_name, yaml_str, need_update_shape=False, auto=False):
176
- """gen_aclnn_kernel function"""
177
- if check_op_registed(op_name) and not auto:
178
- logging.warning("Kernel {%s} is already registered.", op_name)
179
- return
180
- current_path = os.path.dirname(os.path.realpath(__file__))
181
- work_path = os.path.join(current_path, '../../../../')
182
-
183
- aclnn_path = '{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn/'
184
- # merge inner ops
185
- op_yaml = yaml_str.get(op_name)
186
- class_name = ''.join(word.capitalize() for word in op_name.split('_'))
187
- if op_yaml is None:
188
- raise ValueError("Input op {} is not find in ops.yaml.".format(op_name))
189
- dispatch = op_yaml.get("dispatch")
190
- if not dispatch or not dispatch.get("enable"):
191
- raise ValueError("Op {} is not enabled dispatch, please check.".format(op_name))
192
- global auto_gen
193
- if auto:
194
- if check_op_registed(op_name, True):
195
- # Don't auto generate kernelmod if it is achieved manually.
196
- return
197
- auto_gen = "_auto_gen"
198
- dispatch['Ascend'] = class_name + "Ascend"
199
- aclnn_path = f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn_auto_gen/'
200
- pathlib.Path(os.path.join(work_path, aclnn_path)).mkdir(parents=True, exist_ok=True)
201
- if dispatch.get("Ascend") is None:
202
- raise ValueError("KernelMod {} is auto generated. If need achieve it, "
203
- "please provide the KernelMod name in dispatch.".format(op_name))
204
- op_class = op_yaml.get("class")
205
- if op_class is not None and op_class.get("name") is not None:
206
- class_name = op_class.get("name")
207
- kernelmod_h_and_cc_path = os.path.join(work_path, aclnn_path + '{}_aclnn_kernel'.format(op_name))
208
- generate(op_name, class_name, op_yaml, kernelmod_h_and_cc_path, need_update_shape)
209
-
210
-
211
- def get_registed_ops(file_path=f'{MS_OPS_KERNEL_PATH}/ascend/opapi/'):
212
- '''get registered ops by search files'''
213
- # default search in 'ops/kernel/ascend/opapi/'
214
- current_path = os.path.dirname(os.path.realpath(__file__))
215
- work_path = os.path.join(current_path, '../../../../')
216
- search_path = os.path.join(work_path, file_path)
217
- ret = []
218
- try:
219
- for root_path, _, files in os.walk(search_path):
220
- for file_name in files:
221
- with open(os.path.join(root_path, file_name), "r") as f:
222
- file_context = f.read()
223
- search_re = re.search(r"(?<=KERNEL_FACTORY_REG\()\w+(?=,)", file_context)
224
- if search_re:
225
- ret.append(search_re.group())
226
- except OSError:
227
- logging.warning("Something wrong in check op registered.")
228
- return ret
229
- return ret
230
-
231
-
232
- registed_ops = get_registed_ops()
233
- manual_registed_ops = get_registed_ops(f'{MS_OPS_KERNEL_PATH}/ascend/opapi/aclnn/')
234
-
235
-
236
- def check_op_registed(op_name, manual=False):
237
- '''if op already registered return true'''
238
- global registed_ops
239
- global manual_registed_ops
240
- class_name = ''.join(word.capitalize() for word in op_name.split('_'))
241
- return (class_name in manual_registed_ops) if manual else (class_name in registed_ops)
242
-
243
-
244
- def main(op_name, need_update_shape):
245
- '''main func'''
246
- gen_aclnn_kernel(op_name, need_update_shape)
247
-
248
-
249
- parser = argparse.ArgumentParser(description="Generate aclnn KernelMod.")
250
- parser.add_argument('-n', '--name', type=str, default=None, help='Kernel name in yaml.')
251
- parser.add_argument('-d', '--need_update_shape', type=bool, default=False,
252
- help="Some kernel like:unique need update shape and size after launch. Default: False")
253
- options, _ = parser.parse_known_args()
254
-
255
- if __name__ == "__main__":
256
- try:
257
- name = options.name
258
- if name is None:
259
- raise ValueError("Please provide op name to generate aclnn kernelmod.")
260
- is_need_update_shape = options.need_update_shape
261
- main(name, is_need_update_shape)
262
- except Exception as e: # pylint: disable=W0703
263
- logging.exception("Generate aclnn kernelmod failed, err info: %s", e)
@@ -1,131 +0,0 @@
1
- # Copyright 2023-2024 Huawei Technologies Co., Ltd
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- # ============================================================================
15
- """Primitive defined for arg handler."""
16
-
17
- from mindspore.ops.primitive import Primitive, prim_attr_register, prim_arg_register
18
- from mindspore._c_expression import typing
19
- from mindspore._c_expression import op_enum
20
-
21
-
22
- class DtypeToEnum(Primitive):
23
- r"""
24
- Convert mindspore dtype to enum.
25
-
26
- Inputs:
27
- - **op_name** (str) - The op name
28
- - **arg_name** (str) - The arg name
29
- - **dtype** (mindspore.dtype) - The data type.
30
-
31
- Outputs:
32
- An integer.
33
-
34
- Supported Platforms:
35
- ``Ascend`` ``GPU`` ``CPU``
36
- """
37
-
38
- @prim_attr_register
39
- def __init__(self):
40
- """Initialize"""
41
-
42
- def __call__(self, op_name, arg_name, dtype):
43
- """Run in PyNative mode"""
44
- if not isinstance(dtype, typing.Type):
45
- raise TypeError(f"For '{op_name}', the input '{arg_name}' should be mindspore dtype, but got {dtype}.")
46
- return typing.type_to_type_id(dtype)
47
-
48
-
49
- class StringToEnum(Primitive):
50
- r"""
51
- Convert string to enum.
52
-
53
- Inputs:
54
- - **op_name** (str) - The op name
55
- - **arg_name** (str) - The arg name
56
- - **enum_str** (str) - The str data.
57
-
58
- Outputs:
59
- An integer.
60
-
61
- Supported Platforms:
62
- ``CPU``
63
- """
64
-
65
- @prim_attr_register
66
- def __init__(self):
67
- """Initialize"""
68
-
69
- def __call__(self, op_name, arg_name, enum_str):
70
- """Run in PyNative mode"""
71
- if enum_str is None:
72
- return None
73
- if not isinstance(enum_str, str):
74
- raise TypeError(f"For '{op_name}', the input '{arg_name}' should be a str, but got {type(enum_str)}.")
75
- return op_enum.str_to_enum(op_name, arg_name, enum_str)
76
-
77
-
78
- class TupleToList(Primitive):
79
- r"""
80
- Convert tuple to list.
81
-
82
- Inputs:
83
- - **x** (tuple) - The input
84
-
85
- Outputs:
86
- List, has the same elements as the `input`.
87
-
88
- Supported Platforms:
89
- ``CPU``
90
-
91
- Examples:
92
- >>> from mindspore.ops_generate import TupleToList
93
- >>> x = (1, 2, 3)
94
- >>> result = TupleToList()(x)
95
- >>> print(result)
96
- [1, 2, 3]
97
- """
98
- @prim_arg_register
99
- def __init__(self):
100
- """Initialize TupleToList"""
101
-
102
- def __call__(self, input):
103
- return list(input)
104
-
105
-
106
- class ListToTuple(Primitive):
107
- r"""
108
- Convert list to tuple.
109
-
110
- Inputs:
111
- - **x** (list) - The input
112
-
113
- Outputs:
114
- Tuple, has the same elements as the `input`.
115
-
116
- Supported Platforms:
117
- ``CPU``
118
-
119
- Examples:
120
- >>> from mindspore.ops_generate import ListToTuple
121
- >>> x = [1, 2, 3]
122
- >>> result = ListToTuple()(x)
123
- >>> print(result)
124
- (1, 2, 3)
125
- """
126
- @prim_arg_register
127
- def __init__(self):
128
- """Initialize TupleToList"""
129
-
130
- def __call__(self, input):
131
- return tuple(input)