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
@@ -0,0 +1,163 @@
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
+ """EnvProfiler"""
16
+ import os
17
+ import json
18
+ from mindspore import log as logger
19
+ from mindspore.profiler.profiler import Profiler
20
+ from mindspore.profiler.common.constant import (
21
+ ProfilerLevel,
22
+ AicoreMetrics,
23
+ ProfilerActivity,
24
+ ExportType,
25
+ )
26
+ from mindspore.profiler.common.profiler_parameters import ProfilerParameters
27
+
28
+
29
+ class EnvProfiler:
30
+ """Collect and analyze training performance data, support calls during and after training."""
31
+
32
+ NOT_SUPPORTED_PARAMS = ["schedule", "on_trace_ready"]
33
+ profiler = None
34
+
35
+ @classmethod
36
+ def init_profiler(cls):
37
+ """
38
+ Initialize the profiler.
39
+ """
40
+ if not os.getenv("MS_PROFILER_OPTIONS"):
41
+ return
42
+ options = cls._load_options()
43
+ if not options:
44
+ logger.error("Failed to load MS_PROFILER_OPTIONS, json decode error.")
45
+ return
46
+
47
+ params = cls._convert_options_to_profiler_params(options)
48
+ logger.info(f"params: {params}")
49
+ if params["start_profile"]:
50
+ cls.profiler = Profiler(**params)
51
+ logger.info("Profiler init success.")
52
+
53
+ def analyse(self):
54
+ """
55
+ Analyze the collected data.
56
+ """
57
+ logger.info("analyse start")
58
+ if not self.profiler:
59
+ logger.info("Profiler is not initialized, skip analyse.")
60
+ return
61
+ self.profiler.analyse()
62
+ logger.info("analyse end")
63
+
64
+ @classmethod
65
+ def _load_options(cls):
66
+ """
67
+ Load the options from the environment variable.
68
+ """
69
+ try:
70
+ options = json.loads(os.environ.get("MS_PROFILER_OPTIONS", "{}"))
71
+ except json.JSONDecodeError:
72
+ return {}
73
+ return options
74
+
75
+ @classmethod
76
+ def _convert_option_to_enum_value(cls, enum_class, option_value, default_value):
77
+ """
78
+ Convert the option value to the enum value.
79
+ """
80
+ try:
81
+ return enum_class(option_value)
82
+ except ValueError:
83
+ logger.warning(
84
+ f"The value '{option_value}' of parameter '{enum_class.__name__}' is invalid, "
85
+ f"use default value '{default_value}' instead."
86
+ )
87
+ return default_value
88
+
89
+ @classmethod
90
+ def _convert_options_to_profiler_params(cls, options):
91
+ """
92
+ Convert the options to the profiler parameters.
93
+ """
94
+ params = {}
95
+ if not options:
96
+ logger.warning("MS_PROFILER_OPTIONS is empty, use default values.")
97
+ return params
98
+
99
+ if "output_path" in options:
100
+ params["output_path"] = options["output_path"]
101
+
102
+ # if start is not set, default is False
103
+ params["start_profile"] = options.get("start", False)
104
+
105
+ for param, (_, default_value) in ProfilerParameters.PARAMS.items():
106
+ if param in options and param not in cls.NOT_SUPPORTED_PARAMS:
107
+ if param == "activities" and isinstance(options[param], list):
108
+ params[param] = cls._convert_activities_to_list(
109
+ options[param], default_value
110
+ )
111
+ elif param == "aic_metrics":
112
+ params[param] = cls._convert_option_to_enum_value(
113
+ AicoreMetrics, options[param], default_value
114
+ )
115
+ elif param == "profiler_level":
116
+ params[param] = cls._convert_option_to_enum_value(
117
+ ProfilerLevel, options[param], default_value
118
+ )
119
+ elif param == "export_type":
120
+ params[param] = cls._convert_export_type_to_list(
121
+ options[param], default_value
122
+ )
123
+ else:
124
+ params[param] = options[param]
125
+ return params
126
+
127
+ @classmethod
128
+ def _convert_activities_to_list(cls, activities, default_value):
129
+ """
130
+ Convert the activities to the list.
131
+ """
132
+ res = []
133
+ for activity in activities:
134
+ res.append(
135
+ cls._convert_option_to_enum_value(
136
+ ProfilerActivity, activity, default_value
137
+ )
138
+ )
139
+ # remove duplicate
140
+ return list(set(default_value if default_value in res else res))
141
+
142
+ @classmethod
143
+ def _convert_export_type_to_list(cls, export_types, default_value) -> list:
144
+ """
145
+ Check the export type to the list.
146
+ """
147
+ res = []
148
+ for export_type in export_types:
149
+ if export_type != "text" and export_type != "db":
150
+ logger.warning(
151
+ f"The value '{export_type}' of parameter '{ExportType.__name__}' is invalid, "
152
+ f"use default value '{default_value}' instead."
153
+ )
154
+ return default_value
155
+ res.append(
156
+ cls._convert_option_to_enum_value(
157
+ ExportType, export_type, default_value
158
+ )
159
+ )
160
+ # remove duplicate
161
+ return list(set(res))
162
+
163
+ EnvProfiler.init_profiler()
@@ -0,0 +1,197 @@
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
+ """Experimental config file."""
16
+
17
+ from mindspore.profiler.common.constant import ProfilerLevel, AicoreMetrics
18
+
19
+ __all__ = ["_ExperimentalConfig"]
20
+
21
+
22
+ class _ExperimentalConfig:
23
+ r"""
24
+ The purpose of this class is to configure scalable parameters when using profiles for model
25
+ performance data acquisition.
26
+
27
+ Args:
28
+ profiler_level (ProfilerLevel, optional): (Ascend only) The level of profiling.
29
+ Default: ``ProfilerLevel.Level0``.
30
+
31
+ - ProfilerLevel.LevelNone: This setting takes effect only when mstx is enabled, indicating that no
32
+ operator data is collected on the device side.
33
+ - ProfilerLevel.Level0: Leanest level of profiling data collection, collects information about the elapsed
34
+ time of the computational operators on the NPU and communication large operator information.
35
+ - ProfilerLevel.Level1: Collect more CANN layer AscendCL data and AICore performance metrics and
36
+ communication mini operator information based on Level0.
37
+ - ProfilerLevel.Level2: Collect GE and Runtime information in CANN layer on top of Level1
38
+ aic_metrics (AicoreMetrics, optional): (Ascend only) Types of AICORE performance data collected,
39
+ when using this parameter, `activities` must include ``ProfilerActivity.NPU`` , and the value
40
+ must be a member of AicoreMetrics. When profiler_level is Level0, the default value is
41
+ ``AicoreMetrics.AiCoreNone``; Profiler_level is a Level1 or Level2 stores, the default value is:
42
+ ``AicoreMetrics. PipeUtilization``.The data items contained in each metric are as follows:
43
+
44
+ - AicoreMetrics.AiCoreNone: Does not collect AICORE data.
45
+ - AicoreMetrics.ArithmeticUtilization: ArithmeticUtilization contains mac_fp16/int8_ratio,
46
+ vec_fp32/fp16/int32_ratio, vec_misc_ratio etc.
47
+ - AicoreMetrics.PipeUtilization: PipeUtilization contains vec_ratio, mac_ratio, scalar_ratio,
48
+ mte1/mte2/mte3_ratio, icache_miss_rate etc.
49
+ - AicoreMetrics.Memory: Memory contains ub_read/write_bw, l1_read/write_bw, l2_read/write_bw,
50
+ main_mem_read/write_bw etc.
51
+ - AicoreMetrics.MemoryL0: MemoryL0 contains l0a_read/write_bw, l0b_read/write_bw, l0c_read/write_bw etc.
52
+ - AicoreMetrics.ResourceConflictRatio: ResourceConflictRatio contains vec_bankgroup/bank/resc_cflt_ratio
53
+ etc.
54
+ - AicoreMetrics.MemoryUB: MemoryUB contains ub_read/write_bw_mte, ub_read/write_bw_vector,
55
+ ub\_read/write_bw_scalar etc.
56
+ - AicoreMetrics.L2Cache: L2Cache contains write_cache_hit, write_cache_miss_allocate, r0_read_cache_hit,
57
+ r1_read_cache_hit etc. This function only supports Atlas A2 training series products.
58
+ - AicoreMetrics.MemoryAccess: Statistics on storage access bandwidth and storage capacity of main
59
+ storage and l2 cache etc.
60
+ l2_cache (bool, optional): (Ascend only) Whether to collect l2 cache data, collect when True.
61
+ Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder.In O2 mode,
62
+ only wait and skip_first parameters in schedule configuration can be set to 0.
63
+ mstx (bool, optional): (Ascend only) Whether to collect light weight profiling data, collect when True.
64
+ Default: ``False`` .
65
+ data_simplification (bool, optional): (Ascend only) Whether to remove FRAMEWORK data and other redundant data.
66
+ If set to True, only the profiler deliverables and raw performance data under the PROF_XXX directory are
67
+ kept to save space. Default value: ``True`` .
68
+ export_type (list, optional): (Ascend only) The data type to export.
69
+ The db and text formats can be exported at the same time. The default value is ``None``,
70
+ indicating that data of the text type is exported.
71
+
72
+ - ExportType.Text: Export text type data.
73
+ - ExportType.Db: Export db type data.
74
+
75
+ Raises:
76
+ RuntimeError: When the version of CANN does not match the version of MindSpore,
77
+ MindSpore cannot parse the generated ascend_job_id directory structure.
78
+
79
+ Supported Platforms:
80
+ ``Ascend`` ``GPU``
81
+
82
+ Examples:
83
+ >>> import numpy as np
84
+ >>> import mindspore
85
+ >>> from mindspore import nn, context
86
+ >>> import mindspore.dataset as ds
87
+ >>> from mindspore.profiler import ProfilerLevel, ProfilerActivity, AicoreMetrics, ExportType
88
+ >>>
89
+ >>> class Net(nn.Cell):
90
+ ... def __init__(self):
91
+ ... super(Net, self).__init__()
92
+ ... self.fc = nn.Dense(2,2)
93
+ ... def construct(self, x):
94
+ ... return self.fc(x)
95
+ >>>
96
+ >>> def generator():
97
+ ... for i in range(2):
98
+ ... yield np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32)
99
+ >>>
100
+ >>> def train(net):
101
+ ... optimizer = nn.Momentum(net.trainable_params(), 1, 0.9)
102
+ ... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
103
+ ... data = ds.GeneratorDataset(generator, ["data", "label"])
104
+ ... model = mindspore.train.Model(net, loss, optimizer)
105
+ ... model.train(1, data)
106
+ >>>
107
+ >>> if __name__ == '__main__':
108
+ ... # If the device_target is GPU, set the device_target to "GPU"
109
+ ... context.set_context(mode=mindspore.GRAPH_MODE)
110
+ ... mindspore.set_device("Ascend")
111
+ ...
112
+ ... # Init Profiler
113
+ ... experimental_config = mindspore.profiler._ExperimentalConfig(
114
+ ... profiler_level=ProfilerLevel.Level0,
115
+ ... aic_metrics=AicoreMetrics.AiCoreNone,
116
+ ... l2_cache=False,
117
+ ... mstx=False,
118
+ ... data_simplification=False,
119
+ ... export_type=[ExportType.Text])
120
+ ... steps = 10
121
+ ... net = Net()
122
+ ... # Note that the Profiler should be initialized before model.train
123
+ ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
124
+ ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
125
+ ... repeat=1, skip_first=2),
126
+ ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
127
+ ... profile_memory=False,
128
+ ... experimental_config=experimental_config) as prof:
129
+ ...
130
+ ... # Train Model
131
+ ... for step in range(steps):
132
+ ... train(net)
133
+ ... prof.step()
134
+ """
135
+
136
+ def __init__(self,
137
+ profiler_level: ProfilerLevel = ProfilerLevel.Level0,
138
+ aic_metrics: AicoreMetrics = AicoreMetrics.AiCoreNone,
139
+ l2_cache: bool = False,
140
+ mstx: bool = False,
141
+ data_simplification: bool = True,
142
+ export_type: list = None):
143
+ self._profiler_level = profiler_level
144
+ self._aic_metrics = aic_metrics
145
+ self._l2_cache = l2_cache
146
+ self._mstx = mstx
147
+ self._data_simplification = data_simplification
148
+ self._export_type = export_type
149
+
150
+ @property
151
+ def profiler_level(self) -> ProfilerLevel:
152
+ return self._profiler_level
153
+
154
+ @property
155
+ def aic_metrics(self) -> AicoreMetrics:
156
+ return self._aic_metrics
157
+
158
+ @property
159
+ def l2_cache(self) -> bool:
160
+ return self._l2_cache
161
+
162
+ @property
163
+ def mstx(self) -> bool:
164
+ return self._mstx
165
+
166
+ @property
167
+ def data_simplification(self) -> bool:
168
+ return self._data_simplification
169
+
170
+ @property
171
+ def export_type(self) -> list:
172
+ return self._export_type
173
+
174
+ # Setters
175
+ @profiler_level.setter
176
+ def profiler_level(self, value: ProfilerLevel):
177
+ self._profiler_level = value
178
+
179
+ @aic_metrics.setter
180
+ def aic_metrics(self, value: AicoreMetrics):
181
+ self._aic_metrics = value
182
+
183
+ @l2_cache.setter
184
+ def l2_cache(self, value: bool):
185
+ self._l2_cache = value
186
+
187
+ @mstx.setter
188
+ def mstx(self, value: bool):
189
+ self._mstx = value
190
+
191
+ @data_simplification.setter
192
+ def data_simplification(self, value: bool):
193
+ self._data_simplification = value
194
+
195
+ @export_type.setter
196
+ def export_type(self, value: list):
197
+ self._export_type = value
@@ -0,0 +1,242 @@
1
+ # Copyright 2020-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
+ """ Mstx class for NPU profiling """
16
+ import os
17
+ from os.path import basename
18
+ import mindspore
19
+ import mindspore._c_expression as c_expression
20
+
21
+ from mindspore import context
22
+ from mindspore import log as logging
23
+ from mindspore.runtime import Stream
24
+ from mindspore.profiler.common.constant import DeviceTarget, CannLibName
25
+ from mindspore.profiler.common.path_manager import PathManager
26
+
27
+
28
+ class Mstx:
29
+ """
30
+ Mstx class provides profiling tools for marking and tracing on NPU. This class provides three static methods: mark,
31
+ range_start and range_end for adding marker points and ranges in profiling.
32
+ """
33
+
34
+ NPU_PROFILER = c_expression.Profiler.get_instance(DeviceTarget.NPU.value)
35
+ enable = any(
36
+ basename(path) == CannLibName.CANN_MSPTI and PathManager.check_cann_lib_valid(path)
37
+ for path in os.environ.get("LD_PRELOAD", "").split(":")
38
+ if path.strip()
39
+ )
40
+
41
+ @staticmethod
42
+ def mark(message: str, stream: mindspore.runtime.Stream = None) -> None:
43
+ """Add a marker point in profiling.
44
+
45
+ Args:
46
+ message (str): Description for the marker.
47
+ stream (:class:`~.runtime.Stream`, optional): NPU stream for async execution, expected type:
48
+ mindspore.runtime.Stream. Default: ``None``, which means only marking on host side without
49
+ marking on device stream.
50
+
51
+ Examples:
52
+ >>> import numpy as np
53
+ >>> import mindspore as ms
54
+ >>> import mindspore
55
+ >>> from mindspore import nn
56
+ >>> import mindspore.dataset as ds
57
+ >>> from mindspore import Profiler
58
+ >>> from mindspore.profiler import ProfilerLevel, ProfilerActivity, schedule, tensorboard_trace_handler
59
+ >>> from mindspore.profiler import mstx
60
+ >>>
61
+ >>> class Net(nn.Cell):
62
+ ... def __init__(self):
63
+ ... super(Net, self).__init__()
64
+ ... self.fc = nn.Dense(2,2)
65
+ ... def construct(self, x):
66
+ ... return self.fc(x)
67
+ >>>
68
+ >>> def generator():
69
+ ... for i in range(2):
70
+ ... yield (np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32))
71
+ >>>
72
+ >>> def train(net):
73
+ ... stream = ms.runtime.current_stream()
74
+ ... optimizer = nn.Momentum(net.trainable_params(), 1, 0.9)
75
+ ... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
76
+ ... data = ds.GeneratorDataset(generator, ["data", "label"])
77
+ ... model = ms.train.Model(net, loss, optimizer)
78
+ ... # Add marker before training
79
+ ... mstx.mark("train start", stream)
80
+ ... model.train(1, data)
81
+ ... # Add marker after training
82
+ ... mstx.mark("train end", stream)
83
+ >>>
84
+ >>> if __name__ == '__main__':
85
+ ... # Note: mstx only supports Ascend device and cannot be used in mindspore.nn.Cell.construct
86
+ ... # when in mindspore.GRAPH_MODE
87
+ ... ms.set_context(mode=ms.PYNATIVE_MODE)
88
+ ... ms.set_device(device_target="Ascend", device_id=0)
89
+ ... # Init Profiler
90
+ ... experimental_config = mindspore.profiler._ExperimentalConfig(
91
+ ... profiler_level=ProfilerLevel.LevelNone,
92
+ ... mstx=True)
93
+ ... # Note that the Profiler should be initialized before model.train
94
+ ... with mindspore.profiler.profile(
95
+ ... activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
96
+ ... schedule=schedule(wait=0, warmup=0, active=3, repeat=1, skip_first=0),
97
+ ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
98
+ ... experimental_config=experimental_config
99
+ ... ) as profiler:
100
+ ... net = Net()
101
+ ... for i in range(5):
102
+ ... train(net)
103
+ ... profiler.step()
104
+ """
105
+ if not Mstx.enable:
106
+ return
107
+ if context.get_context('device_target') != DeviceTarget.NPU.value:
108
+ return
109
+ if not Mstx.NPU_PROFILER:
110
+ logging.warning("Invalid npu profiler for mstx, please check.")
111
+ return
112
+ if not message or not isinstance(message, str):
113
+ logging.warning("Invalid message for mstx.mark func. Please input valid message string.")
114
+ return
115
+ if stream:
116
+ if isinstance(stream, Stream):
117
+ device_stream = stream.device_stream()
118
+ Mstx.NPU_PROFILER.mstx_mark(message, device_stream)
119
+ else:
120
+ logging.warning(
121
+ f"Invalid stream for mstx.mark func. Expected mindspore.runtime.Stream but got {type(stream)}.",
122
+ )
123
+ else:
124
+ Mstx.NPU_PROFILER.mstx_mark(message)
125
+
126
+ @staticmethod
127
+ def range_start(message: str, stream: mindspore.runtime.Stream = None) -> int:
128
+ """Start a profiling range.
129
+
130
+ Args:
131
+ message (str): Description for the range.
132
+ stream (:class:`~.runtime.Stream`, optional): NPU stream for async execution, expected type:
133
+ mindspore.runtime.Stream. Default: ``None``, which means only starting mstx range on
134
+ host side without starting on device stream.
135
+
136
+ Returns:
137
+ int, range ID for range_end.
138
+
139
+ Examples:
140
+ >>> import numpy as np
141
+ >>> import mindspore as ms
142
+ >>> import mindspore
143
+ >>> from mindspore import nn
144
+ >>> import mindspore.dataset as ds
145
+ >>> from mindspore import Profiler
146
+ >>> from mindspore.profiler import ProfilerLevel, ProfilerActivity, schedule, tensorboard_trace_handler
147
+ >>> from mindspore.profiler import mstx
148
+ >>>
149
+ >>> class Net(nn.Cell):
150
+ ... def __init__(self):
151
+ ... super(Net, self).__init__()
152
+ ... self.fc = nn.Dense(2,2)
153
+ ... def construct(self, x):
154
+ ... return self.fc(x)
155
+ >>>
156
+ >>> def generator():
157
+ ... for i in range(2):
158
+ ... yield (np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32))
159
+ >>>
160
+ >>> def train(net):
161
+ ... stream = ms.runtime.current_stream()
162
+ ... optimizer = nn.Momentum(net.trainable_params(), 1, 0.9)
163
+ ... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
164
+ ... data = ds.GeneratorDataset(generator, ["data", "label"])
165
+ ... model = ms.train.Model(net, loss, optimizer)
166
+ ... # Start profiling range
167
+ ... range_id = mstx.range_start("training process", stream)
168
+ ... model.train(1, data)
169
+ ... # End profiling range
170
+ ... mstx.range_end(range_id)
171
+ >>>
172
+ >>> if __name__ == '__main__':
173
+ ... # Note: mstx only supports Ascend device and cannot be used in mindspore.nn.Cell.construct
174
+ ... # when in mindspore.GRAPH_MODE
175
+ ... ms.set_context(mode=ms.PYNATIVE_MODE)
176
+ ... ms.set_device(device_target="Ascend", device_id=0)
177
+ ... # Init Profiler
178
+ ... experimental_config = mindspore.profiler._ExperimentalConfig(
179
+ ... profiler_level=ProfilerLevel.LevelNone,
180
+ ... mstx=True)
181
+ ... # Note that the Profiler should be initialized before model.train
182
+ ... with mindspore.profiler.profile(
183
+ ... activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
184
+ ... schedule=schedule(wait=0, warmup=0, active=3, repeat=1, skip_first=0),
185
+ ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
186
+ ... experimental_config=experimental_config
187
+ ... ) as profiler:
188
+ ... net = Net()
189
+ ... for i in range(5):
190
+ ... train(net)
191
+ ... profiler.step()
192
+ """
193
+ if not Mstx.enable:
194
+ return 0
195
+ if context.get_context('device_target') != DeviceTarget.NPU.value:
196
+ return 0
197
+ if not Mstx.NPU_PROFILER:
198
+ logging.warning("Invalid npu profiler for mstx, please check.")
199
+ return 0
200
+ if not message or not isinstance(message, str):
201
+ logging.warning("Invalid message for mstx.range_start func. Please input valid message string.")
202
+ return 0
203
+ # pylint: disable=no-else-return
204
+ if stream:
205
+ if isinstance(stream, Stream):
206
+ device_stream = stream.device_stream()
207
+ return Mstx.NPU_PROFILER.mstx_range_start(message, device_stream)
208
+ else:
209
+ logging.warning(
210
+ f"Invalid stream for mstx.range_start func. "
211
+ f"Expected mindspore.runtime.Stream but got {type(stream)}.",
212
+ )
213
+ return 0
214
+ else:
215
+ return Mstx.NPU_PROFILER.mstx_range_start(message)
216
+
217
+ @staticmethod
218
+ def range_end(range_id: int) -> None:
219
+ """End a profiling range.
220
+
221
+ Args:
222
+ range_id (int): Range ID from range_start.
223
+
224
+ Examples:
225
+ >>> # Please refer to the example in range_start
226
+ >>> # range_id = mstx.range_start("training process", stream)
227
+ >>> # model.train(1, data)
228
+ >>> # mstx.range_end(range_id)
229
+ """
230
+ if not Mstx.enable or range_id == 0:
231
+ return
232
+ if context.get_context('device_target') != DeviceTarget.NPU.value:
233
+ return
234
+ if not Mstx.NPU_PROFILER:
235
+ logging.warning("Invalid npu profiler for mstx, please check.")
236
+ return
237
+ if not isinstance(range_id, int):
238
+ logging.warning(
239
+ "Invalid message for mstx.range_start func. Please input return value from mstx.range_start."
240
+ )
241
+ return
242
+ Mstx.NPU_PROFILER.mstx_range_end(range_id)
@@ -0,0 +1,21 @@
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
+ """Platform profiler"""
16
+ from .cpu_profiler import CpuProfiler
17
+ from .gpu_profiler import GpuProfiler
18
+ from .npu_profiler import NpuProfiler
19
+
20
+
21
+ __all__ = ["CpuProfiler", "GpuProfiler", "NpuProfiler"]
@@ -0,0 +1,40 @@
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
+ """Platform profiler interface."""
16
+ from abc import ABC, abstractmethod
17
+
18
+
19
+ class BaseProfiler(ABC):
20
+ """
21
+ BaseProfiler is the base class for all platform profilers.
22
+ """
23
+
24
+ @abstractmethod
25
+ def start(self):
26
+ """
27
+ Start profiling.
28
+ """
29
+
30
+ @abstractmethod
31
+ def stop(self):
32
+ """
33
+ Stop profiling.
34
+ """
35
+
36
+ @abstractmethod
37
+ def analyse(self, **kwargs):
38
+ """
39
+ Analyse profiling result.
40
+ """