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
@@ -0,0 +1,187 @@
1
+ # Copyright 2024-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
+ """Profiler Action Controller"""
16
+ from functools import partial
17
+ from typing import Dict, Optional, Callable, Any
18
+
19
+ from mindspore.profiler.profiler_interface import ProfilerInterface
20
+ from mindspore.profiler.schedule import ProfilerAction
21
+
22
+ from mindspore import log as logger
23
+
24
+ __all__ = []
25
+
26
+
27
+ class ProfilerActionController:
28
+ """
29
+ A controller class for managing profiler actions and transitions.
30
+
31
+ This class handles the actions and transitions between different profiler states.
32
+ It uses two maps, abnormal_action_map and normal_action_map, to determine the actions
33
+ to take based on the previous and current profiler actions.
34
+
35
+ Attributes:
36
+ profiler: The profiler instance associated with this controller.
37
+ prof_interface (ProfilerInterface): The profiler interface instance.
38
+ on_trace_ready (Optional[Callable[..., Any]]): A callback function to be called when the trace is ready.
39
+ abnormal_action_map (Dict): A map of abnormal transitions and their corresponding actions.
40
+ normal_action_map (Dict): A map of normal transitions and their corresponding actions.
41
+ """
42
+
43
+ def __init__(self, prof_interface: ProfilerInterface, on_trace_ready: Optional[Callable[..., Any]] = None) -> None:
44
+ """
45
+ Initializes a new instance of ProfActionController.
46
+
47
+ Args:
48
+ prof_interface (ProfilerInterface): The profiler interface instance.
49
+ on_trace_ready (Optional[Callable[..., Any]]): A callback function to be called when the trace is ready.
50
+ """
51
+ self.prof_interface = prof_interface
52
+ self.abnormal_action_map: Dict = self.init_abnormal_action_map()
53
+ self.normal_action_map: Dict = self.init_normal_action_map()
54
+ self.on_trace_ready = on_trace_ready
55
+
56
+ def _trace_ready(self):
57
+ """
58
+ Calls the on_trace_ready callback function if it is set.
59
+
60
+ This method is called when the trace is ready to notify the callback function.
61
+ """
62
+ if self.on_trace_ready:
63
+ self.on_trace_ready()
64
+
65
+ def transit_action(self, prev_action: ProfilerAction, current_action: ProfilerAction) -> None:
66
+ """
67
+ Handles actions between previous action and latter action
68
+
69
+ Args:
70
+ prev_action: The previous state
71
+ current_action: the latter state
72
+ """
73
+ # Check whether the action is in the abnormal map
74
+ action_list = self.abnormal_action_map.get((prev_action, current_action), [])
75
+ if not action_list:
76
+ if isinstance(prev_action, ProfilerAction) and isinstance(current_action, ProfilerAction):
77
+ # Check whether the action is in the normal map
78
+ action_list = self.handle_normal_action(prev_action, current_action)
79
+ if not action_list:
80
+ return
81
+ for action in action_list:
82
+ action()
83
+
84
+ def handle_normal_action(self, start_state: ProfilerAction, end_state: ProfilerAction) -> list:
85
+ """
86
+ Obtain the action in the normal state
87
+
88
+ Args:
89
+ start_state: The previous state
90
+ end_state: the latter state
91
+
92
+ Returns:
93
+ process_action list
94
+ """
95
+ process_action = []
96
+ initial_state = start_state
97
+
98
+ # Handle special case for ProfilerAction.RECORD_AND_SAVE to ProfilerAction.RECORD_AND_SAVE transition
99
+ if start_state == ProfilerAction.RECORD_AND_SAVE and end_state == ProfilerAction.RECORD_AND_SAVE:
100
+ process_action = [self.prof_interface.stop, self.prof_interface.finalize,
101
+ self._trace_ready, self.prof_interface.clear, self.prof_interface.init,
102
+ self.prof_interface.start]
103
+ else:
104
+ while start_state != end_state:
105
+ process_action.extend(self.normal_action_map[start_state])
106
+ start_state = ProfilerAction.get_by_value((start_state.value + 1) % len(ProfilerAction))
107
+
108
+ # Handle special cases for NONE to NONE, WARM_UP to WARM_UP, RECORD to RECORD transitions
109
+ if initial_state == start_state and initial_state != ProfilerAction.RECORD_AND_SAVE:
110
+ process_action = []
111
+
112
+ return process_action
113
+
114
+ def init_normal_action_map(self) -> dict:
115
+ """
116
+ Generate a normal action map
117
+
118
+ Returns:
119
+ normal_action_map map
120
+ """
121
+ return {
122
+ ProfilerAction.NONE: [self.prof_interface.init],
123
+ ProfilerAction.WARM_UP: [self.prof_interface.start],
124
+ ProfilerAction.RECORD: [],
125
+ ProfilerAction.RECORD_AND_SAVE: [
126
+ self.prof_interface.stop,
127
+ self.prof_interface.finalize,
128
+ self._trace_ready,
129
+ self.prof_interface.clear
130
+ ]
131
+ }
132
+
133
+ def init_abnormal_action_map(self) -> dict:
134
+ """
135
+ Generate a abnormal action map
136
+
137
+ Returns:
138
+ abnormal_action_map map
139
+ """
140
+ return {
141
+ (ProfilerAction.WARM_UP, ProfilerAction.NONE): [
142
+ partial(logger.warning, "Incorrect schedule: WARMUP followed by NONE"),
143
+ self.prof_interface.start,
144
+ self.prof_interface.stop,
145
+ self.prof_interface.finalize,
146
+ self.prof_interface.clear
147
+ ],
148
+ (ProfilerAction.RECORD, ProfilerAction.NONE): [
149
+ partial(logger.warning, "Incorrect schedule: RECORD followed by NONE"),
150
+ self.prof_interface.stop,
151
+ self.prof_interface.finalize,
152
+ self.prof_interface.clear
153
+ ],
154
+ (ProfilerAction.RECORD, ProfilerAction.WARM_UP): [
155
+ partial(logger.warning, "Incorrect schedule: RECORD followed by WARMUP"),
156
+ self.prof_interface.stop,
157
+ self.prof_interface.finalize,
158
+ self.prof_interface.clear
159
+ ],
160
+ # used for exit action
161
+ (ProfilerAction.WARM_UP, None): [
162
+ partial(logger.warning,
163
+ "Incorrect schedule: Stop profiler while current state is WARMUP "
164
+ "which will result in empty parsed data."),
165
+ self.prof_interface.finalize,
166
+ self.prof_interface.clear,
167
+ self.prof_interface.delete_dir
168
+ ],
169
+ (ProfilerAction.RECORD, None): [
170
+ partial(logger.warning,
171
+ "Incorrect schedule: Stop profiler while current state is RECORD "
172
+ "which may result in incomplete parsed data."),
173
+ self.prof_interface.stop,
174
+ self.prof_interface.finalize,
175
+ self._trace_ready,
176
+ self.prof_interface.clear
177
+ ],
178
+ (ProfilerAction.RECORD_AND_SAVE, None): [
179
+ partial(logger.warning,
180
+ "Stop profiler while current state is RECORD_AND_SAVE, "
181
+ "perhaps the scheduling cycle has not yet completed."),
182
+ self.prof_interface.stop,
183
+ self.prof_interface.finalize,
184
+ self._trace_ready,
185
+ self.prof_interface.clear
186
+ ]
187
+ }
@@ -0,0 +1,118 @@
1
+ # Copyright 2020-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
+ """ProfilerInterface"""
16
+ from typing import Set
17
+
18
+ from mindspore import log as logger
19
+ from mindspore.common.api import _pynative_executor
20
+ from mindspore.profiler.common.registry import PROFILERS
21
+ from mindspore.profiler.platform.base_profiler import BaseProfiler
22
+ from mindspore.profiler.common.profiler_context import ProfilerContext
23
+ from mindspore.profiler.common.log import ProfilerLogger
24
+ from mindspore.profiler.common.profiler_path_manager import ProfilerPathManager
25
+ from mindspore.profiler.common.profiler_meta_data import ProfilerMetaData
26
+
27
+
28
+ class ProfilerInterface:
29
+ """
30
+ Profiler interface
31
+ """
32
+
33
+ cpu_profiler: BaseProfiler = None
34
+ device_profiler: BaseProfiler = None
35
+ platform_profilers_set: Set[BaseProfiler] = set()
36
+ is_initialized = False
37
+
38
+ @classmethod
39
+ def init(cls):
40
+ """ProfilerInterface init"""
41
+ if cls.is_initialized:
42
+ return
43
+
44
+ ProfilerPathManager().set_ascend_ms_dir()
45
+ ProfilerPathManager().create_profiler_paths()
46
+ platforms = ProfilerContext().device_target_set
47
+ for device_target in platforms:
48
+ cls.platform_profilers_set.add(PROFILERS.modules.get(device_target)())
49
+
50
+ cls.is_initialized = True
51
+ logger.info("ProfilerInterface init")
52
+
53
+ @classmethod
54
+ def start(cls):
55
+ """ProfilerInterface start"""
56
+ if not cls.is_initialized:
57
+ logger.warning("ProfilerInterface start failed, profiler has not been initialized.")
58
+ return
59
+
60
+ for profiler in cls.platform_profilers_set:
61
+ profiler.start()
62
+
63
+ logger.info("ProfilerInterface start")
64
+
65
+ @classmethod
66
+ def stop(cls):
67
+ """ProfilerInterface stop"""
68
+ if not cls.is_initialized:
69
+ logger.warning("ProfilerInterface stop failed, profiler has not been initialized.")
70
+ return
71
+
72
+ _pynative_executor.sync()
73
+ for profiler in cls.platform_profilers_set:
74
+ profiler.stop()
75
+
76
+ logger.info("ProfilerInterface stop")
77
+
78
+ @classmethod
79
+ def analyse(cls):
80
+ """ProfilerInterface analyse"""
81
+ if not cls.is_initialized:
82
+ logger.warning("ProfilerInterface analyse failed, profiler has not been initialized.")
83
+ return
84
+
85
+ for profiler in cls.platform_profilers_set:
86
+ profiler.analyse()
87
+
88
+ logger.info("ProfilerInterface analyse")
89
+
90
+ @classmethod
91
+ def finalize(cls):
92
+ """ProfilerInterface finalize"""
93
+ if not cls.is_initialized:
94
+ logger.warning("ProfilerInterface finalize failed, profiler has not been initialized.")
95
+ return
96
+
97
+ ProfilerMetaData.dump_metadata()
98
+ for profiler in cls.platform_profilers_set:
99
+ profiler.finalize()
100
+ profiler = None
101
+
102
+ logger.info("ProfilerInterface finalize")
103
+
104
+ @classmethod
105
+ def clear(cls):
106
+ """ProfilerInterface clear"""
107
+ if not cls.is_initialized:
108
+ logger.warning("ProfilerInterface clear failed, profiler has not been initialized.")
109
+ return
110
+ cls.platform_profilers_set.clear()
111
+ cls.is_initialized = False
112
+ ProfilerLogger.destroy()
113
+ logger.info("ProfilerInterface clear")
114
+
115
+ @classmethod
116
+ def delete_dir(cls):
117
+ """ProfilerInterface delete dir"""
118
+ logger.info("ProfilerInterface delete dir")
@@ -0,0 +1,243 @@
1
+ # Copyright 2020-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
+ """Profiler Schedule"""
16
+ from enum import Enum
17
+
18
+ from mindspore import log as logger
19
+
20
+ __all__ = ["ProfilerAction", "Schedule"]
21
+
22
+
23
+ class ProfilerAction(Enum):
24
+ """
25
+ Enum class representing different actions that can be performed by the profiler.
26
+
27
+ Each member of the enum represents a specific profiling action, which can be used
28
+ to control the behavior of the profiler at different stages of execution.
29
+
30
+ Attributes:
31
+ NONE (ProfilerAction): No profiling action.
32
+ WARM_UP (ProfilerAction): Warm-up phase of profiling.
33
+ RECORD (ProfilerAction): Record phase of profiling.
34
+ RECORD_AND_SAVE (ProfilerAction): Record and save phase of profiling.
35
+ """
36
+ NONE = 0
37
+ WARM_UP = 1
38
+ RECORD = 2
39
+ RECORD_AND_SAVE = 3
40
+
41
+ @staticmethod
42
+ def get_by_value(value):
43
+ """
44
+ Retrieves a ProfilerAction enum member by its value.
45
+
46
+ Args:
47
+ value (int): The value of the ProfilerAction enum member to retrieve.
48
+
49
+ Returns:
50
+ ProfilerAction, The enum member corresponding to the given value, or None if not found.
51
+ """
52
+ value_map = {action.value: action for action in ProfilerAction}
53
+ return value_map.get(value, None)
54
+
55
+
56
+ class Schedule:
57
+ r"""
58
+ This class use to get the actions of each step.
59
+ The schedule is as follows:
60
+
61
+ .. code-block::
62
+
63
+ (NONE) (NONE) (NONE) (WARM_UP) (RECORD) (RECORD) (RECORD_AND_SAVE) None
64
+ START------->skip_first------->wait-------->warmup-------->active........active.........active----------->stop
65
+ | |
66
+ | repeat_1 |
67
+ ---------------------------------------------------------------
68
+
69
+ The profiler will skip the first ``skip_first`` steps, then wait for ``wait`` steps,
70
+ then do the warmup for the next ``warmup`` steps, then do the active recording for the next
71
+ ``active`` steps and then repeat the cycle starting with ``wait`` steps. The optional number
72
+ of cycles is specified with the ``repeat`` parameter, the zero value means that
73
+ the cycles will continue until the profiling is finished.
74
+
75
+ Keyword Args:
76
+ wait (int): The number of steps to wait before starting the warm-up phase.
77
+ must be greater than or equal to 0. If the wait parameter is not set externally,
78
+ it is set to ``0`` when the schedule class is initialized.
79
+ active (int): The number of steps to record data during the active phase.
80
+ must be greater than or equal to 1. If the active parameter is not set externally,
81
+ it is set to ``1`` when the schedule class is initialized.
82
+ warmup (int, optional): The number of steps to perform the warm-up phase.
83
+ must be greater than or equal to 0. Default value: ``0``.
84
+ repeat (int, optional): The number of times to repeat the cycle.
85
+ If repeat is set to 0, the Profiler will determine the repeat value based on the number of times the model
86
+ is trained, which will generate one more performance data with incomplete collection. The data in the last
87
+ step is abnormal data that users do not need to pay attention to. Default value: ``0``.
88
+ skip_first (int, optional): The number of steps to skip at the beginning. Must be greater than or equal to 0.
89
+ Default value: ``0``
90
+
91
+ Raises:
92
+ ValueError: When the parameter step is less than 0.
93
+
94
+ Supported Platforms:
95
+ ``Ascend``
96
+
97
+ Examples:
98
+ >>> import numpy as np
99
+ >>> import mindspore
100
+ >>> import mindspore.dataset as ds
101
+ >>> from mindspore import context, nn
102
+ >>> from mindspore.profiler import ProfilerLevel, AicoreMetrics, ExportType, ProfilerActivity
103
+ >>>
104
+ >>> class Net(nn.Cell):
105
+ ... def __init__(self):
106
+ ... super(Net, self).__init__()
107
+ ... self.fc = nn.Dense(2, 2)
108
+ ...
109
+ ... def construct(self, x):
110
+ ... return self.fc(x)
111
+ >>>
112
+ >>> def generator_net():
113
+ ... for _ in range(2):
114
+ ... yield np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32)
115
+ >>>
116
+ >>> def train(test_net):
117
+ ... optimizer = nn.Momentum(test_net.trainable_params(), 1, 0.9)
118
+ ... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
119
+ ... data = ds.GeneratorDataset(generator_net(), ["data", "label"])
120
+ ... model = mindspore.train.Model(test_net, loss, optimizer)
121
+ ... model.train(1, data)
122
+ >>>
123
+ >>> if __name__ == '__main__':
124
+ ... # If the device_target is GPU, set the device_target to "GPU"
125
+ ... context.set_context(mode=mindspore.GRAPH_MODE)
126
+ ... mindspore.set_device("Ascend")
127
+ ...
128
+ ... # Init Profiler
129
+ ... experimental_config = mindspore.profiler._ExperimentalConfig(
130
+ ... profiler_level=ProfilerLevel.Level0,
131
+ ... aic_metrics=AicoreMetrics.AiCoreNone,
132
+ ... l2_cache=False,
133
+ ... mstx=False,
134
+ ... data_simplification=False,
135
+ ... export_type=[ExportType.Text])
136
+ ... steps = 10
137
+ ... net = Net()
138
+ ... # Note that the Profiler should be initialized before model.train
139
+ ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
140
+ ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
141
+ ... repeat=1, skip_first=2),
142
+ ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
143
+ ... profile_memory=False,
144
+ ... experimental_config=experimental_config) as prof:
145
+ ...
146
+ ... # Train Model
147
+ ... for step in range(steps):
148
+ ... train(net)
149
+ ... prof.step()
150
+ """
151
+
152
+ def __init__(self, *, wait: int, active: int, warmup: int = 0, repeat: int = 0, skip_first: int = 0) -> None:
153
+ self.wait = wait
154
+ self.active = active
155
+ self.warmup = warmup
156
+ self.repeat = repeat
157
+ self.skip_first = skip_first
158
+ self._check_params()
159
+
160
+ def __call__(self, step: int) -> ProfilerAction:
161
+ """
162
+ Obtain the action of the specified step from the schedule.
163
+
164
+ Args:
165
+ step (int): step num.
166
+
167
+ Returns:
168
+ ProfilerAction, The action corresponding to a step.
169
+ """
170
+ if step < 0:
171
+ raise ValueError("Invalid parameter step, which must be not less than 0.")
172
+ if step < self.skip_first:
173
+ return ProfilerAction.NONE
174
+
175
+ step -= self.skip_first
176
+
177
+ num_steps = self.wait + self.warmup + self.active
178
+ if 0 < self.repeat <= step / num_steps:
179
+ return ProfilerAction.NONE
180
+
181
+ mod_step = step % num_steps
182
+ if mod_step < self.wait:
183
+ return ProfilerAction.NONE
184
+ if mod_step < self.wait + self.warmup:
185
+ return ProfilerAction.WARM_UP
186
+ return ProfilerAction.RECORD if mod_step < num_steps - 1 else ProfilerAction.RECORD_AND_SAVE
187
+
188
+ def __repr__(self):
189
+ return (f"Schedule(wait={self.wait!r}, active={self.active!r}, "
190
+ f"warmup={self.warmup!r}, repeat={self.repeat!r}, "
191
+ f"skip_first={self.skip_first!r})")
192
+
193
+ def _check_params(self):
194
+ """
195
+ Verify all parameters in the schedule,
196
+ and set them to default values if the parameters are not compliant.
197
+ """
198
+ if not isinstance(self.wait, int) or isinstance(self.wait, bool) or self.wait < 0:
199
+ logger.warning(f"Parameter 'wait' should be of type int, but got "
200
+ f"{type(self.wait).__name__}. reset to int 0.")
201
+ self.wait = 0
202
+ if not isinstance(self.warmup, int) or isinstance(self.warmup, bool) or self.warmup < 0:
203
+ logger.warning(f"Parameter 'warmup' should be of type int, but got "
204
+ f"{type(self.warmup).__name__}. reset to int 0.")
205
+ self.warmup = 0
206
+ if not isinstance(self.active, int) or isinstance(self.active, bool) or self.active <= 0:
207
+ logger.warning(f"Parameter 'active' should be of type int, but got "
208
+ f"{type(self.active).__name__}. reset to int 1.")
209
+ self.active = 1
210
+ if not isinstance(self.repeat, int) or isinstance(self.repeat, bool) or self.repeat < 0:
211
+ logger.warning(f"Parameter 'repeat' should be of type int, but got "
212
+ f"{type(self.repeat).__name__}. reset to int 0.")
213
+ self.repeat = 0
214
+ if not isinstance(self.skip_first, int) or isinstance(self.skip_first, bool) or self.skip_first < 0:
215
+ logger.warning(f"Parameter 'skip_first' should be of type int, but got "
216
+ f"{type(self.skip_first).__name__}. reset to int 0.")
217
+ self.skip_first = 0
218
+ if self.warmup == 0:
219
+ logger.warning("Profiler won't be using warmup, this can skew profiler results")
220
+
221
+ def to_dict(self):
222
+ """
223
+ Convert schedule to a dict.
224
+
225
+ Returns:
226
+ dict, the parameters of schedule and their values.
227
+ """
228
+ return {'wait': self.wait, 'active': self.active, 'warmup': self.warmup,
229
+ 'repeat': self.repeat, 'skip_first': self.skip_first}
230
+
231
+
232
+ def _default_schedule_fn(_: int) -> ProfilerAction:
233
+ """
234
+ Default profiler behavior - immediately starts recording the events,
235
+ keeps doing it on every profiler step.
236
+
237
+ Args:
238
+ _ (int): step num.
239
+
240
+ Returns:
241
+ ProfilerAction, The RECORD action.
242
+ """
243
+ return ProfilerAction.RECORD
@@ -28,9 +28,11 @@ from .scoped_value import ScopedValue
28
28
 
