mindspore 2.6.0__cp39-cp39-win_amd64.whl → 2.7.0rc1__cp39-cp39-win_amd64.whl

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

Potentially problematic release.


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

Files changed (380) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +1 -1
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_checkparam.py +40 -9
  7. mindspore/{_deprecated → _extends/optimize}/__init__.py +9 -3
  8. mindspore/_extends/optimize/cell_utils.py +96 -0
  9. mindspore/_extends/parse/__init__.py +2 -2
  10. mindspore/_extends/parse/compile_config.py +44 -22
  11. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +1 -1
  12. mindspore/_extends/parse/parser.py +36 -61
  13. mindspore/_extends/parse/resources.py +39 -0
  14. mindspore/_extends/parse/standard_method.py +32 -13
  15. mindspore/_extends/parse/trope.py +8 -1
  16. mindspore/_extends/pijit/__init__.py +1 -2
  17. mindspore/amp.py +4 -4
  18. mindspore/avcodec-59.dll +0 -0
  19. mindspore/avdevice-59.dll +0 -0
  20. mindspore/avfilter-8.dll +0 -0
  21. mindspore/avformat-59.dll +0 -0
  22. mindspore/avutil-57.dll +0 -0
  23. mindspore/boost/adasum.py +1 -1
  24. mindspore/boost/boost_cell_wrapper.py +4 -4
  25. mindspore/common/__init__.py +27 -2
  26. mindspore/common/_grad_function.py +2 -1
  27. mindspore/common/_pijit_context.py +28 -7
  28. mindspore/common/_stub_tensor.py +1 -209
  29. mindspore/common/_tensor_cpp_method.py +1 -1
  30. mindspore/common/_tensor_docs.py +76 -15
  31. mindspore/common/api.py +193 -112
  32. mindspore/common/dtype.py +21 -11
  33. mindspore/common/dump.py +10 -15
  34. mindspore/common/generator.py +2 -3
  35. mindspore/common/hook_handle.py +11 -2
  36. mindspore/common/jit_config.py +1 -1
  37. mindspore/common/jit_trace.py +84 -105
  38. mindspore/common/parameter.py +26 -12
  39. mindspore/common/recompute.py +3 -3
  40. mindspore/common/sparse_tensor.py +0 -3
  41. mindspore/common/symbol.py +0 -1
  42. mindspore/common/tensor.py +48 -83
  43. mindspore/communication/_comm_helper.py +46 -4
  44. mindspore/communication/management.py +79 -7
  45. mindspore/context.py +38 -23
  46. mindspore/dataset/core/config.py +3 -3
  47. mindspore/dataset/engine/datasets.py +20 -7
  48. mindspore/dataset/engine/datasets_user_defined.py +32 -2
  49. mindspore/dataset/engine/iterators.py +2 -2
  50. mindspore/dataset/engine/obs/config_loader.py +2 -2
  51. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +8 -0
  52. mindspore/dataset/transforms/py_transforms.py +7 -3
  53. mindspore/dataset/transforms/transforms.py +7 -3
  54. mindspore/dataset/vision/validators.py +1 -0
  55. mindspore/device_context/ascend/device.py +1 -1
  56. mindspore/device_context/gpu/__init__.py +2 -2
  57. mindspore/device_context/gpu/device.py +1 -1
  58. mindspore/device_context/gpu/op_precision.py +4 -2
  59. mindspore/device_context/gpu/op_tuning.py +6 -3
  60. mindspore/device_manager.py +16 -9
  61. mindspore/dnnl.dll +0 -0
  62. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +3 -5
  63. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  64. mindspore/experimental/optim/adadelta.py +13 -20
  65. mindspore/experimental/optim/adagrad.py +15 -22
  66. mindspore/experimental/optim/adam.py +17 -24
  67. mindspore/experimental/optim/adamax.py +14 -22
  68. mindspore/experimental/optim/adamw.py +28 -34
  69. mindspore/experimental/optim/asgd.py +15 -25
  70. mindspore/experimental/optim/lr_scheduler.py +27 -45
  71. mindspore/experimental/optim/nadam.py +14 -24
  72. mindspore/experimental/optim/optimizer.py +13 -23
  73. mindspore/experimental/optim/radam.py +18 -24
  74. mindspore/experimental/optim/rmsprop.py +14 -25
  75. mindspore/experimental/optim/rprop.py +15 -26
  76. mindspore/experimental/optim/sgd.py +9 -19
  77. mindspore/hal/__init__.py +4 -4
  78. mindspore/hal/contiguous_tensors_handle.py +2 -2
  79. mindspore/hal/memory.py +1 -0
  80. mindspore/include/api/cell.h +37 -1
  81. mindspore/include/api/delegate.h +10 -0
  82. mindspore/include/api/model.h +3 -0
  83. mindspore/include/api/types.h +2 -2
  84. mindspore/include/c_api/model_c.h +0 -58
  85. mindspore/include/c_api/tensor_c.h +0 -26
  86. mindspore/include/dataset/vision_ascend.h +1 -1
  87. mindspore/jpeg62.dll +0 -0
  88. mindspore/mindrecord/tools/cifar10.py +60 -11
  89. mindspore/mindrecord/tools/cifar10_to_mr.py +5 -0
  90. mindspore/mindspore_backend_common.dll +0 -0
  91. mindspore/mindspore_backend_manager.dll +0 -0
  92. mindspore/mindspore_common.dll +0 -0
  93. mindspore/mindspore_core.dll +0 -0
  94. mindspore/mindspore_cpu_res_manager.dll +0 -0
  95. mindspore/mindspore_dump.dll +0 -0
  96. mindspore/mindspore_frontend.dll +0 -0
  97. mindspore/mindspore_glog.dll +0 -0
  98. mindspore/mindspore_memory_pool.dll +0 -0
  99. mindspore/mindspore_ms_backend.dll +0 -0
  100. mindspore/mindspore_ops.dll +0 -0
  101. mindspore/mindspore_ops_host.dll +0 -0
  102. mindspore/mindspore_ops_kernel_common.dll +0 -0
  103. mindspore/mindspore_profiler.dll +0 -0
  104. mindspore/mindspore_pyboost.dll +0 -0
  105. mindspore/mindspore_pynative.dll +0 -0
  106. mindspore/mindspore_res_manager.dll +0 -0
  107. mindspore/mindspore_runtime_pipeline.dll +0 -0
  108. mindspore/mint/__init__.py +4 -44
  109. mindspore/mint/distributed/__init__.py +1 -0
  110. mindspore/mint/distributed/distributed.py +208 -5
  111. mindspore/mint/nn/__init__.py +1 -1
  112. mindspore/mint/nn/functional.py +53 -6
  113. mindspore/mint/nn/layer/_functions.py +164 -294
  114. mindspore/mint/nn/layer/activation.py +8 -6
  115. mindspore/mint/nn/layer/conv.py +122 -98
  116. mindspore/mint/nn/layer/normalization.py +8 -22
  117. mindspore/mint/optim/adam.py +19 -18
  118. mindspore/mint/optim/adamw.py +14 -8
  119. mindspore/mint/optim/sgd.py +5 -5
  120. mindspore/nn/cell.py +325 -499
  121. mindspore/nn/grad/cell_grad.py +11 -12
  122. mindspore/nn/layer/activation.py +32 -34
  123. mindspore/nn/layer/basic.py +67 -64
  124. mindspore/nn/layer/channel_shuffle.py +4 -4
  125. mindspore/nn/layer/combined.py +4 -2
  126. mindspore/nn/layer/conv.py +86 -85
  127. mindspore/nn/layer/dense.py +9 -7
  128. mindspore/nn/layer/embedding.py +50 -52
  129. mindspore/nn/layer/image.py +37 -39
  130. mindspore/nn/layer/math.py +111 -112
  131. mindspore/nn/layer/normalization.py +56 -44
  132. mindspore/nn/layer/pooling.py +58 -63
  133. mindspore/nn/layer/rnn_cells.py +33 -33
  134. mindspore/nn/layer/rnns.py +56 -56
  135. mindspore/nn/layer/thor_layer.py +74 -73
  136. mindspore/nn/layer/transformer.py +11 -1
  137. mindspore/nn/learning_rate_schedule.py +20 -20
  138. mindspore/nn/loss/loss.py +79 -81
  139. mindspore/nn/optim/adam.py +1 -1
  140. mindspore/nn/optim/adasum.py +2 -2
  141. mindspore/nn/optim/optimizer.py +1 -1
  142. mindspore/nn/optim/thor.py +2 -2
  143. mindspore/nn/probability/distribution/exponential.py +2 -1
  144. mindspore/nn/probability/distribution/poisson.py +2 -1
  145. mindspore/nn/sparse/sparse.py +3 -3
  146. mindspore/nn/wrap/cell_wrapper.py +34 -37
  147. mindspore/nn/wrap/grad_reducer.py +37 -37
  148. mindspore/nn/wrap/loss_scale.py +72 -74
  149. mindspore/numpy/array_creations.py +5 -5
  150. mindspore/numpy/fft.py +1 -1
  151. mindspore/numpy/math_ops.py +1 -1
  152. mindspore/opencv_core452.dll +0 -0
  153. mindspore/opencv_imgcodecs452.dll +0 -0
  154. mindspore/opencv_imgproc452.dll +0 -0
  155. mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
  156. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
  157. mindspore/ops/_vmap/vmap_array_ops.py +6 -13
  158. mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
  159. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +17 -8
  160. mindspore/ops/auto_generate/gen_extend_func.py +1 -51
  161. mindspore/ops/auto_generate/gen_ops_def.py +463 -257
  162. mindspore/ops/auto_generate/gen_ops_prim.py +1127 -885
  163. mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
  164. mindspore/ops/composite/__init__.py +10 -0
  165. mindspore/ops/composite/base.py +8 -4
  166. mindspore/ops/composite/multitype_ops/__init__.py +12 -1
  167. mindspore/ops/composite/multitype_ops/_compile_utils.py +132 -108
  168. mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
  169. mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
  170. mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
  171. mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
  172. mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
  173. mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
  174. mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
  175. mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
  176. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
  177. mindspore/ops/function/__init__.py +3 -1
  178. mindspore/ops/function/_add_attr_func.py +11 -6
  179. mindspore/ops/function/array_func.py +7 -94
  180. mindspore/ops/function/debug_func.py +4 -3
  181. mindspore/ops/function/grad/grad_func.py +1 -1
  182. mindspore/ops/function/math_func.py +21 -367
  183. mindspore/ops/function/nn_func.py +26 -41
  184. mindspore/ops/function/other_func.py +4 -1
  185. mindspore/ops/function/random_func.py +31 -4
  186. mindspore/ops/functional.py +0 -2
  187. mindspore/ops/functional_overload.py +463 -6
  188. mindspore/ops/op_info_register.py +21 -0
  189. mindspore/ops/operations/__init__.py +5 -2
  190. mindspore/ops/operations/_custom_ops_utils.py +675 -8
  191. mindspore/ops/operations/_inner_ops.py +3 -6
  192. mindspore/ops/operations/_sequence_ops.py +1 -1
  193. mindspore/ops/operations/comm_ops.py +185 -26
  194. mindspore/ops/operations/custom_ops.py +235 -172
  195. mindspore/ops/operations/debug_ops.py +55 -4
  196. mindspore/ops/operations/image_ops.py +13 -13
  197. mindspore/ops/operations/manually_defined/ops_def.py +15 -16
  198. mindspore/ops/operations/math_ops.py +3 -4
  199. mindspore/ops/operations/nn_ops.py +5 -6
  200. mindspore/ops/primitive.py +6 -10
  201. mindspore/ops/tensor_method.py +36 -4
  202. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
  203. mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
  204. mindspore/ops_generate/api/functions_cc_generator.py +58 -10
  205. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
  206. mindspore/ops_generate/common/base_generator.py +14 -0
  207. mindspore/ops_generate/common/gen_constants.py +7 -2
  208. mindspore/ops_generate/common/gen_utils.py +0 -19
  209. mindspore/ops_generate/common/op_proto.py +11 -4
  210. mindspore/ops_generate/common/template.py +88 -11
  211. mindspore/ops_generate/gen_ops.py +1 -1
  212. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
  213. mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
  214. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
  215. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
  216. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
  217. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
  218. mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -0
  219. mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
  220. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
  221. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
  222. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
  223. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
  224. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
  225. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
  226. mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
  227. mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
  228. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
  229. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
  230. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
  231. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
  232. mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
  233. mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
  234. mindspore/parallel/_auto_parallel_context.py +4 -2
  235. mindspore/parallel/_cell_wrapper.py +106 -40
  236. mindspore/parallel/_parallel_serialization.py +1 -1
  237. mindspore/parallel/_ps_context.py +4 -6
  238. mindspore/parallel/_tensor.py +167 -12
  239. mindspore/parallel/_transformer/moe.py +1 -1
  240. mindspore/parallel/_transformer/transformer.py +13 -8
  241. mindspore/parallel/auto_parallel.py +12 -5
  242. mindspore/parallel/checkpoint_convert.py +3 -3
  243. mindspore/parallel/checkpoint_transform.py +3 -1
  244. mindspore/parallel/cluster/process_entity/_api.py +84 -48
  245. mindspore/parallel/cluster/process_entity/_utils.py +95 -7
  246. mindspore/parallel/cluster/run.py +43 -4
  247. mindspore/parallel/function/__init__.py +8 -1
  248. mindspore/parallel/function/reshard_func.py +1 -1
  249. mindspore/parallel/nn/__init__.py +15 -2
  250. mindspore/parallel/nn/parallel_cell_wrapper.py +9 -10
  251. mindspore/parallel/nn/parallel_grad_reducer.py +7 -6
  252. mindspore/parallel/shard.py +2 -2
  253. mindspore/parallel/transform_safetensors.py +462 -174
  254. mindspore/profiler/__init__.py +2 -1
  255. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
  256. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
  257. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +3 -0
  258. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
  259. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  260. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
  261. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
  262. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
  263. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
  264. mindspore/profiler/analysis/task_manager.py +1 -1
  265. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
  266. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
  267. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +42 -22
  268. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
  269. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
  270. mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
  271. mindspore/profiler/common/constant.py +16 -0
  272. mindspore/profiler/common/profiler_context.py +25 -27
  273. mindspore/profiler/common/profiler_info.py +0 -16
  274. mindspore/profiler/common/profiler_op_analyse.py +235 -0
  275. mindspore/profiler/common/profiler_output_path.py +23 -8
  276. mindspore/profiler/common/profiler_parameters.py +128 -35
  277. mindspore/profiler/dynamic_profile/__init__.py +0 -0
  278. mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
  279. mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
  280. mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
  281. mindspore/profiler/dynamic_profiler.py +305 -314
  282. mindspore/profiler/envprofiler.py +12 -7
  283. mindspore/profiler/experimental_config.py +96 -6
  284. mindspore/profiler/mstx.py +33 -12
  285. mindspore/profiler/platform/__init__.py +2 -3
  286. mindspore/profiler/platform/npu_profiler.py +29 -19
  287. mindspore/profiler/profiler.py +35 -19
  288. mindspore/profiler/profiler_action_controller.py +64 -76
  289. mindspore/profiler/schedule.py +10 -4
  290. mindspore/rewrite/common/config.py +1 -0
  291. mindspore/rewrite/common/namer.py +1 -0
  292. mindspore/rewrite/common/namespace.py +1 -0
  293. mindspore/rewrite/node/node.py +31 -11
  294. mindspore/rewrite/parsers/assign_parser.py +1 -1
  295. mindspore/rewrite/symbol_tree/symbol_tree.py +1 -1
  296. mindspore/run_check/_check_version.py +7 -10
  297. mindspore/runtime/__init__.py +5 -5
  298. mindspore/runtime/event.py +10 -4
  299. mindspore/runtime/executor.py +60 -45
  300. mindspore/runtime/memory.py +21 -30
  301. mindspore/runtime/thread_bind_core.py +298 -164
  302. mindspore/safeguard/rewrite_obfuscation.py +12 -13
  303. mindspore/swresample-4.dll +0 -0
  304. mindspore/swscale-6.dll +0 -0
  305. mindspore/tinyxml2.dll +0 -0
  306. mindspore/train/_utils.py +6 -2
  307. mindspore/train/amp.py +43 -20
  308. mindspore/train/callback/__init__.py +5 -5
  309. mindspore/train/callback/_checkpoint.py +3 -6
  310. mindspore/train/callback/_flops_collector.py +1 -1
  311. mindspore/train/callback/_landscape.py +0 -1
  312. mindspore/train/callback/_train_fault_tolerance.py +71 -13
  313. mindspore/train/data_sink.py +11 -2
  314. mindspore/train/dataset_helper.py +9 -0
  315. mindspore/train/model.py +51 -33
  316. mindspore/train/serialization.py +133 -111
  317. mindspore/train/summary/summary_record.py +13 -2
  318. mindspore/turbojpeg.dll +0 -0
  319. mindspore/utils/__init__.py +3 -2
  320. mindspore/utils/dryrun.py +0 -6
  321. mindspore/utils/runtime_execution_order_check.py +162 -78
  322. mindspore/utils/sdc_detect.py +68 -0
  323. mindspore/utils/utils.py +6 -9
  324. mindspore/version.py +1 -1
  325. {mindspore-2.6.0.dist-info → mindspore-2.7.0rc1.dist-info}/METADATA +5 -4
  326. {mindspore-2.6.0.dist-info → mindspore-2.7.0rc1.dist-info}/RECORD +329 -367
  327. mindspore/_deprecated/jit.py +0 -198
  328. mindspore/experimental/es/__init__.py +0 -22
  329. mindspore/experimental/es/embedding_service.py +0 -891
  330. mindspore/experimental/es/embedding_service_layer.py +0 -581
  331. mindspore/profiler/parser/__init__.py +0 -14
  332. mindspore/profiler/parser/aicpu_data_parser.py +0 -272
  333. mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
  334. mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
  335. mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
  336. mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
  337. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
  338. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
  339. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
  340. mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
  341. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
  342. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
  343. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
  344. mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
  345. mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
  346. mindspore/profiler/parser/ascend_flops_generator.py +0 -116
  347. mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
  348. mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
  349. mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
  350. mindspore/profiler/parser/ascend_memory_generator.py +0 -185
  351. mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
  352. mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
  353. mindspore/profiler/parser/ascend_op_generator.py +0 -334
  354. mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
  355. mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
  356. mindspore/profiler/parser/base_timeline_generator.py +0 -483
  357. mindspore/profiler/parser/container.py +0 -229
  358. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
  359. mindspore/profiler/parser/flops_parser.py +0 -531
  360. mindspore/profiler/parser/framework_enum.py +0 -111
  361. mindspore/profiler/parser/framework_parser.py +0 -464
  362. mindspore/profiler/parser/framework_struct.py +0 -61
  363. mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
  364. mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
  365. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
  366. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
  367. mindspore/profiler/parser/hccl_parser.py +0 -573
  368. mindspore/profiler/parser/hwts_log_parser.py +0 -122
  369. mindspore/profiler/parser/integrator.py +0 -526
  370. mindspore/profiler/parser/memory_usage_parser.py +0 -277
  371. mindspore/profiler/parser/minddata_analyzer.py +0 -800
  372. mindspore/profiler/parser/minddata_parser.py +0 -186
  373. mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
  374. mindspore/profiler/parser/op_intermediate_parser.py +0 -149
  375. mindspore/profiler/parser/optime_parser.py +0 -250
  376. mindspore/profiler/parser/profiler_info.py +0 -213
  377. mindspore/profiler/parser/step_trace_parser.py +0 -666
  378. {mindspore-2.6.0.dist-info → mindspore-2.7.0rc1.dist-info}/WHEEL +0 -0
  379. {mindspore-2.6.0.dist-info → mindspore-2.7.0rc1.dist-info}/entry_points.txt +0 -0
  380. {mindspore-2.6.0.dist-info → mindspore-2.7.0rc1.dist-info}/top_level.txt +0 -0
