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,4 +1,4 @@
1
- # Copyright 2020-2022 Huawei Technologies Co., Ltd
1
+ # Copyright 2020-2025 Huawei Technologies Co., Ltd
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ from abc import abstractmethod, ABCMeta
25
25
  from packaging import version
26
26
  import numpy as np
27
27
  from mindspore import log as logger
28
- from mindspore._c_expression import MSContext, ms_ctx_param
28
+ from mindspore.log import vlog_print
29
29
  from ..version import __version__
30
30
 
31
31
 
@@ -258,7 +258,7 @@ class AscendEnvChecker(EnvChecker):
258
258
 
259
259
  def __init__(self, library_path):
260
260
  self.library_path = library_path
261
- self.version = ["7.5", "7.6"]
261
+ self.version = ["7.6", "7.7"]
262
262
 
263
263
  # env
264
264
  self.path = os.getenv("PATH")
@@ -275,6 +275,7 @@ class AscendEnvChecker(EnvChecker):
275
275
  self.python_path_check = "opp/built-in/op_impl/ai_core/tbe"
276
276
  self.ld_lib_path_check_fwk = "/lib64"
277
277
  self.ascend_opp_path_check = "/op"
278
+ self.ascend_opp_kernel_path_check = "/opp_kernel"
278
279
  self.v = ""
279
280
 
280
281
  @staticmethod
@@ -286,12 +287,6 @@ class AscendEnvChecker(EnvChecker):
286
287
 
287
288
  def check_custom_version(self):
288
289
  """custom op version check"""
289
- custom_ascendc_soc_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
290
- "../lib/plugin/ascend/custom_ascendc_910b/op_impl/ai_core/tbe/kernel",
291
- MSContext.get_instance().get_ascend_soc_version())
292
- if not os.path.exists(custom_ascendc_soc_dir):
293
- logger.debug(f"The path {custom_ascendc_soc_dir} of the custom ascend c operator does not exist.")
294
- return False
295
290
 
296
291
  if not Path(self.compiler_version).is_file():
297
292
  return True
@@ -347,27 +342,35 @@ class AscendEnvChecker(EnvChecker):
347
342
  logger.warning(f"MindSpore version {mindspore_version} and \"te\" wheel package version {v} does not "
348
343
  "match. For details, refer to the installation guidelines: "
349
344
  "https://www.mindspore.cn/install")
350
- from hccl import sys_version as hccl_version
351
- v = '.'.join(hccl_version.__sys_version__.split('.')[0:2])
352
- if v not in supported_version:
353
- attention_warning = True
354
- logger.warning(f"MindSpore version {mindspore_version} and \"hccl\" wheel package version {v} does not "
355
- "match. For details, refer to the installation guidelines: "
356
- "https://www.mindspore.cn/install")
357
345
  # DO NOT modify exception type to any other, you DO NOT know what kind of exceptions the te will throw.
358
346
  # pylint: disable=broad-except
359
347
  except Exception as e:
360
348
  logger.error(f"CheckFailed: {e}")
361
- logger.error("MindSpore relies on whl packages of \"te\" and \"hccl\" in the \"latest\" "
362
- "folder of the Ascend AI software package (Ascend Data Center Solution). Please check whether"
363
- " they are installed correctly or not, refer to the match info on: "
364
- "https://www.mindspore.cn/install")
349
+ logger.critical("MindSpore relies on whl packages of \"te\" in the \"latest\" folder of the "
350
+ "Ascend AI software package (Ascend Data Center Solution). Please check whether they are "
351
+ "installed correctly or not, refer to the match info on: https://www.mindspore.cn/install")
365
352
  if attention_warning:
366
353
  warning_countdown = 3
367
354
  for i in range(warning_countdown, 0, -1):
368
355
  logger.warning(f"Please pay attention to the above warning, countdown: {i}")
369
356
  time.sleep(1)
370
357
 
358
+ def check_opp_kernel(self):
359
+ """
360
+ opp kernel install check
361
+ """
362
+ from mindspore._c_expression import MSContext
363
+ soc_version = MSContext.get_instance().get_ascend_soc_version()
364
+ if soc_version == "ascend310":
365
+ return
366
+
367
+ opp_kernel_path = self.ascend_opp_path.replace("opp", "opp_kernel")
368
+ if not os.path.exists(opp_kernel_path):
369
+ logger.critical("MindSpore relies on \"Ascend opp_kernel\" folder of the Ascend AI software package ("
370
+ "Ascend Data Center Solution). Please check whether they are installed correctly or not, "
371
+ "refer to the match info on: https://www.mindspore.cn/install")
372
+ raise Exception("Ascend opp_kernel is not installed")
373
+
371
374
  def set_env(self):
