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
@@ -0,0 +1,666 @@
1
+ # Copyright 2025-2026 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Dynamic Profile config context"""
16
+ import json
17
+
18
+ from mindspore import log as logger
19
+ from mindspore.profiler.common.constant import (
20
+ ProfilerActivity,
21
+ ProfilerLevel,
22
+ AicoreMetrics,
23
+ ExportType,
24
+ HostSystem
25
+ )
26
+ from mindspore.profiler.dynamic_profile.dynamic_profiler_utils import DynamicProfilerUtils
27
+
28
+
29
+ class DynamicProfilerConfigContext:
30
+ """
31
+ Data class for dynamic profile config context.
32
+ """
33
+ BOOL_MAP = {'true': True, 'false': False}
34
+
35
+ def __init__(self, json_data):
36
+ self._start_step = -1
37
+ self._stop_step = -1
38
+ self._aic_metrics = "AiCoreNone"
39
+ self._profiler_level = "Level0"
40
+ self._analyse_mode = -1
41
+ self._activities = ["CPU", "NPU"]
42
+ self._export_type = ["text"]
43
+ self._profile_memory = False
44
+ self._mstx = False
45
+ self._parallel_strategy = False
46
+ self._with_stack = False
47
+ self._data_simplification = True
48
+ self._l2_cache = False
49
+ self._analyse = True
50
+ self._is_valid = False
51
+ self._record_shapes = False
52
+ self._prof_path = "./"
53
+ self._mstx_domain_include = []
54
+ self._mstx_domain_exclude = []
55
+ self._host_sys = []
56
+ self._sys_io = False
57
+ self._sys_interconnection = False
58
+ self._is_dyno = DynamicProfilerUtils.is_dyno_mode()
59
+ self._parse(json_data)
60
+ self._check_params_type()
61
+ self._json_dict = self.to_dict()
62
+
63
+ def _parse(self, json_data):
64
+ """ Parse the given JSON data and initialize the attributes of the class based on its content."""
65
+ self._parse_start_step(json_data)
66
+ self._parse_stop_step(json_data)
67
+ self._parse_profiler_level(json_data)
68
+ self._parse_activities(json_data)
69
+ self._parse_export_type(json_data)
70
+ self._parse_profiler_memory(json_data)
71
+ self._parse_mstx(json_data)
72
+ self._parse_with_stack(json_data)
73
+ self._parse_data_simplification(json_data)
74
+ self._parse_l2_cache(json_data)
75
+ self._parse_analyse(json_data)
76
+ self._parse_record_shapes(json_data)
77
+ self._parse_prof_path(json_data)
78
+ self._aic_metrics = json_data.get("aic_metrics", "AiCoreNone")
79
+ self._analyse_mode = json_data.get("analyse_mode", -1)
80
+ self._parse_mstx_domain_include(json_data)
81
+ self._parse_mstx_domain_exclude(json_data)
82
+ self._parse_host_sys(json_data)
83
+ self._parse_sys_io(json_data)
84
+ self._parse_sys_interconnection(json_data)
85
+ self._parallel_strategy = json_data.get("parallel_strategy", False)
86
+ self._is_valid = json_data.get("is_valid", False)
87
+
88
+ def _parse_start_step(self, json_data):
89
+ """ Parse the start_step from JSON data."""
90
+ if self._is_dyno:
91
+ try:
92
+ start_step = int(json_data.get("start_step", 0))
93
+ except ValueError:
94
+ start_step = 0
95
+ logger.warning("dyno config 'start-step' should be an integer, will be reset to default value: '0'.")
96
+ self._start_step = start_step
97
+ else:
98
+ self._start_step = json_data.get("start_step", -1)
99
+
100
+ def _parse_stop_step(self, json_data):
101
+ """ Parse the stop_step from JSON data."""
102
+ if self._is_dyno:
103
+ try:
104
+ start_step = int(json_data.get("start_step", 0))
105
+ except ValueError:
106
+ start_step = 0
107
+ logger.warning("dyno config 'start-step' should be an integer, will be reset to default value: '0'.")
108
+
109
+ try:
110
+ iterations = int(json_data.get("iterations", 0))
111
+ except ValueError:
112
+ iterations = 0
113
+ logger.warning("dyno config 'iterations' should be an integer, will be reset to default value: '0'.")
114
+
115
+ self._stop_step = start_step + iterations - 1
116
+ else:
117
+ self._stop_step = json_data.get("stop_step", -1)
118
+
119
+ def _parse_profiler_level(self, json_data):
120
+ """ Parse the profiler_level from JSON data."""
121
+ if self._is_dyno:
122
+ profiler_level = json_data.get("profiler_level", "Level0")
123
+ if profiler_level == "Level_none":
124
+ profiler_level = "LevelNone"
125
+ self._profiler_level = profiler_level
126
+ else:
127
+ self._profiler_level = json_data.get("profiler_level", "Level0")
128
+
129
+ def _parse_activities(self, json_data):
130
+ """ Parse the activities from JSON data."""
131
+ if self._is_dyno:
132
+ activities = json_data.get("activities", "CPU, NPU")
133
+ activity_map = {
134
+ "CPU, NPU": ["CPU", "NPU"],
135
+ "NPU, CPU": ["CPU", "NPU"],
136
+ "CPU": ["CPU"],
137
+ "NPU": ["NPU"]
138
+ }
139
+ self._activities = activity_map.get(activities, ["CPU", "NPU"])
140
+ else:
141
+ self._activities = json_data.get("activities", ["CPU", "NPU"])
142
+
143
+ def _parse_export_type(self, json_data):
144
+ """ Parse the export_type from JSON data."""
145
+ if self._is_dyno:
146
+ export_type = json_data.get("export_type", "Text")
147
+ export_types_map = {
148
+ "Text": ["text"],
149
+ "Db": ["db"],
150
+ }
151
+ self._export_type = export_types_map.get(export_type, ["text"])
152
+ else:
153
+ self._export_type = json_data.get("export_type", ["text"])
154
+
155
+ def _parse_profiler_memory(self, json_data):
156
+ """ Parse the profiler_memory from JSON data."""
157
+ if self._is_dyno:
158
+ profile_memory = json_data.get("profile_memory", "")
159
+ self._profile_memory = self.BOOL_MAP.get(profile_memory.lower(), False)
160
+ else:
161
+ self._profile_memory = json_data.get("profile_memory", False)
162
+
163
+ def _parse_mstx(self, json_data):
164
+ """ Parse the mstx from JSON data."""
165
+ if self._is_dyno:
166
+ mstx = json_data.get("msprof_tx", "")
167
+ self._mstx = self.BOOL_MAP.get(mstx.lower(), False)
168
+ else:
169
+ self._mstx = json_data.get("mstx", False)
170
+
171
+ def _parse_with_stack(self, json_data):
172
+ """ Parse the with_stack from JSON data."""
173
+ if self._is_dyno:
174
+ with_stack = json_data.get("with_stack", "")
175
+ self._with_stack = self.BOOL_MAP.get(with_stack.lower(), False)
176
+ else:
177
+ self._with_stack = json_data.get("with_stack", False)
178
+
179
+ def _parse_data_simplification(self, json_data):
180
+ """ Parse the data_simplification from JSON data."""
181
+ if self._is_dyno:
182
+ data_simplification = json_data.get("data_simplification", "")
183
+ self._data_simplification = self.BOOL_MAP.get(data_simplification.lower(), False)
184
+ else:
185
+ self._data_simplification = json_data.get("data_simplification", True)
186
+
187
+ def _parse_l2_cache(self, json_data):
188
+ """ Parse the l2_cach from JSON data."""
189
+ if self._is_dyno:
190
+ l2_cache = json_data.get("l2_cache", "")
191
+ self._l2_cache = self.BOOL_MAP.get(l2_cache.lower(), False)
192
+ else:
193
+ self._l2_cache = json_data.get("l2_cache", False)
194
+
195
+ def _parse_analyse(self, json_data):
196
+ """ Parse the data_simplification from JSON data."""
197
+ if self._is_dyno:
198
+ analyse = json_data.get("analyse", "")
199
+ self._analyse = self.BOOL_MAP.get(analyse.lower(), False)
200
+ else:
201
+ self._analyse = json_data.get("analyse", False)
202
+
203
+ def _parse_record_shapes(self, json_data):
204
+ """ Parse the record_shapes from JSON data."""
205
+ if self._is_dyno:
206
+ record_shapes = json_data.get("record_shapes", "")
207
+ self._record_shapes = self.BOOL_MAP.get(record_shapes.lower(), False)
208
+ else:
209
+ self._record_shapes = json_data.get("record_shapes", False)
210
+
211
+ def _parse_prof_path(self, json_data):
212
+ """ Parse the prof_path from JSON data."""
213
+ if self._is_dyno:
214
+ prof_path = json_data.get("log_file", "./")
215
+ if not isinstance(prof_path, str):
216
+ logger.warning("The 'log-file' must be a string, "
217
+ "will be set to default: './'.")
218
+ prof_path = "./"
219
+ self._prof_path = prof_path
220
+ else:
221
+ self._prof_path = json_data.get("prof_path", "./")
222
+
223
+ def _parse_host_sys(self, json_data):
224
+ """ Parse the host_sys from JSON data."""
225
+ if self._is_dyno:
226
+ host_sys = json_data.get("host_sys", None)
227
+ self._host_sys = [] if host_sys is None or host_sys == "None" else \
228
+ [item.strip() for item in host_sys.split(',')]
229
+ else:
230
+ self._host_sys = json_data.get("host_sys", [])
231
+
232
+ def _parse_sys_io(self, json_data):
233
+ """ Parse the sys_io from JSON data."""
234
+ if self._is_dyno:
235
+ sys_io = json_data.get("sys_io", False)
236
+ if isinstance(sys_io, str):
237
+ self._sys_io = self.BOOL_MAP.get(sys_io.lower(), False)
238
+ else:
239
+ self._sys_io = False
240
+ else:
241
+ self._sys_io = json_data.get("sys_io", False)
242
+
243
+ def _parse_sys_interconnection(self, json_data):
244
+ """ Parse the sys_interconnection from JSON data."""
245
+ if self._is_dyno:
246
+ sys_interconnection = json_data.get("sys_interconnection", False)
247
+ if isinstance(sys_interconnection, str):
248
+ self._sys_interconnection = self.BOOL_MAP.get(sys_interconnection.lower(), False)
249
+ else:
250
+ self._sys_interconnection = False
251
+ else:
252
+ self._sys_interconnection = json_data.get("sys_interconnection", False)
253
+
254
+ def _parse_mstx_domain_include(self, json_data):
255
+ """ Parse the mstx_domain_include from JSON data."""
256
+ if self._is_dyno:
257
+ mstx_domain_include = json_data.get("mstx_domain_include", None)
258
+ self._mstx_domain_include = [] if mstx_domain_include is None or mstx_domain_include == "None" else \
259
+ [item.strip() for item in mstx_domain_include.split(',')]
260
+ else:
261
+ self._mstx_domain_include = json_data.get("mstx_domain_include", [])
262
+
263
+ def _parse_mstx_domain_exclude(self, json_data):
264
+ """ Parse the mstx_domain_exclude from JSON data."""
265
+ if self._is_dyno:
266
+ mstx_domain_exclude = json_data.get("mstx_domain_exclude", None)
267
+ self._mstx_domain_exclude = [] if mstx_domain_exclude is None or mstx_domain_exclude == "None" else \
268
+ [item.strip() for item in mstx_domain_exclude.split(',')]
269
+ else:
270
+ self._mstx_domain_exclude = json_data.get("mstx_domain_exclude", [])
271
+
272
+ def _check_params_type(self):
273
+ """ Check and enforce parameter types with lower complexity."""
274
+ # Check non-special parameters. {Parameter name: (expected type, default value)}
275
+ self._check_non_special_params()
276
+ # Check special parameters
277
+ self._check_special_params()
278
+
279
+ def _check_non_special_params(self):
280
+ """ Check non-special parameters."""
281
+ param_rules = {
282
+ '_start_step': (int, -1),
283
+ '_stop_step': (int, -1),
284
+ '_analyse_mode': (int, -1),
285
+ '_profile_memory': (bool, False),
286
+ '_mstx': (bool, False),
287
+ '_l2_cache': (bool, False),
288
+ '_analyse': (bool, False),
289
+ '_parallel_strategy': (bool, False),
290
+ '_with_stack': (bool, False),
291
+ '_data_simplification': (bool, True),
292
+ '_record_shapes': (bool, False),
293
+ '_mstx_domain_include': (list, []),
294
+ '_mstx_domain_exclude': (list, []),
295
+ '_host_sys': (list, []),
296
+ '_sys_io': (bool, False),
297
+ '_sys_interconnection': (bool, False)
298
+ }
299
+
300
+ def _is_valid_type(value, expected_type):
301
+ """ Helper method for type checking."""
302
+ if expected_type is int and isinstance(value, bool):
303
+ return False
304
+ return isinstance(value, expected_type)
305
+
306
+ for param, (expected_type, default) in param_rules.items():
307
+ value = getattr(self, param)
308
+ if not _is_valid_type(value, expected_type):
309
+ logger.warning(
310
+ f"'{param[1:]}' should be {expected_type.__name__}, "
311
+ f"but got {type(value).__name__}. "
312
+ f"will be reset to default value: '{default}'."
313
+ )
314
+ setattr(self, param, default)
315
+
316
+ def _check_special_params(self):
317
+ """ Check special parameters."""
318
+ self._check_aic_metrics()
319
+ self._check_profiler_level()
320
+ self._check_activities()
321
+ self._check_export_type()
322
+ self._check_prof_path()
323
+
324
+ def _check_aic_metrics(self):
325
+ """ Check aic_metrics."""
326
+ if not (isinstance(self._aic_metrics, str) or (
327
+ isinstance(self._aic_metrics, int) and not isinstance(self._aic_metrics, bool))):
328
+ logger.warning(
329
+ f"'aic_metrics' should be a string or a non-bool integer, "
330
+ f"but got {type(self._aic_metrics).__name__}. "
331
+ f"Will be reset to default value: 'AiCoreNone'."
332
+ )
333
+ self._aic_metrics = AicoreMetrics.AiCoreNone.value
334
+
335
+ def _check_profiler_level(self):
336
+ """ Check profiler_level."""
337
+ if not (isinstance(self._profiler_level, str) or (
338
+ isinstance(self._profiler_level, int) and not isinstance(self._profiler_level, bool))):
339
+ logger.warning(
340
+ f"'profiler_level' should be a string or a non-bool integer, "
341
+ f"but got {type(self._profiler_level).__name__}. "
342
+ f"Will be reset to default value: 'Level0'."
343
+ )
344
+ self._profiler_level = ProfilerLevel.Level0.value
345
+
346
+ def _check_activities(self):
347
+ """ Check activities."""
348
+ if not (isinstance(self._activities, list) or (
349
+ isinstance(self._activities, int) and not isinstance(self._activities, bool))):
350
+ logger.warning(
351
+ f"'activities' should be a list or a non-bool integer, "
352
+ f"but got {type(self._activities).__name__}. "
353
+ f"Will be reset to default value: '[ProfilerActivity.CPU, ProfilerActivity.NPU]'."
354
+ )
355
+ self._activities = [ProfilerActivity.CPU.value, ProfilerActivity.NPU.value]
356
+
357
+ def _check_export_type(self):
358
+ """ Check export_type."""
359
+ if not (isinstance(self._export_type, list) or (
360
+ isinstance(self._export_type, int) and not isinstance(self._export_type, bool))):
361
+ logger.warning(
362
+ f"'export_type' should be a list or a non-bool integer, "
363
+ f"but got {type(self._export_type).__name__}. "
364
+ f"Will be reset to default value: '[ExportType.Text]'."
365
+ )
366
+ self._export_type = [ExportType.Text.value]
367
+
368
+ def _check_prof_path(self):
369
+ """ Check prof_path."""
370
+ if not isinstance(self._prof_path, str):
371
+ logger.warning(f"'prof_path' should be str, but got {type(self._prof_path).__name__}. ")
372
+ self._prof_path = "./"
373
+
374
+ @property
375
+ def start_step(self):
376
+ """ Get start step value."""
377
+ return self._start_step
378
+
379
+ @property
380
+ def stop_step(self):
381
+ """ Get stop step value."""
382
+ return self._stop_step
383
+
384
+ @property
385
+ def is_valid(self):
386
+ """ Get json valid value."""
387
+ return self._is_valid
388
+
389
+ @is_valid.setter
390
+ def is_valid(self, value):
391
+ """ Set json valid value."""
392
+ self._is_valid = value
393
+
394
+ @property
395
+ def analyse_mode(self):
396
+ """ Get analyse mode value."""
397
+ return self._convert_analyse_mode(self._analyse_mode)
398
+
399
+ @property
400
+ def prof_path(self):
401
+ """ Get analyse mode value."""
402
+ return self._prof_path
403
+
404
+ @property
405
+ def analyse(self):
406
+ """ Get analyse mode value."""
407
+ return self._analyse
408
+
409
+ @property
410
+ def vars(self):
411
+ """ Get all values in DynamicProfilerConfigContext."""
412
+ not_supported_args = ['_is_valid']
413
+ res = {}
414
+ for key, value in self.__dict__.items():
415
+ if key in ['_json_dict', '_is_dyno']:
416
+ continue
417
+ if key not in not_supported_args:
418
+ res[key.replace('_', '', 1)] = value
419
+ return res
420
+
421
+ @property
422
+ def args(self):
423
+ """ Get all args in DynamicProfilerConfigContext."""
424
+ self._profiler_level = self._convert_profiler_level(self._profiler_level)
425
+ self._activities = self._convert_activities(self._activities)
426
+ self._aic_metrics = self._convert_aic_metrics(self._aic_metrics)
427
+ self._export_type = self._convert_export_type(self._export_type)
428
+ self._host_sys = self._convert_host_sys(self._host_sys)
429
+ not_supported_args = ['_start_step', '_stop_step', '_analyse_mode', '_is_valid']
430
+ res = {}
431
+ for key, value in self.__dict__.items():
432
+ if key not in not_supported_args:
433
+ res[key.replace('_', '', 1)] = value
434
+ return res
435
+
436
+ def to_dict(self):
437
+ """Convert the instance attributes to a dictionary."""
438
+ return {
439
+ "start_step": self._start_step,
440
+ "stop_step": self._stop_step,
441
+ "aic_metrics": self._aic_metrics,
442
+ "profiler_level": self._profiler_level,
443
+ "analyse_mode": self._analyse_mode,
444
+ "activities": self._activities,
445
+ "export_type": self._export_type,
446
+ "profile_memory": self._profile_memory,
447
+ "mstx": self._mstx,
448
+ "parallel_strategy": self._parallel_strategy,
449
+ "with_stack": self._with_stack,
450
+ "data_simplification": self._data_simplification,
451
+ "l2_cache": self._l2_cache,
452
+ "analyse": self._analyse,
453
+ "record_shapes": self._record_shapes,
454
+ "prof_path": self._prof_path,
455
+ "mstx_domain_include": self._mstx_domain_include,
456
+ "mstx_domain_exclude": self._mstx_domain_exclude,
457
+ "sys_io": self._sys_io,
458
+ "sys_interconnection": self._sys_interconnection,
459
+ "host_sys": self._host_sys,
460
+ "is_valid": self._is_valid
461
+ }
462
+
463
+ def to_bytes(self) -> bytes:
464
+ """ Convert dynamic profiler config context to a byte sequence."""
465
+ return self.json_to_bytes(self._json_dict)
466
+
467
+ @staticmethod
468
+ def json_to_bytes(json_data):
469
+ """ Convert a json to a byte sequence."""
470
+ cfg_json_str = json.dumps(json_data)
471
+ # Encode the JSON string as a byte sequence (using UTF-8 encoding)
472
+ return cfg_json_str.encode("utf-8")
473
+
474
+ @staticmethod
475
+ def bytes_to_json(bytes_shm):
476
+ """ Convert a byte sequence to a json."""
477
+ try:
478
+ json_string = bytes_shm.decode("utf-8")
479
+ json_data = json.loads(json_string)
480
+ except UnicodeDecodeError:
481
+ logger.error("Failed to parse dynamic profiler config JSON string.")
482
+ return {}
483
+
484
+ return json_data
485
+
486
+ @staticmethod
487
+ def _convert_analyse_mode(analyse_mode: int):
488
+ """Convert analyse_mode to real args in Profiler."""
489
+ mode_map = {
490
+ 0: 'sync',
491
+ 1: 'async',
492
+ -1: None
493
+ }
494
+ if analyse_mode in mode_map:
495
+ return mode_map[analyse_mode]
496
+ logger.warning(f"'analyse_mode' needs to be set to one of '-1, 0, and 1', but got '{analyse_mode}', "
497
+ f"will be reset to default: 'None'.")
498
+ return None
499
+
500
+ def _convert_profiler_level(self, profiler_level):
501
+ """ Convert profiler_level to real args in Profiler."""
502
+ # Convert int profiler_level
503
+ if isinstance(profiler_level, int):
504
+ logger.warning(f"The parameter 'profiler_level={profiler_level}' does not support passing in the "
505
+ f"int type in future versions. Please use the str type instead.")
506
+ return self._convert_int_profiler_level(profiler_level)
507
+
508
+ try:
509
+ profiler_level = ProfilerLevel(profiler_level)
510
+ except ValueError:
511
+ logger.warning(
512
+ f"'{profiler_level}' is not a valid profiler_level, "
513
+ f"will be reset to will be reset to default: 'Level0'."
514
+ )
515
+ return ProfilerLevel.Level0
516
+
517
+ return profiler_level
518
+
519
+ @staticmethod
520
+ def _convert_int_profiler_level(profiler_level):
521
+ """ Convert int profiler_level to real args in Profiler."""
522
+ if profiler_level == -1:
523
+ return ProfilerLevel.LevelNone
524
+ if profiler_level == 0:
525
+ return ProfilerLevel.Level0
526
+ if profiler_level == 1:
527
+ return ProfilerLevel.Level1
528
+ if profiler_level == 2:
529
+ return ProfilerLevel.Level2
530
+
531
+ logger.warning(f"'profiler_level' needs to be set to one of '-1, 0, 1 and 2', but got '{profiler_level}',"
532
+ f"will be reset to default: '{ProfilerLevel.Level0}'.")
533
+ return ProfilerLevel.Level0
534
+
535
+ def _convert_activities(self, activities):
536
+ """ Convert activities to real args in Profiler."""
537
+ # Convert int activities
538
+ if isinstance(activities, int):
539
+ logger.warning(f"The parameter 'activities={activities}' does not support passing in the int type in "
540
+ f"future versions. Please use the list type instead.")
541
+ return self._convert_int_activities(activities)
542
+
543
+ converted_activities = []
544
+
545
+ for activity in activities:
546
+ try:
547
+ converted_activity = ProfilerActivity(activity)
548
+ converted_activities.append(converted_activity)
549
+ except ValueError:
550
+ logger.warning(f"'{activity}' is not a valid ProfilerActivity member. "
551
+ f"will be reset to default: '{[ProfilerActivity.CPU, ProfilerActivity.NPU]}'.")
552
+ return [ProfilerActivity.CPU, ProfilerActivity.NPU]
553
+
554
+ return converted_activities
555
+
556
+ @staticmethod
557
+ def _convert_int_activities(activities):
558
+ """ Convert int activities to real args in Profiler."""
559
+ if activities == 0:
560
+ return [ProfilerActivity.CPU, ProfilerActivity.NPU]
561
+ if activities == 1:
562
+ return [ProfilerActivity.CPU]
563
+ if activities == 2:
564
+ return [ProfilerActivity.NPU]
565
+
566
+ logger.warning(f"'activities' needs to be set to one of '0, 1 and 2', but got '{activities}',"
567
+ f"will be reset to default: '{[ProfilerActivity.CPU, ProfilerActivity.NPU]}'.")
568
+ return [ProfilerActivity.CPU, ProfilerActivity.NPU]
569
+
570
+ def _convert_aic_metrics(self, aic_metrics):
571
+ """ Convert aic_metrics to real args in Profiler."""
572
+ # Convert int aic_metrics
573
+ if isinstance(aic_metrics, int):
574
+ logger.warning(f"The parameter 'aic_metrics={aic_metrics}' does not support passing in the int type in "
575
+ f"future versions. Please use the str type instead.")
576
+ return self._convert_int_aic_metrics(aic_metrics)
577
+
578
+ # Special handling of the AiCoreNone scene
579
+ if aic_metrics == "AiCoreNone":
580
+ return AicoreMetrics.AiCoreNone
581
+
582
+ try:
583
+ aic_metrics = AicoreMetrics(aic_metrics)
584
+ except ValueError:
585
+ logger.warning(
586
+ f"'{aic_metrics}' is not a valid aic_metrics, "
587
+ f"will be reset to will be reset to default: 'AiCoreNone'."
588
+ )
589
+ return AicoreMetrics.AiCoreNone
590
+
591
+ return aic_metrics
592
+
593
+ @staticmethod
594
+ def _convert_int_aic_metrics(aic_metrics):
595
+ """ Convert int aic_metrics to real args in Profiler."""
596
+ if aic_metrics == 0:
597
+ return AicoreMetrics.PipeUtilization
598
+ if aic_metrics == 1:
599
+ return AicoreMetrics.ArithmeticUtilization
600
+ if aic_metrics == 2:
601
+ return AicoreMetrics.Memory
602
+ if aic_metrics == 3:
603
+ return AicoreMetrics.MemoryL0
604
+ if aic_metrics == 4:
605
+ return AicoreMetrics.MemoryUB
606
+ if aic_metrics == 5:
607
+ return AicoreMetrics.ResourceConflictRatio
608
+ if aic_metrics == 6:
609
+ return AicoreMetrics.L2Cache
610
+ if aic_metrics == 7:
611
+ return AicoreMetrics.MemoryAccess
612
+
613
+ logger.warning(f"'aic_metrics' needs to be set to one of '0, 1, 2, 3, 4, 5, 6, and 7',"
614
+ f"but got '{aic_metrics}', will be reset to default: '{AicoreMetrics.AiCoreNone}'.")
615
+ return AicoreMetrics.AiCoreNone
616
+
617
+ def _convert_export_type(self, export_types):
618
+ """ Convert export_type to real args in Profiler."""
619
+ # Convert int export_type
620
+ if isinstance(export_types, int):
621
+ logger.warning(f"The parameter 'export_type={export_types}' does not support passing in the int type "
622
+ f"in future versions. Please use the list type instead.")
623
+ return self._convert_int_export_type(export_types)
624
+
625
+ converted_export_types = []
626
+
627
+ for export_type in export_types:
628
+ try:
629
+ converted_export_type = ExportType(export_type)
630
+ converted_export_types.append(converted_export_type)
631
+ except ValueError:
632
+ logger.warning(f"'{export_type}' is not a valid ExportType member. "
633
+ f"will be reset to default: '{[ExportType.Text]}'.")
634
+ return [ExportType.Text]
635
+
636
+ return converted_export_types
637
+
638
+ @staticmethod
639
+ def _convert_int_export_type(export_types):
640
+ """ Convert int export_type to real args in Profiler."""
641
+ if export_types == 1:
642
+ return [ExportType.Db]
643
+ if export_types == 2:
644
+ return [ExportType.Text, ExportType.Db]
645
+
646
+ logger.warning(f"'export_types' needs to be set to one of '1 and 2', but got '{export_types}', "
647
+ f"will be reset to default: '{[ExportType.Text]}'.")
648
+ return [ExportType.Text]
649
+
650
+ @staticmethod
651
+ def _convert_host_sys(host_systems):
652
+ """ Convert host_sys to real args in Profiler."""
653
+ if not host_systems:
654
+ return None
655
+
656
+ converted_host_systems = []
657
+ for host_system in host_systems:
658
+ try:
659
+ converted_host_sys = HostSystem(host_system)
660
+ converted_host_systems.append(converted_host_sys)
661
+ except ValueError:
662
+ logger.warning(f"'{host_system}' is not a valid HostSystem member. "
663
+ f"will be reset to default: 'None'.")
664
+ return None
665
+
666
+ return converted_host_systems