@@ -22,6 +22,7 @@ from mindspore.profiler.common.constant import (
22
22
  AicoreMetrics,
23
23
  ProfilerActivity,
24
24
  ExportType,
25
+ HostSystem
25
26
  )
26
27
  from mindspore.profiler.common.profiler_parameters import ProfilerParameters
27
28
 
@@ -105,8 +106,12 @@ class EnvProfiler:
105
106
  for param, (_, default_value) in ProfilerParameters.PARAMS.items():
106
107
  if param in options and param not in cls.NOT_SUPPORTED_PARAMS:
107
108
  if param == "activities" and isinstance(options[param], list):
108
- params[param] = cls._convert_activities_to_list(
109
- options[param], default_value
109
+ params[param] = cls._convert_enums_to_list(
110
+ options[param], default_value, ProfilerActivity
111
+ )
112
+ elif param == "host_sys" and isinstance(options[param], list):
113
+ params[param] = cls._convert_enums_to_list(
114
+ options[param], default_value, HostSystem
110
115
  )
111
116
  elif param == "aic_metrics":
112
117
  params[param] = cls._convert_option_to_enum_value(
@@ -125,15 +130,15 @@ class EnvProfiler:
125
130
  return params
126
131
 
127
132
  @classmethod
128
- def _convert_activities_to_list(cls, activities, default_value):
133
+ def _convert_enums_to_list(cls, values, default_value, enum_class):
129
134
  """
130
- Convert the activities to the list.
135
+ Convert the enums to the list.
131
136
  """
132
137
  res = []
133
- for activity in activities:
138
+ for value in values:
134
139
  res.append(
135
140
  cls._convert_option_to_enum_value(
136
- ProfilerActivity, activity, default_value
141
+ enum_class, value, default_value
137
142
  )
138
143
  )
139
144
  # remove duplicate
@@ -146,7 +151,7 @@ class EnvProfiler:
146
151
  """
147
152
  res = []
148
153
  for export_type in export_types:
149
- if export_type != "text" and export_type != "db":
154
+ if export_type not in ("text", "db"):
150
155
  logger.warning(
151
156
  f"The value '{export_type}' of parameter '{ExportType.__name__}' is invalid, "
152
157
  f"use default value '{default_value}' instead."
@@ -14,10 +14,10 @@
14
14
  # ============================================================================
15
15
  """Experimental config file."""
16
16
 
17
- from mindspore.profiler.common.constant import ProfilerLevel, AicoreMetrics
18
-
19
17
  __all__ = ["_ExperimentalConfig"]
20
18
 
19
+ from mindspore.profiler.common.constant import ProfilerLevel, AicoreMetrics
20
+
21
21
 
22
22
  class _ExperimentalConfig:
23
23
  r"""
@@ -58,7 +58,7 @@ class _ExperimentalConfig:
58
58
  - AicoreMetrics.MemoryAccess: Statistics on storage access bandwidth and storage capacity of main
59
59
  storage and l2 cache etc.
60
60
  l2_cache (bool, optional): (Ascend only) Whether to collect l2 cache data, collect when True.
61
- Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder.In O2 mode,
61
+ Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder. In GE backend,
62
62
  only wait and skip_first parameters in schedule configuration can be set to 0.
63
63
  mstx (bool, optional): (Ascend only) Whether to collect light weight profiling data, collect when True.
64
64
  Default: ``False`` .
@@ -71,6 +71,38 @@ class _ExperimentalConfig:
71
71
 
72
72
  - ExportType.Text: Export text type data.
73
73
  - ExportType.Db: Export db type data.
74
+ mstx_domain_include (list, optional): (Ascend only) Set the set of enabled domain names when the mstx switch
75
+ is turned on. The name must be of str type. Default value: ``[]``, indicating that this parameter
76
+ is not used to control the domain. This parameter is mutually exclusive with the mstx_domain_exclude
77
+ parameter and cannot be set. simultaneously. If both are set, only the mstx_domain_include parameter
78
+ takes effect.
79
+ mstx_domain_exclude (list, optional): (Ascend only) Set the set of domain names that are not enabled when the
80
+ mstx switch is turned on. The name must be of str type. Default value: ``[]``, indicating that this
81
+ parameter is not used to control the domain.
82
+ sys_io (bool, optional): (Ascend only) Whether to collect NIC and RoCE data. Default: ``False``.
83
+ sys_interconnection (bool, optional): (Ascend only) Whether to collect system interconnection data, including
84
+ HCCS data, PCIe data, and Stars Chip Trans. Default: ``False``.
85
+ host_sys (list, optional): Collect the data of system call classes on the host side.
86
+ Default: ``[]``, indicating that system class data on the host side is not collected.
87
+ You need to set `start_profile` of :class:`mindspore.profiler.profile` to ``False``.When collecting DISK or
88
+ OSRT data, it is necessary to install the iotop, perf, and ltrace third-party tools in advance.
89
+ For detailed steps, please refer to `Installing Third-party Tools
90
+ <https://www.hiascend.com/document/detail/zh/mindstudio/80RC1/T&ITools/Profiling/atlasprofiling_16_0136.
91
+ html>`_ .
92
+ After the third-party tool is successfully installed, user permissions need to be configured.
93
+ For detailed steps, please refer to `Configure User Permissions
94
+ <https://www.hiascend.com/document/detail/zh/mindstudio/80RC1/T&ITools/Profiling/atlasprofiling_16_0137.
95
+ html>`_ .
96
+ Note that in step 3 of configuring user permissions, the content in the msprof_data_collection.sh
97
+ script needs to be replaced with `msprof_data_collection.sh
98
+ <https://gitee.com/mindspore/mindspore/blob/master/docs/api/api_python/mindspore/script/
99
+ msprof_data_collection.sh>`_.
100
+
101
+ - HostSystem.CPU: Collect the CPU utilization at the process level.
102
+ - HostSystem.MEM: Collect the memory utilization at the process level.
103
+ - HostSystem.DISK: Collect the disk I/O utilization at the process level.
104
+ - HostSystem.NETWORK: Collect the network I/O utilization at the system level.
105
+ - HostSystem.OSRT: Collect system call stack data at the system level.
74
106
 
75
107
  Raises:
76
108
  RuntimeError: When the version of CANN does not match the version of MindSpore,
@@ -121,8 +153,8 @@ class _ExperimentalConfig:
121
153
  ... net = Net()
122
154
  ... # Note that the Profiler should be initialized before model.train
123
155
  ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
124
- ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
125
- ... repeat=1, skip_first=2),
156
+ ... schedule=mindspore.profiler.schedule(wait=0, warmup=0, active=1,
157
+ ... repeat=1, skip_first=0),
126
158
  ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
127
159
  ... profile_memory=False,
128
160
  ... experimental_config=experimental_config) as prof:
