mindspore 2.4.10__cp310-cp310-win_amd64.whl → 2.6.0__cp310-cp310-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.cp310-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp310-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,250 @@
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
+ """Ascend kernel details viewer"""
16
+ import csv
17
+ import os
18
+ from decimal import Decimal
19
+
20
+ from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
21
+ from mindspore.profiler.common.constant import (
22
+ JitLevel,
23
+ ProfilerLevel,
24
+ OpSummaryHeaders,
25
+ ProfilerActivity
26
+ )
27
+ from mindspore.profiler.common.log import ProfilerLogger
28
+ from mindspore.profiler.common.path_manager import PathManager
29
+
30
+ from mindspore import log as logger
31
+
32
+
33
+ class AscendKernelDetailsViewer(BaseViewer):
34
+ """
35
+ Ascend kernel details viewer
36
+ """
37
+ KERNEL_DETAILS_FILE_NAME = "kernel_details.csv"
38
+ EXCLUDE_HEADERS = [OpSummaryHeaders.DEVICE_ID.value]
39
+ LEVEL0_EXCLUDE_HEADERS = [
40
+ OpSummaryHeaders.MIX_BLOCK_DIM.value,
41
+ OpSummaryHeaders.HF32_ELIGIBLE.value,
42
+ OpSummaryHeaders.INPUT_SHAPES.value,
43
+ OpSummaryHeaders.INPUT_DATA_TYPES.value,
44
+ OpSummaryHeaders.INPUT_FORMATS.value,
45
+ OpSummaryHeaders.OUTPUT_SHAPES.value,
46
+ OpSummaryHeaders.OUTPUT_DATA_TYPES.value,
47
+ OpSummaryHeaders.OUTPUT_FORMATS.value,
48
+ OpSummaryHeaders.CONTEXT_ID.value,
49
+ ]
50
+ RENAME_HEADERS = {
51
+ OpSummaryHeaders.OP_NAME.value: "Name",
52
+ OpSummaryHeaders.OP_TYPE.value: "Type",
53
+ OpSummaryHeaders.TASK_TYPE.value: "Accelerator Core",
54
+ OpSummaryHeaders.TASK_START_TIME.value: "Start Time(us)",
55
+ OpSummaryHeaders.TASK_DURATION.value: "Duration(us)",
56
+ OpSummaryHeaders.TASK_WAIT_TIME.value: "Wait Time(us)",
57
+ }
58
+
59
+ def __init__(self, **kwargs):
60
+ super().__init__()
61
+ self._save_path = os.path.join(
62
+ kwargs.get("ascend_profiler_output_path"),
63
+ self.KERNEL_DETAILS_FILE_NAME
64
+ )
65
+ self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
66
+ self._is_set_schedule = kwargs.get("is_set_schedule")
67
+ self._jit_level = kwargs.get("jit_level")
68
+ self._profiler_level = kwargs.get("profiler_level")
69
+ self._activities = kwargs.get("activities")
70
+ self.op_summary_headers = None
71
+ self.op_summary = None
72
+ self.trace_container = None
73
+ self.kernel_details_headers = None
74
+ ProfilerLogger.init(self._ascend_ms_dir)
75
+ self._logger = ProfilerLogger.get_instance()
76
+
77
+ def save(self, data):
78
+ """
79
+ Save kernel details to csv file.
80
+ """
81
+ self._logger.info("AscendKernelDetailsViewer start")
82
+ try:
83
+ if self._profiler_level == ProfilerLevel.LevelNone.value:
84
+ return
85
+ self._check_input_data(data)
86
+ self._update_kernel_name_and_step_id()
87
+ self._update_headers()
88
+ self._write_data()
89
+ self._logger.info("Kernel details saved done")
90
+ except Exception as e: # pylint: disable=W0703
91
+ self._logger.error("Failed to save kernel details: %s", str(e), exc_info=True)
92
+ self._logger.info("AscendKernelDetailsViewer end")
93
+
94
+ def _check_input_data(self, data):
95
+ """
96
+ Check input data.
97
+ """
98
+ self.trace_container = data.get("trace_view_container", None)
99
+ self.op_summary = data.get("op_summary", None)
100
+ self.op_summary_headers = data.get("op_summary_headers", None)
101
+
102
+ if self.op_summary is None or self.op_summary.size == 0:
103
+ raise ValueError("op summary is empty")
104
+
105
+ if self.trace_container is None:
106
+ raise ValueError("trace view container is None")
107
+
108
+ def _write_data(self):
109
+ """
110
+ Write data to csv file.
111
+ """
112
+ self._logger.info("Kernel details saved start")
113
+ PathManager.check_directory_path_writeable(os.path.dirname(self._save_path))
114
+ with open(self._save_path, "w", newline="", encoding="utf-8") as csvfile:
115
+ writer = csv.writer(csvfile)
116
+ writer.writerow(self.kernel_details_headers)
117
+ for row in self.op_summary:
118
+ writer.writerow([row[field] for field in self.op_summary_headers])
119
+ self._logger.info("Kernel details saved done")
120
+
121
+ def _update_headers(self):
122
+ """
123
+ Update kernel details headers.
124
+ """
125
+ # filter exclude headers
126
+ self.op_summary_headers = [
127
+ header
128
+ for header in self.op_summary_headers
129
+ if header not in self.EXCLUDE_HEADERS
130
+ ]
131
+
132
+ if self._profiler_level == ProfilerLevel.Level0.value:
133
+ self.op_summary_headers = [
134
+ header
135
+ for header in self.op_summary_headers
136
+ if header not in self.LEVEL0_EXCLUDE_HEADERS
137
+ ]
138
+
139
+ if (not self._is_set_schedule or self._jit_level == JitLevel.GRAPH_LEVEL or
140
+ not self.trace_container.get_step_id_time_dict()):
141
+ self.op_summary_headers.remove(OpSummaryHeaders.STEP_ID.value)
142
+
143
+ # rename headers
144
+ self.kernel_details_headers = [
145
+ self.RENAME_HEADERS.get(header, header)
146
+ for header in self.op_summary_headers
147
+ ]
148
+
149
+ def _update_kernel_name_and_step_id(self):
150
+ """
151
+ Update kernel op name to framework launch op name and step id.
152
+ """
153
+ self._logger.info("Update kernel name start")
154
+
155
+ dev_kernels = self.trace_container.hardware_op_event
156
+ step_id_to_time_dict = self.trace_container.get_step_id_time_dict()
157
+
158
+ # activities parameter NPU+CPU、CPU
159
+ if ProfilerActivity.CPU.value in self._activities:
160
+ self._update_kernel_detail_op_name_and_step_id(dev_kernels, step_id_to_time_dict)
161
+
162
+ def _update_kernel_detail_op_name_and_step_id(self, dev_kernels, step_id_to_time_dict):
163
+ """
164
+ Update op summary op name and step id in NPU+CPU、CPU scenes.
165
+ """
166
+ _generate_hardware_op_event_step_id(dev_kernels, step_id_to_time_dict)
167
+
168
+ if not dev_kernels and self._jit_level != JitLevel.GRAPH_LEVEL:
169
+ logger.warning(
170
+ "Cannot find the device kernels with MindSpore framework launch op, "
171
+ )
172
+ return
173
+
174
+ # build device kernel to framework launch op map
175
+ dev_kernel_to_fwk_op = {}
176
+ for _, per_tid_kernels in dev_kernels.items():
177
+ for kernel in per_tid_kernels:
178
+ dev_kernel_name = kernel.name
179
+ dev_kerel_ts = str(kernel.ts)
180
+ dev_kernel_to_fwk_op[(dev_kernel_name, dev_kerel_ts)] = kernel
181
+
182
+ launch_ops = [None] * len(self.op_summary)
183
+ step_ids = [None] * len(self.op_summary)
184
+ for index, summary in enumerate(self.op_summary):
185
+ dev_kernel_name = summary[OpSummaryHeaders.OP_NAME.value]
186
+ dev_kernel_ts = str(summary[OpSummaryHeaders.TASK_START_TIME.value]).strip("\t")
187
+ fwk_langch_op_name = None
188
+ step_id = None
189
+ if dev_kernel_to_fwk_op.get((dev_kernel_name, dev_kernel_ts)):
190
+ kernel = dev_kernel_to_fwk_op.get((dev_kernel_name, dev_kernel_ts))
191
+ if kernel.parent:
192
+ fwk_langch_op_name = kernel.parent.name
193
+ step_id = kernel.step_id
194
+
195
+ if step_id is None:
196
+ step_id = _get_step_id_by_ts(Decimal(dev_kernel_ts), step_id_to_time_dict)
197
+
198
+ if fwk_langch_op_name is None:
199
+ self._logger.warning(
200
+ "Can not find fwk launch op for dev kernel %s, ts %s",
201
+ dev_kernel_name,
202
+ dev_kernel_ts,
203
+ )
204
+ launch_ops[index] = dev_kernel_name
205
+ else:
206
+ launch_ops[index] = f"{fwk_langch_op_name}/{dev_kernel_name}"
207
+
208
+ if step_id is None and self._is_set_schedule and self._jit_level != JitLevel.GRAPH_LEVEL:
209
+ self._logger.warning(
210
+ "Can not find step id for dev kernel %s, ts %s",
211
+ dev_kernel_name,
212
+ dev_kernel_ts,
213
+ )
214
+ else:
215
+ step_ids[index] = step_id
216
+
217
+ # update op summary op name
218
+ self.op_summary[OpSummaryHeaders.OP_NAME.value] = launch_ops
219
+
220
+ # update op summary step id
221
+ if self._is_set_schedule and self._jit_level != JitLevel.GRAPH_LEVEL:
222
+ self.op_summary[OpSummaryHeaders.STEP_ID.value] = step_ids
223
+
224
+ self._logger.info("Update kernel name done")
225
+
226
+
227
+ def _generate_hardware_op_event_step_id(hardware_op_events_dict: dict, step_id_to_time_dict: dict):
228
+ """
229
+ Generate the hardware op event step id.
230
+ """
231
+ for hardware_op_events_list in hardware_op_events_dict.values():
232
+ # Associate each hardware operation event with its step ID
233
+ for hardware_op_event in hardware_op_events_list:
234
+ kernel_event = hardware_op_event.parent
235
+ if not kernel_event:
236
+ continue
237
+
238
+ hardware_op_event.step_id = _get_step_id_by_ts(kernel_event.ts, step_id_to_time_dict)
239
+
240
+
241
+ def _get_step_id_by_ts(ts: Decimal, step_events_dict: dict):
242
+ """
243
+ Retrieves the step ID for a given timestamp from the step events dictionary.
244
+ """
245
+ # Iterate through the step events dictionary to find the step ID for the given timestamp
246
+ for step_id, (st, et) in step_events_dict.items():
247
+ if st <= ts <= et:
248
+ return step_id
249
+
250
+ return None
@@ -0,0 +1,320 @@
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
+ """ascend memory viewer"""
16
+ import os
17
+ from decimal import Decimal
18
+
19
+ from mindspore.profiler.analysis.viewer.base_viewer import BaseViewer
20
+ from mindspore.profiler.common.file_manager import FileManager
21
+ from mindspore.profiler.common.log import ProfilerLogger
22
+ from mindspore.profiler.common.constant import ProfilerActivity
23
+
24
+
25
+ class MemoryRecordBean:
26
+ """Memory Record Struct"""
27
+
28
+ KB_TO_MB = 1000
29
+ HEADERS = [
30
+ "Component",
31
+ "Timestamp(us)",
32
+ "Total Allocated(KB)",
33
+ "Total Reserved(KB)",
34
+ "Total Active(KB)",
35
+ "Device Type",
36
+ ]
37
+
38
+ def __init__(self, data: list):
39
+ self._data = dict(zip(self.HEADERS, data))
40
+
41
+ @property
42
+ def row(self) -> list:
43
+ """
44
+ Get row data
45
+ """
46
+ return [
47
+ self.component,
48
+ self.time_us_str,
49
+ self.total_allocated_mb,
50
+ self.total_reserved_mb,
51
+ self.total_active_mb,
52
+ self.device_type,
53
+ ]
54
+
55
+ @property
56
+ def component(self) -> str:
57
+ """
58
+ Get component
59
+ """
60
+ return self._data.get("Component", "")
61
+
62
+ @property
63
+ def time_us_str(self) -> str:
64
+ """
65
+ Get time in us
66
+ """
67
+ ts_us = self._data.get("Timestamp(us)", 0)
68
+ return str(ts_us)
69
+
70
+ @property
71
+ def total_allocated_mb(self) -> float:
72
+ """
73
+ Get total allocated memory in MB
74
+ """
75
+ return float(self._data.get("Total Allocated(KB)", 0)) / self.KB_TO_MB
76
+
77
+ @property
78
+ def total_reserved_mb(self) -> float:
79
+ """
80
+ Get total reserved memory in MB
81
+ """
82
+ return float(self._data.get("Total Reserved(KB)", 0)) / self.KB_TO_MB
83
+
84
+ @property
85
+ def total_active_mb(self) -> float:
86
+ """
87
+ Get total active memory in MB
88
+ """
89
+ return float(self._data.get("Total Active(KB)", 0)) / self.KB_TO_MB
90
+
91
+ @property
92
+ def device_type(self) -> float:
93
+ """
94
+ Get device type
95
+ """
96
+ return self._data.get("Device Type", "")
97
+
98
+ @property
99
+ def total_allocated_kb(self) -> float:
100
+ """
101
+ Get total allocated memory in KB
102
+ """
103
+ return float(self._data.get("Total Allocated(KB)", 0))
104
+
105
+ @property
106
+ def total_reserved_kb(self) -> float:
107
+ """
108
+ Get total reserved memory in KB
109
+ """
110
+ return float(self._data.get("Total Reserved(KB)", 0))
111
+
112
+ @property
113
+ def total_active_kb(self) -> float:
114
+ """
115
+ Get total active memory in KB
116
+ """
117
+ return float(self._data.get("Total Active(KB)", 0))
118
+
119
+ @property
120
+ def time_us(self) -> Decimal:
121
+ """
122
+ Get time in us
123
+ """
124
+ return Decimal(self._data.get("Timestamp(us)", 0))
125
+
126
+ def is_ge_component(self):
127
+ """
128
+ Determine if it is GE
129
+ """
130
+ return self.component == "GE"
131
+
132
+
133
+ class AscendMemoryViewer(BaseViewer):
134
+ """
135
+ Ascend Memory Viewer
136
+
137
+ generate memory_record.csv and npu_module_mem.csv
138
+ """
139
+
140
+ GE_MEMORY_RECORD_HEADERS = [
141
+ "Device id",
142
+ "Component",
143
+ "Timestamp(us)",
144
+ "Total Allocated(KB)",
145
+ "Total Reserved(KB)",
146
+ "Device",
147
+ ]
148
+ MS_MEMORY_RECORD_HEADERS = [
149
+ "Timestamp(ns)",
150
+ "Total Allocated(Byte)",
151
+ "Total Reserved(Byte)",
152
+ "Total Active(Byte)",
153
+ ]
154
+ TARGET_MEMORY_RECORD_HEADERS = [
155
+ "Component",
156
+ "Timestamp(us)",
157
+ "Total Allocated(MB)",
158
+ "Total Reserved(MB)",
159
+ "Total Active(MB)",
160
+ "Device Type",
161
+ ]
162
+
163
+ def __init__(self, **kwargs):
164
+ super().__init__()
165
+ self._enable_profile_memory = kwargs.get("profile_memory", False)
166
+ self._rank_id = kwargs.get("rank_id", 0)
167
+ self._output_path = kwargs.get("ascend_profiler_output_path")
168
+ self._framework_path = kwargs.get("framework_path")
169
+ self._msprof_profiler_output_path = kwargs.get("msprof_profile_output_path")
170
+ self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
171
+ self._activities = kwargs.get("activities")
172
+ ProfilerLogger.init(self._ascend_ms_dir)
173
+ self._logger = ProfilerLogger.get_instance()
174
+ self._ge_memory_record = []
175
+ self._ms_memory_record = []
176
+
177
+ def save(self, data=None):
178
+ """
179
+ Save memory data
180
+ """
181
+ self._logger.info("AscendMemoryViewer start")
182
+ if not self._enable_profile_memory:
183
+ return
184
+ try:
185
+ self._copy_npu_module_mem_csv()
186
+ self._parse_memory_record()
187
+ except Exception as e: # pylint: disable=W0703
188
+ self._logger.error("Failed to save memory data: %s", e, exc_info=True)
189
+ self._logger.info("AscendMemoryViewer end")
190
+
191
+ def _copy_npu_module_mem_csv(self):
192
+ """Generate npu_module_mem.csv"""
193
+ npu_module_mem_file_list = FileManager.get_csv_file_list_by_start_name(
194
+ self._msprof_profiler_output_path, "npu_module_mem"
195
+ )
196
+ target_file_path = os.path.join(
197
+ self._output_path, "npu_module_mem.csv"
198
+ )
199
+ FileManager.combine_csv_file(npu_module_mem_file_list, target_file_path)
200
+ self._logger.info("npu_module_mem.csv saved to %s", target_file_path)
201
+
202
+ def _parse_memory_record(self):
203
+ """Generate memory_record.csv"""
204
+ self._parse_ge_memory_record()
205
+ self._parse_ms_memory_record()
206
+ combined_memory_data = self._combine_ge_ms_memory_record()
207
+ target_file_path = os.path.join(
208
+ self._output_path, "memory_record.csv"
209
+ )
210
+ FileManager.create_csv_file(
211
+ target_file_path, combined_memory_data, self.TARGET_MEMORY_RECORD_HEADERS
212
+ )
213
+ self._logger.info("memory_record.csv saved to %s", target_file_path)
214
+
215
+ def _parse_ge_memory_record(self):
216
+ """Parse ge memory record data"""
217
+ memory_record_file_list = FileManager.get_csv_file_list_by_start_name(
218
+ self._msprof_profiler_output_path, "memory_record"
219
+ )
220
+ for file in memory_record_file_list:
221
+ data = FileManager.read_csv_file(file)
222
+ if len(data) > 1:
223
+ self._ge_memory_record.extend(data[1:])
224
+
225
+ def _parse_ms_memory_record(self):
226
+ """Parse mindspore memory record data"""
227
+
228
+ # No frame work data is collected when no CPU is passed in activities
229
+ if ProfilerActivity.CPU.value not in self._activities:
230
+ return
231
+
232
+ memory_record_file = os.path.join(
233
+ self._framework_path,
234
+ f"cpu_ms_memory_record_{self._rank_id}.txt",
235
+ )
236
+ data = FileManager.read_csv_file(memory_record_file)
237
+ if len(data) > 1:
238
+ self._ms_memory_record.extend(data[1:])
239
+
240
+ def _get_app_reserved_memory(self) -> list:
241
+ """Get the reserved memory of the application from npu_mem.csv"""
242
+ npu_module_mem_file_list = FileManager.get_csv_file_list_by_start_name(
243
+ self._msprof_profiler_output_path, "npu_mem"
244
+ )
245
+ app_mems = []
246
+ for file in npu_module_mem_file_list:
247
+ md_mems = FileManager.read_csv_file(file)
248
+ for mem in md_mems:
249
+ if mem[1] == "APP":
250
+ app_mems.append(
251
+ MemoryRecordBean(
252
+ [
253
+ mem[1],
254
+ mem[-1].rstrip("\t"),
255
+ 0.0,
256
+ float(mem[4]),
257
+ 0.0,
258
+ f"NPU:{self._rank_id}",
259
+ ]
260
+ ).row
261
+ )
262
+ return app_mems
263
+
264
+ def _combine_ge_ms_memory_record(self) -> list:
265
+ """Combine ge and mindspore memory record data"""
266
+ memory_records = []
267
+ for ge_memory in self._ge_memory_record:
268
+ memory_record = dict(zip(self.GE_MEMORY_RECORD_HEADERS, ge_memory))
269
+ memory_records.append(
270
+ MemoryRecordBean(
271
+ [
272
+ memory_record.get("Component", "GE"),
273
+ memory_record.get("Timestamp(us)"),
274
+ memory_record.get("Total Allocated(KB)", 0),
275
+ memory_record.get("Total Reserved(KB)", 0),
276
+ 0,
277
+ memory_record.get("Device"),
278
+ ]
279
+ )
280
+ )
281
+ for ms_memory in self._ms_memory_record:
282
+ memory_record = dict(zip(self.MS_MEMORY_RECORD_HEADERS, ms_memory))
283
+ memory_records.append(
284
+ MemoryRecordBean(
285
+ [
286
+ "MindSpore",
287
+ Decimal(memory_record.get("Timestamp(ns)", 0)) / 1000,
288
+ float(memory_record.get("Total Allocated(Byte)", 0)) / 1024,
289
+ float(memory_record.get("Total Reserved(Byte)", 0)) / 1024,
290
+ float(memory_record.get("Total Active(Byte)", 0)) / 1024,
291
+ f"NPU:{self._rank_id}",
292
+ ]
293
+ )
294
+ )
295
+ memory_records.sort(key=lambda x: x.time_us)
296
+ last_ge_memory, last_ms_memory = MemoryRecordBean([0] * 6), MemoryRecordBean(
297
+ [0] * 6
298
+ )
299
+ result_data = []
300
+ for memory_record in memory_records:
301
+ result_data.append(memory_record.row)
302
+ last_memory = (
303
+ last_ms_memory if memory_record.is_ge_component() else last_ge_memory
304
+ )
305
+ combined_mem = MemoryRecordBean(
306
+ [
307
+ "MindSpore+GE",
308
+ memory_record.time_us,
309
+ memory_record.total_allocated_kb + last_memory.total_allocated_kb,
310
+ memory_record.total_reserved_kb + last_memory.total_reserved_kb,
311
+ memory_record.total_active_kb + last_memory.total_active_kb,
312
+ f"NPU:{self._rank_id}",
313
+ ]
314
+ )
315
+ result_data.append(combined_mem.row)
316
+ if memory_record.is_ge_component():
317
+ last_ge_memory = memory_record
318
+ else:
319
+ last_ms_memory = memory_record
320
+ return result_data + self._get_app_reserved_memory()