mindspore 2.5.0__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 (491) 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 +6 -4
  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 -33
  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/parse/__init__.py +6 -7
  14. mindspore/_extends/parse/compile_config.py +19 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
  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 +24 -193
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +97 -74
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +4 -4
  27. mindspore/atlprov.dll +0 -0
  28. mindspore/avcodec-59.dll +0 -0
  29. mindspore/avdevice-59.dll +0 -0
  30. mindspore/avfilter-8.dll +0 -0
  31. mindspore/avformat-59.dll +0 -0
  32. mindspore/avutil-57.dll +0 -0
  33. mindspore/boost/__init__.py +2 -2
  34. mindspore/boost/base.py +3 -7
  35. mindspore/boost/boost_cell_wrapper.py +2 -2
  36. mindspore/c1.dll +0 -0
  37. mindspore/c1xx.dll +0 -0
  38. mindspore/c2.dll +0 -0
  39. mindspore/common/__init__.py +4 -3
  40. mindspore/common/_grad_function.py +56 -0
  41. mindspore/common/_pijit_context.py +14 -5
  42. mindspore/common/_register_for_tensor.py +1 -1
  43. mindspore/common/_stub_tensor.py +5 -10
  44. mindspore/common/_tensor_cpp_method.py +1 -1
  45. mindspore/common/_tensor_docs.py +1915 -3287
  46. mindspore/common/api.py +341 -354
  47. mindspore/common/auto_dynamic_shape.py +41 -44
  48. mindspore/common/dtype.py +5 -2
  49. mindspore/common/dump.py +7 -5
  50. mindspore/common/file_system.py +3 -0
  51. mindspore/common/hook_handle.py +5 -3
  52. mindspore/common/initializer.py +10 -6
  53. mindspore/common/jit_begin_end.py +94 -0
  54. mindspore/common/jit_config.py +6 -1
  55. mindspore/common/jit_context.py +76 -0
  56. mindspore/common/jit_trace.py +378 -0
  57. mindspore/common/lazy_inline.py +2 -2
  58. mindspore/common/mutable.py +5 -4
  59. mindspore/common/parameter.py +106 -39
  60. mindspore/common/seed.py +2 -2
  61. mindspore/common/sparse_tensor.py +23 -17
  62. mindspore/common/tensor.py +297 -714
  63. mindspore/communication/__init__.py +7 -5
  64. mindspore/communication/_comm_helper.py +47 -2
  65. mindspore/communication/comm_func.py +70 -53
  66. mindspore/communication/management.py +83 -17
  67. mindspore/context.py +214 -560
  68. mindspore/dataset/__init__.py +44 -20
  69. mindspore/dataset/audio/__init__.py +2 -8
  70. mindspore/dataset/audio/transforms.py +3 -17
  71. mindspore/dataset/core/config.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +1 -1
  73. mindspore/dataset/engine/datasets.py +102 -120
  74. mindspore/dataset/engine/datasets_audio.py +22 -22
  75. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  76. mindspore/dataset/engine/datasets_text.py +78 -85
  77. mindspore/dataset/engine/datasets_user_defined.py +108 -76
  78. mindspore/dataset/engine/datasets_vision.py +111 -108
  79. mindspore/dataset/engine/iterators.py +5 -3
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/samplers.py +279 -57
  82. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  83. mindspore/dataset/engine/validators.py +10 -0
  84. mindspore/dataset/text/__init__.py +7 -6
  85. mindspore/dataset/text/transforms.py +6 -5
  86. mindspore/dataset/text/utils.py +3 -3
  87. mindspore/dataset/transforms/__init__.py +0 -9
  88. mindspore/dataset/transforms/transforms.py +3 -3
  89. mindspore/dataset/utils/browse_dataset.py +1 -1
  90. mindspore/dataset/vision/__init__.py +2 -9
  91. mindspore/dataset/vision/transforms.py +202 -158
  92. mindspore/dataset/vision/utils.py +7 -5
  93. mindspore/device_context/ascend/op_debug.py +60 -1
  94. mindspore/device_context/ascend/op_tuning.py +0 -4
  95. mindspore/device_manager.py +39 -3
  96. mindspore/dnnl.dll +0 -0
  97. mindspore/dpcmi.dll +0 -0
  98. mindspore/experimental/es/embedding_service.py +35 -27
  99. mindspore/experimental/map_parameter.py +4 -4
  100. mindspore/experimental/optim/adadelta.py +22 -26
  101. mindspore/experimental/optim/adagrad.py +4 -4
  102. mindspore/experimental/optim/adam.py +4 -0
  103. mindspore/experimental/optim/adamax.py +4 -4
  104. mindspore/experimental/optim/adamw.py +4 -0
  105. mindspore/experimental/optim/asgd.py +1 -1
  106. mindspore/experimental/optim/lr_scheduler.py +40 -22
  107. mindspore/experimental/optim/radam.py +5 -5
  108. mindspore/experimental/optim/rprop.py +1 -1
  109. mindspore/experimental/optim/sgd.py +1 -1
  110. mindspore/hal/contiguous_tensors_handle.py +6 -10
  111. mindspore/hal/device.py +55 -81
  112. mindspore/hal/event.py +38 -55
  113. mindspore/hal/memory.py +93 -144
  114. mindspore/hal/stream.py +81 -125
  115. mindspore/include/dataset/constants.h +7 -4
  116. mindspore/include/dataset/execute.h +2 -2
  117. mindspore/jpeg62.dll +0 -0
  118. mindspore/log.py +40 -2
  119. mindspore/mindrecord/__init__.py +20 -7
  120. mindspore/mindspore_backend_common.dll +0 -0
  121. mindspore/mindspore_backend_manager.dll +0 -0
  122. mindspore/mindspore_common.dll +0 -0
  123. mindspore/mindspore_core.dll +0 -0
  124. mindspore/mindspore_dump.dll +0 -0
  125. mindspore/mindspore_frontend.dll +0 -0
  126. mindspore/mindspore_glog.dll +0 -0
  127. mindspore/mindspore_memory_pool.dll +0 -0
  128. mindspore/mindspore_ms_backend.dll +0 -0
  129. mindspore/mindspore_ops.dll +0 -0
  130. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  131. mindspore/mindspore_ops_kernel_common.dll +0 -0
  132. mindspore/mindspore_profiler.dll +0 -0
  133. mindspore/mindspore_pyboost.dll +0 -0
  134. mindspore/mindspore_pynative.dll +0 -0
  135. mindspore/mindspore_res_manager.dll +0 -0
  136. mindspore/mindspore_runtime_pipeline.dll +0 -0
  137. mindspore/mint/__init__.py +131 -700
  138. mindspore/mint/distributed/__init__.py +5 -1
  139. mindspore/mint/distributed/distributed.py +194 -109
  140. mindspore/mint/linalg/__init__.py +2 -0
  141. mindspore/mint/nn/__init__.py +280 -18
  142. mindspore/mint/nn/functional.py +282 -64
  143. mindspore/mint/nn/layer/__init__.py +4 -0
  144. mindspore/mint/nn/layer/_functions.py +7 -3
  145. mindspore/mint/nn/layer/activation.py +120 -13
  146. mindspore/mint/nn/layer/conv.py +218 -24
  147. mindspore/mint/nn/layer/normalization.py +15 -16
  148. mindspore/mint/nn/layer/padding.py +1 -1
  149. mindspore/mint/nn/layer/pooling.py +66 -1
  150. mindspore/mint/optim/__init__.py +2 -1
  151. mindspore/mint/optim/sgd.py +171 -0
  152. mindspore/msobj140.dll +0 -0
  153. mindspore/mspdb140.dll +0 -0
  154. mindspore/mspdbcore.dll +0 -0
  155. mindspore/mspdbst.dll +0 -0
  156. mindspore/mspft140.dll +0 -0
  157. mindspore/msvcdis140.dll +0 -0
  158. mindspore/msvcp140_1.dll +0 -0
  159. mindspore/msvcp140_2.dll +0 -0
  160. mindspore/msvcp140_atomic_wait.dll +0 -0
  161. mindspore/msvcp140_codecvt_ids.dll +0 -0
  162. mindspore/nn/__init__.py +4 -1
  163. mindspore/nn/cell.py +1250 -176
  164. mindspore/nn/layer/activation.py +23 -21
  165. mindspore/nn/layer/basic.py +22 -16
  166. mindspore/nn/layer/container.py +1 -1
  167. mindspore/nn/layer/conv.py +22 -17
  168. mindspore/nn/layer/embedding.py +9 -8
  169. mindspore/nn/layer/normalization.py +48 -42
  170. mindspore/nn/layer/pooling.py +75 -31
  171. mindspore/nn/layer/transformer.py +11 -10
  172. mindspore/nn/learning_rate_schedule.py +4 -2
  173. mindspore/nn/loss/loss.py +27 -19
  174. mindspore/nn/optim/ada_grad.py +6 -5
  175. mindspore/nn/optim/adadelta.py +9 -7
  176. mindspore/nn/optim/adafactor.py +1 -1
  177. mindspore/nn/optim/adam.py +16 -12
  178. mindspore/nn/optim/adamax.py +8 -7
  179. mindspore/nn/optim/adasum.py +5 -5
  180. mindspore/nn/optim/asgd.py +1 -1
  181. mindspore/nn/optim/ftrl.py +11 -9
  182. mindspore/nn/optim/lamb.py +1 -1
  183. mindspore/nn/optim/lazyadam.py +12 -10
  184. mindspore/nn/optim/momentum.py +7 -6
  185. mindspore/nn/optim/optimizer.py +2 -2
  186. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  187. mindspore/nn/optim/rmsprop.py +13 -12
  188. mindspore/nn/optim/rprop.py +9 -7
  189. mindspore/nn/optim/sgd.py +9 -6
  190. mindspore/nn/optim/tft_wrapper.py +5 -2
  191. mindspore/nn/probability/bijector/bijector.py +17 -11
  192. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  193. mindspore/nn/probability/bijector/invert.py +2 -2
  194. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  195. mindspore/nn/probability/bijector/softplus.py +3 -2
  196. mindspore/nn/probability/distribution/beta.py +3 -3
  197. mindspore/nn/probability/distribution/categorical.py +1 -1
  198. mindspore/nn/probability/distribution/cauchy.py +4 -2
  199. mindspore/nn/probability/distribution/exponential.py +6 -7
  200. mindspore/nn/probability/distribution/gamma.py +2 -2
  201. mindspore/nn/probability/distribution/gumbel.py +2 -2
  202. mindspore/nn/probability/distribution/half_normal.py +5 -3
  203. mindspore/nn/probability/distribution/logistic.py +5 -3
  204. mindspore/nn/probability/distribution/poisson.py +1 -1
  205. mindspore/nn/probability/distribution/uniform.py +5 -3
  206. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  207. mindspore/nn/reinforcement/tensor_array.py +1 -1
  208. mindspore/nn/wrap/__init__.py +6 -6
  209. mindspore/nn/wrap/cell_wrapper.py +178 -117
  210. mindspore/nn/wrap/grad_reducer.py +45 -36
  211. mindspore/nn/wrap/loss_scale.py +3 -3
  212. mindspore/numpy/array_creations.py +3 -3
  213. mindspore/numpy/array_ops.py +1 -1
  214. mindspore/numpy/math_ops.py +4 -4
  215. mindspore/numpy/utils.py +1 -2
  216. mindspore/numpy/utils_const.py +1 -2
  217. mindspore/opencv_core452.dll +0 -0
  218. mindspore/opencv_imgcodecs452.dll +0 -0
  219. mindspore/opencv_imgproc452.dll +0 -0
  220. mindspore/ops/__init__.py +3 -2
  221. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  222. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  223. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  224. mindspore/ops/_register_for_op.py +0 -11
  225. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  226. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  227. mindspore/ops/_vmap/vmap_array_ops.py +7 -6
  228. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  229. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  230. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  231. mindspore/ops/auto_generate/__init__.py +4 -3
  232. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
  233. mindspore/ops/auto_generate/gen_extend_func.py +281 -135
  234. mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
  235. mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
  236. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  237. mindspore/ops/composite/__init__.py +2 -1
  238. mindspore/ops/composite/base.py +19 -24
  239. mindspore/ops/composite/math_ops.py +6 -16
  240. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  241. mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
  242. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  243. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  244. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  248. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  249. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  250. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  251. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  252. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  254. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  255. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  256. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  257. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  259. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  260. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  263. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  264. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  267. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  268. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  271. mindspore/ops/function/__init__.py +28 -2
  272. mindspore/ops/function/_add_attr_func.py +58 -0
  273. mindspore/ops/function/array_func.py +1629 -2345
  274. mindspore/ops/function/clip_func.py +38 -45
  275. mindspore/ops/function/debug_func.py +36 -44
  276. mindspore/ops/function/grad/__init__.py +1 -0
  277. mindspore/ops/function/grad/grad_func.py +104 -71
  278. mindspore/ops/function/image_func.py +1 -1
  279. mindspore/ops/function/linalg_func.py +46 -78
  280. mindspore/ops/function/math_func.py +3035 -3705
  281. mindspore/ops/function/nn_func.py +676 -241
  282. mindspore/ops/function/other_func.py +159 -1
  283. mindspore/ops/function/parameter_func.py +17 -30
  284. mindspore/ops/function/random_func.py +204 -361
  285. mindspore/ops/function/reshard_func.py +4 -70
  286. mindspore/ops/function/sparse_func.py +3 -3
  287. mindspore/ops/function/sparse_unary_func.py +5 -5
  288. mindspore/ops/function/spectral_func.py +25 -58
  289. mindspore/ops/function/vmap_func.py +24 -17
  290. mindspore/ops/functional.py +6 -4
  291. mindspore/ops/functional_overload.py +547 -4
  292. mindspore/ops/op_info_register.py +32 -244
  293. mindspore/ops/operations/__init__.py +10 -5
  294. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  295. mindspore/ops/operations/_grad_ops.py +1 -10
  296. mindspore/ops/operations/_inner_ops.py +5 -76
  297. mindspore/ops/operations/_ms_kernel.py +4 -10
  298. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  299. mindspore/ops/operations/_scalar_ops.py +3 -2
  300. mindspore/ops/operations/_sequence_ops.py +1 -1
  301. mindspore/ops/operations/_tensor_array.py +1 -1
  302. mindspore/ops/operations/array_ops.py +37 -22
  303. mindspore/ops/operations/comm_ops.py +150 -107
  304. mindspore/ops/operations/custom_ops.py +221 -23
  305. mindspore/ops/operations/debug_ops.py +115 -16
  306. mindspore/ops/operations/inner_ops.py +1 -1
  307. mindspore/ops/operations/linalg_ops.py +1 -58
  308. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  309. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  310. mindspore/ops/operations/math_ops.py +21 -18
  311. mindspore/ops/operations/nn_ops.py +65 -191
  312. mindspore/ops/operations/other_ops.py +62 -9
  313. mindspore/ops/operations/random_ops.py +13 -7
  314. mindspore/ops/operations/reshard_ops.py +1 -1
  315. mindspore/ops/operations/sparse_ops.py +2 -2
  316. mindspore/ops/primitive.py +43 -32
  317. mindspore/ops/tensor_method.py +232 -13
  318. mindspore/ops_generate/__init__.py +0 -5
  319. mindspore/ops_generate/aclnn/__init__.py +0 -0
  320. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  321. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  322. mindspore/ops_generate/api/__init__.py +0 -0
  323. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  324. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  325. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  326. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  327. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  328. mindspore/ops_generate/api/gen_api.py +103 -0
  329. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  330. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  331. mindspore/ops_generate/common/__init__.py +0 -0
  332. mindspore/ops_generate/common/gen_constants.py +91 -0
  333. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  334. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  335. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  336. mindspore/ops_generate/gen_ops.py +23 -325
  337. mindspore/ops_generate/op_def/__init__.py +0 -0
  338. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  339. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  340. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
  341. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  342. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  343. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  344. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  345. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  346. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  347. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  348. mindspore/ops_generate/pyboost/__init__.py +0 -0
  349. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  350. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  351. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  352. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  353. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  354. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  355. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  356. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  357. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  358. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  359. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  360. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  361. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  362. mindspore/ops_generate/resources/__init__.py +0 -0
  363. mindspore/ops_generate/resources/resource_list.py +30 -0
  364. mindspore/ops_generate/resources/resource_loader.py +36 -0
  365. mindspore/ops_generate/resources/resource_manager.py +64 -0
  366. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  367. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  368. mindspore/parallel/__init__.py +6 -2
  369. mindspore/parallel/_auto_parallel_context.py +133 -6
  370. mindspore/parallel/_cell_wrapper.py +130 -15
  371. mindspore/parallel/_parallel_serialization.py +95 -4
  372. mindspore/parallel/_ps_context.py +1 -1
  373. mindspore/parallel/_recovery_context.py +7 -2
  374. mindspore/parallel/_tensor.py +142 -18
  375. mindspore/parallel/_utils.py +198 -25
  376. mindspore/parallel/algo_parameter_config.py +3 -3
  377. mindspore/parallel/auto_parallel.py +732 -0
  378. mindspore/parallel/checkpoint_convert.py +159 -0
  379. mindspore/parallel/checkpoint_transform.py +656 -37
  380. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  381. mindspore/parallel/cluster/run.py +1 -1
  382. mindspore/parallel/function/__init__.py +24 -0
  383. mindspore/parallel/function/reshard_func.py +259 -0
  384. mindspore/parallel/nn/__init__.py +25 -0
  385. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  386. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  387. mindspore/parallel/parameter_broadcast.py +24 -13
  388. mindspore/parallel/shard.py +137 -61
  389. mindspore/parallel/transform_safetensors.py +287 -95
  390. mindspore/pgodb140.dll +0 -0
  391. mindspore/pgort140.dll +0 -0
  392. mindspore/profiler/__init__.py +9 -5
  393. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  394. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  395. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
  397. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  398. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  399. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  400. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  401. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  402. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  403. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  404. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  405. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  406. mindspore/profiler/common/constant.py +12 -0
  407. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  408. mindspore/profiler/common/path_manager.py +24 -0
  409. mindspore/profiler/common/profiler_context.py +26 -2
  410. mindspore/profiler/common/profiler_meta_data.py +74 -0
  411. mindspore/profiler/common/profiler_parameters.py +59 -18
  412. mindspore/profiler/common/profiler_path_manager.py +66 -7
  413. mindspore/profiler/dynamic_profiler.py +112 -79
  414. mindspore/profiler/envprofiler.py +26 -1
  415. mindspore/profiler/experimental_config.py +197 -0
  416. mindspore/profiler/mstx.py +57 -14
  417. mindspore/profiler/platform/npu_profiler.py +33 -7
  418. mindspore/profiler/profiler.py +541 -45
  419. mindspore/profiler/profiler_action_controller.py +1 -1
  420. mindspore/profiler/profiler_interface.py +4 -0
  421. mindspore/profiler/schedule.py +57 -22
  422. mindspore/rewrite/api/node.py +15 -13
  423. mindspore/rewrite/api/symbol_tree.py +1 -1
  424. mindspore/run_check/_check_version.py +25 -14
  425. mindspore/run_check/run_check.py +1 -1
  426. mindspore/runtime/__init__.py +2 -2
  427. mindspore/runtime/executor.py +40 -11
  428. mindspore/runtime/memory.py +25 -8
  429. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  430. mindspore/swresample-4.dll +0 -0
  431. mindspore/swscale-6.dll +0 -0
  432. mindspore/tbbmalloc.dll +0 -0
  433. mindspore/tinyxml2.dll +0 -0
  434. mindspore/train/__init__.py +8 -8
  435. mindspore/train/_utils.py +35 -7
  436. mindspore/train/amp.py +1 -1
  437. mindspore/train/callback/__init__.py +2 -2
  438. mindspore/train/callback/_callback.py +2 -16
  439. mindspore/train/callback/_checkpoint.py +24 -40
  440. mindspore/train/callback/_cluster_monitor.py +14 -18
  441. mindspore/train/callback/_flops_collector.py +2 -3
  442. mindspore/train/callback/_history.py +7 -4
  443. mindspore/train/callback/_lambda_callback.py +2 -2
  444. mindspore/train/callback/_landscape.py +0 -3
  445. mindspore/train/callback/_loss_monitor.py +2 -1
  446. mindspore/train/callback/_on_request_exit.py +6 -5
  447. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  448. mindspore/train/callback/_summary_collector.py +8 -13
  449. mindspore/train/callback/_time_monitor.py +2 -1
  450. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
  451. mindspore/train/data_sink.py +25 -2
  452. mindspore/train/dataset_helper.py +4 -5
  453. mindspore/train/loss_scale_manager.py +8 -7
  454. mindspore/train/metrics/accuracy.py +3 -3
  455. mindspore/train/metrics/confusion_matrix.py +9 -9
  456. mindspore/train/metrics/error.py +3 -3
  457. mindspore/train/metrics/hausdorff_distance.py +4 -4
  458. mindspore/train/metrics/mean_surface_distance.py +3 -3
  459. mindspore/train/metrics/metric.py +0 -12
  460. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  461. mindspore/train/metrics/precision.py +8 -6
  462. mindspore/train/metrics/recall.py +9 -9
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  464. mindspore/train/mind_ir_pb2.py +19 -12
  465. mindspore/train/model.py +176 -103
  466. mindspore/train/serialization.py +246 -988
  467. mindspore/train/summary/_summary_adapter.py +2 -2
  468. mindspore/train/summary/summary_record.py +1 -1
  469. mindspore/turbojpeg.dll +0 -0
  470. mindspore/utils/__init__.py +3 -2
  471. mindspore/utils/dryrun.py +4 -2
  472. mindspore/utils/hooks.py +81 -0
  473. mindspore/utils/utils.py +138 -4
  474. mindspore/vcmeta.dll +0 -0
  475. mindspore/vcruntime140.dll +0 -0
  476. mindspore/vcruntime140_1.dll +0 -0
  477. mindspore/version.py +1 -1
  478. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
  479. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
  480. mindspore/_install_custom.py +0 -43
  481. mindspore/common/_register_for_adapter.py +0 -74
  482. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  483. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  484. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  485. mindspore/ops_generate/gen_constants.py +0 -190
  486. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  487. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  488. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  489. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  490. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -16,26 +16,30 @@