@@ -139,38 +171,76 @@ class _ExperimentalConfig:
139
171
  l2_cache: bool = False,
140
172
  mstx: bool = False,
141
173
  data_simplification: bool = True,
142
- export_type: list = None):
174
+ export_type: list = None,
175
+ mstx_domain_include: list = None,
176
+ mstx_domain_exclude: list = None,
177
+ sys_io: bool = False,
178
+ sys_interconnection: bool = False,
179
+ host_sys: list = None
180
+ ):
143
181
  self._profiler_level = profiler_level
144
182
  self._aic_metrics = aic_metrics
145
183
  self._l2_cache = l2_cache
146
184
  self._mstx = mstx
147
185
  self._data_simplification = data_simplification
148
186
  self._export_type = export_type
187
+ self._mstx_domain_include = mstx_domain_include
188
+ self._mstx_domain_exclude = mstx_domain_exclude
189
+ self._sys_io = sys_io
190
+ self._sys_interconnection = sys_interconnection
191
+ self._host_sys = host_sys
149
192
 
150
193
  @property
151
194
  def profiler_level(self) -> ProfilerLevel:
195
+ """Get profiler_level."""
152
196
  return self._profiler_level
153
197
 
154
198
  @property
155
199
  def aic_metrics(self) -> AicoreMetrics:
200
+ """Get aic_metrics."""
156
201
  return self._aic_metrics
157
202
 
158
203
  @property
159
204
  def l2_cache(self) -> bool:
205
+ """Get l2_cache."""
160
206
  return self._l2_cache
161
207
 
162
208
  @property
163
209
  def mstx(self) -> bool:
210
+ """Get mstx."""
164
211
  return self._mstx
165
212
 
166
213
  @property
167
214
  def data_simplification(self) -> bool:
215
+ """Get data_simplification."""
168
216
  return self._data_simplification
169
217
 
170
218
  @property
171
219
  def export_type(self) -> list:
220
+ """Get export_type."""
172
221
  return self._export_type
173
222
 
223
+ @property
224
+ def mstx_domain_include(self) -> list:
225
+ return self._mstx_domain_include
226
+
227
+ @property
228
+ def mstx_domain_exclude(self) -> list:
229
+ return self._mstx_domain_exclude
230
+
231
+ @property
232
+ def sys_io(self) -> bool:
233
+ return self._sys_io
234
+
235
+ @property
236
+ def sys_interconnection(self) -> bool:
237
+ return self._sys_interconnection
238
+
239
+ @property
240
+ def host_sys(self) -> list:
241
+ """Get host_sys."""
242
+ return self._host_sys
243
+
174
244
  # Setters