29
29
  class Node:
30
30
  """
31
- A node is a data structure that expresses source code statements in a network.
32
-
33
- Each node usually corresponds to a statement in expanded forward evaluation process.
31
+ A node (Node) can be understood as a basic data structure unit in the computational graph of a neural network,
32
+ which represents an operation or computational step in the network.
33
+ Each node usually corresponds to a statement or expression in the source code,
34
+ which contains the information needed to perform the operation,
35
+ such as the type of operation, input data, output result, and connection relationships with other nodes.
34
36
 
35
37
  Nodes can express a ``Cell`` call statement, a ``Primitive`` call statement, an arithmetic operation statement, a
36
38
  return statements, etc. of the forward calculation process.
@@ -66,9 +68,9 @@ class Node:
66
68
  source code.
67
69
  args (List[ScopedValue]): Indicate input names. Used as args of a call expression of an assign statement in
68
70
  source code. Default: ``None`` , which indicates the `cell` has no args inputs.
69
- kwargs (Dict[str, ScopedValue]): Type of key must be `str` and type of value must be `ScopedValue`.
70
- Indicate keyword input names. Used as kwargs of a call expression of an assign statement in source
71
- code. Default: ``None`` , which indicates the `cell` has no kwargs inputs.
71
+ kwargs (Dict[str, ScopedValue]): Used as kwargs of a call expression of an assign statement in source
72
+ code. Indicate keyword input names. Type of key must be `str` and type of value must be `ScopedValue`.
73
+ Default: ``None`` , which indicates the `cell` has no kwargs inputs.
72
74
  name (str): Indicate the name of node. Used as field name in source code. Default is None. Rewrite will
73
75
  generate name from `cell` when name is None. Rewrite will check and ensure the uniqueness of `name`
74
76
  while node being inserted. Default: ``""`` .
@@ -83,7 +85,7 @@ class Node:
83
85
  TypeError: If `targets` is not `list`.
84
86
  TypeError: If the type of `targets` is not in `[ScopedValue, str]`.
85
87
  TypeError: If arg in `args` is not a `ScopedValue`.
86
- TypeError: If key of `kwarg` is not a str or value of kwarg in `kwargs` is not a `ScopedValue`.
88
+ TypeError: If key of `kwargs` is not a str or value of kwarg in `kwargs` is not a `ScopedValue`.
87
89
 
88
90
  Examples:
89
91
  >>> from mindspore.rewrite import SymbolTree, ScopedValue
@@ -125,9 +127,9 @@ class Node:
125
127
  source code.
126
128
  args (List[ScopedValue]): Indicate input names. Used as args of a call expression of an assign statement in
127
129
  source code. Default: ``None`` , which indicates the `function` has no args inputs.
128
- kwargs (Dict[str, ScopedValue]): Type of key must be `str` and type of value must be `ScopedValue`.
129
- Indicate keyword input names. Used as kwargs of a call expression of an assign statement in source
130
- code. Default: ``None`` , which indicates the `function` has no kwargs inputs.
130
+ kwargs (Dict[str, ScopedValue]): Used as kwargs of a call expression of an assign statement in source
131
+ code. Indicate keyword input names. Type of key must be `str` and type of value must be `ScopedValue`.
132
+ Default: ``None`` , which indicates the `function` has no kwargs inputs.
131
133
 
132
134
  Returns:
133
135
  An instance of `Node`.
@@ -137,7 +139,7 @@ class Node:
137
139
  TypeError: If `targets` is not `list`.
138
140
  TypeError: If the type of `targets` is not in `[ScopedValue, str]`.
139
141
  TypeError: If arg in `args` is not a `ScopedValue`.
140
- TypeError: If key of `kwarg` is not a str or value of kwarg in `kwargs` is not a `ScopedValue`.
142
+ TypeError: If key of `kwargs` is not a str or value of kwarg in `kwargs` is not a `ScopedValue`.
141
143
 
142
144
  Examples:
143
145
  >>> from mindspore.rewrite import SymbolTree, ScopedValue
@@ -476,14 +478,14 @@ class Node:
476
478
  ... self.relu = nn.ReLU()
477
479
  ...
478
480
  ... def construct(self, input):
479
- ... output = self.relu(x=input)
481
+ ... output = self.relu(input=input)
480
482
  ... return output
481
483
  >>>
482
484
  >>> net = ReLUNet()
483
485
  >>> stree = SymbolTree.create(net)
484
486
  >>> node = stree.get_node("relu")
485
487
  >>> print(node.get_kwargs())
486
- {'x': input}
488
+ {'input': input}
487
489
  """
488
490
  return self._node.get_kwargs()
489
491
 
@@ -74,7 +74,7 @@ class SymbolTree:
74
74
 
75
75
  - :class:`mindspore.nn.SequentialCell`
76
76
  - Functions(Excludes Python built-in functions and third-party library functions)
77
- - Control flow statements, such as `if` statements
77
+ - Control flow statements(such as `if` statements)
78
78
 
79
79
  Note:
80
80
  Because the specific execution branch of control flows are still unknown during the rewrite operation
@@ -331,8 +331,7 @@ class SymbolTree:
331
331
  Nodes in `new_nodes` will be inserted into SymbolTree sequentially, and then `old_node` will be deleted.
332
332
 
333
333
  Note:
334
- - Replace support one-to-one replacement or one-to-multi replacement. If you need multi-to-multi
335
- replacement, please refer to `PatternEngine`.
334
+ - Replace only support one-to-one replacement or one-to-multi replacement.
336
335
  - Caller should maintain the topological relationship between each node in the `new_nodes` , as well as
337
336
  the topological relationship between nodes in the `new_nodes` and nodes in the original tree.
338
337