mindspore 2.4.10__cp39-cp39-win_amd64.whl → 2.6.0__cp39-cp39-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mindspore might be problematic. Click here for more details.

Files changed (579) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +13 -6
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +3 -0
  7. mindspore/_checkparam.py +3 -38
  8. mindspore/_deprecated/__init__.py +17 -0
  9. mindspore/_deprecated/jit.py +198 -0
  10. mindspore/_extends/builtin_operations.py +1 -1
  11. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  12. mindspore/_extends/parse/__init__.py +6 -7
  13. mindspore/_extends/parse/compile_config.py +83 -0
  14. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +47 -198
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +229 -99
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +11 -5
  27. mindspore/avcodec-59.dll +0 -0
  28. mindspore/avdevice-59.dll +0 -0
  29. mindspore/avfilter-8.dll +0 -0
  30. mindspore/avformat-59.dll +0 -0
  31. mindspore/avutil-57.dll +0 -0
  32. mindspore/boost/__init__.py +2 -2
  33. mindspore/boost/base.py +3 -7
  34. mindspore/boost/boost_cell_wrapper.py +138 -43
  35. mindspore/common/__init__.py +6 -3
  36. mindspore/common/_grad_function.py +56 -0
  37. mindspore/common/_pijit_context.py +14 -5
  38. mindspore/common/_register_for_tensor.py +1 -2
  39. mindspore/common/_stub_tensor.py +30 -14
  40. mindspore/common/_tensor_cpp_method.py +17 -0
  41. mindspore/common/_tensor_docs.py +4760 -0
  42. mindspore/common/api.py +480 -372
  43. mindspore/common/auto_dynamic_shape.py +41 -44
  44. mindspore/common/dtype.py +39 -36
  45. mindspore/common/dump.py +9 -6
  46. mindspore/common/file_system.py +9 -1
  47. mindspore/common/generator.py +5 -0
  48. mindspore/common/hook_handle.py +6 -2
  49. mindspore/common/initializer.py +13 -10
  50. mindspore/common/jit_begin_end.py +94 -0
  51. mindspore/common/jit_config.py +6 -1
  52. mindspore/common/jit_context.py +76 -0
  53. mindspore/common/jit_trace.py +378 -0
  54. mindspore/common/lazy_inline.py +9 -3
  55. mindspore/common/mindir_util.py +10 -2
  56. mindspore/common/mutable.py +5 -4
  57. mindspore/common/parameter.py +135 -52
  58. mindspore/common/seed.py +2 -2
  59. mindspore/common/sparse_tensor.py +23 -17
  60. mindspore/common/tensor.py +975 -1981
  61. mindspore/communication/__init__.py +7 -5
  62. mindspore/communication/_comm_helper.py +52 -2
  63. mindspore/communication/comm_func.py +240 -181
  64. mindspore/communication/management.py +95 -26
  65. mindspore/context.py +324 -573
  66. mindspore/dataset/__init__.py +65 -37
  67. mindspore/dataset/audio/__init__.py +2 -8
  68. mindspore/dataset/audio/transforms.py +3 -17
  69. mindspore/dataset/callback/ds_callback.py +2 -1
  70. mindspore/dataset/core/config.py +87 -6
  71. mindspore/dataset/engine/cache_admin.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +6 -5
  73. mindspore/dataset/engine/datasets.py +292 -267
  74. mindspore/dataset/engine/datasets_audio.py +22 -8
  75. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  76. mindspore/dataset/engine/datasets_text.py +78 -48
  77. mindspore/dataset/engine/datasets_user_defined.py +183 -117
  78. mindspore/dataset/engine/datasets_vision.py +120 -44
  79. mindspore/dataset/engine/iterators.py +283 -63
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/obs/util.py +8 -0
  82. mindspore/dataset/engine/queue.py +40 -0
  83. mindspore/dataset/engine/samplers.py +289 -43
  84. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  85. mindspore/dataset/engine/validators.py +53 -11
  86. mindspore/dataset/text/__init__.py +7 -6
  87. mindspore/dataset/text/transforms.py +6 -5
  88. mindspore/dataset/text/utils.py +3 -3
  89. mindspore/dataset/transforms/__init__.py +0 -9
  90. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  91. mindspore/dataset/transforms/transforms.py +31 -14
  92. mindspore/dataset/utils/browse_dataset.py +1 -1
  93. mindspore/dataset/vision/__init__.py +2 -9
  94. mindspore/dataset/vision/transforms.py +202 -158
  95. mindspore/dataset/vision/utils.py +7 -5
  96. mindspore/dataset/vision/validators.py +1 -2
  97. mindspore/device_context/__init__.py +21 -0
  98. mindspore/device_context/ascend/__init__.py +25 -0
  99. mindspore/device_context/ascend/device.py +72 -0
  100. mindspore/device_context/ascend/op_debug.py +153 -0
  101. mindspore/device_context/ascend/op_precision.py +193 -0
  102. mindspore/device_context/ascend/op_tuning.py +123 -0
  103. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  104. mindspore/device_context/cpu/device.py +62 -0
  105. mindspore/device_context/cpu/op_tuning.py +43 -0
  106. mindspore/device_context/gpu/__init__.py +21 -0
  107. mindspore/device_context/gpu/device.py +70 -0
  108. mindspore/device_context/gpu/op_precision.py +67 -0
  109. mindspore/device_context/gpu/op_tuning.py +175 -0
  110. mindspore/device_manager.py +170 -0
  111. mindspore/dnnl.dll +0 -0
  112. mindspore/experimental/es/embedding_service.py +35 -27
  113. mindspore/experimental/llm_boost/__init__.py +1 -0
  114. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  115. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
  116. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  117. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  118. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  119. mindspore/experimental/llm_boost/register.py +1 -0
  120. mindspore/experimental/map_parameter.py +4 -4
  121. mindspore/experimental/optim/adadelta.py +6 -6
  122. mindspore/experimental/optim/adagrad.py +4 -4
  123. mindspore/experimental/optim/adam.py +7 -0
  124. mindspore/experimental/optim/adamax.py +4 -4
  125. mindspore/experimental/optim/adamw.py +4 -0
  126. mindspore/experimental/optim/asgd.py +1 -1
  127. mindspore/experimental/optim/lr_scheduler.py +73 -46
  128. mindspore/experimental/optim/radam.py +34 -31
  129. mindspore/experimental/optim/rprop.py +1 -1
  130. mindspore/experimental/optim/sgd.py +1 -1
  131. mindspore/hal/contiguous_tensors_handle.py +6 -10
  132. mindspore/hal/device.py +55 -53
  133. mindspore/hal/event.py +52 -52
  134. mindspore/hal/memory.py +179 -120
  135. mindspore/hal/stream.py +150 -109
  136. mindspore/include/api/context.h +0 -1
  137. mindspore/include/dataset/constants.h +7 -4
  138. mindspore/include/dataset/execute.h +2 -2
  139. mindspore/jpeg62.dll +0 -0
  140. mindspore/log.py +50 -0
  141. mindspore/mindrecord/__init__.py +21 -8
  142. mindspore/mindrecord/config.py +17 -316
  143. mindspore/mindrecord/filereader.py +1 -9
  144. mindspore/mindrecord/filewriter.py +5 -15
  145. mindspore/mindrecord/mindpage.py +1 -9
  146. mindspore/mindspore_backend_common.dll +0 -0
  147. mindspore/mindspore_backend_manager.dll +0 -0
  148. mindspore/mindspore_common.dll +0 -0
  149. mindspore/mindspore_core.dll +0 -0
  150. mindspore/mindspore_dump.dll +0 -0
  151. mindspore/mindspore_frontend.dll +0 -0
  152. mindspore/mindspore_glog.dll +0 -0
  153. mindspore/mindspore_memory_pool.dll +0 -0
  154. mindspore/mindspore_ms_backend.dll +0 -0
  155. mindspore/mindspore_ops.dll +0 -0
  156. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  157. mindspore/mindspore_ops_kernel_common.dll +0 -0
  158. mindspore/mindspore_profiler.dll +0 -0
  159. mindspore/mindspore_pyboost.dll +0 -0
  160. mindspore/mindspore_pynative.dll +0 -0
  161. mindspore/mindspore_res_manager.dll +0 -0
  162. mindspore/mindspore_runtime_pipeline.dll +0 -0
  163. mindspore/mint/__init__.py +798 -761
  164. mindspore/mint/distributed/__init__.py +70 -4
  165. mindspore/mint/distributed/distributed.py +2679 -44
  166. mindspore/mint/linalg/__init__.py +8 -0
  167. mindspore/mint/nn/__init__.py +743 -22
  168. mindspore/mint/nn/functional.py +716 -23
  169. mindspore/mint/nn/layer/__init__.py +21 -4
  170. mindspore/mint/nn/layer/_functions.py +334 -0
  171. mindspore/mint/nn/layer/activation.py +276 -1
  172. mindspore/mint/nn/layer/basic.py +123 -0
  173. mindspore/mint/nn/layer/conv.py +933 -0
  174. mindspore/mint/nn/layer/normalization.py +223 -28
  175. mindspore/mint/nn/layer/padding.py +797 -0
  176. mindspore/mint/nn/layer/pooling.py +235 -0
  177. mindspore/mint/optim/__init__.py +3 -1
  178. mindspore/mint/optim/adam.py +223 -0
  179. mindspore/mint/optim/adamw.py +26 -19
  180. mindspore/mint/optim/sgd.py +171 -0
  181. mindspore/mint/special/__init__.py +2 -1
  182. mindspore/multiprocessing/__init__.py +5 -0
  183. mindspore/nn/__init__.py +4 -1
  184. mindspore/nn/cell.py +1373 -192
  185. mindspore/nn/dynamic_lr.py +2 -1
  186. mindspore/nn/layer/activation.py +29 -27
  187. mindspore/nn/layer/basic.py +51 -35
  188. mindspore/nn/layer/channel_shuffle.py +3 -3
  189. mindspore/nn/layer/container.py +1 -1
  190. mindspore/nn/layer/conv.py +53 -42
  191. mindspore/nn/layer/embedding.py +12 -11
  192. mindspore/nn/layer/normalization.py +56 -49
  193. mindspore/nn/layer/padding.py +4 -3
  194. mindspore/nn/layer/pooling.py +120 -42
  195. mindspore/nn/layer/rnn_cells.py +1 -1
  196. mindspore/nn/layer/rnns.py +2 -1
  197. mindspore/nn/layer/timedistributed.py +5 -5
  198. mindspore/nn/layer/transformer.py +59 -36
  199. mindspore/nn/learning_rate_schedule.py +8 -4
  200. mindspore/nn/loss/loss.py +58 -55
  201. mindspore/nn/optim/ada_grad.py +7 -5
  202. mindspore/nn/optim/adadelta.py +11 -9
  203. mindspore/nn/optim/adafactor.py +1 -1
  204. mindspore/nn/optim/adam.py +19 -15
  205. mindspore/nn/optim/adamax.py +8 -7
  206. mindspore/nn/optim/adasum.py +5 -5
  207. mindspore/nn/optim/asgd.py +3 -1
  208. mindspore/nn/optim/ftrl.py +11 -9
  209. mindspore/nn/optim/lamb.py +1 -1
  210. mindspore/nn/optim/lars.py +1 -4
  211. mindspore/nn/optim/lazyadam.py +12 -10
  212. mindspore/nn/optim/momentum.py +7 -6
  213. mindspore/nn/optim/optimizer.py +3 -3
  214. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  215. mindspore/nn/optim/rmsprop.py +13 -12
  216. mindspore/nn/optim/rprop.py +11 -9
  217. mindspore/nn/optim/sgd.py +9 -6
  218. mindspore/nn/optim/tft_wrapper.py +5 -2
  219. mindspore/nn/optim/thor.py +2 -1
  220. mindspore/nn/probability/bijector/bijector.py +17 -11
  221. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  222. mindspore/nn/probability/bijector/invert.py +2 -2
  223. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  224. mindspore/nn/probability/bijector/softplus.py +3 -2
  225. mindspore/nn/probability/distribution/beta.py +3 -3
  226. mindspore/nn/probability/distribution/categorical.py +1 -1
  227. mindspore/nn/probability/distribution/cauchy.py +4 -2
  228. mindspore/nn/probability/distribution/exponential.py +6 -7
  229. mindspore/nn/probability/distribution/gamma.py +2 -2
  230. mindspore/nn/probability/distribution/gumbel.py +2 -2
  231. mindspore/nn/probability/distribution/half_normal.py +5 -3
  232. mindspore/nn/probability/distribution/logistic.py +5 -3
  233. mindspore/nn/probability/distribution/poisson.py +1 -1
  234. mindspore/nn/probability/distribution/uniform.py +5 -3
  235. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  236. mindspore/nn/reinforcement/tensor_array.py +1 -1
  237. mindspore/nn/utils/init.py +13 -11
  238. mindspore/nn/wrap/__init__.py +6 -6
  239. mindspore/nn/wrap/cell_wrapper.py +181 -122
  240. mindspore/nn/wrap/grad_reducer.py +45 -36
  241. mindspore/nn/wrap/loss_scale.py +6 -7
  242. mindspore/numpy/array_creations.py +63 -65
  243. mindspore/numpy/array_ops.py +149 -144
  244. mindspore/numpy/logic_ops.py +41 -42
  245. mindspore/numpy/math_ops.py +361 -359
  246. mindspore/numpy/utils.py +17 -18
  247. mindspore/numpy/utils_const.py +5 -6
  248. mindspore/opencv_core452.dll +0 -0
  249. mindspore/opencv_imgcodecs452.dll +0 -0
  250. mindspore/opencv_imgproc452.dll +0 -0
  251. mindspore/ops/__init__.py +5 -3
  252. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  253. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  254. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  255. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  256. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  257. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  258. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  259. mindspore/ops/_register_for_op.py +0 -11
  260. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  261. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  262. mindspore/ops/_vmap/vmap_array_ops.py +52 -25
  263. mindspore/ops/_vmap/vmap_base.py +0 -2
  264. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  265. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  266. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  267. mindspore/ops/auto_generate/__init__.py +4 -3
  268. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
  269. mindspore/ops/auto_generate/gen_extend_func.py +757 -185
  270. mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
  271. mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
  272. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  273. mindspore/ops/composite/__init__.py +2 -1
  274. mindspore/ops/composite/base.py +20 -25
  275. mindspore/ops/composite/math_ops.py +6 -16
  276. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  277. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  278. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  279. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  280. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  281. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  282. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  283. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  284. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  285. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  286. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  287. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  288. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  289. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  290. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  291. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  292. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  293. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  294. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  295. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  296. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  297. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  299. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  301. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  302. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  303. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  304. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  305. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  306. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  307. mindspore/ops/function/__init__.py +40 -2
  308. mindspore/ops/function/_add_attr_func.py +58 -0
  309. mindspore/ops/function/array_func.py +2089 -2403
  310. mindspore/ops/function/clip_func.py +80 -23
  311. mindspore/ops/function/debug_func.py +57 -57
  312. mindspore/ops/function/grad/__init__.py +1 -0
  313. mindspore/ops/function/grad/grad_func.py +104 -71
  314. mindspore/ops/function/image_func.py +2 -2
  315. mindspore/ops/function/linalg_func.py +47 -78
  316. mindspore/ops/function/math_func.py +4351 -3813
  317. mindspore/ops/function/nn_func.py +1712 -637
  318. mindspore/ops/function/other_func.py +159 -1
  319. mindspore/ops/function/parameter_func.py +18 -84
  320. mindspore/ops/function/random_func.py +452 -387
  321. mindspore/ops/function/reshard_func.py +4 -70
  322. mindspore/ops/function/sparse_func.py +3 -3
  323. mindspore/ops/function/sparse_unary_func.py +6 -6
  324. mindspore/ops/function/spectral_func.py +25 -58
  325. mindspore/ops/function/vmap_func.py +26 -18
  326. mindspore/ops/functional.py +23 -7
  327. mindspore/ops/functional_overload.py +1548 -0
  328. mindspore/ops/op_info_register.py +32 -244
  329. mindspore/ops/operations/__init__.py +23 -15
  330. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  331. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  332. mindspore/ops/operations/_grad_ops.py +2 -43
  333. mindspore/ops/operations/_infer_ops.py +2 -1
  334. mindspore/ops/operations/_inner_ops.py +43 -84
  335. mindspore/ops/operations/_ms_kernel.py +4 -10
  336. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  337. mindspore/ops/operations/_scalar_ops.py +3 -2
  338. mindspore/ops/operations/_sequence_ops.py +1 -1
  339. mindspore/ops/operations/_tensor_array.py +1 -1
  340. mindspore/ops/operations/array_ops.py +81 -324
  341. mindspore/ops/operations/comm_ops.py +154 -108
  342. mindspore/ops/operations/custom_ops.py +298 -87
  343. mindspore/ops/operations/debug_ops.py +157 -59
  344. mindspore/ops/operations/inner_ops.py +7 -5
  345. mindspore/ops/operations/linalg_ops.py +1 -57
  346. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  347. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  348. mindspore/ops/operations/math_ops.py +32 -234
  349. mindspore/ops/operations/nn_ops.py +212 -531
  350. mindspore/ops/operations/other_ops.py +62 -9
  351. mindspore/ops/operations/random_ops.py +13 -7
  352. mindspore/ops/operations/reshard_ops.py +1 -1
  353. mindspore/ops/operations/sparse_ops.py +2 -2
  354. mindspore/ops/primitive.py +66 -53
  355. mindspore/ops/tensor_method.py +1895 -0
  356. mindspore/ops_generate/__init__.py +0 -5
  357. mindspore/ops_generate/aclnn/__init__.py +0 -0
  358. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  359. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  360. mindspore/ops_generate/api/__init__.py +0 -0
  361. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  362. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  363. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  364. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  365. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  366. mindspore/ops_generate/api/gen_api.py +103 -0
  367. mindspore/ops_generate/api/op_api_proto.py +235 -0
  368. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  369. mindspore/ops_generate/common/__init__.py +0 -0
  370. mindspore/ops_generate/common/base_generator.py +11 -0
  371. mindspore/ops_generate/common/gen_constants.py +91 -0
  372. mindspore/ops_generate/common/gen_utils.py +348 -0
  373. mindspore/ops_generate/common/op_proto.py +473 -0
  374. mindspore/ops_generate/common/template.py +523 -0
  375. mindspore/ops_generate/gen_ops.py +22 -1069
  376. mindspore/ops_generate/op_def/__init__.py +0 -0
  377. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  378. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  379. mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
  380. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  381. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  382. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  383. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  384. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  385. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  386. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  387. mindspore/ops_generate/pyboost/__init__.py +0 -0
  388. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  389. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  390. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  391. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  392. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  393. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  394. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  395. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  396. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  397. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  398. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  399. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  400. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  401. mindspore/ops_generate/resources/__init__.py +0 -0
  402. mindspore/ops_generate/resources/resource_list.py +30 -0
  403. mindspore/ops_generate/resources/resource_loader.py +36 -0
  404. mindspore/ops_generate/resources/resource_manager.py +64 -0
  405. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  406. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  407. mindspore/parallel/__init__.py +7 -3
  408. mindspore/parallel/_auto_parallel_context.py +159 -40
  409. mindspore/parallel/_cell_wrapper.py +132 -15
  410. mindspore/parallel/_parallel_serialization.py +107 -5
  411. mindspore/parallel/_ps_context.py +1 -1
  412. mindspore/parallel/_recovery_context.py +7 -2
  413. mindspore/parallel/_tensor.py +142 -18
  414. mindspore/parallel/_utils.py +199 -23
  415. mindspore/parallel/algo_parameter_config.py +4 -4
  416. mindspore/parallel/auto_parallel.py +732 -0
  417. mindspore/parallel/checkpoint_convert.py +159 -0
  418. mindspore/parallel/checkpoint_transform.py +700 -35
  419. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  420. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  421. mindspore/parallel/cluster/run.py +21 -4
  422. mindspore/parallel/function/__init__.py +24 -0
  423. mindspore/parallel/function/reshard_func.py +258 -0
  424. mindspore/parallel/nn/__init__.py +25 -0
  425. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  426. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  427. mindspore/parallel/parameter_broadcast.py +25 -14
  428. mindspore/parallel/shard.py +137 -59
  429. mindspore/parallel/transform_safetensors.py +364 -305
  430. mindspore/profiler/__init__.py +22 -5
  431. mindspore/profiler/analysis/__init__.py +0 -0
  432. mindspore/profiler/analysis/parser/__init__.py +0 -0
  433. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  434. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  435. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  436. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  437. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  438. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  439. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  440. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  441. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
  442. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  443. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  444. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  445. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  446. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  447. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  448. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  449. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  450. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  451. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  452. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  453. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  454. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  455. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  456. mindspore/profiler/analysis/task_manager.py +131 -0
  457. mindspore/profiler/analysis/time_converter.py +84 -0
  458. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  459. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  460. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  461. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  462. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  463. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  464. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  465. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  466. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  467. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  468. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  469. mindspore/profiler/analysis/work_flow.py +73 -0
  470. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  471. mindspore/profiler/common/command_executor.py +90 -0
  472. mindspore/profiler/common/constant.py +186 -3
  473. mindspore/profiler/common/file_manager.py +208 -0
  474. mindspore/profiler/common/log.py +130 -0
  475. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  476. mindspore/profiler/common/path_manager.py +395 -0
  477. mindspore/profiler/common/process_bar.py +168 -0
  478. mindspore/profiler/common/process_pool.py +9 -3
  479. mindspore/profiler/common/profiler_context.py +500 -0
  480. mindspore/profiler/common/profiler_info.py +304 -0
  481. mindspore/profiler/common/profiler_meta_data.py +74 -0
  482. mindspore/profiler/common/profiler_output_path.py +284 -0
  483. mindspore/profiler/common/profiler_parameters.py +251 -0
  484. mindspore/profiler/common/profiler_path_manager.py +179 -0
  485. mindspore/profiler/common/record_function.py +76 -0
  486. mindspore/profiler/common/tlv_decoder.py +76 -0
  487. mindspore/profiler/common/util.py +75 -2
  488. mindspore/profiler/dynamic_profiler.py +341 -75
  489. mindspore/profiler/envprofiler.py +163 -0
  490. mindspore/profiler/experimental_config.py +197 -0
  491. mindspore/profiler/mstx.py +242 -0
  492. mindspore/profiler/platform/__init__.py +21 -0
  493. mindspore/profiler/platform/base_profiler.py +40 -0
  494. mindspore/profiler/platform/cpu_profiler.py +124 -0
  495. mindspore/profiler/platform/gpu_profiler.py +74 -0
  496. mindspore/profiler/platform/npu_profiler.py +335 -0
  497. mindspore/profiler/profiler.py +1073 -90
  498. mindspore/profiler/profiler_action_controller.py +187 -0
  499. mindspore/profiler/profiler_interface.py +118 -0
  500. mindspore/profiler/schedule.py +243 -0
  501. mindspore/rewrite/api/node.py +15 -13
  502. mindspore/rewrite/api/symbol_tree.py +2 -3
  503. mindspore/run_check/_check_version.py +27 -20
  504. mindspore/run_check/run_check.py +1 -1
  505. mindspore/runtime/__init__.py +37 -0
  506. mindspore/runtime/device.py +27 -0
  507. mindspore/runtime/event.py +209 -0
  508. mindspore/runtime/executor.py +177 -0
  509. mindspore/runtime/memory.py +416 -0
  510. mindspore/runtime/stream.py +460 -0
  511. mindspore/runtime/thread_bind_core.py +401 -0
  512. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  513. mindspore/swresample-4.dll +0 -0
  514. mindspore/swscale-6.dll +0 -0
  515. mindspore/tinyxml2.dll +0 -0
  516. mindspore/train/__init__.py +8 -8
  517. mindspore/train/_utils.py +96 -27
  518. mindspore/train/amp.py +9 -5
  519. mindspore/train/callback/__init__.py +2 -2
  520. mindspore/train/callback/_callback.py +2 -16
  521. mindspore/train/callback/_checkpoint.py +53 -55
  522. mindspore/train/callback/_cluster_monitor.py +14 -18
  523. mindspore/train/callback/_early_stop.py +1 -1
  524. mindspore/train/callback/_flops_collector.py +103 -68
  525. mindspore/train/callback/_history.py +8 -5
  526. mindspore/train/callback/_lambda_callback.py +2 -2
  527. mindspore/train/callback/_landscape.py +0 -3
  528. mindspore/train/callback/_loss_monitor.py +2 -1
  529. mindspore/train/callback/_on_request_exit.py +6 -5
  530. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  531. mindspore/train/callback/_summary_collector.py +52 -19
  532. mindspore/train/callback/_time_monitor.py +2 -1
  533. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
  534. mindspore/train/data_sink.py +25 -2
  535. mindspore/train/dataset_helper.py +15 -16
  536. mindspore/train/loss_scale_manager.py +8 -7
  537. mindspore/train/metrics/accuracy.py +3 -3
  538. mindspore/train/metrics/confusion_matrix.py +9 -9
  539. mindspore/train/metrics/error.py +3 -3
  540. mindspore/train/metrics/hausdorff_distance.py +4 -4
  541. mindspore/train/metrics/mean_surface_distance.py +3 -3
  542. mindspore/train/metrics/metric.py +0 -12
  543. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  544. mindspore/train/metrics/precision.py +11 -10
  545. mindspore/train/metrics/recall.py +9 -9
  546. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  547. mindspore/train/mind_ir_pb2.py +174 -46
  548. mindspore/train/model.py +269 -136
  549. mindspore/train/serialization.py +622 -978
  550. mindspore/train/summary/_summary_adapter.py +2 -2
  551. mindspore/train/summary/summary_record.py +2 -3
  552. mindspore/train/train_thor/model_thor.py +1 -1
  553. mindspore/turbojpeg.dll +0 -0
  554. mindspore/utils/__init__.py +6 -3
  555. mindspore/utils/dryrun.py +140 -0
  556. mindspore/utils/hooks.py +81 -0
  557. mindspore/utils/runtime_execution_order_check.py +552 -0
  558. mindspore/utils/utils.py +138 -4
  559. mindspore/version.py +1 -1
  560. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
  561. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +564 -395
  562. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
  563. mindspore/_install_custom.py +0 -43
  564. mindspore/common/_register_for_adapter.py +0 -74
  565. mindspore/common/_tensor_overload.py +0 -139
  566. mindspore/mindspore_np_dtype.dll +0 -0
  567. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  568. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  569. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  570. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  571. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  572. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  573. mindspore/ops_generate/gen_utils.py +0 -209
  574. mindspore/ops_generate/op_proto.py +0 -145
  575. mindspore/ops_generate/template.py +0 -261
  576. mindspore/profiler/envprofiling.py +0 -254
  577. mindspore/profiler/profiling.py +0 -1926
  578. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  579. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,304 @@