175
245
  @profiler_level.setter
176
246
  def profiler_level(self, value: ProfilerLevel):
@@ -195,3 +265,23 @@ class _ExperimentalConfig:
195
265
  @export_type.setter
196
266
  def export_type(self, value: list):
197
267
  self._export_type = value
268
+
269
+ @mstx_domain_include.setter
270
+ def mstx_domain_include(self, value: list):
271
+ self._mstx_domain_include = value
272
+
273
+ @mstx_domain_exclude.setter
274
+ def mstx_domain_exclude(self, value: list):
275
+ self._mstx_domain_exclude = value
276
+
277
+ @sys_io.setter
278
+ def sys_io(self, value: bool):
279
+ self._sys_io = value
280
+
281
+ @sys_interconnection.setter
282
+ def sys_interconnection(self, value: bool):
283
+ self._sys_interconnection = value
284
+
285
+ @host_sys.setter
286
+ def host_sys(self, value: list):
287
+ self._host_sys = value
@@ -39,7 +39,7 @@ class Mstx:
39
39
  )
40
40
 
41
41
  @staticmethod
42
- def mark(message: str, stream: mindspore.runtime.Stream = None) -> None:
42
+ def mark(message: str, stream: mindspore.runtime.Stream = None, domain: str = "default") -> None:
43
43
  """Add a marker point in profiling.
44
44
 
45
45
  Args:
@@ -47,6 +47,7 @@ class Mstx:
47
47
  stream (:class:`~.runtime.Stream`, optional): NPU stream for async execution, expected type:
48
48
  mindspore.runtime.Stream. Default: ``None``, which means only marking on host side without
49
49
  marking on device stream.
50
+ domain (str, optional): Domain name. Default: ``default``.
50
51
 
51
52
  Examples:
52
53
  >>> import numpy as np
@@ -77,6 +78,7 @@ class Mstx:
77
78
  ... model = ms.train.Model(net, loss, optimizer)
78
79
  ... # Add marker before training
79
80
  ... mstx.mark("train start", stream)
81
+ ... mstx.mark("train start", stream, "domain_name")
80
82
  ... model.train(1, data)
81
83
  ... # Add marker after training
82
84
  ... mstx.mark("train end", stream)
@@ -112,19 +114,24 @@ class Mstx:
112
114
  if not message or not isinstance(message, str):
113
115
  logging.warning("Invalid message for mstx.mark func. Please input valid message string.")
114
116
  return
117
+ if not isinstance(domain, str) or domain == "":
118
+ logging.warning(
119
+ "Invalid domain name for mstx.mark func. Please input str and can not be empty."
120
+ )
121
+ return
115
122
  if stream:
116
123
  if isinstance(stream, Stream):
117
124
  device_stream = stream.device_stream()
118
- Mstx.NPU_PROFILER.mstx_mark(message, device_stream)
125
+ Mstx.NPU_PROFILER.mstx_mark(message, device_stream, domain)
119
126
  else:
120
127
  logging.warning(
121
128
  f"Invalid stream for mstx.mark func. Expected mindspore.runtime.Stream but got {type(stream)}.",
122
129
  )
123
130
  else:
124
- Mstx.NPU_PROFILER.mstx_mark(message)
131
+ Mstx.NPU_PROFILER.mstx_mark(message, None, domain)
125
132
 
126
133
  @staticmethod
127
- def range_start(message: str, stream: mindspore.runtime.Stream = None) -> int:
134
+ def range_start(message: str, stream: mindspore.runtime.Stream = None, domain: str = "default") -> int:
128
135
  """Start a profiling range.
129
136
 
130
137
  Args:
@@ -132,6 +139,7 @@ class Mstx:
132
139
  stream (:class:`~.runtime.Stream`, optional): NPU stream for async execution, expected type:
133
140
  mindspore.runtime.Stream. Default: ``None``, which means only starting mstx range on
134
141
  host side without starting on device stream.
142
+ domain (str, optional): Domain name. Default: ``default``.
135
143
 
136
144
  Returns:
137
145
  int, range ID for range_end.
@@ -165,9 +173,11 @@ class Mstx:
165
173
  ... model = ms.train.Model(net, loss, optimizer)