16
16
  This module provides Python APIs to enable the profiling of MindSpore neural networks.
17
17
  Users can import the mindspore.profiler.Profiler, initialize the Profiler object to start profiling,
18
18
  and use Profiler.analyse() to stop profiling and analyse the results.
19
- Users can visualize the results using the MindInsight tool.
20
19
  Now, Profiler supports AICORE operator, AICPU operator, HostCPU operator, memory,
21
20
  correspondence, cluster, etc data analysis.
22
21
  """
23
22
  __all__ = [
24
- "tensor_board_trace_handler",
23
+ "tensorboard_trace_handler",
25
24
  "schedule",
26
25
  "Profiler",
27
26
  "EnvProfiler",
28
27
  "ProfilerLevel",
29
28
  "ProfilerActivity",
30
29
  "AicoreMetrics",
30
+ "ExportType",
31
31
  "DynamicProfilerMonitor",
32
- "mstx"
32
+ "mstx",
33
+ "_ExperimentalConfig",
34
+ "profile"
33
35
  ]
34
36
 
35
37
  from mindspore.profiler.mstx import Mstx as mstx
36
38
  from mindspore.profiler.profiler import Profiler
37
- from mindspore.profiler.profiler import tensor_board_trace_handler
39
+ from mindspore.profiler.profiler import tensorboard_trace_handler
38
40
  from mindspore.profiler.schedule import Schedule as schedule
39
41
  from mindspore.profiler.envprofiler import EnvProfiler
40
- from mindspore.profiler.common.constant import ProfilerLevel, ProfilerActivity, AicoreMetrics
42
+ from mindspore.profiler.common.constant import ProfilerLevel, ProfilerActivity, AicoreMetrics, ExportType
41
43
  from mindspore.profiler.dynamic_profiler import DynamicProfilerMonitor
44
+ from mindspore.profiler.experimental_config import _ExperimentalConfig
45
+ from mindspore.profiler.profiler import Profile as profile
@@ -23,7 +23,7 @@ from mindspore import log as logger
23
23
  from mindspore.profiler.analysis.parser.base_parser import BaseParser
24
24
  from mindspore.profiler.common.file_manager import FileManager
25
25
  from mindspore.profiler.common.path_manager import PathManager
26
- from mindspore.profiler.common.constant import ProfilerLevel
26
+ from mindspore.profiler.common.constant import ProfilerLevel, ExportType
27
27
  from mindspore.profiler.common.ascend_msprof_exporter import AscendMsprofExporter
28
28
  from mindspore.profiler.common.log import ProfilerLogger
29
29
 
@@ -50,6 +50,7 @@ class AscendMsprofParser(BaseParser):
50
50
  )
51
51
  self._ascend_ms_dir = self._kwargs.get("ascend_ms_dir")
52
52
  self._profiler_level = kwargs.get("profiler_level")
53
+ self._export_type = kwargs.get("export_type")
53
54
  ProfilerLogger.init(self._ascend_ms_dir)
54
55
  self._logger = ProfilerLogger.get_instance()
55
56
  self.op_summary = None
@@ -89,7 +90,8 @@ class AscendMsprofParser(BaseParser):
89
90
  Raises:
90
91
  RuntimeError: If no op summary files are found or read file failed.
91
92
  """