1
+ # Copyright 2022-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 Info"""
16
+ import os
17
+ from typing import Dict, Any
18
+ from configparser import ConfigParser, NoSectionError, NoOptionError
19
+
20
+ from mindspore import log as logger
21
+ from mindspore.version import __version__ as ms_version
22
+ from mindspore.profiler.common.util import get_cann_version
23
+ from mindspore.profiler.common.singleton import Singleton
24
+ from mindspore.profiler.common.file_manager import FileManager
25
+ from mindspore.profiler.common.path_manager import PathManager
26
+ from mindspore.profiler.common.msprof_cmd_tool import MsprofCmdTool
27
+
28
+
29
+ @Singleton
30
+ class ProfilerInfo:
31
+ """
32
+ Profiler Info
33
+ This class is used to record profiler information.
34
+
35
+ Example:
36
+ {
37
+ "profiler_parameters": {
38
+ },
39
+ "ms_profiler_info": {
40
+ "start_collect_syscnt": xxx,
41
+ "start_collect_clock_time": xxx,
42
+ },
43
+ "cann_profiler_info": {
44
+ },
45
+ "ms_version": "x.x.x",
46
+ "cann_version": x.x.x",
47
+ }
48
+ """
49
+ HOST_START_LOG = "host_start.log"
50
+ START_INFO = "start_info"
51
+ MSPROF_INFO_SCRIPT_PATH = os.path.join(
52
+ "tools",
53
+ "profiler",
54
+ "profiler_tool",
55
+ "analysis",
56
+ "interface",
57
+ "get_msprof_info.py",
58
+ )
59
+
60
+ PROFILER_INFO_FILE = "profiler_info_{}.json"
61
+ PROFILER_PARAMETERS = "profiler_parameters"
62
+ MS_PROFILER_INFO = "ms_profiler_info"
63
+ CANN_PROFILER_INFO = "cann_profiler_info"
64
+ ANALYSIS_COST_TIME = "analysis_cost_time"
65
+ MS_VERSION = "ms_version"
66
+ CANN_VERSION = "cann_version"
67
+ CONTEXT_MODE = "context_mode"
68
+ JIT_LEVEL = "jit_level"
69
+
70
+ US_TO_NS = 1000
71
+
72
+ def __init__(self):
73
+ self._profiler_info = {
74
+ self.PROFILER_PARAMETERS: {},
75
+ self.MS_PROFILER_INFO: {},
76
+ self.CANN_PROFILER_INFO: {},
77
+ self.ANALYSIS_COST_TIME: {},
78
+ self.MS_VERSION: ms_version,
79
+ self.CANN_VERSION: get_cann_version(),
80
+ self.CONTEXT_MODE: -1,
81
+ self.JIT_LEVEL: "",
82
+ }
83
+ # time params
84
+ self._freq = 100.0
85
+ self._cntvct = 0
86
+ self._clock_monotonic_raw = 0 # from host start log
87
+ self._collection_time_begin = 0
88
+ self._clock_monotonic_raw_info = 0 # from start info file
89
+ self._localtime_diff = 0
90
+
91
+ def load_info(self, info_file_path: str) -> None:
92
+ """"
93
+ Load profiler info from profiler_info_*.json path.
94
+ """
95
+ self._profiler_info = FileManager.read_json_file(info_file_path)
96
+
97
+ def load_time_parameters(self, msprof_profile_path: str, msprof_profile_host_path: str) -> None:
98
+ """
99
+ Load time parameters from msprof profile and host start log.
100
+ This method should be called before TimeConverter.init_parameters.
101
+ """
102
+ if not msprof_profile_path or not msprof_profile_host_path:
103
+ raise ValueError(
104
+ "msprof_profile_path and msprof_profile_host_path must be provided"
105
+ )
106
+ self._read_host_start_log(msprof_profile_host_path)
107
+ self._read_start_info(msprof_profile_host_path)
108
+ self._get_freq_from_msprof(msprof_profile_path)
109
+
110
+ @property
111
+ def time_parameters(self) -> Dict[str, Any]:
112
+ """
113
+ Get time parameters for TimeConverter.
114
+ """
115
+ return {
116
+ "freq": self._freq,
117
+ "cntvct": self._cntvct,
118
+ "localtime_diff": self._localtime_diff
119
+ }
120
+
121
+ @property
122
+ def profiler_parameters(self) -> Dict[str, str]:
123
+ """
124
+ Get profiler parameters.
125
+ """
126
+ return self._profiler_info[self.PROFILER_PARAMETERS]
127
+
128
+ @profiler_parameters.setter
129
+ def profiler_parameters(self, value: dict):
130
+ """
131
+ Set profiler parameters.
132
+ """
133
+ self._profiler_info[self.PROFILER_PARAMETERS] = value
134
+
135
+ @property
136
+ def context_mode(self) -> int:
137
+ """
138
+ Get context mode.
139
+ """
140
+ return self._profiler_info[self.CONTEXT_MODE]
141
+
142
+ @context_mode.setter
143
+ def context_mode(self, value: int):
144
+ """
145
+ Set context mode.
146
+ """
147
+ self._profiler_info[self.CONTEXT_MODE] = value
148
+
149
+ @property
150
+ def jit_level(self) -> str:
151
+ """
152
+ Get jit level.
153
+ """
154
+ return self._profiler_info[self.JIT_LEVEL]
155
+
156
+ @jit_level.setter
157
+ def jit_level(self, value: str):
158
+ """
159
+ Set jit level.
160
+ """
161
+ self._profiler_info[self.JIT_LEVEL] = value
162
+
163
+ @property
164
+ def ms_profiler_info(self) -> Dict[str, str]:
165
+ """
166
+ Get ms profiler info.
167
+ """
168
+ return self._profiler_info[self.MS_PROFILER_INFO]
169
+
170
+ @ms_profiler_info.setter
171
+ def ms_profiler_info(self, value: dict):
172
+ """
173
+ Set ms profiler info.
174
+ """
175
+ self._profiler_info[self.MS_PROFILER_INFO] = value
176
+
177
+ def save(self, output_path: str, rank_id: int):
178
+ """
179
+ Save profiler info to json file.
180
+ """
181
+ if not output_path:
182
+ logger.warning("Output path is empty, please check the output path.")
183
+ return
184
+
185
+ FileManager.create_json_file(
186
+ output_file_path=os.path.join(
187
+ output_path, self.PROFILER_INFO_FILE.format(rank_id)
188
+ ),
189
+ json_data=self._profiler_info,
190
+ indent=4,
191
+ )
192
+
193
+ def _read_host_start_log(self, host_path: str) -> None:
194
+ """
195
+ Read host_start.log and get clock_monotonic_raw and cntvct
196
+
197
+ host_start.log format:
198
+ [Host]
199
+ clock_monotonic_raw = 1234567890
200
+ cntvct = 1234567890
201
+ cntvct_diff = 1234567890
202
+ """
203
+ start_log_path = os.path.join(host_path, self.HOST_START_LOG)
204
+ PathManager.check_input_file_path(start_log_path)
205
+
206
+ cfg = ConfigParser()
207
+ try:
208
+ cfg.read(start_log_path)
209
+ except Exception as err: # pylint: disable=W0703
210
+ raise ValueError(f"Error parsing host start log file: {err}") from err
211
+
212
+ try:
213
+ self._clock_monotonic_raw = int(cfg.get("Host", "clock_monotonic_raw"))
214
+ self._cntvct = int(cfg.get("Host", "cntvct"))
215
+ except NoSectionError as err:
216
+ raise ValueError("'Host' section not found in host start log file") from err
217
+ except NoOptionError as err:
218
+ raise ValueError(f"Required option not found in host start log file: {err}") from err
219
+ except ValueError as err:
220
+ raise ValueError(f"Invalid data in host start log file: {err}") from err
221
+
222
+ if self._clock_monotonic_raw <= 0 or self._cntvct <= 0:
223
+ raise ValueError(
224
+ "Invalid clock_monotonic_raw or cntvct value must be positive"
225
+ )
226
+
227
+ def _read_start_info(self, host_path: str) -> None:
228
+ """
229
+ Read start_info file and calculate localtime_diff.
230
+
231
+ Raises:
232
+ FileNotFoundError: If the start_info file is not found.
233
+ ValueError: If required data is missing or invalid in the file.
234
+ JSONDecodeError: If there's an error decoding the JSON file.
235
+ """
236
+ start_info_path = os.path.join(host_path, self.START_INFO)
237
+ info_data = FileManager.read_json_file(start_info_path)
238
+
239
+ try:
240
+ self._collection_time_begin = int(
241
+ info_data.get("collectionTimeBegin", 0)
242
+ ) # us
243
+ self._clock_monotonic_raw_info = int(info_data.get("clockMonotonicRaw", 0))
244
+ except ValueError as err:
245
+ raise ValueError(f"Invalid data in start info file: {err}") from err
246
+
247
+ if self._collection_time_begin <= 0 or self._clock_monotonic_raw_info <= 0:
248
+ raise ValueError(
249
+ "Invalid collectionTimeBegin or clockMonotonicRaw value must be positive"
250
+ )
251
+
252
+ self._localtime_diff = self._clock_monotonic_raw + (
253
+ self._collection_time_begin * self.US_TO_NS - self._clock_monotonic_raw_info
254
+ )
255
+
256
+ def _get_freq_from_msprof(self, msprof_profile_path: str) -> None:
257
+ """
258
+ Get frequency from get_msprof_info.py script
259
+
260
+ script return json information:
261
+ {
262
+ "data": {
263
+ "host_info": {
264
+ "cpu_info": [{"Frequency": "100.0000"}]
265
+ }
266
+ }
267
+ }
268
+ """
269
+ msprof_info = MsprofCmdTool(msprof_profile_path).get_msprof_info()
270
+
271
+ if not isinstance(msprof_info, dict):
272
+ raise RuntimeError("msprof_info must be a dictionary")
273
+
274
+ data = msprof_info.get("data")
275
+ if not isinstance(data, dict):
276
+ raise RuntimeError("msprof_info['data'] must be a dictionary")
277
+
278
+ host_info = data.get("host_info")
279
+ if not isinstance(host_info, dict):
280
+ raise RuntimeError("msprof_info['data']['host_info'] must be a dictionary")
281
+
282
+ cpu_info_list = host_info.get("cpu_info", [])
283
+ if not isinstance(cpu_info_list, list) or not cpu_info_list:
284
+ raise RuntimeError("cpu_info must be a non-empty list")
285
+
286
+ cpu_info = cpu_info_list[0]
287
+ if not isinstance(cpu_info, dict):
288
+ raise RuntimeError("cpu_info[0] must be a dictionary")
289
+
290
+ freq_str = cpu_info.get("Frequency", self._freq)
291
+ if not freq_str:
292
+ logger.warning("Frequency is empty, use default frequency: %s", str(self._freq))
293
+ return
294
+
295
+ try:
296
+ freq = float(freq_str)
297
+ except ValueError as e:
298
+ raise ValueError(
299
+ "Convert frequency to float failed, please check msprof information"
300
+ ) from e
301
+
302
+ if freq <= 0.0:
303
+ raise ValueError("Frequency is invalid, please check msprof info")
304
+ self._freq = freq
@@ -0,0 +1,74 @@
1
+ # Copyright 2024-2025 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Profiler Meta Data"""
16
+ import os
17
+ from typing import Dict
18
+
19
+ import mindspore.communication as comm
20
+ from mindspore.profiler.common.constant import DeviceTarget
21
+ from mindspore.profiler.common.profiler_context import ProfilerContext
22
+ import mindspore.communication._comm_helper as comm_helper
23
+ from mindspore.profiler.common.file_manager import FileManager
24
+ from mindspore import log as logger
25
+
26
+
27
+ class ProfilerMetaData:
28
+ """
29
+ Profiler MetaData
30
+ This class is used to handle metadata.
31
+ """
32
+ metadata: Dict[str, str] = {}
33
+
34
+ @classmethod
35
+ def get_metadata(cls) -> Dict[str, str]:
36
+ """Get metadata"""
37
+ return cls.metadata
38
+
39
+ @classmethod
40
+ def set_metadata(cls, value: Dict[str, str]):
41
+ """Set metadata"""
42
+ cls.metadata = value
43
+
44
+ @classmethod
45
+ def dump_metadata(cls):
46
+ """Dump metadata to file."""
47
+ cls.add_group_info_to_metadata()
48
+ if not cls.metadata:
49
+ return
50
+ save_path = os.path.join(ProfilerContext().ascend_ms_dir, "profiler_metadata.json")
51
+ FileManager.create_json_file(save_path, cls.metadata)
52
+ cls.metadata.clear()
53
+
54
+ @classmethod
55
+ def add_group_info_to_metadata(cls):
56
+ """Add parallel group info to metadata"""
57
+ try:
58
+ if ProfilerContext().device_target == DeviceTarget.NPU.value and comm.GlobalComm.INITED \
59
+ and comm.GlobalComm.BACKEND == comm_helper.Backend.HCCL:
60
+ group_info = {}
61
+ # pylint: disable=protected-access
62
+ for group_name in comm_helper._get_group_map().keys():
63
+ comm_name = comm.get_comm_name(group_name)
64
+ if not comm_name:
65
+ continue
66
+ group_info[comm_name] = {
67
+ "group_name": group_name,
68
+ "group_rank": comm.get_local_rank(group_name),
69
+ "global_ranks": comm.get_process_group_ranks(group_name)
70
+ }
71
+ if group_info:
72
+ cls.metadata.update({"parallel_group_info": group_info})
73
+ except Exception as err: # pylint: disable=broad-except
74
+ logger.error(f"Failed to get parallel group info, Exception: {str(err)}")
@@ -0,0 +1,284 @@
1
+ # Copyright 2022-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 output path"""
16
+ import os
17
+ from typing import Any, Dict, Optional
18
+ from mindspore.profiler.common.path_manager import PathManager
19
+
20
+
21
+ class ProfilerOutputPath:
22
+ """
23
+ Profiler output path structure:
24
+
25
+ └── output_path
26
+ └── {}_ascend_ms # rank 0
27
+ └── ASCEND_PROFILER_OUTPUT
28
+ └── FRAMEWORK
29
+ └── PROF_{}
30
+ └── host
31
+ └── device_{}
32
+ └── mindstudio_profiler_log
33
+ └── mindstudio_profiler_output
34
+ └── {}_ascend_ms # rank 1
35
+ └── ASCEND_PROFILER_OUTPUT
36
+ └── FRAMEWORK
37
+ └── PROF_{}
38
+ └── host
39
+ └── device_{}
40
+ └── mindstudio_profiler_log
41
+ └── mindstudio_profiler_output
42
+ """
43
+
44
+ _ASCEND_PROFILER_OUTPUT = "ASCEND_PROFILER_OUTPUT"
45
+ _FRAMEWORK = "FRAMEWORK"
46
+ _MINISTUDIO_PROFILER_HOST = "host"
47
+ _MINISTUDIO_PROFILER_DEVICE = "device_{}"
48
+ _MINISTUDIO_PROFILER_LOG = "mindstudio_profiler_log"
49
+ _MINISTUDIO_PROFILER_OUTPUT = "mindstudio_profiler_output"
50
+ _MINISTUDIO_ANALYZE_OUTPUT = "analyze"
51
+
52
+ def __init__(self, rank_id: int, device_id: int):
53
+ if not isinstance(rank_id, int) or not isinstance(device_id, int):
54
+ raise ValueError("rank_id and device_id must be integers")
55
+
56
+ self._rank_id = rank_id
57
+ self._device_id = device_id
58
+ self._output_path: Optional[str] = None
59
+ self._ascend_ms_dir: Optional[str] = None
60
+ self._ascend_profiler_output_path: Optional[str] = None
61
+ self._framework_path: Optional[str] = None
62
+
63
+ # PROF_{} and its subdirectories
64
+ self._msprof_profile_path: Optional[str] = None
65
+ self._msprof_profile_host_path: Optional[str] = None
66
+ self._msprof_profile_device_path: Optional[str] = None
67
+ self._msprof_profile_log_path: Optional[str] = None
68
+ self._msprof_profile_output_path: Optional[str] = None
69
+ self._msprof_analyze_output_path: Optional[str] = None
70
+
71
+ def to_dict(self) -> Dict[str, Any]:
72
+ """
73
+ Convert the profiler parameters to a dictionary.
74
+ """
75
+ return {
76
+ "output_path": self._output_path,
77
+ "ascend_ms_dir": self._ascend_ms_dir,
78
+ "ascend_profiler_output_path": self._ascend_profiler_output_path,
79
+ "framework_path": self._framework_path,
80
+ "msprof_profile_path": self._msprof_profile_path,
81
+ "msprof_profile_host_path": self._msprof_profile_host_path,
82
+ "msprof_profile_device_path": self._msprof_profile_device_path,
83
+ "msprof_profile_log_path": self._msprof_profile_log_path,
84
+ "msprof_profile_output_path": self._msprof_profile_output_path,
85
+ "msprof_analyze_output_path": self._msprof_analyze_output_path,
86
+ }
87
+
88
+ @property
89
+ def output_path(self) -> str:
90
+ """
91
+ Get the output path, which is the parent directory of all profiler output paths.
92
+ Set by Profiler output_path parameter.
93
+
94
+ Returns:
95
+ str: The output path.
96
+
97
+ Raises:
98
+ ValueError: If output_path has not been set.
99
+ """
100
+ if self._output_path is None:
101
+ raise ValueError("output_path has not been set")
102
+ return self._output_path
103
+
104
+ @property
105
+ def ascend_ms_dir(self) -> str:
106
+ """
107
+ Get the Ascend MS directory, which is each rank's output path.
108
+
109
+ Returns:
110
+ str: The Ascend MS directory, eg. output_path/xxxx_ascend_ms
111
+
112
+ Raises:
113
+ ValueError: If ascend_ms_dir has not been set.
114
+ """
115
+ if self._ascend_ms_dir is None:
116
+ raise ValueError("ascend_ms_dir has not been set")
117
+ return self._ascend_ms_dir
118
+
119
+ @property
120
+ def ascend_profiler_output_path(self) -> str:
121
+ """
122
+ Get the MindSpore Profiler official deliverables output path.
123
+
124
+ Returns:
125
+ str: The MindSpore Profiler official deliverables output path.
126
+ eg. ascend_ms_dir/ASCEND_PROFILER_OUTPUT
127
+
128
+ Raises:
129
+ ValueError: If ascend_profiler_output_path has not been set.
130
+ """
131
+ if self._ascend_profiler_output_path is None:
132
+ raise ValueError("ascend_profiler_output_path has not been set")
133
+ return self._ascend_profiler_output_path
134
+
135
+ @property
136
+ def framework_path(self) -> str:
137
+ """
138
+ Get the framework path, which is the intermediate directory of framework profiling data.
139
+
140
+ Returns:
141
+ str: The framework path. eg. ascend_ms_dir/FRAMEWORK
142
+
143
+ Raises:
144
+ ValueError: If framework_path has not been set.
145
+ """
146
+ if self._framework_path is None:
147
+ raise ValueError("framework_path has not been set")
148
+ return self._framework_path
149
+
150
+ @property
151
+ def msprof_profile_path(self) -> str:
152
+ """
153
+ Get the PROF_XXX path, which is the directory of msprof profiling data.
154
+
155
+ Returns:
156
+ str: The MSProf profile path. eg. ascend_ms_dir/PROF_XXX
157
+
158
+ Raises:
159
+ ValueError: If msprof_profile_path has not been set.
160
+ """
161
+ if self._msprof_profile_path is None:
162
+ raise ValueError("msprof_profile_path has not been set")
163
+ return self._msprof_profile_path
164
+
165
+ @property
166
+ def msprof_profile_host_path(self) -> str:
167
+ """
168
+ Get the msprof host path.
169
+
170
+ Returns:
171
+ str: The msprof host path. eg. ascend_ms_dir/PROF_XXX/host
172
+
173
+ Raises:
174
+ ValueError: If msprof_profile_host_path has not been set.
175
+ """
176
+ if self._msprof_profile_host_path is None:
177
+ raise ValueError("msprof_profile_host_path has not been set")
178
+ return self._msprof_profile_host_path
179
+
180
+ @property
181
+ def msprof_profile_device_path(self) -> str:
182
+ """
183
+ Get the msprof device path.
184
+
185
+ Returns:
186
+ str: The msprof device path. eg. ascend_ms_dir/PROF_XXX/device_X
187
+
188
+ Raises:
189
+ ValueError: If msprof_profile_device_path has not been set.
190
+ """
191
+ if self._msprof_profile_device_path is None:
192
+ raise ValueError("msprof_profile_device_path has not been set")
193
+ return self._msprof_profile_device_path
194
+
195
+ @property
196
+ def msprof_profile_log_path(self) -> str:
197
+ """
198
+ Get the msprof log path.
199
+
200
+ Returns:
201
+ str: The msprof log path. eg. ascend_ms_dir/PROF_XXX/mindstudio_profiler_log
202
+
203
+ Raises:
204
+ ValueError: If msprof_profile_log_path has not been set.
205
+ """
206
+ if self._msprof_profile_log_path is None:
207
+ raise ValueError("msprof_profile_log_path has not been set")
208
+ return self._msprof_profile_log_path
209
+
210
+ @property
211
+ def msprof_profile_output_path(self) -> str:
212
+ """
213
+ Get the msprof official deliverables output path.
214
+
215
+ Returns:
216
+ str: The msprof official deliverables output path.
217
+ eg. ascend_ms_dir/PROF_XXX/mindstudio_profiler_output
218
+
219
+ Raises:
220
+ ValueError: If msprof_profile_output_path has not been set.
221
+ """
222
+ if self._msprof_profile_output_path is None:
223
+ raise ValueError("msprof_profile_output_path has not been set")
224
+ return self._msprof_profile_output_path
225
+
226
+ @property
227
+ def msprof_analyze_output_path(self) -> str:
228
+ """
229
+ Get the msprof analyze output path.
230
+
231
+ Returns:
232
+ str: The msprof analyze output path.
233
+ eg. ascend_ms_dir/PROF_XXX/analyze
234
+
235
+ Raises:
236
+ ValueError: If msprof_analyze_output_path has not been set.
237
+ """
238
+ if self._msprof_analyze_output_path is None:
239
+ raise ValueError("msprof_analyze_output_path has not been set")
240
+ return self._msprof_analyze_output_path
241
+
242
+ @output_path.setter
243
+ def output_path(self, value: str):
244
+ """Set the output path."""
245
+ real_path = PathManager.get_real_path(value)
246
+ PathManager.check_input_directory_path(real_path)
247
+ self._output_path = real_path
248
+
249
+ @ascend_ms_dir.setter
250
+ def ascend_ms_dir(self, value: str):
251
+ """Set the xxx_ascend_ms directory."""
252
+ if self._output_path is None:
253
+ raise ValueError("output_path has not been set")
254
+
255
+ self._ascend_ms_dir = os.path.join(self._output_path, value)
256
+ self._ascend_profiler_output_path = os.path.join(
257
+ self._ascend_ms_dir, ProfilerOutputPath._ASCEND_PROFILER_OUTPUT
258
+ )
259
+ self._framework_path = os.path.join(
260
+ self._ascend_ms_dir, ProfilerOutputPath._FRAMEWORK
261
+ )
262
+
263
+ @msprof_profile_path.setter
264
+ def msprof_profile_path(self, value: str):
265
+ """Set the PROF_XXX path."""
266
+ if self._ascend_ms_dir is None:
267
+ raise ValueError("ascend_ms_dir has not been set")
268
+ self._msprof_profile_path = value
269
+ self._msprof_profile_host_path = os.path.join(
270
+ self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_PROFILER_HOST
271
+ )
272
+ self._msprof_profile_device_path = os.path.join(
273
+ self._msprof_profile_path,
274
+ ProfilerOutputPath._MINISTUDIO_PROFILER_DEVICE.format(self._device_id)
275
+ )
276
+ self._msprof_profile_log_path = os.path.join(
277
+ self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_PROFILER_LOG
278
+ )
279
+ self._msprof_profile_output_path = os.path.join(
280
+ self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_PROFILER_OUTPUT
281
+ )
282
+ self._msprof_analyze_output_path = os.path.join(
283
+ self._msprof_profile_path, ProfilerOutputPath._MINISTUDIO_ANALYZE_OUTPUT
284
+ )