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,139 @@
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
+ """Exporter for Ascend MSPROF data."""
16
+ import os
17
+ import glob
18
+ from collections import defaultdict
19
+ from typing import Dict, List, Optional
20
+
21
+ from mindspore import log as logger
22
+ from mindspore.profiler.common.path_manager import PathManager
23
+ from mindspore.profiler.common.file_manager import FileManager
24
+ from mindspore.profiler.common.msprof_cmd_tool import MsprofCmdTool
25
+
26
+
27
+ class AscendMsprofExporter:
28
+ """Exporter for Ascend MSPROF data."""
29
+
30
+ _DRV_VERSION = 467473
31
+ _DEFAULT_MODEL_ID = 4294967295
32
+ _STEP_TRACE_FILE_PATTERN = "step_trace_*.csv"
33
+ _STEP_TRACE_MODEL_ID_INDEX = 9
34
+ _STEP_TRACE_ITERATION_ID_INDEX = 1
35
+
36
+ def __init__(self, **kwargs):
37
+ """Initialize AscendMsprofExporter."""
38
+ self._msprof_profile_output_path = kwargs.get("msprof_profile_output_path")
39
+ self._msprof_profile_path = kwargs.get("msprof_profile_path")
40
+ self._step_list = kwargs.get("step_list")
41
+ self._export_type = kwargs.get("export_type")
42
+ self._msprof_tool = MsprofCmdTool(self._msprof_profile_path)
43
+
44
+ def export(self) -> None:
45
+ """Determine the export strategy and execute the appropriate export method."""
46
+ support_all_export = self._check_drv_version()
47
+ if self._step_list or not support_all_export:
48
+ self._single_export(self._step_list)
49
+ else:
50
+ self._all_export()
51
+ self._msprof_tool.run_ms_analyze_cmd(self._export_type)
52
+
53
+ def _single_export(self, step_list: Optional[List[int]]) -> None:
54
+ """Perform single export for each model and iteration.
55
+
56
+ Args:
57
+ step_list (Optional[List[int]]): iteration IDs.
58
+ """
59
+ if not step_list:
60
+ model_iteration_dict = self._generate_step_trace()
61
+ if not model_iteration_dict:
62
+ return
63
+ else:
64
+ model_iteration_dict = {self._DEFAULT_MODEL_ID: step_list}
65
+
66
+ for model_id, iter_list in model_iteration_dict.items():
67
+ self._msprof_tool.run_ms_py_export_cmd(model_id, iter_list, self._export_type)
68
+
69
+ def _all_export(self) -> None:
70
+ """Perform all-export for all data."""
71
+ self._msprof_tool.run_ms_export_cmd(self._export_type)
72
+
73
+ def _check_drv_version(self) -> bool:
74
+ """Check if the driver version supports all-export.
75
+
76
+ Returns:
77
+ bool: True if driver version supports all-export, False otherwise.
78
+ """
79
+ msprof_info = self._msprof_tool.get_msprof_info()
80
+ status = msprof_info.get("status", 1)
81
+ drv_version = (
82
+ msprof_info.get("data", {}).get("version_info", {}).get("drv_version", 0)
83
+ )
84
+
85
+ if status != 1 and drv_version and drv_version >= self._DRV_VERSION:
86
+ return True
87
+
88
+ logger.warning(
89
+ "Current driver package does not support all-export mode. "
90
+ "Using single export mode, which may affect performance. "
91
+ "Consider upgrading the driver package."
92
+ )
93
+ return False
94
+
95
+ def _generate_step_trace(self) -> Optional[Dict[int, List[int]]]:
96
+ """Generate step trace data.
97
+
98
+ Returns:
99
+ Optional[Dict[int, List[int]]]: Model IDs to iteration IDs mapping, or None if failed.
100
+ """
101
+ try:
102
+ # step1: run msprof command
103
+ self._msprof_tool.run_ms_export_cmd(self._export_type)
104
+ step_trace_file = glob.glob(
105
+ os.path.join(
106
+ self._msprof_profile_output_path, self._STEP_TRACE_FILE_PATTERN
107
+ )
108
+ )
109
+ if not step_trace_file:
110
+ logger.warning(
111
+ f"No step trace csv file found in {self._msprof_profile_output_path}."
112
+ )
113
+ return None
114
+ # step2: parse the step trace file to get model id and iteration id
115
+ model_iteration_dict = self._parse_step_trace_file(step_trace_file[0])
116
+ # step3: remove the unused files
117
+ PathManager.remove_path_safety(self._msprof_profile_output_path)
118
+ return model_iteration_dict
119
+
120
+ except RuntimeError as err:
121
+ logger.warning(f"Failed to get step trace data. Error: {str(err)}")
122
+ return None
123
+
124
+ def _parse_step_trace_file(self, file_path: str) -> Dict[int, List[int]]:
125
+ """Parse the step trace file to extract model and iteration information.
126
+
127
+ Args:
128
+ file_path (str): Path to the step trace file.
129
+
130
+ Returns:
131
+ Dict[int, List[int]]: Model IDs to iteration IDs mapping.
132
+ """
133
+ model_iteration_dict = defaultdict(list)
134
+ step_trace_data = FileManager.read_csv_file(file_path)
135
+ for row in step_trace_data:
136
+ model_id = int(row[self._STEP_TRACE_MODEL_ID_INDEX])
137
+ iteration_id = int(row[self._STEP_TRACE_ITERATION_ID_INDEX])
138
+ model_iteration_dict[model_id].append(iteration_id)
139
+ return model_iteration_dict
@@ -0,0 +1,90 @@
1
+ # Copyright 2020-2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Profiler command executor"""
16
+ import shlex
17
+ import subprocess
18
+ from typing import Union, Tuple
19
+
20
+ from mindspore import log as logger
21
+
22
+
23
+ class CommandExecutor:
24
+ """
25
+ Execute command in subprocess.
26
+ """
27
+ @staticmethod
28
+ def execute(
29
+ cmd: Union[str, list],
30
+ timeout: int = 10 * 60 * 60,
31
+ check: bool = True,
32
+ encoding: str = "utf-8",
33
+ ) -> Tuple[str, str, int]:
34
+ """
35
+ Execute a shell command with improved error handling and logging.
36
+
37
+ Args:
38
+ cmd (Union[str, list]): The command to execute, either as a string or list.
39
+ timeout (int): Maximum execution time in seconds. Defaults to 10 hours.
40
+ check (bool): If True, raise an exception for non-zero exit codes. Defaults to True.
41
+ encoding (str): Specify the encoding for output. Defaults to 'utf-8'.
42
+
43
+ Returns:
44
+ Tuple[str, str, int]: A tuple containing (stdout, stderr, return_code).
45
+
46
+ Raises:
47
+ RuntimeError: If any error occurs during command execution.
48
+ """
49
+ if isinstance(cmd, str):
50
+ cmd = shlex.split(cmd)
51
+
52
+ try:
53
+ result = subprocess.run(
54
+ cmd,
55
+ capture_output=True,
56
+ text=True,
57
+ timeout=timeout,
58
+ check=check,
59
+ shell=False,
60
+ encoding=encoding,
61
+ )
62
+ logger.info(
63
+ f"Command '{cmd}' executed successfully. Return code: {result.returncode}"
64
+ )
65
+ return result.stdout, result.stderr, result.returncode
66
+
67
+ except subprocess.TimeoutExpired as e:
68
+ error_msg = f"Command '{cmd}' timed out after {timeout} seconds"
69
+ logger.error(error_msg)
70
+ raise RuntimeError(error_msg) from e
71
+
72
+ except subprocess.CalledProcessError as e:
73
+ error_msg = (
74
+ f"Command '{cmd}' failed with return code {e.returncode}, "
75
+ f"Standard Error: {e.stderr}"
76
+ )
77
+ logger.error(error_msg)
78
+ raise RuntimeError(error_msg) from e
79
+
80
+ except (FileNotFoundError, PermissionError) as e:
81
+ error_msg = f"Error executing command '{cmd}': {str(e)}"
82
+ logger.error(error_msg)
83
+ raise RuntimeError(error_msg) from e
84
+
85
+ except Exception as e: # pylint: disable=broad-exception-caught
86
+ error_msg = (
87
+ f"Unexpected error occurred while executing command '{cmd}': {str(e)}"
88
+ )
89
+ logger.error(error_msg)
90
+ raise RuntimeError(error_msg) from e
@@ -18,12 +18,195 @@ from enum import Enum
18
18
 
