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,124 @@
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
+ """CPU platform profiler."""
16
+ import mindspore._c_expression as c_expression
17
+
18
+ from mindspore.profiler.common.registry import PROFILERS
19
+ from mindspore.profiler.common.constant import DeviceTarget, ProfilerActivity
20
+ from mindspore.profiler.common.util import print_msg_with_pid
21
+ from mindspore.profiler.common.profiler_context import ProfilerContext
22
+ from mindspore.profiler.common.profiler_path_manager import ProfilerPathManager
23
+ from mindspore.profiler.platform.base_profiler import BaseProfiler
24
+ from mindspore.profiler.analysis.time_converter import TimeConverter
25
+ from mindspore.profiler.analysis.task_manager import TaskManager
26
+ from mindspore.profiler.analysis.parser.ms_framework_parser import FrameworkParser
27
+ from mindspore.profiler.analysis.parser.framework_cann_relation_parser import FrameworkCannRelationParser
28
+ from mindspore.profiler.analysis.viewer.ms_dataset_viewer import MsDatasetViewer
29
+ from mindspore.profiler.analysis.viewer.ascend_timeline_viewer import AscendTimelineViewer
30
+ from mindspore.profiler.common.log import ProfilerLogger
31
+
32
+
33
+ @PROFILERS.register_module(DeviceTarget.CPU.value)
34
+ class CpuProfiler(BaseProfiler):
35
+ """
36
+ CPU platform profiler
37
+ """
38
+
39
+ def __init__(self) -> None:
40
+ super().__init__()
41
+ self._prof_ctx = ProfilerContext()
42
+ self._profiler = c_expression.Profiler.get_instance(DeviceTarget.CPU.value)
43
+ self._prof_path_mgr = ProfilerPathManager()
44
+ self._prof_mgr = c_expression.ProfilerManager.get_instance()
45
+ ProfilerLogger.init(self._prof_ctx.ascend_ms_dir)
46
+ self._logger = ProfilerLogger.get_instance()
47
+
48
+ def start(self) -> None:
49
+ """Start profiling."""
50
+ self._logger.info("CpuProfiler start.")
51
+ self._profiler.init(self._prof_ctx.framework_path)
52
+ self._logger.info("CpuProfiler framework_path: %s", self._prof_ctx.framework_path)
53
+ self._profiler.step_profiling_enable(True)
54
+
55
+ if ProfilerActivity.CPU in self._prof_ctx.activities:
56
+ self._profiler.enable_op_time()
57
+
58
+ if self._prof_ctx.profile_memory:
59
+ self._profiler.enable_profile_memory()
60
+
61
+ def stop(self) -> None:
62
+ """Stop profiling."""
63
+ self._logger.info("CpuProfiler stop.")
64
+ self._profiler.stop()
65
+
66
+ def analyse(self, **kwargs) -> None:
67
+ """Analyse profiling data."""
68
+ if ProfilerContext().device_target_set != {DeviceTarget.CPU.value}:
69
+ return
70
+ self._logger.info("CpuProfiler analyse.")
71
+ CPUProfilerAnalysis.online_analyse()
72
+
73
+ def finalize(self) -> None:
74
+ """Finalize profiling data."""
75
+ self._logger.info("CpuProfiler finalize.")
76
+
77
+
78
+ class CPUProfilerAnalysis:
79
+ """
80
+ CPU profiler analysis interface
81
+ """
82
+
83
+ @classmethod
84
+ def online_analyse(cls):
85
+ """
86
+ Online analysis for CPU
87
+ """
88
+ cls._pre_analyse_online()
89
+ cls._run_tasks(**ProfilerContext().to_dict())
90
+
91
+ @classmethod
92
+ def _pre_analyse_online(cls):
93
+ """
94
+ Pre-process for online analysis
95
+ """
96
+ ProfilerPathManager().create_output_path()
97
+ TimeConverter.init_parameters(freq=100.0, cntvct=0, localtime_diff=0)
98
+
99
+ @classmethod
100
+ def _run_tasks(cls, **kwargs) -> None:
101
+ """
102
+ Run tasks for online analysis
103
+ """
104
+ ascend_ms_dir = kwargs.get("ascend_ms_dir", "")
105
+ print_msg_with_pid(f"Start parsing profiling data: {ascend_ms_dir}")
106
+ task_mgr = cls._construct_task_mgr(**kwargs)
107
+ task_mgr.run()
108
+
109
+ @classmethod
110
+ def _construct_task_mgr(cls, **kwargs) -> TaskManager:
111
+ """
112
+ Construct task manager based on activities and parameters
113
+ """
114
+ task_mgr = TaskManager()
115
+
116
+ task_mgr.create_flow(
117
+ FrameworkParser(**kwargs)
118
+ .register_post_hook(MsDatasetViewer(**kwargs).save),
119
+ FrameworkCannRelationParser()
120
+ .register_post_hook(AscendTimelineViewer(**kwargs).save),
121
+ flow_name="cpu_flow", show_process=True
122
+ )
123
+
124
+ return task_mgr
@@ -0,0 +1,74 @@
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
+ """GPU platform profiler."""
16
+ import mindspore._c_dataengine as cde
17
+ import mindspore._c_expression as c_expression
18
+ from mindspore.profiler.common.registry import PROFILERS
19
+ from mindspore.profiler.common.constant import DeviceTarget, ProfilerActivity
20
+
21
+ from mindspore.profiler.common.profiler_context import ProfilerContext
22
+ from mindspore.profiler.platform.base_profiler import BaseProfiler
23
+ from mindspore.profiler.common.log import ProfilerLogger
24
+
25
+
26
+ @PROFILERS.register_module(DeviceTarget.GPU.value)
27
+ class GpuProfiler(BaseProfiler):
28
+ """
29
+ GPU platform profiler
30
+ """
31
+ def __init__(self) -> None:
32
+ super().__init__()
33
+ self._prof_ctx = ProfilerContext()
34
+ self._profiler = c_expression.Profiler.get_instance(DeviceTarget.GPU.value)
35
+ ProfilerLogger.init(self._prof_ctx.ascend_ms_dir)
36
+ self._logger = ProfilerLogger.get_instance()
37
+
38
+ self._profiler.init(self._prof_ctx.output_path)
39
+ self._profiler.sync_enable(self._prof_ctx.sync_enable)
40
+
41
+ if self._prof_ctx.data_process:
42
+ self._md_profiler = cde.GlobalContext.profiling_manager()
43
+ self._md_profiler.init()
44
+
45
+ def start(self) -> None:
46
+ """Start profiling."""
47
+ self._logger.info("GpuProfiler start.")
48
+
49
+ if self._prof_ctx.data_process:
50
+ self._profiler.data_process_enable(True)
51
+ self._md_profiler.start()
52
+
53
+ if ProfilerActivity.GPU in self._prof_ctx.activities:
54
+ self._profiler.enable_op_time()
55
+
56
+ if ProfilerActivity.CPU in self._prof_ctx.activities:
57
+ self._profiler.step_profiling_enable(True)
58
+
59
+ def stop(self) -> None:
60
+ """Stop profiling."""
61
+ self._logger.info("GpuProfiler stop.")
62
+ self._profiler.stop()
63
+
64
+ if self._prof_ctx.data_process:
65
+ self._md_profiler.stop()
66
+ self._md_profiler.save(self._prof_ctx.output_path)
67
+
68
+ def analyse(self, **kwargs) -> None:
69
+ """Analyse profiling data."""
70
+ self._logger.info("GpuProfiler analyse.")
71
+
72
+ def finalize(self) -> None:
73
+ """Finalize profiling data."""
74
+ self._logger.info("GpuProfiler finalize.")
@@ -0,0 +1,335 @@
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
+ """NPU platform profiler."""
16
+ import os
17
+ import glob
18
+ import json
19
+ from typing import List, Optional
20
+
21
+ from mindspore import context
22
+ from mindspore import log as logger
23
+ import mindspore._c_dataengine as cde
24
+ import mindspore._c_expression as c_expression
25
+
26
+ from mindspore.profiler.common.path_manager import PathManager
27
+ from mindspore.profiler.common.registry import PROFILERS
28
+ from mindspore.profiler.common.constant import (
29
+ DeviceTarget,
30
+ ProfilerActivity,
31
+ AnalysisMode,
32
+ ExportType,
33
+ )
34
+ from mindspore._c_expression import _framework_profiler_enable_mi, _framework_profiler_disable_mi
35
+ from mindspore.profiler.common.profiler_context import ProfilerContext
36
+ from mindspore.profiler.platform.base_profiler import BaseProfiler
37
+ from mindspore.profiler.common.profiler_path_manager import ProfilerPathManager
38
+ from mindspore.profiler.common.profiler_info import ProfilerInfo
39
+ from mindspore.profiler.common.process_pool import MultiProcessPool
40
+ from mindspore.profiler.analysis.task_manager import TaskManager
41
+ from mindspore.profiler.analysis.time_converter import TimeConverter
42
+ from mindspore.profiler.analysis.parser.ascend_cann_parser import AscendMsprofParser
43
+ from mindspore.profiler.analysis.parser.ms_framework_parser import FrameworkParser
44
+ from mindspore.profiler.analysis.parser.ms_minddata_parser import MindDataParser
45
+ from mindspore.profiler.analysis.parser.framework_cann_relation_parser import FrameworkCannRelationParser
46
+ from mindspore.profiler.analysis.viewer.ms_dataset_viewer import MsDatasetViewer
47
+ from mindspore.profiler.analysis.viewer.ascend_timeline_viewer import AscendTimelineViewer
48
+ from mindspore.profiler.analysis.viewer.ascend_kernel_details_viewer import AscendKernelDetailsViewer
49
+ from mindspore.profiler.analysis.viewer.ascend_step_trace_time_viewer import AscendStepTraceTimeViewer
50
+ from mindspore.profiler.analysis.viewer.ascend_communication_viewer import AscendCommunicationViewer
51
+ from mindspore.profiler.analysis.viewer.ascend_integrate_viewer import AscendIntegrateViewer
52
+ from mindspore.profiler.analysis.viewer.ascend_memory_viewer import AscendMemoryViewer
53
+ from mindspore.profiler.analysis.viewer.ascend_op_memory_viewer import AscendOpMemoryViewer
54
+ from mindspore.profiler.analysis.viewer.ms_minddata_viewer import (
55
+ MindDataPipelineRawViewer,
56
+ MindDataPiplineSummaryViewer,
57
+ )
58
+ from mindspore.profiler.common.util import print_msg_with_pid
59
+ from mindspore.profiler.common.log import ProfilerLogger
60
+ from mindspore.profiler.mstx import Mstx
61
+
62
+
63
+ @PROFILERS.register_module(DeviceTarget.NPU.value)
64
+ class NpuProfiler(BaseProfiler):
65
+ """
66
+ NPU platform profiler
67
+ """
68
+
69
+ def __init__(self) -> None:
70
+ super().__init__()
71
+ self._prof_ctx = ProfilerContext()
72
+ self._prof_info = ProfilerInfo()
73
+ self._prof_path_mgr = ProfilerPathManager()
74
+ ProfilerLogger.init(self._prof_ctx.ascend_ms_dir)
75
+ self._logger = ProfilerLogger.get_instance()
76
+
77
+ self._profiler = c_expression.Profiler.get_instance(DeviceTarget.NPU.value)
78
+ # initialize profiler backend
79
+ self._profiler.init(
80
+ self._prof_ctx.ascend_ms_dir,
81
+ int(self._prof_ctx.device_id),
82
+ json.dumps(self._prof_ctx.npu_profiler_params),
83
+ )
84
+ self._logger.info("NpuProfiler init profiler backend params %s",
85
+ json.dumps(self._prof_ctx.npu_profiler_params, indent=4))
86
+
87
+ # record original profiler params
88
+ self._prof_info.profiler_parameters = self._prof_ctx.original_params
89
+ self._prof_info.ms_profiler_info = {
90
+ "context_mode": context.get_context("mode"),
91
+ "rank_id": self._prof_ctx.rank_id,
92
+ "device_id": self._prof_ctx.device_id,
93
+ }
94
+
95
+ # initialize minddata profiler
96
+ if self._prof_ctx.data_process:
97
+ self._md_profiler = cde.GlobalContext.profiling_manager()
98
+ self._md_profiler.init()
99
+ self._logger.info("NpuProfiler init minddata profiler")
100
+
101
+ self._prof_mgr = c_expression.ProfilerManager.get_instance()
102
+
103
+ def start(self) -> None:
104
+ """Start profiling."""
105
+ self._logger.info("NpuProfiler start.")
106
+
107
+ Mstx.enable = self._prof_ctx.npu_profiler_params.get("mstx", False)
108
+
109
+ if ProfilerActivity.CPU in self._prof_ctx.activities:
110
+ _framework_profiler_enable_mi()
111
+ self._prof_mgr.set_profile_framework("time")
112
+ self._logger.info("NpuProfiler start enable framework")
113
+
114
+ if self._profiler:
115
+ self._profiler.start()
116
+
117
+ if self._prof_ctx.data_process:
118
+ self._md_profiler.start()
119
+ self._logger.info("NpuProfiler start minddata profiler")
120
+
121
+ def stop(self) -> None:
122
+ """Stop profiling."""
123
+ self._logger.info("NpuProfiler stop.")
124
+
125
+ Mstx.enable = False
126
+
127
+ if self._profiler:
128
+ self._profiler.stop()
129
+
130
+ if ProfilerActivity.CPU in self._prof_ctx.activities:
131
+ _framework_profiler_disable_mi()
132
+ self._prof_mgr.set_profile_framework("NULL")
133
+ self._logger.info("NpuProfiler stop disable framework")
134
+
135
+ if self._prof_ctx.data_process:
136
+ self._md_profiler.stop()
137
+ self._md_profiler.save(self._prof_ctx.framework_path)
138
+
139
+ self._prof_info.save(self._prof_ctx.ascend_ms_dir, self._prof_ctx.rank_id)
140
+
141
+ def analyse(self, **kwargs) -> None:
142
+ """Analyse the profiling data."""
143
+ self._logger.info("NpuProfiler analyse.")
144
+
145
+ NPUProfilerAnalysis.online_analyse()
146
+
147
+ def finalize(self) -> None:
148
+ """Finalize profiling data."""
149
+ self._logger.info("NpuProfiler finalize.")
150
+ if self._profiler:
151
+ self._profiler.finalize()
152
+
153
+
154
+ class NPUProfilerAnalysis:
155
+ """
156
+ NPU profiler analysis interface
157
+ """
158
+
159
+ @classmethod
160
+ def online_analyse(cls, async_mode: bool = False):
161
+ """
162
+ Online analysis for NPU
163
+ """
164
+ cls._pre_analyse_online()
165
+ if async_mode:
166
+ ProfilerContext().mode = AnalysisMode.ASYNC_MODE.value
167
+ MultiProcessPool().add_async_job(cls._run_tasks, **ProfilerContext().to_dict())
168
+ else:
169
+ ProfilerContext().mode = AnalysisMode.SYNC_MODE.value
170
+ cls._run_tasks(**ProfilerContext().to_dict())
171
+
172
+ @classmethod
173
+ def offline_analyse(
174
+ cls,
175
+ path: str,
176
+ pretty: bool,
177
+ step_list: Optional[List[int]],
178
+ data_simplification: bool,
179
+ ) -> None:
180
+ """Analyze profiling data in offline mode."""
181
+ ProfilerLogger.init(path)
182
+ cls._pre_analyse_offline(path, pretty, step_list, data_simplification)
183
+ cls._run_tasks(**ProfilerContext().to_dict())
184
+
185
+ @classmethod
186
+ def _pre_analyse_online(cls):
187
+ """
188
+ Pre-process for online analysis
189
+ """
190
+ prof_ctx = ProfilerContext()
191
+ if ProfilerActivity.NPU in prof_ctx.activities:
192
+ prof_dir = glob.glob(os.path.join(prof_ctx.ascend_ms_dir, "PROF_*"))
193
+ if not prof_dir:
194
+ logger.error(f"No PROF_* directory found in {prof_ctx.ascend_ms_dir}")
195
+ return
196
+
197
+ prof_ctx.msprof_profile_path = prof_dir[0]
198
+ ProfilerPathManager().clean_analysis_cache()
199
+ ProfilerPathManager().create_output_path()
200
+ ProfilerInfo().load_time_parameters(
201
+ prof_ctx.msprof_profile_path, prof_ctx.msprof_profile_host_path
202
+ )
203
+ TimeConverter.init_parameters(**ProfilerInfo().time_parameters)
204
+
205
+ elif prof_ctx.activities == [ProfilerActivity.CPU]:
206
+ ProfilerPathManager().create_output_path()
207
+ TimeConverter.init_parameters(freq=100.0, cntvct=0, localtime_diff=0)
208
+
209
+ @classmethod
210
+ def _pre_analyse_offline(
211
+ cls,
212
+ ascend_ms_dir: str,
213
+ pretty: bool,
214
+ step_list: Optional[List[int]],
215
+ data_simplification: bool,
216
+ ) -> None:
217
+ """Pre-process profiling data for offline analysis."""
218
+ prof_ctx = ProfilerContext()
219
+ prof_info = ProfilerInfo()
220
+ prof_info_file_path = PathManager.get_profiler_info_path(ascend_ms_dir)
221
+ prof_info.load_info(prof_info_file_path)
222
+ prof_ctx.device_id = prof_info.ms_profiler_info["device_id"]
223
+ prof_ctx.rank_id = prof_info.ms_profiler_info["rank_id"]
224
+ prof_ctx.set_params()
225
+ prof_ctx.load_offline_profiler_params(prof_info.profiler_parameters)
226
+ prof_ctx.jit_level = prof_info.jit_level
227
+ prof_ctx.context_mode = prof_info.context_mode
228
+
229
+ if ProfilerActivity.NPU in prof_ctx.activities:
230
+ prof_dir = glob.glob(os.path.join(ascend_ms_dir, "PROF_*"))
231
+ if not prof_dir:
232
+ logger.error(f"No PROF_* directory found in {ascend_ms_dir}")
233
+ return
234
+ prof_path_mgr = ProfilerPathManager()
235
+
236
+ # set PROF_XXX path
237
+ prof_ctx.ascend_ms_dir = ascend_ms_dir
238
+ prof_ctx.msprof_profile_path = prof_dir[0]
239
+ prof_info.load_time_parameters(
240
+ prof_ctx.msprof_profile_path, prof_ctx.msprof_profile_host_path
241
+ )
242
+ prof_ctx.pretty = pretty
243
+ prof_ctx.step_list = step_list
244
+ prof_ctx.data_simplification = data_simplification
245
+ prof_path_mgr.clean_analysis_cache()
246
+ prof_path_mgr.create_output_path()
247
+ TimeConverter.init_parameters(**prof_info.time_parameters)
248
+ elif [ProfilerActivity.CPU] == prof_ctx.activities:
249
+ prof_ctx.ascend_ms_dir = ascend_ms_dir
250
+ ProfilerPathManager().create_output_path()
251
+ TimeConverter.init_parameters(freq=100.0, cntvct=0, localtime_diff=0)
252
+
253
+ @classmethod
254
+ def _run_tasks(cls, **kwargs) -> None:
255
+ """
256
+ Run tasks for online analysis
257
+ """
258
+ ascend_ms_dir = kwargs.get("ascend_ms_dir", "")
259
+ print_msg_with_pid(f"Start parsing profiling data in {kwargs.get('mode')} mode at: {ascend_ms_dir}")
260
+ task_mgr = cls._construct_task_mgr(**kwargs)
261
+ task_mgr.run()
262
+ ProfilerLogger.get_instance().info(json.dumps(task_mgr.cost_time, indent=4))
263
+ activities = kwargs.get("activities")
264
+ if activities and ProfilerActivity.NPU.value in activities:
265
+ ProfilerPathManager().move_db_file()
266
+ if kwargs.get("data_simplification") and ProfilerActivity.NPU.value in kwargs.get("activities"):
267
+ ProfilerPathManager().simplify_data()
268
+
269
+ @classmethod
270
+ def _construct_task_mgr(cls, **kwargs) -> TaskManager:
271
+ """
272
+ Construct task manager based on activities and parameters
273
+ """
274
+ task_mgr = TaskManager()
275
+ activities = kwargs.get("activities", [])
276
+ export_type = kwargs.get("export_type", [])
277
+ enable_data_process = kwargs.get("data_process", False)
278
+
279
+ # CANN flow parser
280
+ cann_flow_parsers = []
281
+
282
+ if export_type == [ExportType.Db.value]:
283
+ cann_flow_parsers.append(
284
+ AscendMsprofParser(**kwargs)
285
+ )
286
+ task_mgr.create_flow(
287
+ *cann_flow_parsers, flow_name="cann_flow", show_process=True
288
+ )
289
+ return task_mgr
290
+
291
+ if ProfilerActivity.NPU.value in activities:
292
+ cann_flow_parsers.append(
293
+ AscendMsprofParser(**kwargs)
294
+ .register_post_hook(AscendMemoryViewer(**kwargs).save)
295
+ .register_post_hook(AscendOpMemoryViewer(**kwargs).save)
296
+ )
297
+
298
+ if ProfilerActivity.CPU.value in activities:
299
+ cann_flow_parsers.append(
300
+ FrameworkParser(**kwargs).register_post_hook(
301
+ MsDatasetViewer(**kwargs).save
302
+ )
303
+ )
304
+
305
+ if ProfilerActivity.NPU.value in activities:
306
+ cann_flow_parsers.append(
307
+ FrameworkCannRelationParser(**kwargs)
308
+ .register_post_hook(AscendTimelineViewer(**kwargs).save)
309
+ .register_post_hook(AscendKernelDetailsViewer(**kwargs).save)
310
+ .register_post_hook(AscendStepTraceTimeViewer(**kwargs).save)
311
+ .register_post_hook(AscendIntegrateViewer(**kwargs).save)
312
+ .register_post_hook(AscendCommunicationViewer(**kwargs).save)
313
+ )
314
+ elif ProfilerActivity.CPU.value in activities:
315
+ cann_flow_parsers.append(
316
+ FrameworkCannRelationParser().register_post_hook(
317
+ AscendTimelineViewer(**kwargs).save
318
+ )
319
+ )
320
+
321
+ task_mgr.create_flow(
322
+ *cann_flow_parsers, flow_name="cann_flow", show_process=True
323
+ )
324
+
325
+ # MindData flow parser
326
+ if enable_data_process:
327
+ task_mgr.create_flow(
328
+ MindDataParser(**kwargs)
329
+ .register_post_hook(MindDataPipelineRawViewer(**kwargs).save)
330
+ .register_post_hook(MindDataPiplineSummaryViewer(**kwargs).save),
331
+ flow_name="minddata_flow",
332
+ show_process=False,
333
+ )
334
+
335
+ return task_mgr