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
mindspore/pgodb140.dll CHANGED
Binary file
mindspore/pgort140.dll CHANGED
Binary file
@@ -16,13 +16,30 @@
16
16
  This module provides Python APIs to enable the profiling of MindSpore neural networks.
17
17
  Users can import the mindspore.profiler.Profiler, initialize the Profiler object to start profiling,
18
18
  and use Profiler.analyse() to stop profiling and analyse the results.
19
- Users can visualize the results using the MindInsight tool.
20
19
  Now, Profiler supports AICORE operator, AICPU operator, HostCPU operator, memory,
21
20
  correspondence, cluster, etc data analysis.
22
21
  """
23
- __all__ = ["Profiler", "EnvProfiler", "ProfilerLevel", "DynamicProfilerMonitor"]
22
+ __all__ = [
23
+ "tensorboard_trace_handler",
24
+ "schedule",
25
+ "Profiler",
26
+ "EnvProfiler",
27
+ "ProfilerLevel",
28
+ "ProfilerActivity",
29
+ "AicoreMetrics",
30
+ "ExportType",
31
+ "DynamicProfilerMonitor",
32
+ "mstx",
33
+ "_ExperimentalConfig",
34
+ "profile"
35
+ ]
24
36
 
25
- from mindspore.profiler.profiling import Profiler
26
- from mindspore.profiler.envprofiling import EnvProfiler
27
- from mindspore.profiler.profiling import ProfilerLevel
37
+ from mindspore.profiler.mstx import Mstx as mstx
38
+ from mindspore.profiler.profiler import Profiler
39
+ from mindspore.profiler.profiler import tensorboard_trace_handler
40
+ from mindspore.profiler.schedule import Schedule as schedule
41
+ from mindspore.profiler.envprofiler import EnvProfiler
42
+ from mindspore.profiler.common.constant import ProfilerLevel, ProfilerActivity, AicoreMetrics, ExportType
28
43
  from mindspore.profiler.dynamic_profiler import DynamicProfilerMonitor
44
+ from mindspore.profiler.experimental_config import _ExperimentalConfig
45
+ from mindspore.profiler.profiler import Profile as profile
File without changes
File without changes
@@ -0,0 +1,170 @@
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
+ """Parser for Ascend CANN profiling data."""
16
+ import os
17
+ import glob
18
+ from typing import Dict, Optional
19
+
20
+ import numpy as np
21
+
22
+ from mindspore import log as logger
23
+ from mindspore.profiler.analysis.parser.base_parser import BaseParser
24
+ from mindspore.profiler.common.file_manager import FileManager
25
+ from mindspore.profiler.common.path_manager import PathManager
26
+ from mindspore.profiler.common.constant import ProfilerLevel, ExportType
27
+ from mindspore.profiler.common.ascend_msprof_exporter import AscendMsprofExporter
28
+ from mindspore.profiler.common.log import ProfilerLogger
29
+
30
+
31
+ class AscendMsprofParser(BaseParser):
32
+ """Parser for MindSpore profiling data on Ascend platform."""
33
+
34
+ _MSPROF_TIMELINE_FILE_PATTERN = ["msprof_[0-9]*.json", "msprof_slice_*.json"]
35
+ _OP_SUMMARY_FILE_PATTERN = "op_summary_*.csv"
36
+ OVERSIZE_MB = 1024
37
+
38
+ def __init__(self, next_parser: Optional[BaseParser] = None, **kwargs):
39
+ """Initialize AscendMsprofParser."""
40
+ super().__init__(next_parser)
41
+ self._kwargs = kwargs
42
+ self._msprof_profile_output_path = self._kwargs.get(
43
+ "msprof_profile_output_path"
44
+ )
45
+ self._msprof_profile_host_path = self._kwargs.get(
46
+ "msprof_profile_host_path"
47
+ )
48
+ self._msprof_profile_device_path = self._kwargs.get(
49
+ "msprof_profile_device_path"
50
+ )
51
+ self._ascend_ms_dir = self._kwargs.get("ascend_ms_dir")
52
+ self._profiler_level = kwargs.get("profiler_level")
53
+ self._export_type = kwargs.get("export_type")
54
+ ProfilerLogger.init(self._ascend_ms_dir)
55
+ self._logger = ProfilerLogger.get_instance()
56
+ self.op_summary = None
57
+ self.op_summary_headers = None
58
+ self.msprof_timeline = []
59
+
60
+ def _parse(self, data=None) -> Dict:
61
+ """Parse profiling data and update the input dictionary.
62
+
63
+ Args:
64
+ data (Dict, optional): Input data dictionary. Defaults to None.
65
+
66
+ Returns:
67
+ Dict: Updated data with op_summary, headers and timeline information.
68
+ """
69
+ if data is None:
70
+ data = {}
71
+ self._check_msprof_data_size()
72
+ AscendMsprofExporter(**self._kwargs).export()
73
+ self._logger.info("AscendMsprofExporter export done.")
74
+ self._parse_op_summary()
75
+ self._logger.info("AscendMsprofParser parse op summary done.")
76
+ self._parse_msprof_timeline()
77
+ self._logger.info("AscendMsprofParser parse msprof timeline done.")
78
+ data.update(
79
+ {
80
+ "op_summary": self.op_summary,
81
+ "op_summary_headers": self.op_summary_headers,
82
+ "msprof_timeline": self.msprof_timeline,
83
+ }
84
+ )
85
+ return data
86
+
87
+ def _parse_op_summary(self):
88
+ """Parse operation summary data from CSV files.
89
+
90
+ Raises:
91
+ RuntimeError: If no op summary files are found or read file failed.
92
+ """
93
+ if (self._profiler_level == ProfilerLevel.LevelNone.value or
94
+ self._export_type == [ExportType.Db.value]):
95
+ return
96
+ file_path_list = glob.glob(
97
+ os.path.join(
98
+ self._msprof_profile_output_path, self._OP_SUMMARY_FILE_PATTERN
99
+ )
100
+ )
101
+ if not file_path_list:
102
+ logger.error(
103
+ f"Failed to find op_summary_*.csv in directory: {self._msprof_profile_output_path}"
104
+ )
105
+ return
106
+
107
+ for file_path in file_path_list:
108
+ csv_data_np, self.op_summary_headers = FileManager.read_csv_file_as_numpy(
109
+ file_path=file_path, extern_headers=["Step ID"]
110
+ )
111
+ if self.op_summary is None:
112
+ self.op_summary = csv_data_np
113
+ else:
114
+ self.op_summary = np.concatenate([self.op_summary, csv_data_np], axis=0)
115
+
116
+ def _parse_msprof_timeline(self) -> None:
117
+ """Parse msprof timeline data from JSON files.
118
+
119
+ Raises:
120
+ RuntimeError: If no msprof JSON files are found in the specified directory.
121
+ """
122
+ if self._export_type == [ExportType.Db.value]:
123
+ return
124
+ file_path_list = []
125
+ for pattern in self._MSPROF_TIMELINE_FILE_PATTERN:
126
+ file_path_list.extend(glob.glob(os.path.join(self._msprof_profile_output_path, pattern)))
127
+
128
+ if not file_path_list:
129
+ raise RuntimeError(
130
+ f"Failed to find msprof JSON files in directory: {self._msprof_profile_output_path}"
131
+ )
132
+ for file_path in file_path_list:
133
+ self._process_timeline_file(file_path)
134
+ if not self.msprof_timeline:
135
+ logger.error(
136
+ "Failed to collect msprof timeline data"
137
+ )
138
+
139
+ def _process_timeline_file(self, file_path: str) -> None:
140
+ """Process a single timeline JSON file.
141
+
142
+ Args:
143
+ file_path (str): Path to the JSON file to process.
144
+ """
145
+ try:
146
+ timeline_data = FileManager.read_json_file(file_path)
147
+ if timeline_data:
148
+ self.msprof_timeline.extend(timeline_data)
149
+ else:
150
+ logger.warning(
151
+ f"Msporf timeline data in {file_path} is empty."
152
+ )
153
+ except RuntimeError as err:
154
+ logger.error(
155
+ f"Failed to read file: {file_path}. Error: {str(err)}"
156
+ )
157
+
158
+ def _check_msprof_data_size(self) -> None:
159
+ """Check the size of profiling data."""
160
+ host_data_size = PathManager.get_directory_size(self._msprof_profile_host_path)
161
+ device_data_size = PathManager.get_directory_size(self._msprof_profile_device_path)
162
+ total_size = host_data_size + device_data_size
163
+
164
+ if total_size >= self.OVERSIZE_MB:
165
+ msg = (
166
+ f"The size of profiling data is too large: {total_size} MB, "
167
+ "which may spend a lot of time on analysing, you can consider "
168
+ "reducing the number of collection steps"
169
+ )
170
+ logger.warning(msg)
@@ -0,0 +1,158 @@
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
+ """Base parser"""
16
+ from typing import (
17
+ Any,
18
+ List,
19
+ Callable,
20
+ Optional,
21
+ )
22
+ from multiprocessing import Process
23
+ from mindspore import log as logger
24
+ from mindspore.profiler.common.log import ProfilerLogger
25
+
26
+
27
+ class BaseParser:
28
+ """
29
+ Base class for all parsers in the workflow.
30
+ """
31
+ EXEC_HOOK_TIMEOUT = 30 * 60
32
+
33
+ def __init__(self, next_parser: Optional["BaseParser"] = None):
34
+ """
35
+ Initialize the BaseParser.
36
+
37
+ Args:
38
+ next_parser (Optional[BaseParser]): The next parser in the chain.
39
+ """
40
+ self.next_parser: Optional["BaseParser"] = next_parser
41
+ self._post_hooks: List[Callable[[Any], None]] = []
42
+ self._logger = ProfilerLogger.get_instance()
43
+
44
+ def set_next(self, next_parser: "BaseParser") -> "BaseParser":
45
+ """
46
+ Set the next parser in the chain.
47
+
48
+ Args:
49
+ next_parser (BaseParser): The next parser to be set.
50
+
51
+ Returns:
52
+ BaseParser: The next parser that was set.
53
+ """
54
+ if not isinstance(next_parser, BaseParser):
55
+ raise ValueError(
56
+ f"next_parser {next_parser.__class__.__name__} must be a BaseParser"
57
+ )
58
+ self.next_parser = next_parser
59
+ return self
60
+
61
+ def parse(self, data: Any) -> Any:
62
+ """
63
+ Parse the input data and execute post-hooks.
64
+
65
+ Args:
66
+ data (Any): The input data to be parsed.
67
+
68
+ Returns:
69
+ Any: The parsed result.
70
+ """
71
+ try:
72
+ result = self._parse(data)
73
+ self._execute_post_hooks(result)
74
+ except Exception as e: # pylint: disable=W0703
75
+ logger.error("Parser [%s] error: %s", self.__class__.__name__, str(e))
76
+ self._logger.error("Parser [%s] error: %s", self.__class__.__name__, str(e), exc_info=True)
77
+ return data
78
+ return result
79
+
80
+ def register_post_hook(self, hook: Callable[[Any], None]) -> "BaseParser":
81
+ """
82
+ Register a post-hook to be executed after parsing.
83
+
84
+ Args:
85
+ hook (Callable[[Any], None]): The hook function to be registered.
86
+
87
+ Returns:
88
+ BaseParser: The current parser instance.
89
+
90
+ Raises:
91
+ ValueError: If the hook is not callable.
92
+ """
93
+ if callable(hook):
94
+ self._post_hooks.append(hook)
95
+ else:
96
+ raise ValueError("Hook must be callable")
97
+ return self
98
+
99
+ def _execute_post_hooks(self, res: Any) -> None:
100
+ """
101
+ Execute all registered post-hooks asynchronously.
102
+
103
+ Args:
104
+ res (Any): The result to be passed to the post-hooks.
105
+ """
106
+ if not self._post_hooks:
107
+ return
108
+
109
+ processes = []
110
+ for hook in self._post_hooks:
111
+ p = Process(target=hook, args=(res,))
112
+ p.start()
113
+ hook_class = hook.__self__.__class__.__name__ if hasattr(hook, '__self__') else 'Unknown'
114
+ hook_name = f"{hook_class}.{hook.__name__}"
115
+ processes.append((p, hook_name))
116
+ self._logger.info("Parser [%s] post hook [%s] start", self.__class__.__name__, hook_name)
117
+
118
+ for p, hook_name in processes:
119
+ try:
120
+ p.join(timeout=self.EXEC_HOOK_TIMEOUT)
121
+ if p.is_alive():
122
+ logger.error(
123
+ "Parser [%s] post hook [%s] timeout after %s seconds, terminating",
124
+ self.__class__.__name__, hook_name, self.EXEC_HOOK_TIMEOUT
125
+ )
126
+ p.terminate()
127
+ p.join()
128
+ else:
129
+ self._logger.info(
130
+ "Parser [%s] post hook [%s] completed",
131
+ self.__class__.__name__, hook_name
132
+ )
133
+ except Exception as e: # pylint: disable=W0703
134
+ self._logger.error(
135
+ "Parser [%s] post hook [%s] failed: %s",
136
+ self.__class__.__name__, hook_name, str(e), exc_info=True
137
+ )
138
+ if p.is_alive():
139
+ p.terminate()
140
+
141
+ def _parse(self, data: Any) -> Any:
142
+ """
143
+ Abstract method to be implemented by subclasses for parsing logic.
144
+
145
+ Args:
146
+ data (Any): The input data to be parsed.
147
+
148
+ Raises:
149
+ NotImplementedError: If not implemented by subclass.
150
+ """
151
+ raise NotImplementedError("Subclasses should implement this!")
152
+
153
+
154
+ class DummyParser(BaseParser):
155
+ """Dummy parser"""
156
+ def _parse(self, data: Any) -> Any:
157
+ """Dummy parse"""
158
+ return data
@@ -0,0 +1,45 @@
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
+ """Parser for analyzing the relationship between framework and CANN data."""
16
+ from typing import Dict, Any
17
+
18
+ from mindspore.profiler.analysis.parser.base_parser import BaseParser
19
+ from mindspore.profiler.analysis.parser.timeline_assembly_factory.ascend_timeline_assembler import (
20
+ AscendTimelineAssembler
21
+ )
22
+ from mindspore.profiler.common.log import ProfilerLogger
23
+
24
+
25
+ class FrameworkCannRelationParser(BaseParser):
26
+ """FrameworkCannRelationParser"""
27
+
28
+ def __init__(self, **kwargs):
29
+ """Initialize the AscendTraceAnalyser."""
30
+ super().__init__()
31
+ self.assembler = AscendTimelineAssembler(**kwargs)
32
+ self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
33
+ ProfilerLogger.init(kwargs.get("ascend_ms_dir"))
34
+ self._logger = ProfilerLogger.get_instance()
35
+
36
+ def _parse(self, data: Dict[str, Any]) -> Dict[str, Any]:
37
+ """Parse the relation of framework and cann data."""
38
+ self.assembler.assemble(data)
39
+ self._logger.info("FrameworkCannRelationParser assemble done")
40
+ trace_view_container = self.assembler.get_trace_view_container()
41
+ self._logger.info("FrameworkCannRelationParser get trace view container done")
42
+ data.update({
43
+ "trace_view_container": trace_view_container,
44
+ })
45
+ return data
@@ -0,0 +1,142 @@
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
+ """Parser for MindSpore framework profiling data."""
16
+ import os
17
+ import struct
18
+ from typing import List, Dict, Any, Optional
19
+
20
+ from mindspore import log as logger
21
+ from mindspore.profiler.common.tlv_decoder import TLVDecoder
22
+ from mindspore.profiler.common.file_manager import FileManager
23
+ from mindspore.profiler.common.constant import ProfilerActivity, FileConstant, DeviceTarget
24
+ from mindspore.profiler.analysis.parser.base_parser import BaseParser
25
+ from mindspore.profiler.analysis.parser.timeline_event.fwk_event import FwkFixSizeFormat, OpRangeStructField
26
+ from mindspore.profiler.common.log import ProfilerLogger
27
+
28
+
29
+ class FrameworkParser(BaseParser):
30
+ """Parser for MindSpore framework profiling data."""
31
+
32
+ _OP_RANGE_FILE_NAME = "mindspore.op_range"
33
+ _CPU_OP_TIMESTAMP_FILE_NAME = "cpu_op_execute_timestamp_{}.txt"
34
+
35
+ def __init__(self, next_parser: Optional[BaseParser] = None, **kwargs):
36
+ """Initialize FrameworkParser."""
37
+ super().__init__(next_parser)
38
+ self._rank_id = kwargs.get("rank_id")
39
+ self._activities = kwargs.get("activities")
40
+ self._step_list = kwargs.get("step_list")
41
+ self._framework_path = kwargs.get("framework_path")
42
+ self._device_target = kwargs.get("device_target")
43
+ self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
44
+ self._op_range_path = os.path.join(
45
+ self._framework_path,
46
+ self._OP_RANGE_FILE_NAME
47
+ )
48
+ self._cpu_op_path = os.path.join(
49
+ self._framework_path,
50
+ self._CPU_OP_TIMESTAMP_FILE_NAME.format(self._rank_id),
51
+ )
52
+ ProfilerLogger.init(self._ascend_ms_dir)
53
+ self._logger = ProfilerLogger.get_instance()
54
+
55
+ def _parse(self, data: Dict[str, Any]) -> Dict[str, Any]:
56
+ """Parse MindSpore framework profiling data.
57
+
58
+ Args:
59
+ data (Dict[str, Any]): Input data dictionary.
60
+
61
+ Returns:
62
+ Dict[str, Any]: Updated data with:
63
+ - mindspore_op_list: List of parsed operation events
64
+ - cpu_op_lines: List of CPU operation timestamp data
65
+ """
66
+ if ProfilerActivity.CPU.value not in self._activities:
67
+ return data
68
+ mindspore_op_list = self._parse_op_range_data()
69
+ self._logger.info("FrameworkParser parse op range done.")
70
+ cpu_op_lines = self._parse_cpu_op_data()
71
+ self._logger.info("FrameworkParser parse cpu op done.")
72
+ data.update(
73
+ {
74
+ "mindspore_op_list": mindspore_op_list,
75
+ "cpu_op_lines": cpu_op_lines,
76
+ }
77
+ )
78
+ return data
79
+
80
+ def _parse_op_range_data(self) -> List[Dict]:
81
+ """Read and decode MindSpore op_range data.
82
+
83
+ Returns:
84
+ List[Dict]: List of parsed MindSpore operation events.
85
+ """
86
+ if self._device_target == DeviceTarget.CPU.value:
87
+ return []
88
+
89
+ if not os.path.exists(self._op_range_path):
90
+ logger.error("Failed to find op_range data. Skipping parse host profiler data.")
91
+ return []
92
+
93
+ try:
94
+ op_range_bytes = FileManager.read_file_content(self._op_range_path, "rb")
95
+ op_range_list = TLVDecoder.decode(
96
+ op_range_bytes, FwkFixSizeFormat.OpRangeStruct, struct.calcsize(FwkFixSizeFormat.OpRangeStruct)
97
+ )
98
+ self._logger.info("FrameworkParser parse op range done, op_range_list length: %d", len(op_range_list))
99
+ if not op_range_list:
100
+ logger.error(
101
+ f"Failed to decode op_range data: empty result from file {self._op_range_path}"
102
+ )
103
+ return self._filter_op_range_list(op_range_list)
104
+ except RuntimeError as err:
105
+ logger.error(f"Failed to read file: {self._op_range_path}. Error: {str(err)}")
106
+ return []
107
+
108
+ def _filter_op_range_list(self, op_range_list: List[Dict]) -> List[Dict]:
109
+ """Filter op_range_list based on step_list.
110
+
111
+ Args:
112
+ op_range_list (List[Dict]): List of operation events to filter.
113
+
114
+ Returns:
115
+ List[Dict]: Filtered list of operation events.
116
+ """
117
+ if not self._step_list or not isinstance(self._step_list, list):
118
+ return op_range_list
119
+
120
+ first_step = min(
121
+ op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP.value]
122
+ for op in op_range_list
123
+ )
124
+ adjusted_step_list = [step - 1 + first_step for step in self._step_list]
125
+ return [
126
+ op for op in op_range_list
127
+ if op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP.value] in adjusted_step_list
128
+ ]
129
+
130
+ def _parse_cpu_op_data(self) -> List[str]:
131
+ """Parse CPU op timestamp data.
132
+
133
+ Returns:
134
+ List[str]: List of CPU operation timestamp data lines.
135
+ """
136
+ if not os.path.exists(self._cpu_op_path):
137
+ return []
138
+ try:
139
+ return FileManager.read_txt_file(self._cpu_op_path)
140
+ except RuntimeError as err:
141
+ logger.warning(f"Failed to read file: {self._cpu_op_path}. Error: {str(err)}")
142
+ return []