19
19
  class DeviceTarget(Enum):
20
20
  """The device target enum."""
21
- CPU = 'cpu'
22
- GPU = 'gpu'
23
- ASCEND = 'ascend'
21
+
22
+ CPU = "CPU"
23
+ GPU = "GPU"
24
+ NPU = "Ascend"
24
25
 
25
26
 
26
27
  class ProfilerLevel(Enum):
28
+ """The profiler level enum."""
29
+
30
+ LevelNone = "LevelNone"
27
31
  Level0 = "Level0"
28
32
  Level1 = "Level1"
29
33
  Level2 = "Level2"
34
+
35
+
36
+ class ProfilerActivity(Enum):
37
+ """The profiler activity enum."""
38
+
39
+ NPU = "NPU"
40
+ GPU = "GPU"
41
+ CPU = "CPU"
42
+
43
+
44
+ class AicoreMetrics(Enum):
45
+ """The aicore metrics enum."""
46
+
47
+ PipeUtilization = "PipeUtilization"
48
+ ArithmeticUtilization = "ArithmeticUtilization"
49
+ Memory = "Memory"
50
+ MemoryL0 = "MemoryL0"
51
+ MemoryUB = "MemoryUB"
52
+ ResourceConflictRatio = "ResourceConflictRatio"
53
+ L2Cache = "L2Cache"
54
+ MemoryAccess = "MemoryAccess"
55
+ AiCoreNone = "None"
56
+
57
+
58
+ class OverlapAnalysisTidName(Enum):
59
+ """The overlap analysis tidName."""
60
+ COMPUTING = "Computing"
61
+ COMMUNICATION = "Communication"
62
+ COMMUNICATION_NOT_OVERLAP = "Communication(Not Overlapped)"
63
+ FREE = "Free"
64
+
65
+
66
+ class OpSummaryHeaders(Enum):
67
+ """The op summary headers."""
68
+ STEP_ID = "Step ID"
69
+ DEVICE_ID = "Device_id"
70
+ MODEL_NAME = "Model Name"
71
+ MODEL_ID = "Model ID"
72
+ TASK_ID = "Task ID"
73
+ STREAM_ID = "Stream ID"
74
+ OP_NAME = "Op Name"
75
+ OP_TYPE = "OP Type"
76
+ TASK_TYPE = "Task Type"
77
+ TASK_START_TIME = "Task Start Time(us)"
78
+ TASK_DURATION = "Task Duration(us)"
79
+ TASK_WAIT_TIME = "Task Wait Time(us)"
80
+ BLOCK_DIM = "Block Dim"
81
+ MIX_BLOCK_DIM = "Mix Block Dim"
82
+ HF32_ELIGIBLE = "HF32 Eligible"
83
+ INPUT_SHAPES = "Input Shapes"
84
+ INPUT_DATA_TYPES = "Input Data Types"
85
+ INPUT_FORMATS = "Input Formats"
86
+ OUTPUT_SHAPES = "Output Shapes"
87
+ OUTPUT_DATA_TYPES = "Output Data Types"
88
+ OUTPUT_FORMATS = "Output Formats"
89
+ CONTEXT_ID = "Context ID"
90
+
91
+
92
+ class EventConstant:
93
+ """Timeline event constant values"""
94
+
95
+ START_FLOW = "s"
96
+ END_FLOW = "f"
97
+ META_EVENT = 'M'
98
+ COMPLETE_EVENT = 'X'
99
+ INSTANT_EVENT = 'i'
100
+ COUNTER_EVENT = 'C'
101
+
102
+ PROCESS_NAME = "process_name"
103
+ PROCESS_LABEL = "process_labels"
104
+ PROCESS_SORT = "process_sort_index"
105
+ THREAD_NAME = "thread_name"
106
+ THREAD_SORT = "thread_sort_index"
107
+
108
+ CPU_LABEL = "CPU"
109
+ ASCEND_LABEL = "NPU"
110
+
111
+ HOST_TO_DEVICE_FLOW_CAT = "HostToDevice"
112
+ MINDSPORE_NPU_FLOW_CAT = "async_npu"
113
+ MINDSPORE_SELF_FLOW_CAT = "async_mindspore"
114
+ MSTX_FLOW_CAT = "MsTx"
115
+ MINDSPORE_SELF_FLOW_NAME = "mindspore_to_self"
116
+ MINDSPORE_NPU_FLOW_NAME = "mindspore_to_npu"
117
+ MSTX_FLOW_NAME = "mindspore_to_mstx"
118
+
119
+ MINDSPORE_PID = 1
120
+ CPU_OP_PID = 2
121
+ SCOPE_LAYER_PID = 3
122
+
123
+ MINDSPORE_SORT_IDX = 1
124
+ CPU_OP_SORT_IDX = 2
125
+ SCOPE_LAYER_SORT_IDX = 12
126
+
127
+ # field name
128
+ SEQUENCE_NUMBER = "Sequence number"
129
+ FORWARD_THREAD_ID = "Fwd thread id"
130
+ OP_NAME = "op_name"
131
+ INPUT_SHAPES = "Input Dims"
132
+ INPUT_DTYPES = "Input type"
133
+ CALL_STACK = "Call stack"
134
+ MODULE_HIERARCHY = "Module Hierarchy"
135
+ FLOPS = "flops"
136
+ NAME = "name"
137
+ CUSTOM_INFO = "custom_info"
138
+ TOP_SCOPE_NAMES = ('Default', 'Gradients', 'recompute_Default')
139
+ KERNEL_LAUNCH_KEYWORDS = ("KernelLaunch", "LaunchTask")
140
+ MSTX_KEYWORD = "Mstx"
141
+ STACK_EVENT_CAT = "python_function"
142
+
143
+ FLOW_OP = "flow"
144
+ INVALID_FLOW_ID = 18446744073709551615
145
+
146
+
147
+ class TimeConstant:
148
+ """Time constant values"""
149
+
150
+ NS_TO_US = 0.001
151
+ MS_TO_US = 1000
152
+
153
+
154
+ class FileConstant:
155
+ """File constant values"""
156
+
157
+ # tlv constant struct
158
+ FIX_SIZE_DATA = "fix_size_data"
159
+ CANN_FILE_REGEX = r"^PROF_\d+_\d+_[0-9a-zA-Z]+"
160
+ FRAMEWORK_DIR = "FRAMEWORK"
161
+
162
+
163
+ class ProfilerStepNameConstant:
164
+ """Profiler step name."""
165
+
166
+ PROFILER_STEP = "ProfilerStep#"
167
+
168
+
169
+ class TimelineLayerName(Enum):
170
+ """Timeline layer types."""
171
+ MINDSPORE = "MindSpore"
172
+ CPU_OP = "CPU OP"
173
+ MSTX = ["python", "python3"]
174
+ CANN = "CANN"
175
+ SCOPER_LAYER = "Scope Layer"
176
+ ASCEND_HARDWARE = "Ascend Hardware"
177
+ HCCL = "HCCL"
178
+ AI_CORE_FREQ = "AI Core Freq"
179
+ HBM = "HBM"
180
+ PCLE = "PCle"
181
+ HCCS = "HCCS"
182
+ LLC = "LLC"
183
+ NPU_MEM = "NPU MEM"
184
+ STARS_SOC_INFO = "Stars Soc Info"
185
+ STARS_Chip_Trans = "Stars Chip Trans"
186
+ ACC_PMU = "Acc PMU"
187
+ SIO = "SIO"
188
+ QOS = "QoS"
189
+ OVERLAP_ANALYSIS = "Overlap Analysis"
190
+
191
+
192
+ class AnalysisMode(Enum):
193
+ """analysis mode"""
194
+ SYNC_MODE = "sync"
195
+ ASYNC_MODE = "async"
196
+
197
+
198
+ class JitLevel:
199
+ """jit level"""
200
+ KBK_LEVEL = "O0"
201
+ KBK_DVM_LEVEL = "O1"
202
+ GRAPH_LEVEL = "O2"
203
+
204
+
205
+ class ExportType(Enum):
206
+ Db = "db"
207
+ Text = "text"
208
+
209
+
210
+ class CannLibName:
211
+ """CANN lib name"""
212
+ CANN_MSPTI = "libmspti.so"
@@ -0,0 +1,208 @@
1
+ # Copyright 2023 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Profiler file manager"""
16
+ import csv
17
+ import json
18
+ import os
19
+ import shutil
20
+ from typing import List, Dict, Optional, Tuple
21
+ import numpy as np
22
+
23
+ from mindspore import log as logger
24
+ from mindspore.profiler.common.path_manager import PathManager
25
+
26
+
27
+ class FileManager:
28
+ """Profiler file manager"""
29
+
30
+ MAX_PATH_LENGTH = 4096
31
+ MAX_FILE_NAME_LENGTH = 255
32
+ DATA_FILE_AUTHORITY = 0o640
33
+ DATA_DIR_AUTHORITY = 0o700
34
+ FLAGS = os.O_WRONLY | os.O_CREAT | os.O_TRUNC
35
+
36
+ @classmethod
37
+ def read_file_content(cls, path: str, mode: str = "r"):
38
+ """Read the content in the input file."""
39
+ PathManager.check_input_file_path(path)
40
+ PathManager.check_directory_path_readable(path)
41
+ try:
42
+ with open(path, mode) as file:
43
+ return file.read()
44
+ except Exception as err:
45
+ raise RuntimeError(f"Failed read file: {path}, error: {err}") from err
46
+
47
+ @classmethod
48
+ def read_json_file(cls, file_path: str) -> Optional[Dict]:
49
+ """Read json file and return dict data"""
50
+ PathManager.check_input_file_path(file_path)
51
+ PathManager.check_directory_path_readable(file_path)
52
+ try:
53
+ with open(file_path, "r", encoding="utf-8") as json_file:
54
+ data = json.load(json_file)
55
+ return data
56
+ except Exception as err:
57
+ raise RuntimeError(
58
+ f"Failed read json file: {file_path}, error: {err}"
59
+ ) from err
60
+
61
+ @classmethod
62
+ def create_json_file(
63
+ cls, output_file_path: str, json_data: List, indent: int = None
64
+ ) -> None:
65
+ """Create json file with least authority"""
66
+ PathManager.check_directory_path_writeable(os.path.dirname(output_file_path))
67
+ if not json_data:
68
+ logger.warning("Json data is empty, file path: %s", output_file_path)
69
+ return
70
+
71
+ try:
72
+ with os.fdopen(
73
+ os.open(output_file_path, cls.FLAGS, cls.DATA_FILE_AUTHORITY), "w"
74
+ ) as fp:
75
+ data = json.dumps(json_data, indent=indent, ensure_ascii=False)
76
+ fp.write(data)
77
+ except Exception as err:
78
+ raise RuntimeError(
79
+ f"Failed create json file: {output_file_path}, error: {err}"
80
+ ) from err
81
+
82
+ @classmethod
83
+ def read_csv_file(cls, file_path: str) -> list:
84
+ """Read csv file and return list"""
85
+ PathManager.check_input_file_path(file_path)
86
+ PathManager.check_directory_path_readable(file_path)
87
+ result_data = []
88
+ try:
89
+ with open(file_path, newline="", encoding="utf-8") as csv_file:
90
+ reader = csv.reader(csv_file)
91
+ for row in reader:
92
+ result_data.append(row)
93
+ return result_data
94
+ except Exception as err:
95
+ raise RuntimeError(f"Failed read csv file: {file_path}, error: {err}") from err
96
+
97
+ @classmethod
98
+ def read_csv_file_as_numpy(
99
+ cls, file_path: str, extern_headers: list = None
100
+ ) -> Tuple[np.ndarray, List[str]]:
101
+ """Read csv file and return numpy array"""
102
+ PathManager.check_input_file_path(file_path)
103
+ PathManager.check_directory_path_readable(file_path)
104
+ try:
105
+ with open(file_path, newline="", encoding="utf-8") as csv_file:
106
+ reader = csv.DictReader(csv_file, delimiter=",", quotechar='"')
107
+ headers = reader.fieldnames
108
+ if extern_headers:
109
+ headers = extern_headers + headers
110
+
111
+ csv_data = [
112
+ tuple([row.get(field) for field in headers]) for row in reader
113
+ ]
114
+ csv_data_np = np.array(
115
+ csv_data, dtype=np.dtype([(field, object) for field in headers])
116
+ )
117
+
118
+ return csv_data_np, headers
119
+ except Exception as err:
120
+ raise RuntimeError(f"Failed read csv file: {file_path}, error: {err}") from err
121
+
122
+ @classmethod
123
+ def create_csv_file(cls, file_path: str, data: list, headers: list = None) -> None:
124
+ """Create csv file and write the data"""
125
+ if not data:
126
+ logger.error(
127
+ "Create csv file failed, data is empty, file path: %s", file_path
128
+ )
129
+ return
130
+ PathManager.check_directory_path_writeable(os.path.dirname(file_path))
131
+ try:
132
+ with os.fdopen(
133
+ os.open(file_path, cls.FLAGS, cls.DATA_FILE_AUTHORITY), "w"
134
+ ) as fp:
135
+ writer = csv.writer(fp)
136
+ if headers:
137
+ writer.writerow(headers)
138
+ writer.writerows(data)
139
+ except Exception as err:
140
+ raise RuntimeError(
141
+ f"Failed create csv file: {file_path}, error: {err}"
142
+ ) from err
143
+
144
+ @classmethod
145
+ def combine_csv_file(
146
+ cls, source_file_list: list, target_file_path: str, header_map: dict = None
147
+ ):
148
+ """Merge multiple CSV files into one"""
149
+ headers, all_data = [], []
150
+ for source_file in source_file_list:
151
+ data = cls.read_csv_file(source_file)
152
+ if len(data) > 1:
153
+ headers = data[0]
154
+ all_data.extend(data[1:])
155
+ if all_data:
156
+ if isinstance(header_map, dict):
157
+ headers = [header_map.get(header, header) for header in headers]
158
+ FileManager.create_csv_file(target_file_path, all_data, headers)
159
+
160
+ @classmethod
161
+ def read_txt_file(cls, file_path: str) -> list:
162
+ """Read txt file and return list"""
163
+ PathManager.check_input_file_path(file_path)
164
+ PathManager.check_directory_path_readable(file_path)
165
+ result_data = []
166
+ try:
167
+ with open(file_path, "r", encoding="utf-8") as file:
168
+ for line in file.readlines():
169
+ result_data.append(line.strip())
170
+ except Exception as err:
171
+ raise RuntimeError(f"Failed read txt file: {file_path}, error: {err}") from err
172
+ return result_data
173
+
174
+ @classmethod
175
+ def copy_file(cls, src_path: str, dst_path: str):
176
+ """
177
+ Function Description:
178
+ copy file safety
179
+ Parameter:
180
+ src_path: file source path
181
+ dst_path: file destination path
182
+ Exception Description:
183
+ when src_path is link throw exception
184
+ """
185
+ if not os.path.exists(src_path):
186
+ logger.warning("The source file does not exist: %s", src_path)
187
+ return
188
+
189
+ PathManager.check_input_file_path(src_path)
190
+ src_dir = os.path.dirname(src_path)
191
+ PathManager.check_directory_path_readable(src_dir)
192
+ dst_dir = os.path.dirname(dst_path)
193
+ PathManager.check_directory_path_writeable(dst_dir)
194
+
195
+ try:
196
+ shutil.copy2(src_path, dst_path)
197
+ except (shutil.Error, IOError) as err:
198
+ msg = f"Failed to copy from '{src_path}' to '{dst_path}': {err}"
199
+ raise RuntimeError(msg) from err
200
+
201
+ @classmethod
202
+ def get_csv_file_list_by_start_name(cls, source_path: str, start_name: str):
203
+ """Get all the csv files that match the name"""
204
+ file_list = []
205
+ for file_name in os.listdir(source_path):
206
+ if file_name.startswith(start_name) and file_name.endswith(".csv"):
207
+ file_list.append(os.path.join(source_path, file_name))
208
+ return file_list