372
375
  curr_path = os.path.realpath(os.path.dirname(__file__))
373
376
  cust_aicpu_path = os.path.realpath(os.path.join(curr_path, "../lib/plugin/ascend/custom_aicpu_ops"))
@@ -396,6 +399,8 @@ class AscendEnvChecker(EnvChecker):
396
399
  # check te version after set te env
397
400
  self.check_deps_version()
398
401
 
402
+ self.check_opp_kernel()
403
+
399
404
  def _check_env(self):
400
405
  """ascend dependence path check"""
401
406
  if self.path is None or self.path_check not in self.path:
@@ -472,6 +477,7 @@ def check_version_and_env_config():
472
477
  logger.warning("Pre-Load Library libgomp.so.1 failed, which might cause TLS memory allocation failure. If "
473
478
  "the failure occurs, please refer to the FAQ for a solution: "
474
479
  "https://www.mindspore.cn/docs/en/master/faq/installation.html.")
480
+ from mindspore._c_expression import MSContext, ms_ctx_param
475
481
  MSContext.get_instance().register_check_env_callback(check_env)
476
482
  MSContext.get_instance().register_set_env_callback(set_env)
477
483
  MSContext.get_instance().set_device_target_inner(MSContext.get_instance().get_param(ms_ctx_param.device_target))
@@ -516,3 +522,4 @@ def _add_cuda_path():
516
522
  _set_pb_env()
517
523
  check_version_and_env_config()
518
524
  _add_cuda_path()
525
+ vlog_print("1", "ME", __file__, sys._getframe().f_lineno, "Initialization MindSpore.")
@@ -47,7 +47,7 @@ def _check_mul():
47
47
  def run_check():