92
- if self._profiler_level == ProfilerLevel.LevelNone.value:
93
+ if (self._profiler_level == ProfilerLevel.LevelNone.value or
94
+ self._export_type == [ExportType.Db.value]):
93
95
  return
94
96
  file_path_list = glob.glob(
95
97
  os.path.join(
@@ -117,6 +119,8 @@ class AscendMsprofParser(BaseParser):
117
119
  Raises:
118
120
  RuntimeError: If no msprof JSON files are found in the specified directory.
119
121
  """
122
+ if self._export_type == [ExportType.Db.value]:
123
+ return
120
124
  file_path_list = []
121
125
  for pattern in self._MSPROF_TIMELINE_FILE_PATTERN:
122
126
  file_path_list.extend(glob.glob(os.path.join(self._msprof_profile_output_path, pattern)))
@@ -29,7 +29,7 @@ from mindspore.profiler.common.log import ProfilerLogger
29
29
  class FrameworkParser(BaseParser):
30
30
  """Parser for MindSpore framework profiling data."""
31
31
 
32
- _OP_RANGE_FILE_NAME = "op_range_{}"
32
+ _OP_RANGE_FILE_NAME = "mindspore.op_range"
33
33
  _CPU_OP_TIMESTAMP_FILE_NAME = "cpu_op_execute_timestamp_{}.txt"
34
34
 
35
35
  def __init__(self, next_parser: Optional[BaseParser] = None, **kwargs):
@@ -43,7 +43,7 @@ class FrameworkParser(BaseParser):
43
43
  self._ascend_ms_dir = kwargs.get("ascend_ms_dir")
44
44
  self._op_range_path = os.path.join(
45
45
  self._framework_path,
46
- self._OP_RANGE_FILE_NAME.format(self._rank_id)
46
+ self._OP_RANGE_FILE_NAME
47
47
  )
48
48
  self._cpu_op_path = os.path.join(
49
49
  self._framework_path,
@@ -118,13 +118,13 @@ class FrameworkParser(BaseParser):
118
118
  return op_range_list
119
119
 
120
120
  first_step = min(
121
- op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP_ID.value]
121
+ op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP.value]
122
122
  for op in op_range_list
123
123
  )
124
124
  adjusted_step_list = [step - 1 + first_step for step in self._step_list]
125
125
  return [
126
126
  op for op in op_range_list
127
- if op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP_ID.value] in adjusted_step_list
127
+ if op[FileConstant.FIX_SIZE_DATA][OpRangeStructField.STEP.value] in adjusted_step_list
128
128
  ]
129
129
 
130
130
  def _parse_cpu_op_data(self) -> List[str]:
@@ -19,7 +19,7 @@ from collections import defaultdict
19
19
 
20
20
  from mindspore import context
21
21
  from mindspore import log as logger
22
- from mindspore.profiler.common.constant import EventConstant, TimelineLayerName, ProfilerLevel
22
+ from mindspore.profiler.common.constant import EventConstant, TimelineLayerName, ProfilerLevel, JitLevel
23
23
  from mindspore.profiler.analysis.parser.timeline_event.base_event import BaseEvent
24
24
  from mindspore.profiler.analysis.parser.timeline_event.timeline_event_pool import TimelineEventPool
25
25
  from mindspore.profiler.analysis.parser.timeline_event.flow_event import FlowStartEvent, FlowEndEvent
@@ -40,6 +40,7 @@ class AscendTimelineAssembler(BaseTimelineAssembler):
40
40
  super().__init__()
41
41
  self._profiler_level = kwargs.get("profiler_level")
42
42
  self._context_mode = kwargs.get("context_mode")
43
+ self._jit_level = kwargs.get("jit_level")
43
44
  self._init_creators()
44
45
 
45
46
  def _init_creators(self):
@@ -127,11 +128,13 @@ class AscendTimelineAssembler(BaseTimelineAssembler):
127
128
  """Create flow events between framework and hardware events."""
128
129
  acl_to_npu_flow_dict = self._msprof_creator.get_acl_to_npu_flow_dict()
129
130
  fwk_launch_op_list = self.trace_view_container.kernel_launch_op_event
130
- if not acl_to_npu_flow_dict:
131
+ # The graph mode O2 does not have the flow from CANN to hardware at each step
132
+ if not acl_to_npu_flow_dict and self._jit_level != JitLevel.GRAPH_LEVEL:
131
133
  logger.error("Cannot find connection between CANN layer and Ascend Hardware layer.")
132
134
  return []
133
- if not fwk_launch_op_list:
134
- logger.warning("Cannot find launch op in MindSpore framework. Please verify if it's in graph mode.")
135
+ # The graph model O2 does not have "KernelLaunch" or "LaunchTask" keywords
136
+ if not fwk_launch_op_list and self._jit_level != JitLevel.GRAPH_LEVEL:
137
+ logger.warning("Cannot find launch op in MindSpore framework.")
135
138
  return []
136
139
  if (set(acl_to_npu_flow_dict.keys()) != set(fwk_launch_op_list.keys()) and
137
140
  self._context_mode == context.PYNATIVE_MODE):
@@ -15,6 +15,7 @@ from collections import defaultdict
15
15
 
16
16
  from mindspore.profiler.analysis.parser.timeline_event.timeline_event_pool import TimelineEventPool
17
17
  from mindspore.profiler.analysis.parser.timeline_event.base_event import BaseEvent
18
+ from mindspore.profiler.common.constant import ProfilerStepNameConstant, TimelineLayerName
18
19
 
19
20
 
20
21
  class TraceViewContainer:
@@ -82,3 +83,24 @@ class TraceViewContainer:
82
83
  def get_all_pools(self) -> List[TimelineEventPool]:
83
84
  """Get all event pools."""
84
85
  return list(self.event_pools.values())
86
+
87
+ def get_step_id_time_dict(self) -> Dict:
88
+ """Get step id to time dict."""
89
+ # Retrieve all events from the trace container for the Mindspore timeline layer
90
+
91
+ mindspore_pool = self.get_pool_by_name(TimelineLayerName.MINDSPORE.value)
92
+ if not mindspore_pool:
93
+ return {}
94
+
95
+ events = mindspore_pool.get_all_events()
96
+
97
+ # Filter events that contain "ProfilerStep" and create a dictionary mapping (start_ts, end_ts) to step ID
98
+ step_id_to_time_dict = dict(sorted(
99
+ (
100
+ event.name.split("#")[-1], (event.ts, event.dur + event.ts)
101
+ )
102
+ for event in events
103
+ if ProfilerStepNameConstant.PROFILER_STEP in event.name
104
+ ))
105
+
106
+ return step_id_to_time_dict
@@ -43,10 +43,10 @@ class FwkTimelineCreator(BaseTimelineCreator):
43
43
  def _create_base_events(self, pool: TimelineEventPool, fwk_tlv_data: List[Dict]) -> None:
44
44
  """Create base events from framework TLV data."""
45
45
  for data in fwk_tlv_data:
46
- if data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_NS.value] == 0: # Filter abnormal data
46
+ if data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_TIME_NS.value] == 0: # Filter abnormal data
47
47
  continue
48
- if (data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_NS.value] ==
49
- data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.END_NS.value]): # dur == 0
48
+ if (data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.START_TIME_NS.value] ==
49
+ data[FileConstant.FIX_SIZE_DATA][OpRangeStructField.END_TIME_NS.value]): # dur == 0
50
50
  event = FwkInstantEvent(data)
51
51
  else:
52
52
  event = FwkCompleteEvent(data)
@@ -15,79 +15,235 @@
15
15
  """Framework event classes for timeline analysis."""
16
16
  from enum import Enum
17
17
  from decimal import Decimal
18
- from typing import Dict, Optional, List, Tuple
18
+ from typing import Dict, Optional, List
19
19
 
20
+ from mindspore import log as logger
20
21
  from mindspore.profiler.common.constant import EventConstant, FileConstant
21
22
  from mindspore.profiler.analysis.time_converter import TimeConverter
22
23
  from mindspore.profiler.analysis.parser.timeline_event.base_event import (
23
24
  BaseEvent,
24
25
  CompleteEvent,
25
26
  MetaEvent,
26
- InstantEvent
27
+ InstantEvent,
27
28
  )
28
29
 
29
30
 
31
+ class ProfilerStage(Enum):
32
+ """Profiler stage enumeration."""
33
+ DEFAULT = "Default"
34
+ PYTHON = "Python"
35
+ CAPTURE = "Capture"
36
+ RUN_GRAPH = "RunGraph"
37
+ RUN_GRAD = "RunGrad"
38
+ RUN_OP = "RunOp"
39
+ ASNUMPY = "Asnumpy"
40
+ COMPILE_GRAD_GRAPH = "CompileGradGraph"
41
+ WAIT_PIPELINE = "WaitPipeline"
42
+ SYNC_STREAM = "SyncStream"
43
+
44
+
45
+ class ProfilerModule(Enum):
46
+ """Profiler module enumeration."""
47
+ DEFAULT = "Default"
48
+ GRAPH_EXECUTOR_PY = "GraphExecutorPy"
49
+ RUNTIME_FRAMEWORK = "RuntimeFramework"
50
+ PYNATIVE_FRAMEWORK = "PynativeFramework"
51
+ KERNEL = "Kernel"
52
+ PYTHON = "Python"
53
+ CAPTURE = "Capture"
54
+ OTHER = "Other"
55
+
56
+
57
+ class ProfilerEvent(Enum):
58
+ """Profiler event enumeration."""
59
+ DEFAULT = "Default"
60
+ KERNEL_INFER = "KernelInfer"
61
+ KERNEL_RESIZE = "KernelResize"
62
+ KERNEL_INFER_AND_RESIZE = "KernelInferAndResize"
63
+ KERNEL_LAUNCH = "KernelLaunch"
64
+ KERNEL_LAUNCH_CALLBACK = "KernelLaunckCallback"
65
+ KERNEL_UPDATE = "KernelUpdate"
66
+ KERNEL_PREPARE_DATA = "KernelPrepareData"
67
+ GRAPH_LAUNCH = "GraphLaunch"
68
+ INPUT_PROCESS = "InputProcess"
69
+ OUTPUT_PROCESS = "OutputProcess"
70
+ WAIT_TASK_FINISH = "WaitTaskFinish"
71
+ PRE_LAUNCH = "PreLaunch"
72
+ POST_LAUNCH = "PostLaunch"
73
+ SEND_OUTPUT = "SendOutput"
74
+ MEMORY_ALLOC = "MemoryAlloc"
75
+ MEMORY_FREE = "MemoryFree"
76
+ COPY_DATA = "CopyData"
77
+ STREAM_SYNC = "StreamSync"
78
+ PROCESS_MULTI_STREAM = "ProcessMultiStream"
79
+ WAIT_KERNELS_INFER_FINISH = "WaitKernelsInferFinish"
80
+ WAIT_KERNELS_RESIZE_FINISH = "WaitKernelsResizeFinish"
81
+ WAIT_KERNELS_LAUNCH_FINISH = "WaitKernelsLaunchFinish"
82
+ # Inner event is not counted in the total time.
83
+ KERNEL_INFER_INNER = "KernelInferInner"
84
+ KERNEL_INFER_DATA_SYNC = "KernelInferDataSync"
85
+ KERNEL_RESIZE_INNER = "KernelResizeInner"
86
+ KERNEL_LAUNCH_INNER = "KernelLaunchInner"
87
+ BACKEND_GRAPH_RUN_INNER = "BackendGraphRunInner"
88
+ # PyNative Pipeline
89
+ RUN_OP = "RunOp"
90
+ PYNATIVE_FRONTEND_TASK = "PyNativeFrontendTask"
91
+ PYNATIVE_BACKEND_TASK = "PyNativeBackendTask"
92
+ PYNATIVE_DEVICE_TASK = "PyNativeDeviceTask"
93
+ PYNATIVE_LAUNCH_TASK = "PyNativeLaunchTask"
94
+ PYNATIVE_BPROP_TASK = "PyNativeBpropTask"
95
+ WAIT = "Wait"
96
+ # PyNative inner Event
97
+ PYNATIVE_GIL_ACQUIRE = "PyNativeGilAcquire"
98
+ PYNATIVE_CAST = "PyNativeCast"
99
+ PYNATIVE_INFER = "PyNativeInfer"
100
+ PYNATIVE_OP_COMPILE = "PyNativeOpCompile"
101
+ PYNATIVE_GRAD_EXPANDER = "PyNativeGradExpander"
102
+ PYNATIVE_GRAD_UPDATE_SENS = "PyNativeGradUpdateSens"
103
+ PYNATIVE_GRAD_CLEAR_TOP_CELL = "PyNativeGradClearTopCell"
104
+ PYNATIVE_GRAD_CLEAR_AUTO_GRAD_CELL = "PyNativeGradClearAutoGradCell"
105
+ # PyBoost
106
+ PYBOOST_INFER_OUTPUT = "PyBoostInferOutput"
107
+ PYBOOST_INFER_BY_OP_DEF = "PyBoostInferByOpDef"
108
+ PYBOOST_CREATE_OUTPUT_TENSOR = "PyBoostCreateOutputTensor"
109
+ PYBOOST_DEVICE_TASK = "PyBoostDeviceTask"
110
+ PYBOOST_MALLOC_INPUT = "PyBoostMallocInput"
111
+ PYBOOST_MALLOC_OUTPUT = "PyBoostMallocOutput"
112
+ PYBOOST_LAUNCH_ACLLNN = "PyBoostLaunchAclnn"
113
+ # pybind api
114
+ PYNATIVE_NEW_GRAPH = "PyNativeNewGraph"
115
+ PYNATIVE_END_GRAPH = "PyNativeEndGraph"
116
+ # Python
117
+ PYTHON_OBSERVED = "PythonObserved"
118
+ # Capture Event
119
+ CAPTURE_RUN_GRAPH = "CaptureRunGraph"
120
+ CAPTURE_PROCESS = "CaptureProcess"
121
+ CAPTURE_COMPILE = "CaptureCompile"
122
+ CAPTURE_GUARD = "CaptureGuard"
123
+ # AclNN
124
+ ACLNN_HIT_CACHE_STAGE_1 = "AclnnHitCacheStage1"
125
+ ACLNN_HIT_CACHE_STAGE_2 = "AclnnHitCacheStage2"
126
+ ACLNN_MISS_CACHE_STAGE_1 = "AclnnMissCacheStage1"
127
+ ACLNN_MISS_CACHE_STAGE_2 = "AclnnMissCacheStage2"
128
+ ACLNN_UPDATE_ADDRESS = "AclnnUpdateAddress"
129
+ ACLNN_RUN_OP = "AclnnRunOp"
130
+ # NoGraph grad
131
+ RUN_EXPANDER_FUNC = "RunExpanderFunc"
132
+ EMIT_OP = "EmitOp"
133
+ EXECUTE = "Execute"
134
+ RELEASE_RESOURCE = "ReleaseResource"
135
+ NATIVE_FUNC = "NativeFunc"
136
+
137
+
30
138
  class FwkFixSizeFormat:
31
139
  """Format definition for framework fixed-size data."""
32
140
 
33
- # Fixed size data format: 3 long long (q) + 6 unsigned long long (Q) + bool (?) + padding (b)
34
- OpRangeStruct = "<3q6Qb?"
141
+ OpRangeStruct = "<5Qi3Hb3?"
35
142
 
36
143
 
37
144
  class OpRangeStructField(Enum):
38
145
  """Field indices in operator range structure fixed-size data."""
39
- START_NS = 0
40
- END_NS = 1
41
- SEQUENCE_NUMBER = 2
42
- PROCESS_ID = 3
43
- START_THREAD_ID = 4
44
- END_THREAD_ID = 5
45
- FORWARD_THREAD_ID = 6
46
- ID = 7
47
- STEP_ID = 8
146
+
147
+ THREAD_ID = 0
148
+ FLOW_ID = 1
149
+ STEP = 2
150
+ START_TIME_NS = 3
151
+ END_TIME_NS = 4
152
+ PROCESS_ID = 5
153
+ MODULE_INDEX = 6
154
+ EVENT_INDEX = 7
155
+ STAGE_INDEX = 8
48
156
  LEVEL = 9
49
- IS_ASYNC = 10
50
-
51
-
52
- class FwkArgsDecoder:
53
- """Decoder for framework event arguments in TLV (Type-Length-Value) format."""
54
- TLV_TYPES = {
55
- EventConstant.OP_NAME: 3,
56
- EventConstant.INPUT_SHAPES: 5,
57
- EventConstant.INPUT_DTYPES: 4,
58
- EventConstant.CALL_STACK: 6,
59
- EventConstant.MODULE_HIERARCHY: 7,
60
- EventConstant.FLOPS: 8,
61
- EventConstant.CUSTOM_INFO: 9
62
- }
63
-
64
- @classmethod
65
- def decode(cls, origin_data: Dict, fix_size_data: Tuple) -> Dict:
66
- """Decode event arguments from raw data."""
67
- args = {
68
- EventConstant.SEQUENCE_NUMBER: int(fix_size_data[OpRangeStructField.SEQUENCE_NUMBER.value]),
69
- EventConstant.FORWARD_THREAD_ID: int(fix_size_data[OpRangeStructField.FORWARD_THREAD_ID.value])
70
- }
71
-
72
- for field_name, type_id in cls.TLV_TYPES.items():
73
- if field_name == EventConstant.OP_NAME or type_id not in origin_data:
74
- continue
75
- value = origin_data.get(type_id)
76
- if field_name in {EventConstant.INPUT_SHAPES, EventConstant.INPUT_DTYPES, EventConstant.CALL_STACK}:
77
- args[field_name] = value.replace("|", "\r\n")
78
- elif field_name == EventConstant.CUSTOM_INFO and value:
79
- pairs = [pair.split(':') for pair in value.split(';') if pair]
80
- info_dict = {k: v for k, v in pairs[0:2] if len(pairs) >= 2}
81
- args[field_name] = info_dict
82
- else:
83
- args[field_name] = value
84
-
85
- return args
86
-
87
-
88
- class FwkCompleteEvent(CompleteEvent):
157
+ IS_GRAPH_DATA = 10
158
+ IS_STAGE = 11
159
+ IS_STACK = 12
160
+ NAME = 13
161
+ FULL_NAME = 14
162
+ MODULE_GRAPH = 15
163
+ EVENT_GRAPH = 16
164
+ CUSTOM_INFO = 17
165
+
166
+
167
+ class FwkProfileDataField:
168
+ """Framework profile data field."""
169
+
170
+ @staticmethod
171
+ def _get_enum_value(enum_class, index: int, enum_type: str) -> str:
172
+ """
173
+ Get enum value by index.
174
+ Args:
175
+ enum_class: The enum class to get value from.
176
+ index: The index of the enum value.
177
+ enum_type: The type name of enum for logging.
178
+ Returns:
179
+ The enum value string.
180
+ """
181
+ try:
182
+ return list(enum_class)[index].value
183
+ except IndexError:
184
+ logger.warning(f"Invalid {enum_type} index: {index}")
185
+ return enum_class.DEFAULT.value
186
+
187
+ @staticmethod
188
+ def get_stage_value(index: int) -> str:
189
+ """Get stage value."""
190
+ return FwkProfileDataField._get_enum_value(ProfilerStage, index, "stage")
191
+
192
+ @staticmethod
193
+ def get_module_value(index: int) -> str:
194
+ """Get module value."""
195
+ return FwkProfileDataField._get_enum_value(ProfilerModule, index, "module")
196
+
197
+ @staticmethod
198
+ def get_event_value(index: int) -> str:
199
+ """Get event value."""
200
+ return FwkProfileDataField._get_enum_value(ProfilerEvent, index, "event")
201
+
202
+
203
+ class FwkEventMixin:
204
+ """Mixin class for common framework event functionality."""
205
+
206
+ def get_name(self) -> str:
207
+ """Get operator name."""
208
+ op_name = self._origin_data.get(OpRangeStructField.NAME.value, "")
209
+ is_stack = self.fix_size_data[OpRangeStructField.IS_STACK.value]
210
+ if is_stack:
211
+ return op_name
212
+
213
+ is_graph_data = self.fix_size_data[OpRangeStructField.IS_GRAPH_DATA.value]
214
+ is_stage = self.fix_size_data[OpRangeStructField.IS_STAGE.value]
215
+ full_name = self._origin_data.get(OpRangeStructField.FULL_NAME.value, "")
216
+
217
+ name = ""
218
+ if is_graph_data:
219
+ module_graph = self._origin_data.get(OpRangeStructField.MODULE_GRAPH.value, "")
220
+ event_graph = self._origin_data.get(OpRangeStructField.EVENT_GRAPH.value, "")
221
+ name = f"{module_graph}::{event_graph}::{op_name}"
222
+ elif is_stage:
223
+ stage_index = self.fix_size_data[OpRangeStructField.STAGE_INDEX.value]
224
+ name = FwkProfileDataField.get_stage_value(stage_index)
225
+ elif op_name != "flow":
226
+ module_index = self.fix_size_data[OpRangeStructField.MODULE_INDEX.value]
227
+ event_index = self.fix_size_data[OpRangeStructField.EVENT_INDEX.value]
228
+ module_name = FwkProfileDataField.get_module_value(module_index)
229
+ event_name = FwkProfileDataField.get_event_value(event_index)
230
+ name = f"{module_name}::{event_name}::{full_name}"
231
+ else:
232
+ name = full_name
233
+ return name
234
+
235
+ def get_custom_info(self) -> str:
236
+ """Get custom information."""
237
+ value = self._origin_data.get(OpRangeStructField.CUSTOM_INFO.value, None)
238
+ if value is None:
239
+ return ""
240
+ pairs = [pair.split(":") for pair in value.split(";") if pair]
241
+ info_dict = {k: v for k, v in pairs[0:2] if len(pairs) >= 2}
242
+ return str(info_dict)
243
+
244
+
245
+ class FwkCompleteEvent(FwkEventMixin, CompleteEvent):
89
246
  """Framework complete event with duration."""
90
- _args_decoder = FwkArgsDecoder()
91
247
 
92
248
  def __init__(self, data: Dict):
93
249
  """Initialize framework complete event."""
@@ -96,7 +252,7 @@ class FwkCompleteEvent(CompleteEvent):
96
252
  self._ts_cache = None
97
253
  self._te_cache = None
98
254
  self._dur_cache = None
99
- self._args_cache = {}
255
+ self._name_cache = None
100
256
  self._parent: Optional[BaseEvent] = None
101
257
  self._children: List[BaseEvent] = []
102
258
 
@@ -118,14 +274,14 @@ class FwkCompleteEvent(CompleteEvent):
118
274
  @property
119
275
  def ts_raw(self) -> int:
120
276
  """Get raw start timestamp."""
121
- return self.fix_size_data[OpRangeStructField.START_NS.value]
277
+ return self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
122
278
 
123
279
  @property
124
280
  def ts(self) -> Decimal:
125
281
  """Get start time in us."""
126
282
  if not self._ts_cache:
127
283
  self._ts_cache = TimeConverter.convert_syscnt_to_timestamp_us(
128
- self.fix_size_data[OpRangeStructField.START_NS.value]
284
+ self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
129
285
  )
130
286
  return self._ts_cache
131
287
 
@@ -134,7 +290,7 @@ class FwkCompleteEvent(CompleteEvent):
134
290
  """Get end time in us."""
135
291
  if not self._te_cache:
136
292
  self._te_cache = TimeConverter.convert_syscnt_to_timestamp_us(
137
- self.fix_size_data[OpRangeStructField.END_NS.value]
293
+ self.fix_size_data[OpRangeStructField.END_TIME_NS.value]
138
294
  )
139
295
  return self._te_cache
140
296
 
@@ -153,63 +309,67 @@ class FwkCompleteEvent(CompleteEvent):
153
309
  @property
154
310
  def tid(self) -> int:
155
311
  """Get thread ID."""
156
- return int(self.fix_size_data[OpRangeStructField.START_THREAD_ID.value])
312
+ return int(self.fix_size_data[OpRangeStructField.THREAD_ID.value])
157
313
 
158
314
  @property
159
315
  def id(self) -> int:
160
316
  """Get event ID."""
161
- return int(self.fix_size_data[OpRangeStructField.ID.value])
317
+ return int(self.fix_size_data[OpRangeStructField.FLOW_ID.value])
162
318
 
163
319
  @property
164
320
  def name(self) -> str:
165
321
  """Get operator name."""
166
- return str(self._origin_data.get(self._args_decoder.TLV_TYPES.get(EventConstant.OP_NAME), ""))
322
+ if not self._name_cache:
323
+ self._name_cache = self.get_name()
324
+ return self._name_cache
167
325
 
168
326
  @property
169
327
  def step(self) -> int:
170
328
  """Get step ID."""
171
- return int(self.fix_size_data[OpRangeStructField.STEP_ID.value])
329
+ return int(self.fix_size_data[OpRangeStructField.STEP.value])
330
+
331
+ @property
332
+ def is_stack(self) -> bool:
333
+ """Get is stack."""
334
+ return bool(self.fix_size_data[OpRangeStructField.IS_STACK.value])
335
+
336
+ @property
337
+ def cat(self) -> str:
338
+ """Get event category."""
339
+ return EventConstant.STACK_EVENT_CAT if self.is_stack else ""
172
340
 
173
341
  @property
174
342
  def level(self) -> int:
175
343
  """Get event level."""
176
344
  return int(self.fix_size_data[OpRangeStructField.LEVEL.value])
177
345
 
178
- @property
179
- def args(self) -> Dict:
180
- """Get decoded event arguments."""
181
- if not self._args_cache:
182
- self._args_cache = self._args_decoder.decode(self._origin_data, self.fix_size_data)
183
- return self._args_cache
184
-
185
346
  @property
186
347
  def custom_info(self) -> str:
187
348
  """Get custom information."""
188
- return str(self.args.get(EventConstant.CUSTOM_INFO, ''))
349
+ return self.get_custom_info()
189
350
 
190
351
 
191
- class FwkInstantEvent(InstantEvent):
352
+ class FwkInstantEvent(FwkEventMixin, InstantEvent):
192
353
  """Framework instant event without duration."""
193
- _args_decoder = FwkArgsDecoder()
194
354
 
195
355
  def __init__(self, data: Dict):
196
356
  """Initialize framework instant event."""
197
357
  super().__init__(data)
198
358
  self.fix_size_data = self._origin_data[FileConstant.FIX_SIZE_DATA]
199
359
  self._ts_cache = None
200
- self._args_cache = {}
360
+ self._name_cache = None
201
361
 
202
362
  @property
203
363
  def ts_raw(self) -> int:
204
364
  """Get raw start timestamp."""
205
- return self.fix_size_data[OpRangeStructField.START_NS.value]
365
+ return self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
206
366
 
207
367
  @property
208
368
  def ts(self) -> Decimal:
209
369
  """Get time in us."""
210
370
  if not self._ts_cache:
211
371
  self._ts_cache = TimeConverter.convert_syscnt_to_timestamp_us(
212
- self.fix_size_data[OpRangeStructField.START_NS.value]
372
+ self.fix_size_data[OpRangeStructField.START_TIME_NS.value]
213
373
  )
214
374
  return self._ts_cache
215
375
 
@@ -221,34 +381,29 @@ class FwkInstantEvent(InstantEvent):
221
381
  @property
222
382
  def tid(self) -> int:
223
383
  """Get thread ID."""
224
- return int(self.fix_size_data[OpRangeStructField.START_THREAD_ID.value])
384
+ return int(self.fix_size_data[OpRangeStructField.THREAD_ID.value])
225
385
 
226
386
  @property
227
387
  def name(self) -> str:
228
388
  """Get operator name."""
229
- return str(self._origin_data.get(self._args_decoder.TLV_TYPES.get(EventConstant.OP_NAME), ""))
389
+ if not self._name_cache:
390
+ self._name_cache = self.get_name()
391
+ return self._name_cache
230
392
 
231
393
  @property
232
394
  def step(self) -> int:
233
395
  """Get step ID."""
234
- return int(self.fix_size_data[OpRangeStructField.STEP_ID.value])
396
+ return int(self.fix_size_data[OpRangeStructField.STEP.value])
235
397
 
236
398
  @property
237
399
  def level(self) -> int:
238
400
  """Get event level."""
239
401
  return int(self.fix_size_data[OpRangeStructField.LEVEL.value])
240
402
 
241
- @property
242
- def args(self) -> Dict:
243
- """Get decoded event arguments."""
244
- if not self._args_cache:
245
- self._args_cache = self._args_decoder.decode(self._origin_data, self.fix_size_data)
246
- return self._args_cache
247
-
248
403
  @property
249
404
  def custom_info(self) -> str:
250
405
  """Get custom information."""
251
- return str(self.args.get(EventConstant.CUSTOM_INFO, ''))
406
+ return self.get_custom_info()
252
407
 
253
408
 
254
409
  class FwkMetaEvent(MetaEvent):