mindspore 2.6.0rc1__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 (384) 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 +37 -62
  13. mindspore/_extends/parse/resources.py +39 -0
  14. mindspore/_extends/parse/standard_method.py +43 -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 +77 -16
  31. mindspore/common/api.py +238 -113
  32. mindspore/common/dtype.py +21 -11
  33. mindspore/common/dump.py +10 -15
  34. mindspore/common/generator.py +5 -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 +81 -81
  43. mindspore/communication/_comm_helper.py +46 -4
  44. mindspore/communication/management.py +79 -7
  45. mindspore/context.py +58 -40
  46. mindspore/dataset/core/config.py +3 -3
  47. mindspore/dataset/engine/datasets.py +20 -7
  48. mindspore/dataset/engine/datasets_user_defined.py +33 -3
  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 -7
  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 +27 -7
  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 +6 -46
  109. mindspore/mint/distributed/__init__.py +1 -0
  110. mindspore/mint/distributed/distributed.py +212 -9
  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 +137 -101
  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 +328 -502
  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 +117 -110
  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 +3 -3
  140. mindspore/nn/optim/adasum.py +2 -2
  141. mindspore/nn/optim/asgd.py +2 -0
  142. mindspore/nn/optim/optimizer.py +1 -1
  143. mindspore/nn/optim/thor.py +2 -2
  144. mindspore/nn/probability/distribution/exponential.py +2 -1
  145. mindspore/nn/probability/distribution/poisson.py +2 -1
  146. mindspore/nn/sparse/sparse.py +3 -3
  147. mindspore/nn/wrap/cell_wrapper.py +34 -37
  148. mindspore/nn/wrap/grad_reducer.py +37 -37
  149. mindspore/nn/wrap/loss_scale.py +72 -74
  150. mindspore/numpy/array_creations.py +5 -5
  151. mindspore/numpy/fft.py +1 -1
  152. mindspore/numpy/math_ops.py +5 -5
  153. mindspore/opencv_core452.dll +0 -0
  154. mindspore/opencv_imgcodecs452.dll +0 -0
  155. mindspore/opencv_imgproc452.dll +0 -0
  156. mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
  157. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
  158. mindspore/ops/_vmap/vmap_array_ops.py +31 -13
  159. mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
  160. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +42 -11
  161. mindspore/ops/auto_generate/gen_extend_func.py +23 -141
  162. mindspore/ops/auto_generate/gen_ops_def.py +727 -321
  163. mindspore/ops/auto_generate/gen_ops_prim.py +1721 -984
  164. mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
  165. mindspore/ops/composite/__init__.py +10 -0
  166. mindspore/ops/composite/base.py +8 -4
  167. mindspore/ops/composite/multitype_ops/__init__.py +12 -1
  168. mindspore/ops/composite/multitype_ops/_compile_utils.py +133 -109
  169. mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
  170. mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
  171. mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
  172. mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
  173. mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
  174. mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
  175. mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
  176. mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
  177. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
  178. mindspore/ops/function/__init__.py +3 -1
  179. mindspore/ops/function/_add_attr_func.py +11 -6
  180. mindspore/ops/function/array_func.py +9 -96
  181. mindspore/ops/function/debug_func.py +4 -3
  182. mindspore/ops/function/grad/grad_func.py +1 -1
  183. mindspore/ops/function/math_func.py +33 -540
  184. mindspore/ops/function/nn_func.py +28 -74
  185. mindspore/ops/function/other_func.py +4 -1
  186. mindspore/ops/function/random_func.py +44 -5
  187. mindspore/ops/function/vmap_func.py +2 -1
  188. mindspore/ops/functional.py +2 -3
  189. mindspore/ops/functional_overload.py +571 -6
  190. mindspore/ops/op_info_register.py +21 -0
  191. mindspore/ops/operations/__init__.py +16 -11
  192. mindspore/ops/operations/_custom_ops_utils.py +689 -34
  193. mindspore/ops/operations/_inner_ops.py +3 -6
  194. mindspore/ops/operations/_sequence_ops.py +1 -1
  195. mindspore/ops/operations/array_ops.py +2 -2
  196. mindspore/ops/operations/comm_ops.py +185 -26
  197. mindspore/ops/operations/custom_ops.py +294 -174
  198. mindspore/ops/operations/debug_ops.py +59 -4
  199. mindspore/ops/operations/image_ops.py +13 -13
  200. mindspore/ops/operations/manually_defined/ops_def.py +15 -16
  201. mindspore/ops/operations/math_ops.py +3 -4
  202. mindspore/ops/operations/nn_ops.py +7 -39
  203. mindspore/ops/primitive.py +6 -10
  204. mindspore/ops/tensor_method.py +47 -8
  205. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
  206. mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
  207. mindspore/ops_generate/api/functions_cc_generator.py +58 -10
  208. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
  209. mindspore/ops_generate/common/base_generator.py +14 -0
  210. mindspore/ops_generate/common/gen_constants.py +8 -3
  211. mindspore/ops_generate/common/gen_utils.py +0 -19
  212. mindspore/ops_generate/common/op_proto.py +11 -4
  213. mindspore/ops_generate/common/template.py +88 -11
  214. mindspore/ops_generate/gen_ops.py +1 -1
  215. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
  216. mindspore/ops_generate/op_def/ops_def_cc_generator.py +0 -3
  217. mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
  218. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
  219. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
  220. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
  221. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
  222. mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -0
  223. mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
  224. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
  225. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
  226. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
  227. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
  228. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
  229. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
  230. mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
  231. mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
  232. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
  233. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
  234. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
  235. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
  236. mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
  237. mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
  238. mindspore/parallel/_auto_parallel_context.py +11 -8
  239. mindspore/parallel/_cell_wrapper.py +113 -45
  240. mindspore/parallel/_parallel_serialization.py +1 -1
  241. mindspore/parallel/_ps_context.py +4 -6
  242. mindspore/parallel/_tensor.py +167 -12
  243. mindspore/parallel/_transformer/moe.py +1 -1
  244. mindspore/parallel/_transformer/transformer.py +13 -8
  245. mindspore/parallel/auto_parallel.py +14 -7
  246. mindspore/parallel/checkpoint_convert.py +3 -3
  247. mindspore/parallel/checkpoint_transform.py +11 -7
  248. mindspore/parallel/cluster/process_entity/_api.py +84 -48
  249. mindspore/parallel/cluster/process_entity/_utils.py +95 -7
  250. mindspore/parallel/cluster/run.py +43 -4
  251. mindspore/parallel/function/__init__.py +8 -1
  252. mindspore/parallel/function/reshard_func.py +6 -7
  253. mindspore/parallel/nn/__init__.py +15 -2
  254. mindspore/parallel/nn/parallel_cell_wrapper.py +9 -10
  255. mindspore/parallel/nn/parallel_grad_reducer.py +7 -6
  256. mindspore/parallel/shard.py +3 -4
  257. mindspore/parallel/transform_safetensors.py +463 -174
  258. mindspore/profiler/__init__.py +2 -1
  259. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
  260. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
  261. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +12 -6
  262. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
  263. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  264. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
  265. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
  266. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
  267. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
  268. mindspore/profiler/analysis/task_manager.py +1 -1
  269. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
  270. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
  271. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +42 -22
  272. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
  273. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
  274. mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
  275. mindspore/profiler/common/constant.py +16 -0
  276. mindspore/profiler/common/profiler_context.py +25 -27
  277. mindspore/profiler/common/profiler_info.py +0 -16
  278. mindspore/profiler/common/profiler_op_analyse.py +235 -0
  279. mindspore/profiler/common/profiler_output_path.py +23 -8
  280. mindspore/profiler/common/profiler_parameters.py +128 -35
  281. mindspore/profiler/dynamic_profile/__init__.py +0 -0
  282. mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
  283. mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
  284. mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
  285. mindspore/profiler/dynamic_profiler.py +305 -314
  286. mindspore/profiler/envprofiler.py +12 -7
  287. mindspore/profiler/experimental_config.py +96 -6
  288. mindspore/profiler/mstx.py +33 -12
  289. mindspore/profiler/platform/__init__.py +2 -3
  290. mindspore/profiler/platform/npu_profiler.py +29 -19
  291. mindspore/profiler/profiler.py +35 -19
  292. mindspore/profiler/profiler_action_controller.py +64 -76
  293. mindspore/profiler/schedule.py +10 -4
  294. mindspore/rewrite/common/config.py +1 -0
  295. mindspore/rewrite/common/namer.py +1 -0
  296. mindspore/rewrite/common/namespace.py +1 -0
  297. mindspore/rewrite/node/node.py +31 -11
  298. mindspore/rewrite/parsers/assign_parser.py +1 -1
  299. mindspore/rewrite/symbol_tree/symbol_tree.py +1 -1
  300. mindspore/run_check/_check_version.py +7 -10
  301. mindspore/runtime/__init__.py +5 -5
  302. mindspore/runtime/event.py +10 -4
  303. mindspore/runtime/executor.py +60 -45
  304. mindspore/runtime/memory.py +30 -32
  305. mindspore/runtime/thread_bind_core.py +298 -164
  306. mindspore/safeguard/rewrite_obfuscation.py +12 -13
  307. mindspore/swresample-4.dll +0 -0
  308. mindspore/swscale-6.dll +0 -0
  309. mindspore/tinyxml2.dll +0 -0
  310. mindspore/train/_utils.py +14 -4
  311. mindspore/train/amp.py +43 -20
  312. mindspore/train/callback/__init__.py +5 -5
  313. mindspore/train/callback/_checkpoint.py +3 -6
  314. mindspore/train/callback/_flops_collector.py +1 -1
  315. mindspore/train/callback/_landscape.py +0 -1
  316. mindspore/train/callback/_train_fault_tolerance.py +97 -16
  317. mindspore/train/data_sink.py +11 -2
  318. mindspore/train/dataset_helper.py +9 -0
  319. mindspore/train/model.py +135 -55
  320. mindspore/train/serialization.py +133 -111
  321. mindspore/train/summary/summary_record.py +13 -2
  322. mindspore/turbojpeg.dll +0 -0
  323. mindspore/utils/__init__.py +3 -2
  324. mindspore/utils/dryrun.py +0 -6
  325. mindspore/utils/runtime_execution_order_check.py +163 -77
  326. mindspore/utils/sdc_detect.py +68 -0
  327. mindspore/utils/utils.py +6 -9
  328. mindspore/version.py +1 -1
  329. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0rc1.dist-info}/METADATA +5 -4
  330. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0rc1.dist-info}/RECORD +333 -371
  331. mindspore/_deprecated/jit.py +0 -198
  332. mindspore/experimental/es/__init__.py +0 -22
  333. mindspore/experimental/es/embedding_service.py +0 -891
  334. mindspore/experimental/es/embedding_service_layer.py +0 -581
  335. mindspore/profiler/parser/__init__.py +0 -14
  336. mindspore/profiler/parser/aicpu_data_parser.py +0 -272
  337. mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
  338. mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
  339. mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
  340. mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
  341. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
  342. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
  343. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
  344. mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
  345. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
  346. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
  347. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
  348. mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
  349. mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
  350. mindspore/profiler/parser/ascend_flops_generator.py +0 -116
  351. mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
  352. mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
  353. mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
  354. mindspore/profiler/parser/ascend_memory_generator.py +0 -185
  355. mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
  356. mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
  357. mindspore/profiler/parser/ascend_op_generator.py +0 -334
  358. mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
  359. mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
  360. mindspore/profiler/parser/base_timeline_generator.py +0 -483
  361. mindspore/profiler/parser/container.py +0 -229
  362. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
  363. mindspore/profiler/parser/flops_parser.py +0 -531
  364. mindspore/profiler/parser/framework_enum.py +0 -111
  365. mindspore/profiler/parser/framework_parser.py +0 -464
  366. mindspore/profiler/parser/framework_struct.py +0 -61
  367. mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
  368. mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
  369. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
  370. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
  371. mindspore/profiler/parser/hccl_parser.py +0 -573
  372. mindspore/profiler/parser/hwts_log_parser.py +0 -122
  373. mindspore/profiler/parser/integrator.py +0 -526
  374. mindspore/profiler/parser/memory_usage_parser.py +0 -277
  375. mindspore/profiler/parser/minddata_analyzer.py +0 -800
  376. mindspore/profiler/parser/minddata_parser.py +0 -186
  377. mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
  378. mindspore/profiler/parser/op_intermediate_parser.py +0 -149
  379. mindspore/profiler/parser/optime_parser.py +0 -250
  380. mindspore/profiler/parser/profiler_info.py +0 -213
  381. mindspore/profiler/parser/step_trace_parser.py +0 -666
  382. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0rc1.dist-info}/WHEEL +0 -0
  383. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0rc1.dist-info}/entry_points.txt +0 -0
  384. {mindspore-2.6.0rc1.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