48
48
  """
49
49
  Provide a convenient API to check if the installation is successful or failed.
50
- If the version in the check result is not what you expect, use :func:`mindspore.set_context` to set device_target
50
+ If the version in the check result is not as expected, use :func:`mindspore.set_context` to set device_target
51
51
  before run_check().
52
52
 
53
53
  Examples:
@@ -0,0 +1,37 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+
16
+ """
17
+ The runtime interface.
18
+ """
19
+
20
+ from mindspore.runtime.executor import launch_blocking, dispatch_threads_num, set_cpu_affinity, set_kernel_launch_group
21
+ from mindspore.runtime.memory import set_memory, memory_stats, memory_reserved, max_memory_reserved, empty_cache,\
22
+ reset_peak_memory_stats, memory_summary, memory_allocated,\
23
+ max_memory_allocated, reset_max_memory_reserved, reset_max_memory_allocated
24
+ from mindspore.runtime.stream import Stream, synchronize, set_cur_stream, current_stream, \
25
+ default_stream, communication_stream, StreamCtx
26
+ from mindspore.runtime.event import Event
27
+ from .executor import launch_blocking
28
+
29
+ __all__ = [
30
+ "launch_blocking", "dispatch_threads_num", "set_cpu_affinity", "set_kernel_launch_group",
31
+ "Stream", "communication_stream", "synchronize", "set_cur_stream", "current_stream", "default_stream", "StreamCtx",
32
+ "set_memory", "memory_stats", "memory_reserved", "max_memory_reserved", "empty_cache", "reset_peak_memory_stats",
33
+ "memory_summary", "memory_allocated", "max_memory_allocated", "reset_max_memory_reserved",
34
+ "reset_max_memory_allocated", "Event"
35
+ ]
36
+
37
+ __all__.sort()
@@ -0,0 +1,27 @@
1
+ # Copyright 2025 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+
16
+ """Runtime inner interfaces."""
17
+
18
+ from mindspore import log as logger
19
+ import mindspore as ms
20
+
21
+
22
+ def _is_supported():
23
+ device_target = ms.context.get_context("device_target")
24
+ if device_target == 'CPU':
25
+ logger.error(f"CPU device is not supported. Please use correct device")
26
+ return False
27
+ return True
@@ -0,0 +1,209 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Runtime event class"""
16
+ from mindspore._c_expression import Event as Event_
17
+ from mindspore._c_expression import Stream as Stream_
18
+ from mindspore._c_expression import current_stream as current_stream_
19
+ from mindspore import _checkparam as Validator
20
+ from .device import _is_supported
21
+
22
+ function_event_status = {'Event': False, 'wait': False}
23
+
24
+
25
+ class Event(Event_):
26
+ r"""
27
+ Wrapper around a device event.
28
+
29
+ Device events are synchronization markers that can be used to monitor the device’s progress,
30
+ to accurately measure timing, and to synchronize device streams.
31
+
32
+ The underlying device events are lazily initialized when the event is first recorded.
33
+
34
+ Args:
35
+ enable_timing (bool, optional): indicates if the event should measure time (default: ``False``)
36
+ blocking (bool, optional): if ``True``, `wait` will be blocking (default: ``False``)
37
+
38
+ Supported Platforms:
39
+ ``Ascend`` ``GPU``
40
+
41
+ Examples:
42
+ >>> import mindspore as ms
43
+ >>> import numpy as np
44
+ >>> from mindspore import Tensor, ops
45
+ >>> ms.set_device("Ascend", 0)
46
+ >>> start = ms.runtime.Event(enable_timing=True)
47
+ >>> end = ms.runtime.Event(enable_timing=True)
48
+ >>> s1 = ms.runtime.Stream()
49
+ >>> s2 = ms.runtime.Stream()
50
+ >>> a = Tensor(np.ones([2, 2]), ms.float32)
51
+ >>> b = Tensor(np.ones([2, 2]), ms.float32)
52
+ >>> c = Tensor(np.ones([2, 2]), ms.float32)
53
+ >>> with ms.runtime.StreamCtx(s1):
54
+ ... d = ops.matmul(a, b)
55
+ ... start.record()
56
+ >>> c += 2
57
+ >>> end.record()
58
+ >>> with ms.runtime.StreamCtx(s2):
59
+ ... start.synchronize()
60
+ ... end.synchronize()
61
+ ... e = c + d
62
+ >>> ms.runtime.synchronize()
63
+ >>> print(e)
64
+ [[5. 5.]
65
+ [5. 5.]]
66
+ >>> elapsed_time = start.elapsed_time(end)
67
+ """
68
+
69
+ def __init__(self, enable_timing=False, blocking=False):
70
+ if not function_event_status['Event']:
71
+ function_event_status['Event'] = True
72
+ if not _is_supported():
73
+ return
74
+ # pylint: disable=useless-super-delegation
75
+ Validator.check_bool(enable_timing, "enable_timing", "Event")
76
+ Validator.check_bool(blocking, "blocking", "Event")
77
+ super().__init__(enable_timing, blocking)
78
+
79
+ def record(self, stream=None):
80
+ r"""
81
+ Records the event in a given stream.
82
+
83
+ Uses :func:`mindspore.runtime.current_stream()` if no `stream` is specified. The
84
+ stream's device must match the event's device.
85
+
86
+ Args:
87
+ stream (Stream, optional): a stream to record. If this argument is ``None``,
88
+ current stream will be used. Default value: ``None``.
89
+
90
+ Raises:
91
+ TypeError: If 'stream' is neither a :class:`mindspore.runtime.Stream` nor a ``None``.
92
+ """
93
+ if stream is None:
94
+ stream = current_stream_()
95
+ if not isinstance(stream, Stream_):
96
+ raise TypeError(
97
+ f"For 'record', the argument 'stream' should be Stream,"
98
+ f" but got {type(stream)}."
99
+ )
100
+ super().record(stream)
101
+
102
+ def wait(self, stream=None):
103
+ r"""
104
+ Makes all future work submitted to the given stream wait for this
105
+ event.
106
+
107
+ Use :func:`mindspore.runtime.current_stream()` if no `stream` is specified.
108
+
109
+ Args:
110
+ stream (Stream, optional): a stream to record. If this argument is ``None``,
111
+ current stream will be used. Default value: ``None``.
112
+
113
+ Raises:
114
+ TypeError: If 'stream' is neither a :class:`mindspore.runtime.Stream` nor a ``None``.
115
+
116
+ Supported Platforms:
117
+ ``Ascend`` ``GPU``
118
+
119
+ Examples:
120
+ >>> import mindspore as ms
121
+ >>> import numpy as np
122
+ >>> from mindspore import Tensor, ops
123
+ >>> ms.set_device("Ascend", 0)
124
+ >>> event = ms.runtime.Event()
125
+ >>> s1 = ms.runtime.Stream()
126
+ >>> s2 = ms.runtime.Stream()
127
+ >>> a = Tensor(np.ones([2, 2]), ms.float32)
128
+ >>> b = Tensor(np.ones([2, 2]), ms.float32)
129
+ >>> with ms.runtime.StreamCtx(s1):
130
+ ... c = ops.matmul(a, b)
131
+ ... event.record()
132
+ >>> event.wait()
133
+ >>> d = c + 2
134
+ >>> ms.runtime.synchronize()
135
+ >>> print(d)
136
+ [[4. 4.]
137
+ [4. 4.]]
138
+ """
139
+ if not function_event_status['wait']:
140
+ function_event_status['wait'] = True
141
+ if not _is_supported():
142
+ return
143
+ if stream is None:
144
+ stream = current_stream_()
145
+ if not isinstance(stream, Stream_):
146
+ raise TypeError(
147
+ f"For 'wait', the argument 'stream' should be Stream,"
148
+ f" but got {type(stream)}."
149
+ )
150
+ super().wait(stream)
151
+
152
+ def synchronize(self):
153
+ r"""
154
+ Waits for the event to complete.
155
+
156
+ Waits until the completion of all work currently captured in this event.
157
+ This prevents the CPU thread from proceeding until the event completes.
158
+ """
159
+ # pylint: disable=useless-super-delegation
160
+ super().synchronize()
161
+
162
+ def query(self):
163
+ r"""
164
+ Checks if all work currently captured by event has completed.
165
+
166
+ Returns:
167
+ A boolean indicating if all work currently captured by event has completed.
168
+
169
+ Supported Platforms:
170
+ ``Ascend`` ``GPU``
171
+
172
+ Examples:
173
+ >>> import mindspore as ms
174
+ >>> import numpy as np
175
+ >>> from mindspore import Tensor, ops
176
+ >>> ms.set_device("Ascend", 0)
177
+ >>> a = Tensor(np.ones([1024, 2048]), ms.float32)
178
+ >>> b = Tensor(np.ones([2048, 4096]), ms.float32)
179
+ >>> s1 = ms.runtime.Stream()
180
+ >>> with ms.runtime.StreamCtx(s1):
181
+ ... c = ops.matmul(a, b)
182
+ ... ev = s1.record_event()
183
+ >>> s1.synchronize()
184
+ >>> assert ev.query()
185
+ """
186
+ # pylint: disable=useless-super-delegation
187
+ return super().query()
188
+
189
+ def elapsed_time(self, end_event):
190
+ r"""
191
+ Returns the time elapsed in milliseconds after the event was
192
+ recorded and before the end_event was recorded.
193
+
194
+ Args:
195
+ end_event (Event): end event.
196
+
197
+ Returns:
198
+ float, the time elapsed in milliseconds.
199
+
200
+ Raises:
201
+ TypeError: If 'end_event' is not a :class:`mindspore.runtime.Event`.
202
+ """
203
+ # pylint: disable=useless-super-delegation
204
+ if not isinstance(end_event, Event):
205
+ raise TypeError(
206
+ f"For 'elapsed_time', the argument 'end_event' should be Event,"
207
+ f" but got {type(end_event)}."
208
+ )
209
+ return super().elapsed_time(end_event)
@@ -0,0 +1,177 @@
1
+ # Copyright 2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+
16
+ """Executor manager interfaces."""
17
+ from mindspore._c_expression import RuntimeConf
18
+ from mindspore.runtime.thread_bind_core import _get_cpu_affinity_policy
19
+ from mindspore._checkparam import args_type_check
20
+ from mindspore import _checkparam as Validator
21
+ from mindspore import log as logger
22
+
23
+
24
+
25
+ def launch_blocking():
26
+ """
27
+ Indicates that synchronizing the execution of the startup device reduces the execution performance of the program.
28
+
29
+ - In the initial state when this interface is not called, the operator executes asynchronously on the device.
30
+ In this case, when an error occurs in the execution of the operator,
31
+ it will not be possible to locate the position of the particular error script code.
32
+ - When this interface is called, the operator is executed in a synchronized manner on the device.
33
+ At this point, when an error occurs in the execution of the operator,
34
+ the location of the erroneous script code can be located based on the error call stack.
35
+
36
+ Examples:
37
+ >>> import mindspore as ms
38
+ >>> ms.set_device("Ascend", 1)
39
+ >>> ms.runtime.launch_blocking()
40
+ """
41
+ return RuntimeConf.get_instance().set_launch_blocking()
42
+
43
+
44
+ @args_type_check(threads_num=int)
45
+ def dispatch_threads_num(threads_num):
46
+ """
47
+ Set the threads number of runtime used.
48
+
49
+ The framework set the runtime number of threads are 5 by default.
50
+
51
+ Args:
52
+ threads_num (int): The threads number of runtime used.
53
+
54
+ Examples:
55
+ >>> import mindspore as ms
56
+ >>> ms.set_device("Ascend", 1)
57
+ >>> ms.runtime.dispatch_threads_num(6)
58
+ """
59
+ if RuntimeConf.get_instance().is_dispatch_threads_num_configured():
60
+ raise RuntimeError("The 'dispatch_threads_num' can not be set repeatedly.")
61
+
62
+ threads_num = Validator.check_positive_int(threads_num, "threads_num")
63
+
64
+ return RuntimeConf.get_instance().set_dispatch_threads_num(threads_num)
65
+
66
+
67
+ @args_type_check(enable_affinity=bool, affinity_cpu_list=dict)
68
+ def set_cpu_affinity(enable_affinity, affinity_cpu_list=None):
69
+ """
70
+ Enable thread-level core binding to assign specific CPU cores to MindSpore's main modules (main thread, pynative,
71
+ runtime, minddata), to prevent unstable performance caused by MindSpore's threads seizing CPU.
72
+
73
+ Note:
74
+ - Provides two binding modes: 1. Automatically generates binding policies based on available CPUs, NUMA nodes,
75
+ and device resources in the environment to bind cores at thread level. 2. Thread-level bonding based on
76
+ customized bonding policies passed in by `affinity_cpu_list`.
77
+
78
+ - The automated bind-core policy generation scenario invokes system commands to obtain CPU, NUMA node, and
79
+ device resources on the environment, and some commands cannot be executed successfully due to environment
80
+ differences; the automated bind-core policy generated will vary according to the resources available on the
81
+ environment:
82
+
83
+ 1. `cat /sys/fs/cgroup/cpuset/cpuset.cpus`, to obtain the available CPU resources on the environment; if the
84
+ execution of this command fails, the bind-core function will not take effect.
85
+ 2. `npu-smi info -m`, get the available NPU resources on the environment; if the execution of this command
86
+ fails, the bind-core policy will be generated only based on the available CPU resources,
87
+ without considering the device affinity.
88
+ 3. `npu-smi info -t board -i {NPU_ID} -c {CHIP_ID}`, get NPU details based on the logical ID of the device;
89
+ if the execution of this command fails, the bind-core policy is generated based on the available CPU
90
+ resources only, regardless of device affinity.
91
+ 4. `lspci -s {PCIe_No} -vvv`, get the hardware information of the device on the environment; if the execution
92
+ of this command fails, the bind-core policy is generated only based on the available CPU resources,
93
+ without considering the device affinity.
94
+ 5. `lscpu`, get information about CPUs and NUMA nodes on the environment; if the execution of this command
95
+ fails, only the available CPU resources are used to generate the bind-core policy, without considering
96
+ the device affinity.
97
+
98
+ Args:
99
+ enable_affinity (bool): Switches on/off thread-level core binding.
100
+ affinity_cpu_list (dict, optional): Specifies a customized bind-core policy. The key to be passed
101
+ into the dict needs to be in string ``"deviceX"`` format, and the value needs to be in list
102
+ ``["cpuidX-cpuidY"]`` format. Default: ``None``, i.e., use the bind-core policy generated automatically
103
+ based on the environment. It is allowed to pass the empty dict ``{}``, in which case the bind-core
104
+ policy generated automatically based on the environment will be used.
105
+
106
+ Raises:
107
+ TypeError: The parameter `enable_affinity` is not a boolean.
108
+ TypeError: The parameter `affinity_cpu_list` is neither a dictionary nor a ``None``.
109
+ ValueError: The key of parameter `affinity_cpu_list` is not a string.
110
+ ValueError: The key of parameter `affinity_cpu_list` is not in ``"deviceX"`` format.
111
+ ValueError: The parameter `affinity_cpu_list` has a value that is not a list.
112
+ ValueError: The element in value of parameter `affinity_cpu_list` is not a string.
113
+ ValueError: The element in value for parameter `affinity_cpu_list` does not match ``["cpuidX-cpuidY"]``.
114
+ RuntimeError: Automatically generated binding policy or customized binding policy scenario where the number
115
+ of CPU cores assigned to each device is less than 7.
116
+ RuntimeError: A custom-specified binding policy scenario where the CPU assigned to a device is not
117
+ available in the environment.
118
+ RuntimeError: The `mindspore.runtime.set_cpu_affinity` API is called repeatedly.
119
+
120
+ Examples:
121
+ >>> import mindspore as ms
122
+ >>> ms.set_device("Ascend", 1)
123
+ >>> ms.runtime.set_cpu_affinity(True)
124
+ >>>
125
+ >>> import mindspore as ms
126
+ >>> ms.set_device("Ascend", 1)
127
+ >>> ms.runtime.set_cpu_affinity(True, {"device0":["0-9"],"device1":["10-15","20-29"],"device2":["35-45"]})
128
+ """
129
+ if RuntimeConf.get_instance().is_thread_bind_core_configured():
130
+ raise RuntimeError("The 'mindspore.runtime.set_cpu_affinity' cannot be set repeatedly.")
131
+ if enable_affinity:
132
+ module_bind_core_policy, bind_policy_flag = _get_cpu_affinity_policy(affinity_cpu_list)
133
+ if not module_bind_core_policy:
134
+ logger.warning("set_cpu_affinity is not enabled because the environment does not meet the "
135
+ "basic conditions for binding core.")
136
+ RuntimeConf.get_instance().set_thread_bind_core_configured()
137
+ return
138
+ if bind_policy_flag:
139
+ RuntimeConf.get_instance().thread_bind_core_with_policy(module_bind_core_policy)
140
+ else:
141
+ RuntimeConf.get_instance().thread_bind_core(module_bind_core_policy)
142
+ else:
143
+ RuntimeConf.get_instance().set_thread_bind_core_configured()
144
+ return
145
+
146
+
147
+ @args_type_check(thread_num=int, kernel_group_num=int)
148
+ def set_kernel_launch_group(thread_num=2, kernel_group_num=8):
149
+ """
150
+ O0 mode supports operator batch parallel delivery interface, supports enabling
151
+ parallel delivery, and configures parallel number.
152
+
153
+ Args:
154
+ thread_num (int, optional): The number of concurrent threads, generally not recommended
155
+ to increase. The `thread_num` and the number of threads configured by the existing interface
156
+ mindspore.runtime.dispatch_threads_num are independent of each other. Default value is ``2``.
157
+ kernel_group_num (int, optional): Total number of operator groups,
158
+ kernel_group_num/thread_num groups per thread. Default value is ``8``.
159
+
160
+ Examples:
161
+ >>> import mindspore as ms
162
+ >>> ms.runtime.set_kernel_launch_group(thread_num=2, kernel_group_num=8)
163
+ """
164
+ if RuntimeConf.get_instance().is_kernel_launch_group_configured():
165
+ raise RuntimeError("The 'kernel_launch_group' can not be set repeatedly.")
166
+
167
+ if thread_num < 1:
168
+ raise ValueError(f"The value of thread_num should be at least 1, but got {thread_num}")
169
+
170
+ if kernel_group_num < 1:
171
+ raise ValueError(f"The value of kernel_group_num should be at least 1, but got {kernel_group_num}")
172
+
173
+ if (kernel_group_num % thread_num) != 0:
174
+ raise ValueError(f"Invalid parameter value, kernel_group_num: {kernel_group_num} cannot "
175
+ f"be evenly divisible by thread_num: {thread_num}")
176
+
177
+ return RuntimeConf.get_instance().set_kernel_launch_group(thread_num, kernel_group_num)