mindspore 2.4.10__cp310-cp310-win_amd64.whl → 2.6.0rc1__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 +46 -197
  22. mindspore/_extends/parse/resources.py +1 -5
  23. mindspore/_extends/parse/standard_method.py +217 -98
  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 +435 -371
  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 +2 -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 +951 -1992
  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 +314 -566
  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 +182 -116
  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 +211 -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 +157 -117
  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 +796 -759
  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 +921 -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 +1370 -189
  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 +22 -17
  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 +17 -13
  222. mindspore/nn/optim/adamax.py +8 -7
  223. mindspore/nn/optim/adasum.py +5 -5
  224. mindspore/nn/optim/asgd.py +1 -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 +365 -363
  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 +27 -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 +236 -46
  286. mindspore/ops/auto_generate/gen_extend_func.py +764 -124
  287. mindspore/ops/auto_generate/gen_ops_def.py +4018 -2264
  288. mindspore/ops/auto_generate/gen_ops_prim.py +15463 -5037
  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 +4501 -3802
  334. mindspore/ops/function/nn_func.py +1726 -620
  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 +440 -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 +24 -17
  343. mindspore/ops/functional.py +22 -7
  344. mindspore/ops/functional_overload.py +1440 -0
  345. mindspore/ops/op_info_register.py +32 -244
  346. mindspore/ops/operations/__init__.py +13 -7
  347. mindspore/ops/operations/_custom_ops_utils.py +247 -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 +232 -78
  360. mindspore/ops/operations/debug_ops.py +153 -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 +210 -498
  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 +1888 -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 +299 -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 +152 -34
  426. mindspore/parallel/_cell_wrapper.py +130 -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 +698 -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 +259 -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 -58
  446. mindspore/parallel/transform_safetensors.py +363 -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 +106 -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 +409 -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 +88 -25
  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} +204 -107
  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 +184 -113
  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 +550 -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.0rc1.dist-info}/METADATA +3 -3
  584. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +587 -418
  585. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.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.0rc1.dist-info}/WHEEL +0 -0
  602. {mindspore-2.4.10.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,251 @@
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
+ """ProfilerParameters"""
16
+ import warnings
17
+ from typing import Dict, Optional, Callable, Any
18
+
19
+ from mindspore import log as logger
20
+ from mindspore.profiler.common.constant import (
21
+ ProfilerLevel,
22
+ ProfilerActivity,
23
+ AicoreMetrics,
24
+ ExportType
25
+ )
26
+ from mindspore.profiler.schedule import Schedule
27
+
28
+
29
+ class ProfilerParameters:
30
+ """
31
+ Profiler parameters manage all parameters, parameters validation and type conversion.
32
+ """
33
+
34
+ # key: Parameter name, value: (type, default value)
35
+ PARAMS: Dict[str, tuple] = {
36
+ "output_path": (str, "./data"),
37
+ "profiler_level": (ProfilerLevel, ProfilerLevel.Level0),
38
+ "activities": (list, [ProfilerActivity.CPU, ProfilerActivity.NPU]),
39
+ "aic_metrics": (AicoreMetrics, AicoreMetrics.AiCoreNone),
40
+ "with_stack": (bool, False),
41
+ "profile_memory": (bool, False),
42
+ "data_process": (bool, False),
43
+ "parallel_strategy": (bool, False),
44
+ "start_profile": (bool, True),
45
+ "l2_cache": (bool, False),
46
+ "hbm_ddr": (bool, False),
47
+ "pcie": (bool, False),
48
+ "sync_enable": (bool, True),
49
+ "data_simplification": (bool, True),
50
+ "export_type": (list, [ExportType.Text]),
51
+ "mstx": (bool, False),
52
+ "schedule": (Schedule, None),
53
+ "on_trace_ready": (Optional[Callable[..., Any]], None)
54
+ }
55
+
56
+ TYPE_INDEX = 0
57
+ VALUE_INDEX = 1
58
+
59
+ def __init__(self, **kwargs):
60
+ self.is_set_schedule: bool = False
61
+ self._set_schedule(**kwargs)
62
+ self._check_deprecated_params(**kwargs)
63
+ self._init_params(kwargs)
64
+ self._check_params_type()
65
+ self._handle_compatibility()
66
+
67
+ @property
68
+ def original_params(self) -> Dict[str, str]:
69
+ """
70
+ Get params dict for profiler_info.json save.
71
+ """
72
+ params = {}
73
+ params["is_set_schedule"] = self.is_set_schedule
74
+ for param, (_, _) in self.PARAMS.items():
75
+ if param == "profiler_level":
76
+ params[param] = getattr(self, param).value
77
+ elif param == "aic_metrics":
78
+ params[param] = getattr(self, param).value
79
+ elif param == "activities":
80
+ params[param] = [item.value for item in getattr(self, param)]
81
+ elif param == "export_type":
82
+ params[param] = [item.value for item in getattr(self, param)]
83
+ elif param == "schedule":
84
+ params[param] = getattr(self, param).to_dict()
85
+ elif param == "on_trace_ready":
86
+ continue
87
+ else:
88
+ params[param] = getattr(self, param)
89
+ return params
90
+
91
+ @property
92
+ def npu_profiler_params(self) -> Dict[str, str]:
93
+ """
94
+ Get NPU profiler parameters for Ascend profiler cpp backend.
95
+
96
+ Returns:
97
+ Dict[str, str]: A dictionary of NPU profiler parameters.
98
+ """
99
+ return {
100
+ "profile_memory": self.profile_memory,
101
+ "aicore_metrics": self.aic_metrics.value,
102
+ "l2_cache": self.l2_cache,
103
+ "hbm_ddr": self.hbm_ddr,
104
+ "pcie": self.pcie,
105
+ "parallel_strategy": self.parallel_strategy,
106
+ "profiler_level": self.profiler_level.value,
107
+ "with_stack": self.with_stack,
108
+ "mstx": self.mstx,
109
+ "cpu_trace": ProfilerActivity.CPU in self.activities,
110
+ "npu_trace": ProfilerActivity.NPU in self.activities,
111
+ }
112
+
113
+ def _init_params(self, kwargs):
114
+ """
115
+ Initialize parameters with kwargs
116
+ """
117
+ for param, (_, default_value) in self.PARAMS.items():
118
+ if param == "schedule" and kwargs.get(param) is None:
119
+ kwargs["schedule"] = Schedule(wait=0, active=1)
120
+ setattr(self, param, kwargs.get(param) if kwargs.get(param) is not None else default_value)
121
+
122
+ def _check_params_type(self) -> None:
123
+ """
124
+ Check profiler input params type, if type is invalid reset to default value.
125
+ """
126
+ for key, value in self.__dict__.items():
127
+ if key in ProfilerParameters.PARAMS:
128
+ expected_type = ProfilerParameters.PARAMS[key][ProfilerParameters.TYPE_INDEX]
129
+ default_value = ProfilerParameters.PARAMS[key][ProfilerParameters.VALUE_INDEX]
130
+
131
+ # Callable特殊处理
132
+ if key == "on_trace_ready":
133
+ if value is not None and not callable(value):
134
+ setattr(self, key, default_value)
135
+ logger.warning(
136
+ f"For Profiler, on_trace_ready value is Invalid, reset to {default_value}."
137
+ )
138
+ elif key == "schedule":
139
+ if not isinstance(value, Schedule):
140
+ setattr(self, key, Schedule(wait=0, active=1))
141
+ logger.warning(
142
+ f"For Profiler, schedule value is Invalid, reset to {Schedule(wait=0, active=1)}"
143
+ )
144
+ elif key == "export_type":
145
+ setattr(self, key, self._check_and_get_export_type(value))
146
+ # 检查可迭代类型
147
+ elif isinstance(expected_type, type) and issubclass(expected_type, (list, tuple, set)):
148
+ if not (isinstance(value, expected_type) and
149
+ all(isinstance(item, type(default_value[0])) for item in value)):
150
+ logger.warning(
151
+ f"For Profiler, {key} value is Invalid, reset to {default_value}."
152
+ )
153
+ setattr(self, key, default_value)
154
+ # 检查普通类型
155
+ elif not isinstance(value, expected_type):
156
+ logger.warning(
157
+ f"For Profiler, the type of {key} should be {expected_type}, "
158
+ f"but got {type(value)}, reset to {default_value}."
159
+ )
160
+ setattr(self, key, default_value)
161
+
162
+ def _check_deprecated_params(self, **kwargs) -> None:
163
+ """
164
+ Check deprecated parameters.
165
+ """
166
+ for key, _ in kwargs.items():
167
+ if key == "profile_communication":
168
+ warnings.warn(
169
+ "The parameter 'profile_communication' is deprecated,"
170
+ " please use 'profiler_level=ProfilerLevel.Level1' or "
171
+ "'profiler_level=ProfilerLevel.Level2' instead."
172
+ )
173
+ elif key == "op_time":
174
+ warnings.warn(
175
+ "The parameter 'op_time' is deprecated,"
176
+ " please use 'activaties=ProfilerActivity.NPU' instead."
177
+ )
178
+ elif key == "profile_framework":
179
+ warnings.warn(
180
+ "The parameter 'profile_framework' is deprecated,"
181
+ " please use 'activaties=ProfilerActivity.CPU' instead."
182
+ )
183
+ elif key == "host_stack":
184
+ warnings.warn(
185
+ "The parameter 'host_stack' is deprecated,"
186
+ " please use 'with_stack' instead."
187
+ )
188
+ elif key == "timeline_limit":
189
+ warnings.warn(
190
+ "The parameter 'timeline_limit' is deprecated and will have no effect"
191
+ )
192
+
193
+ def _set_schedule(self, **kwargs):
194
+ if "schedule" in kwargs and isinstance(kwargs["schedule"], Schedule):
195
+ self.is_set_schedule = True
196
+
197
+ def _handle_compatibility(self) -> None:
198
+ """
199
+ Handle compatibility.
200
+ """
201
+ if hasattr(self, "schedule") and self.is_set_schedule and self.__dict__.get('data_process', False):
202
+ self.data_process = False
203
+ warnings.warn("When 'schedule' is set, 'data_process' will be set to False.")
204
+
205
+ if not self.__dict__.get('mstx') and self.__dict__.get('profiler_level') == ProfilerLevel.LevelNone:
206
+ self.profiler_level = ProfilerLevel.Level0
207
+ warnings.warn("when 'mstx' is disabled, 'profiler_level' cannot be set to 'ProfilerLevel.LevelNone', "
208
+ "reset to 'ProfilerLevel.Level0'.")
209
+
210
+ if self.__dict__.get('profiler_level') in (ProfilerLevel.LevelNone, ProfilerLevel.Level0) and \
211
+ self.__dict__.get('aic_metrics') != AicoreMetrics.AiCoreNone:
212
+ self.aic_metrics = AicoreMetrics.AiCoreNone
213
+ warnings.warn(f"when 'profiler_level' is set to '{self.__dict__.get('profiler_level')}', "
214
+ f"'aic_metrics' cannot be set to other value except 'AicoreMetrics.AiCoreNone', "
215
+ f"reset to 'AicoreMetrics.AiCoreNone'.")
216
+
217
+ if self.__dict__.get('profiler_level') in (ProfilerLevel.Level1, ProfilerLevel.Level2) and \
218
+ self.__dict__.get('aic_metrics') == AicoreMetrics.AiCoreNone:
219
+ self.aic_metrics = AicoreMetrics.PipeUtilization
220
+ warnings.warn(f"when 'profiler_level' is set to '{self.__dict__.get('profiler_level')}', "
221
+ f"'aic_metrics' cannot be set to 'AicoreMetrics.AiCoreNone', "
222
+ f"reset to 'AicoreMetrics.PipeUtilization'.")
223
+
224
+ def _check_and_get_export_type(self, export_type) -> list:
225
+ """
226
+ Check export type.
227
+ """
228
+ if not export_type:
229
+ return [ExportType.Text]
230
+
231
+ if isinstance(export_type, str):
232
+ if export_type in [ExportType.Text.value, ExportType.Db.value]:
233
+ return [ExportType(export_type)]
234
+
235
+ if isinstance(export_type, list):
236
+ if all(isinstance(type, ExportType) for type in export_type):
237
+ return list(set(export_type))
238
+
239
+ if isinstance(export_type, ExportType):
240
+ return [export_type]
241
+
242
+ logger.warning("Invalid parameter export_type, reset it to text.")
243
+ return [ExportType.Text]
244
+
245
+ def __getattr__(self, name):
246
+ """
247
+ Get attribute.
248
+ """
249
+ if name in self.PARAMS:
250
+ return getattr(self, name)
251
+ raise AttributeError(f"'{self.__class__.__name__}' has no attribute '{name}'")
@@ -0,0 +1,179 @@
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 Path Manager"""
16
+ import os
17
+ import socket
18
+ import glob
19
+ import shutil
20
+ from datetime import datetime, timezone
21
+
22
+ from mindspore import log as logger
23
+ from mindspore.profiler.common.singleton import Singleton
24
+ from mindspore.profiler.common.profiler_context import ProfilerContext
25
+ from mindspore.profiler.common.path_manager import PathManager
26
+
27
+
28
+ @Singleton
29
+ class ProfilerPathManager:
30
+ """
31
+ ProfilerPathManager is responsible for creating and managing all paths used by profiler.
32
+ """
33
+
34
+ _ASCEND_MS_DIR = "{}_{}_ascend_ms"
35
+ MAX_WORKER_NAME_LENGTH = 226
36
+
37
+ def __init__(self):
38
+ self._prof_ctx = ProfilerContext()
39
+ self._worker_name = None
40
+ self._dir_path = None
41
+
42
+ def init(self, worker_name: str = None, dir_name: str = None) -> None:
43
+ """
44
+ Init the profiler path.
45
+ """
46
+ valid_wk_name = worker_name and isinstance(worker_name, str)
47
+ valid_wk_len = isinstance(worker_name, str) and len(worker_name) < self.MAX_WORKER_NAME_LENGTH
48
+ if (valid_wk_name and valid_wk_len) or worker_name is None:
49
+ self._worker_name = worker_name
50
+ else:
51
+ logger.warning("Invalid parameter worker_name, reset it to default.")
52
+ self._worker_name = None
53
+
54
+ valid_dir_name = dir_name and isinstance(dir_name, str)
55
+ if valid_dir_name:
56
+ dir_path = PathManager.get_real_path(dir_name)
57
+ PathManager.check_input_directory_path(dir_path)
58
+ self._dir_path = dir_path
59
+ elif dir_name is None:
60
+ self._dir_path = dir_name
61
+ else:
62
+ logger.warning(f"Invalid parameter dir_name, reset it to default.")
63
+ self._dir_path = None
64
+
65
+ if self._dir_path:
66
+ self._prof_ctx.on_trace_ready_output_path = self._dir_path
67
+
68
+ def clean_analysis_cache(self):
69
+ """
70
+ Clean the profiler analysis cache.
71
+ """
72
+ ANALYSIS_CACHE = (
73
+ # ASEND_PROFILER_OUTPUT_PATH
74
+ self._prof_ctx.ascend_profiler_output_path,
75
+ # PROF_XXX/mindstudio_profiler_output
76
+ self._prof_ctx.msprof_profile_output_path,
77
+ # PROF_XXX/mindstudio_profiler_log
78
+ self._prof_ctx.msprof_profile_log_path,
79
+ # PROF_XXX/host/sqlite
80
+ os.path.join(self._prof_ctx.msprof_profile_host_path, "sqlite"),
81
+ # PROF_XXX/host/data/all_file.complete
82
+ os.path.join(self._prof_ctx.msprof_profile_host_path, "data", "all_file.complete"),
83
+ # PROF_XXX/device_x/sqlite
84
+ os.path.join(self._prof_ctx.msprof_profile_device_path, "sqlite"),
85
+ # PROF_XXX/device_x/data/all_file.complete
86
+ os.path.join(self._prof_ctx.msprof_profile_device_path, "data", "all_file.complete"),
87
+ )
88
+
89
+ for cache_path in ANALYSIS_CACHE:
90
+ if os.path.isfile(cache_path):
91
+ PathManager.remove_file_safety(cache_path)
92
+ elif os.path.isdir(cache_path):
93
+ PathManager.remove_path_safety(cache_path)
94
+
95
+ def simplify_data(self):
96
+ """
97
+ Simplify the profiler data.
98
+ """
99
+ SIMPLIFY_CACHE = (
100
+ # PROF_XXX/mindstudio_profiler_output
101
+ self._prof_ctx.msprof_profile_output_path,
102
+ # PROF_XXX/mindstudio_profiler_log
103
+ self._prof_ctx.msprof_profile_log_path,
104
+ # PROF_XXX/host/sqlite
105
+ os.path.join(self._prof_ctx.msprof_profile_host_path, "sqlite"),
106
+ # PROF_XXX/host/data/all_file.complete
107
+ os.path.join(self._prof_ctx.msprof_profile_host_path, "data", "all_file.complete"),
108
+ # PROF_XXX/device_x/sqlite
109
+ os.path.join(self._prof_ctx.msprof_profile_device_path, "sqlite"),
110
+ # PROF_XXX/device_x/data/all_file.complete
111
+ os.path.join(self._prof_ctx.msprof_profile_device_path, "data", "all_file.complete"),
112
+ )
113
+
114
+ for cache_path in SIMPLIFY_CACHE:
115
+ if os.path.isfile(cache_path):
116
+ PathManager.remove_file_safety(cache_path)
117
+ elif os.path.isdir(cache_path):
118
+ PathManager.remove_path_safety(cache_path)
119
+
120
+ def move_db_file(self):
121
+ """
122
+ Copy the db file to the output path.
123
+ """
124
+ if not self._prof_ctx.msprof_profile_output_path:
125
+ return
126
+ db_files = glob.glob(os.path.join(
127
+ os.path.dirname(self._prof_ctx.msprof_profile_output_path),
128
+ 'msprof*.db'
129
+ )) + glob.glob(os.path.join(
130
+ os.path.dirname(self._prof_ctx.msprof_profile_output_path),
131
+ "analyze",
132
+ "communication_analyzer.db"
133
+ ))
134
+ for db_file in db_files:
135
+ if os.path.isfile(db_file):
136
+ db_file_name = os.path.basename(db_file)
137
+ if db_file_name == "communication_analyzer.db":
138
+ new_file_name = os.path.join(self._prof_ctx.ascend_profiler_output_path, db_file_name)
139
+ shutil.copy(db_file, new_file_name)
140
+ else:
141
+ new_file_name = f"ascend_mindspore_profiler_{self._prof_ctx.rank_id}.db" if self._prof_ctx.rank_id \
142
+ else f"ascend_mindspore_profiler.db"
143
+ new_file_path = os.path.join(self._prof_ctx.ascend_profiler_output_path, new_file_name)
144
+ shutil.move(db_file, new_file_path)
145
+
146
+
147
+ def create_output_path(self):
148
+ """
149
+ Create ASCEND_PROFILER_OUTPUT dir, this method should call before analysis
150
+ """
151
+ PathManager.make_dir_safety(self._prof_ctx.ascend_profiler_output_path)
152
+
153
+ def set_ascend_ms_dir(self):
154
+ """
155
+ reset xxx_ascend_ms name
156
+ """
157
+ self._prof_ctx.ascend_ms_dir = self._get_ascend_ms_dir()
158
+
159
+ def create_profiler_paths(self):
160
+ """
161
+ Create xxx_ascend_ms and FRAMEWORK dir, this method should call before Profiler start
162
+ """
163
+ PathManager.make_dir_safety(self._prof_ctx.ascend_ms_dir)
164
+ PathManager.make_dir_safety(self._prof_ctx.framework_path)
165
+ logger.info(
166
+ "Profiler ascend_ms_dir initialized: %s", self._prof_ctx.ascend_ms_dir
167
+ )
168
+
169
+ def _get_ascend_ms_dir(self) -> str:
170
+ """
171
+ Generate xxx_ascend_ms name
172
+ """
173
+ timestamp = datetime.now(timezone.utc).strftime("%Y%m%d%H%M%S%f")[:-3]
174
+ if not self._worker_name:
175
+ worker_name = f"{socket.gethostname()}_{os.getpid()}"
176
+ else:
177
+ worker_name = f"{self._worker_name}_{os.getpid()}"
178
+
179
+ return self._ASCEND_MS_DIR.format(worker_name, timestamp)
@@ -0,0 +1,76 @@
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
+ """Record Function"""
16
+
17
+ from mindspore._c_expression import PythonProfilerRecorder
18
+
19
+
20
+ class RecordFunction:
21
+ """
22
+ A context manager for recording profiling data using PythonProfilerRecorder.
23
+
24
+ This class provides a convenient way to start and stop recording profiling data
25
+ using a PythonProfilerRecorder instance. It can be used as a context manager to
26
+ ensure that recording is properly started and stopped, even if an exception occurs.
27
+
28
+ Attributes:
29
+ recorder (PythonProfilerRecorder): The underlying profiler recorder instance.
30
+
31
+ Methods:
32
+ start(): Starts the recording process.
33
+ stop(): Stops the recording process.
34
+ __enter__(): Starts the recording process when entering a with statement.
35
+ __exit__(exc_type): Stops the recording process when exiting a with statement.
36
+ """
37
+
38
+ def __init__(self, name):
39
+ """
40
+ Initializes a new instance of RecordFunction.
41
+
42
+ Args:
43
+ name (str): The name of the profiling record.
44
+ """
45
+ self.recorder = PythonProfilerRecorder(name)
46
+
47
+ def start(self):
48
+ """
49
+ Starts the recording process.
50
+
51
+ """
52
+ self.recorder.record_start()
53
+
54
+ def stop(self):
55
+ """
56
+ Stops the recording process.
57
+
58
+ """
59
+ self.recorder.record_end()
60
+
61
+ def __enter__(self) -> None:
62
+ """
63
+ Starts the recording process when entering a with statement.
64
+
65
+ """
66
+ self.start()
67
+
68
+ def __exit__(self, exc_type, exc_value, traceback) -> None:
69
+ """
70
+ Stops the recording process when exiting a with statement.
71
+
72
+ Args:
73
+ exc_type (type): The type of exception that occurred, if any.
74
+
75
+ """
76
+ self.stop()
@@ -0,0 +1,76 @@
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
+ """TLV format file decoder"""
16
+
17
+ import struct
18
+ from typing import List, Dict, Union
19
+
20
+ from mindspore import log as logger
21
+ from mindspore.profiler.common.constant import FileConstant
22
+
23
+
24
+ class TLVDecoder:
25
+ """
26
+ The class of TLV format data decoder.
27
+ """
28
+ _TYPE_LEN = 2
29
+ _LENGTH_LEN = 4
30
+
31
+ @classmethod
32
+ def decode(cls, all_bytes: bytes, fix_data_formats: any, fix_data_struct_size: int) -> List:
33
+ """Decode all the data."""
34
+ result_data = []
35
+ records = cls.tlv_list_decode(all_bytes)
36
+ for record in records:
37
+ if fix_data_struct_size > len(record):
38
+ logger.warning("The collected data has been lost")
39
+ continue
40
+ fix_data_bytes = record[0: fix_data_struct_size]
41
+ tlv_fields = cls.tlv_list_decode(record[fix_data_struct_size:], is_field=True)
42
+ tlv_fields[FileConstant.FIX_SIZE_DATA] = struct.unpack(fix_data_formats, fix_data_bytes)
43
+ result_data.append(tlv_fields)
44
+ return result_data
45
+
46
+ @classmethod
47
+ def tlv_list_decode(cls, tlv_bytes: bytes, is_field: bool = False) -> Union[Dict, List]:
48
+ """Decode TLV format data."""
49
+ result_data = {} if is_field else []
50
+ index = 0
51
+ all_bytes_len = len(tlv_bytes)
52
+ while index < all_bytes_len:
53
+ if index + cls._TYPE_LEN > all_bytes_len:
54
+ logger.warning(f"Failed to decode TLV: type field truncated at index {index}")
55
+ break
56
+ type_id = struct.unpack("<H", tlv_bytes[index: index + cls._TYPE_LEN])[0]
57
+ index += cls._TYPE_LEN
58
+ if index + cls._LENGTH_LEN > all_bytes_len:
59
+ logger.warning(f"Failed to decode TLV: length field truncated at index {index}")
60
+ break
61
+ value_len = struct.unpack("<I", tlv_bytes[index: index + cls._LENGTH_LEN])[0]
62
+ index += cls._LENGTH_LEN
63
+ if index + value_len > all_bytes_len:
64
+ logger.warning(f"Failed to decode TLV: value field truncated at index {index}")
65
+ break
66
+ value = tlv_bytes[index: index + value_len]
67
+ index += value_len
68
+ if is_field:
69
+ try:
70
+ result_data[type_id] = bytes.decode(value)
71
+ except UnicodeDecodeError:
72
+ logger.warning(f"The collected data can't decode by bytes.decode: {value}")
73
+ result_data[type_id] = 'N/A'
74
+ else:
75
+ result_data.append(value)
76
+ return result_data
@@ -20,13 +20,75 @@ This module provides the utils.
20
20
  import os
21
21
  import time
22
22
  from functools import wraps
23
-
24
- # one sys count takes 10 ns, 1 ms has 100000 system count
23
+ from typing import Any, Callable, Type, Tuple, Union
25
24
  import re
26
25
  import shutil
27
26
  import stat
28
27
 
29
28
  from mindspore import log as logger
29
+ from mindspore.profiler.common.path_manager import PathManager
30
+ from mindspore.profiler.common.exceptions.exceptions import ProfilerPathErrorException
31
+
32
+
33
+ def no_exception_func(
34
+ default_ret: Any = None,
35
+ exception_types: Union[Type[Exception], Tuple[Type[Exception], ...]] = Exception,
36
+ custom_handler: Callable[[Exception], Any] = None
37
+ ) -> Callable[[Callable], Callable]:
38
+ """
39
+ A decorator that catches specified exceptions and handles them gracefully.
40
+
41
+ Args:
42
+ default_ret (Any, optional): The default return value if an exception occurs. Defaults to None.
43
+ exception_types (Union[Type[Exception], Tuple[Type[Exception], ...]], optional):
44
+ The type(s) of exceptions to catch. Defaults to Exception.
45
+ custom_handler (Callable[[Exception], Any], optional):
46
+ A custom function to handle the caught exception. Defaults to None.
47
+
48
+ Returns:
49
+ Callable[[Callable], Callable]: A decorator function.
50
+
51
+ Example:
52
+ @no_exception_func(default_ret=0, exception_types=(ValueError, TypeError))
53
+ def divide(a, b):
54
+ return a / b
55
+ """
56
+ def decorator(func: Callable) -> Callable:
57
+ @wraps(func)
58
+ def wrapper(*args: Any, **kwargs: Any) -> Any:
59
+ try:
60
+ return func(*args, **kwargs)
61
+ except exception_types as ex: # pylint: disable=W0703
62
+ if custom_handler:
63
+ return custom_handler(ex)
64
+
65
+ logger.error(f"Call to {func.__name__} failed. Exception: {str(ex)}")
66
+ return default_ret
67
+ return wrapper
68
+ return decorator
69
+
70
+
71
+ def get_cann_version():
72
+ """
73
+ get cann version from env
74
+ """
75
+ ascend_home_path = os.environ.get("ASCEND_HOME_PATH", "")
76
+ cann_version = "not known"
77
+ try:
78
+ PathManager.check_directory_path_readable(os.path.realpath(ascend_home_path))
79
+ for dirpath, _, filenames in os.walk(os.path.realpath(ascend_home_path)):
80
+ install_files = [file for file in filenames if re.match(r"ascend_.{1,20}_install\.info", file)]
81
+ if install_files:
82
+ filepath = os.path.realpath(os.path.join(dirpath, install_files[0]))
83
+ PathManager.check_directory_path_readable(filepath)
84
+ with open(filepath, "r") as f:
85
+ for line in f:
86
+ if line.find("version") != -1:
87
+ cann_version = line.strip().split("=")[-1]
88
+ break
89
+ except ProfilerPathErrorException as e:
90
+ logger.warning(f"Failed to read CANN version from {ascend_home_path}: {e}")
91
+ return cann_version
30
92
 
31
93
 
32
94
  def timeit(custom_message=None):
@@ -55,6 +117,17 @@ def timeit(custom_message=None):
55
117
 
56
118
  return decorator
57
119
 
120
+
121
+ def print_msg_with_pid(msg):
122
+ """
123
+ Print message with process id.
124
+
125
+ Args:
126
+ msg (str): The message to print.
127
+ """
128
+ print(f"[{os.getpid()}] {msg}", flush=True)
129
+
130
+
58
131
  def to_int(param, param_name):
59
132
  """
60
133
  Transfer param to int type.