166
174
  ... # Start profiling range
167
175
  ... range_id = mstx.range_start("training process", stream)
176
+ ... range_id2 = mstx.range_start("training process", stream, "domain_name")
168
177
  ... model.train(1, data)
169
178
  ... # End profiling range
170
179
  ... mstx.range_end(range_id)
180
+ ... mstx.range_end(range_id2, "domain_name")
171
181
  >>>
172
182
  >>> if __name__ == '__main__':
173
183
  ... # Note: mstx only supports Ascend device and cannot be used in mindspore.nn.Cell.construct
@@ -201,10 +211,15 @@ class Mstx:
201
211
  logging.warning("Invalid message for mstx.range_start func. Please input valid message string.")
202
212
  return 0
203
213
  # pylint: disable=no-else-return
214
+ if not isinstance(domain, str) or domain == "":
215
+ logging.warning(
216
+ "Invalid domain name for mstx.range_start func. Please input str and can not be empty."
217
+ )
218
+ return 0
204
219
  if stream:
205
220
  if isinstance(stream, Stream):
206
221
  device_stream = stream.device_stream()
207
- return Mstx.NPU_PROFILER.mstx_range_start(message, device_stream)
222
+ return Mstx.NPU_PROFILER.mstx_range_start(message, device_stream, domain)
208
223
  else:
209
224
  logging.warning(
210
225
  f"Invalid stream for mstx.range_start func. "
@@ -212,20 +227,21 @@ class Mstx:
212
227
  )
213
228
  return 0
214
229
  else:
215
- return Mstx.NPU_PROFILER.mstx_range_start(message)
230
+ return Mstx.NPU_PROFILER.mstx_range_start(message, None, domain)
216
231
 
217
232
  @staticmethod
218
- def range_end(range_id: int) -> None:
233
+ def range_end(range_id: int, domain: str = "default") -> None:
219
234
  """End a profiling range.
220
235
 
221
236
  Args:
222
237
  range_id (int): Range ID from range_start.
238
+ domain (str, optional): Domain name. Default: ``default``.
223
239
 
224
240
  Examples:
225
241
  >>> # Please refer to the example in range_start
226
- >>> # range_id = mstx.range_start("training process", stream)
242
+ >>> # range_id = mstx.range_start("training process", stream, "domain_name")
227
243
  >>> # model.train(1, data)
228
- >>> # mstx.range_end(range_id)
244
+ >>> # mstx.range_end(range_id, "domain_name")
229
245
  """
230
246
  if not Mstx.enable or range_id == 0:
231
247
  return
@@ -234,9 +250,14 @@ class Mstx:
234
250
  if not Mstx.NPU_PROFILER:
235
251
  logging.warning("Invalid npu profiler for mstx, please check.")
236
252
  return
237
- if not isinstance(range_id, int):
253
+ if not isinstance(range_id, int) or range_id < 0:
254
+ logging.warning(
255
+ "Invalid range_id for mstx.range_end func. Please input return value from mstx.range_start."
256
+ )
257
+ return
258
+ if not isinstance(domain, str) or domain == "":
238
259
  logging.warning(
239
- "Invalid message for mstx.range_start func. Please input return value from mstx.range_start."
260
+ "Invalid domain name for mstx.range_end func. Please input str and can not be empty."
240
261
  )
241
262
  return
242
- Mstx.NPU_PROFILER.mstx_range_end(range_id)
263
+ Mstx.NPU_PROFILER.mstx_range_end(range_id, domain)
@@ -13,9 +13,8 @@
13
13
  # limitations under the License.
14
14
  # ============================================================================
15
15
  """Platform profiler"""
16
+ __all__ = ["CpuProfiler", "GpuProfiler", "NpuProfiler"]
17
+
16
18
  from .cpu_profiler import CpuProfiler
17
19
  from .gpu_profiler import GpuProfiler
18
20
  from .npu_profiler import NpuProfiler
19
-
20
-
21
- __all__ = ["CpuProfiler", "GpuProfiler", "NpuProfiler"]
@@ -18,7 +18,6 @@ import glob
18
18
  import json
19
19
  from typing import List, Optional
20
20
 
21
- from mindspore import context
22
21
  from mindspore import log as logger
23
22
  import mindspore._c_dataengine as cde
24
23
  import mindspore._c_expression as c_expression
@@ -55,6 +54,7 @@ from mindspore.profiler.analysis.viewer.ms_minddata_viewer import (
55
54
  MindDataPipelineRawViewer,
56
55
  MindDataPiplineSummaryViewer,
57
56
  )
57
+ from mindspore.profiler.analysis.viewer.ms_operator_details_viewer import MsOperatorDetailsViewer
58
58
  from mindspore.profiler.common.util import print_msg_with_pid
59
59
  from mindspore.profiler.common.log import ProfilerLogger
60
60
  from mindspore.profiler.mstx import Mstx
@@ -86,11 +86,6 @@ class NpuProfiler(BaseProfiler):
86
86
 
87
87
  # record original profiler params
88
88
  self._prof_info.profiler_parameters = self._prof_ctx.original_params
89
- self._prof_info.ms_profiler_info = {
90
- "context_mode": context.get_context("mode"),
91
- "rank_id": self._prof_ctx.rank_id,
92
- "device_id": self._prof_ctx.device_id,
93
- }
94
89
 
95
90
  # initialize minddata profiler
96
91
  if self._prof_ctx.data_process:
@@ -136,6 +131,20 @@ class NpuProfiler(BaseProfiler):
136
131
  self._md_profiler.stop()
137
132
  self._md_profiler.save(self._prof_ctx.framework_path)
138
133
 
134
+ if ProfilerActivity.NPU in self._prof_ctx.activities:
135
+ prof_dir = glob.glob(os.path.join(self._prof_ctx.ascend_ms_dir, "PROF_*"))
136
+ if not prof_dir:
137
+ logger.error(f"No PROF_* directory found in {self._prof_ctx.ascend_ms_dir}")
138
+ return
139
+
140
+ self._prof_ctx.msprof_profile_path = prof_dir[0]
141
+ self._prof_ctx.device_id = self._prof_ctx.msprof_profile_device_path.split("_")[-1]
142
+
143
+ self._prof_info.ms_profiler_info = {
144
+ "rank_id": self._prof_ctx.rank_id,
145
+ "device_id": self._prof_ctx.device_id,
146
+ }
147
+
139
148
  self._prof_info.save(self._prof_ctx.ascend_ms_dir, self._prof_ctx.rank_id)
140
149
 
141
150
  def analyse(self, **kwargs) -> None:
@@ -189,12 +198,6 @@ class NPUProfilerAnalysis:
189
198
  """
190
199
  prof_ctx = ProfilerContext()
191
200
  if ProfilerActivity.NPU in prof_ctx.activities:
192
- prof_dir = glob.glob(os.path.join(prof_ctx.ascend_ms_dir, "PROF_*"))
193
- if not prof_dir:
194
- logger.error(f"No PROF_* directory found in {prof_ctx.ascend_ms_dir}")
195
- return
196
-
197
- prof_ctx.msprof_profile_path = prof_dir[0]
198
201
  ProfilerPathManager().clean_analysis_cache()
199
202
  ProfilerPathManager().create_output_path()
200
203
  ProfilerInfo().load_time_parameters(
@@ -224,7 +227,6 @@ class NPUProfilerAnalysis:
224
227
  prof_ctx.set_params()
225
228
  prof_ctx.load_offline_profiler_params(prof_info.profiler_parameters)
226
229
  prof_ctx.jit_level = prof_info.jit_level
227
- prof_ctx.context_mode = prof_info.context_mode
228
230
 
229
231
  if ProfilerActivity.NPU in prof_ctx.activities:
230
232
  prof_dir = glob.glob(os.path.join(ascend_ms_dir, "PROF_*"))
@@ -274,18 +276,20 @@ class NPUProfilerAnalysis:
274
276
  task_mgr = TaskManager()
275
277
  activities = kwargs.get("activities", [])
276
278
  export_type = kwargs.get("export_type", [])
279
+ record_shapes = kwargs.get("record_shapes", False)
277
280
  enable_data_process = kwargs.get("data_process", False)
278
281
 
279
282
  # CANN flow parser
280
283
  cann_flow_parsers = []
281
284
 
282
285
  if export_type == [ExportType.Db.value]:
283
- cann_flow_parsers.append(
284
- AscendMsprofParser(**kwargs)
285
- )
286
- task_mgr.create_flow(
287
- *cann_flow_parsers, flow_name="cann_flow", show_process=True
288
- )
286
+ if ProfilerActivity.NPU.value in activities:
287
+ cann_flow_parsers.append(
288
+ AscendMsprofParser(**kwargs)
289
+ )
290
+ task_mgr.create_flow(
291
+ *cann_flow_parsers, flow_name="cann_flow", show_process=True
292
+ )
289
293
  return task_mgr
290
294
 
291
295
  if ProfilerActivity.NPU.value in activities:
@@ -301,6 +305,12 @@ class NPUProfilerAnalysis:
301
305
  MsDatasetViewer(**kwargs).save
302
306
  )
303
307
  )
308
+ if record_shapes:
309
+ cann_flow_parsers.append(
310
+ FrameworkCannRelationParser(**kwargs).register_post_hook(
311
+ MsOperatorDetailsViewer(**kwargs).save
312
+ )
313
+ )
304
314
 
305
315
  if ProfilerActivity.NPU.value in activities:
306
316
  cann_flow_parsers.append(
@@ -15,6 +15,7 @@
15
15
  """Profiling api file."""
16
16
  import os
17
17
  import json
18
+ import warnings
18
19
  from typing import Optional, Dict, Callable, Any
19
20
  from sys import getsizeof
20
21
  from concurrent.futures import ProcessPoolExecutor, as_completed
@@ -91,8 +92,8 @@ def tensorboard_trace_handler(dir_name: str = None, worker_name: str = None,
91
92
  ... net = Net()
92
93
  ... # Note that the Profiler should be initialized before model.train
93
94
  ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
94
- ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
95
- ... repeat=1, skip_first=2),
95
+ ... schedule=mindspore.profiler.schedule(wait=0, warmup=0, active=1,
96
+ ... repeat=1, skip_first=0),
96
97
  ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
97
98
  ... profile_memory=False,
98
99
  ... experimental_config=experimental_config) as prof:
@@ -156,8 +157,8 @@ class Profiler:
156
157
  For details, see :func:`mindspore.profiler.tensorboard_trace_handler` .
157
158
  profile_memory (bool, optional): (Ascend only) Whether to collect tensor memory data, collect when ``True`` .
158
159
  When using this parameter, `activities` must set to ``[ProfilerActivity.CPU, ProfilerActivity.NPU]``.
159
- Collecting operator memory data when the graph compilation level is O2 requires collecting from the
160
- first step. Default: ``False`` . The operator name currently collected by this parameter is incomplete.
160
+ Collecting operator memory data when GE backend requires collecting from the first step.
161
+ Default: ``False`` . The operator name currently collected by this parameter is incomplete.
161
162
  This issue will be resolved in later versions. It is recommended to use the environment variable
162
163
  ``MS_ALLOC_CONF`` instead.
163
164
  aic_metrics (AicoreMetrics, optional): (Ascend only) Types of AICORE performance data collected,
@@ -192,7 +193,7 @@ class Profiler:
192
193
  If set to True, only the profiler deliverables and raw performance data under the PROF_XXX directory are
193
194
  kept to save space. Default value: ``True`` .
194
195
  l2_cache (bool, optional): (Ascend only) Whether to collect l2 cache data, collect when True.
195
- Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder.In O2 mode,
196
+ Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder.In GE backend,
196
197
  only wait and skip_first parameters in schedule configuration can be set to 0.
197
198
  hbm_ddr (bool, optional): (Ascend only) Whether to collect On-Chip Memory/DDR read and write rate data,
198
199
  collect when True. Default: ``False`` .
@@ -492,8 +493,7 @@ class Profiler:
492
493
  >>> import mindspore as ms
493
494
  >>> import mindspore.dataset as ds
494
495
  >>> from mindspore import context, nn, Profiler
495
- >>> from mindspore.profiler import schedule, tensorboard_trace_handler, ProfilerLevel, AicoreMetrics,
496
- >>> ExportType, ProfilerActivity
496
+ >>> from mindspore.profiler import schedule, tensorboard_trace_handler
497
497
  >>>
498
498
  >>> class Net(nn.Cell):
499
499
  ... def __init__(self):
@@ -646,6 +646,9 @@ class Profiler:
646
646
  >>>
647
647
  >>> profiler.op_analyse(op_name=["BiasAdd", "Conv2D"])
648
648
  """
649
+ warnings.warn(
650
+ "mindspore.Profiler.op_analyse is deprecated and will be removed in future versions. "
651
+ )
649
652
  if self._prof_context.device_target == DeviceTarget.NPU.value:
650
653
  raise RuntimeError("The Interface 'Profiler.op_analyse()' is not supported on Ascend currently.")
651
654
 
@@ -659,9 +662,9 @@ class Profiler:
659
662
  if not op_name:
660
663
  raise TypeError(f"For 'Profiler.op_analyse()', the parameter op_name cannot be "", '' or [].")
661
664
 
662
- from mindspore.profiler.parser.framework_parser import GpuFrameWorkParser
665
+ from mindspore.profiler.common.profiler_op_analyse import OpAnalyser
663
666
  dev_id = self._prof_context.device_id if device_id is None else device_id
664
- parser = GpuFrameWorkParser(self._prof_context.framework_path, dev_id, op_name)
667
+ parser = OpAnalyser(self._prof_context.framework_path, dev_id, op_name)
665
668
  op_info = parser.parse()
666
669
  return op_info
667
670
 
@@ -685,6 +688,8 @@ class Profile:
685
688
  This class to enable the profiling of MindSpore neural networks.
686
689
  MindSpore users can import the mindspore.profiler.profile, initialize the profile object to start profiling,
687
690
  Use profile.start() to start the analysis, and use profile.stop() to stop collecting and analyzing the results.
691
+ For detailed usage, please refer to `Ascend Performance Tuning
692
+ <https://www.mindspore.cn/tutorials/en/master/debug/profiler.html>`_ .
688
693
  Users can visualize the results using the `MindStudio Insight
689
694
  <https://www.hiascend.com/developer/download/community/result?module=pt+sto+cann>`_ tool.
690
695
  Now, profile supports AICORE operator, AICPU operator, HostCPU operator, memory,
@@ -707,8 +712,8 @@ class Profile:
707
712
  For details, see :func:`mindspore.profiler.tensorboard_trace_handler` .
708
713
  profile_memory (bool, optional): (Ascend only) Whether to collect tensor memory data, collect when ``True`` .
709
714
  When using this parameter, `activities` must set to ``[ProfilerActivity.CPU, ProfilerActivity.NPU]``.
710
- Collecting operator memory data when the graph compilation level is O2 requires collecting from the
711
- first step. Default: ``False`` . The operator name currently collected by this parameter is incomplete.
715
+ Collecting operator memory data when GE backend requires collecting from the first step.
716
+ Default: ``False`` . The operator name currently collected by this parameter is incomplete.
712
717
  This issue will be resolved in later versions. It is recommended to use the environment variable
713
718
  ``MS_ALLOC_CONF`` instead.
714
719
  with_stack (bool, optional): (Ascend only) Whether to collect frame host call stack data
@@ -731,6 +736,9 @@ class Profile:
731
736
  The duration of the operator is the difference between the two timestamps.
732
737
  - False: The asynchronous way. The duration of the operator is that of sending from the CPU to the GPU.
733
738
  This method can reduce the impact of adding profiler on overall training time.
739
+ record_shapes (bool, optional): (Ascend only) Whether to collect operator input tensor shapes data, collect
740
+ when ``True`` . When using this parameter, `activities` must include ``ProfilerActivity.CPU``.
741
+ Default: ``False``.
734
742
  experimental_config (_ExperimentalConfig, optional): expandable parameters can be configured in this
735
743
  configuration item. For details, see :class:`mindspore.profiler._ExperimentalConfig` .
736
744
  Raises:
@@ -782,8 +790,8 @@ class Profile:
782
790
  ... net = Net()
783
791
  ... # Note that the Profiler should be initialized before model.train
784
792
  ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
785
- ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
786
- ... repeat=1, skip_first=2),
793
+ ... schedule=mindspore.profiler.schedule(wait=0, warmup=0, active=1,
794
+ ... repeat=1, skip_first=0),
787
795
  ... on_trace_ready=mindspore.profiler.
788
796
  ... tensorboard_trace_handler("./data"),
789
797
  ... profile_memory=False,
@@ -806,6 +814,7 @@ class Profile:
806
814
  hbm_ddr: bool = False,
807
815
  pcie: bool = False,
808
816
  sync_enable: bool = True,
817
+ record_shapes: bool = False,
809
818
  schedule: Schedule = None,
810
819
  on_trace_ready: Optional[Callable[..., Any]] = None,
811
820
  experimental_config: Optional[_ExperimentalConfig] = None,
@@ -819,6 +828,7 @@ class Profile:
819
828
  self._hbm_ddr = hbm_ddr
820
829
  self._pcie = pcie
821
830
  self._sync_enable = sync_enable
831
+ self._record_shapes = record_shapes
822
832
  self._schedule = schedule
823
833
  self._on_trace_ready = on_trace_ready
824
834
  self._experimental_config = experimental_config or _ExperimentalConfig()
@@ -835,9 +845,15 @@ class Profile:
835
845
  hbm_ddr=self._hbm_ddr,
836
846
  pcie=self._pcie,
837
847
  sync_enable=self._sync_enable,
848
+ record_shapes=self._record_shapes,
838
849
  data_simplification=self._experimental_config.data_simplification,
839
850
  mstx=self._experimental_config.mstx,
851
+ mstx_domain_include=self._experimental_config.mstx_domain_include,
852
+ mstx_domain_exclude=self._experimental_config.mstx_domain_exclude,
840
853
  export_type=self._experimental_config.export_type,
854
+ sys_io=self._experimental_config.sys_io,
855
+ sys_interconnection=self._experimental_config.sys_interconnection,
856
+ host_sys=self._experimental_config.host_sys,
841
857
  schedule=self._schedule,
842
858
  on_trace_ready=self._on_trace_ready,
843
859
  )
@@ -902,8 +918,8 @@ class Profile:
902
918
  ... net = Net()
903
919
  ... # Note that the Profiler should be initialized before model.train
904
920
  ... prof = mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
905
- ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
906
- ... repeat=1, skip_first=2),
921
+ ... schedule=mindspore.profiler.schedule(wait=0, warmup=0, active=1,
922
+ ... repeat=1, skip_first=0),
907
923
  ... on_trace_ready=mindspore.profiler.
908
924
  ... tensorboard_trace_handler("./data"),
909
925
  ... profile_memory=False,
@@ -966,8 +982,8 @@ class Profile:
966
982
  ... net = Net()
967
983
  ... # Note that the Profiler should be initialized before model.train
968
984
  ... prof = mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
969
- ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
970
- ... repeat=1, skip_first=2),
985
+ ... schedule=mindspore.profiler.schedule(wait=0, warmup=0, active=1,
986
+ ... repeat=1, skip_first=0),
971
987
  ... on_trace_ready=mindspore.profiler.
972
988
  ... tensorboard_trace_handler("./data"),
973
989
  ... profile_memory=False,
@@ -1031,8 +1047,8 @@ class Profile:
1031
1047
  ... net = Net()
1032
1048
  ... # Note that the Profiler should be initialized before model.train
1033
1049
  ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
1034
- ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
1035
- ... repeat=1, skip_first=2),
1050
+ ... schedule=mindspore.profiler.schedule(wait=0, warmup=0, active=1,
1051
+ ... repeat=1, skip_first=0),
1036
1052
  ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
1037
1053
  ... profile_memory=False,
1038
1054
  ... experimental_config=experimental_config) as prof: