mindspore 2.5.0__cp310-cp310-win_amd64.whl → 2.6.0rc1__cp310-cp310-win_amd64.whl

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

Potentially problematic release.


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

Files changed (491) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Microsoft.VisualStudio.Telemetry.dll +0 -0
  3. mindspore/Newtonsoft.Json.dll +0 -0
  4. mindspore/__init__.py +6 -4
  5. mindspore/_c_dataengine.cp310-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp310-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp310-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -33
  10. mindspore/_deprecated/__init__.py +17 -0
  11. mindspore/_deprecated/jit.py +198 -0
  12. mindspore/_extends/builtin_operations.py +1 -1
  13. mindspore/_extends/parse/__init__.py +6 -7
  14. mindspore/_extends/parse/compile_config.py +19 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +22 -3
  16. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  17. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  18. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  19. mindspore/_extends/parse/parser.py +24 -193
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +97 -74
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +16 -11
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +4 -4
  27. mindspore/atlprov.dll +0 -0
  28. mindspore/avcodec-59.dll +0 -0
  29. mindspore/avdevice-59.dll +0 -0
  30. mindspore/avfilter-8.dll +0 -0
  31. mindspore/avformat-59.dll +0 -0
  32. mindspore/avutil-57.dll +0 -0
  33. mindspore/boost/__init__.py +2 -2
  34. mindspore/boost/base.py +3 -7
  35. mindspore/boost/boost_cell_wrapper.py +2 -2
  36. mindspore/c1.dll +0 -0
  37. mindspore/c1xx.dll +0 -0
  38. mindspore/c2.dll +0 -0
  39. mindspore/common/__init__.py +4 -3
  40. mindspore/common/_grad_function.py +56 -0
  41. mindspore/common/_pijit_context.py +14 -5
  42. mindspore/common/_register_for_tensor.py +1 -1
  43. mindspore/common/_stub_tensor.py +5 -10
  44. mindspore/common/_tensor_cpp_method.py +1 -1
  45. mindspore/common/_tensor_docs.py +1915 -3287
  46. mindspore/common/api.py +341 -354
  47. mindspore/common/auto_dynamic_shape.py +41 -44
  48. mindspore/common/dtype.py +5 -2
  49. mindspore/common/dump.py +7 -5
  50. mindspore/common/file_system.py +3 -0
  51. mindspore/common/hook_handle.py +5 -3
  52. mindspore/common/initializer.py +10 -6
  53. mindspore/common/jit_begin_end.py +94 -0
  54. mindspore/common/jit_config.py +6 -1
  55. mindspore/common/jit_context.py +76 -0
  56. mindspore/common/jit_trace.py +378 -0
  57. mindspore/common/lazy_inline.py +2 -2
  58. mindspore/common/mutable.py +5 -4
  59. mindspore/common/parameter.py +106 -39
  60. mindspore/common/seed.py +2 -2
  61. mindspore/common/sparse_tensor.py +23 -17
  62. mindspore/common/tensor.py +297 -714
  63. mindspore/communication/__init__.py +7 -5
  64. mindspore/communication/_comm_helper.py +47 -2
  65. mindspore/communication/comm_func.py +70 -53
  66. mindspore/communication/management.py +83 -17
  67. mindspore/context.py +214 -560
  68. mindspore/dataset/__init__.py +44 -20
  69. mindspore/dataset/audio/__init__.py +2 -8
  70. mindspore/dataset/audio/transforms.py +3 -17
  71. mindspore/dataset/core/config.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +1 -1
  73. mindspore/dataset/engine/datasets.py +102 -120
  74. mindspore/dataset/engine/datasets_audio.py +22 -22
  75. mindspore/dataset/engine/datasets_standard_format.py +43 -24
  76. mindspore/dataset/engine/datasets_text.py +78 -85
  77. mindspore/dataset/engine/datasets_user_defined.py +108 -76
  78. mindspore/dataset/engine/datasets_vision.py +111 -108
  79. mindspore/dataset/engine/iterators.py +5 -3
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/samplers.py +279 -57
  82. mindspore/dataset/engine/serializer_deserializer.py +2 -1
  83. mindspore/dataset/engine/validators.py +10 -0
  84. mindspore/dataset/text/__init__.py +7 -6
  85. mindspore/dataset/text/transforms.py +6 -5
  86. mindspore/dataset/text/utils.py +3 -3
  87. mindspore/dataset/transforms/__init__.py +0 -9
  88. mindspore/dataset/transforms/transforms.py +3 -3
  89. mindspore/dataset/utils/browse_dataset.py +1 -1
  90. mindspore/dataset/vision/__init__.py +2 -9
  91. mindspore/dataset/vision/transforms.py +202 -158
  92. mindspore/dataset/vision/utils.py +7 -5
  93. mindspore/device_context/ascend/op_debug.py +60 -1
  94. mindspore/device_context/ascend/op_tuning.py +0 -4
  95. mindspore/device_manager.py +39 -3
  96. mindspore/dnnl.dll +0 -0
  97. mindspore/dpcmi.dll +0 -0
  98. mindspore/experimental/es/embedding_service.py +35 -27
  99. mindspore/experimental/map_parameter.py +4 -4
  100. mindspore/experimental/optim/adadelta.py +22 -26
  101. mindspore/experimental/optim/adagrad.py +4 -4
  102. mindspore/experimental/optim/adam.py +4 -0
  103. mindspore/experimental/optim/adamax.py +4 -4
  104. mindspore/experimental/optim/adamw.py +4 -0
  105. mindspore/experimental/optim/asgd.py +1 -1
  106. mindspore/experimental/optim/lr_scheduler.py +40 -22
  107. mindspore/experimental/optim/radam.py +5 -5
  108. mindspore/experimental/optim/rprop.py +1 -1
  109. mindspore/experimental/optim/sgd.py +1 -1
  110. mindspore/hal/contiguous_tensors_handle.py +6 -10
  111. mindspore/hal/device.py +55 -81
  112. mindspore/hal/event.py +38 -55
  113. mindspore/hal/memory.py +93 -144
  114. mindspore/hal/stream.py +81 -125
  115. mindspore/include/dataset/constants.h +7 -4
  116. mindspore/include/dataset/execute.h +2 -2
  117. mindspore/jpeg62.dll +0 -0
  118. mindspore/log.py +40 -2
  119. mindspore/mindrecord/__init__.py +20 -7
  120. mindspore/mindspore_backend_common.dll +0 -0
  121. mindspore/mindspore_backend_manager.dll +0 -0
  122. mindspore/mindspore_common.dll +0 -0
  123. mindspore/mindspore_core.dll +0 -0
  124. mindspore/mindspore_dump.dll +0 -0
  125. mindspore/mindspore_frontend.dll +0 -0
  126. mindspore/mindspore_glog.dll +0 -0
  127. mindspore/mindspore_memory_pool.dll +0 -0
  128. mindspore/mindspore_ms_backend.dll +0 -0
  129. mindspore/mindspore_ops.dll +0 -0
  130. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  131. mindspore/mindspore_ops_kernel_common.dll +0 -0
  132. mindspore/mindspore_profiler.dll +0 -0
  133. mindspore/mindspore_pyboost.dll +0 -0
  134. mindspore/mindspore_pynative.dll +0 -0
  135. mindspore/mindspore_res_manager.dll +0 -0
  136. mindspore/mindspore_runtime_pipeline.dll +0 -0
  137. mindspore/mint/__init__.py +131 -700
  138. mindspore/mint/distributed/__init__.py +5 -1
  139. mindspore/mint/distributed/distributed.py +194 -109
  140. mindspore/mint/linalg/__init__.py +2 -0
  141. mindspore/mint/nn/__init__.py +280 -18
  142. mindspore/mint/nn/functional.py +282 -64
  143. mindspore/mint/nn/layer/__init__.py +4 -0
  144. mindspore/mint/nn/layer/_functions.py +7 -3
  145. mindspore/mint/nn/layer/activation.py +120 -13
  146. mindspore/mint/nn/layer/conv.py +218 -24
  147. mindspore/mint/nn/layer/normalization.py +15 -16
  148. mindspore/mint/nn/layer/padding.py +1 -1
  149. mindspore/mint/nn/layer/pooling.py +66 -1
  150. mindspore/mint/optim/__init__.py +2 -1
  151. mindspore/mint/optim/sgd.py +171 -0
  152. mindspore/msobj140.dll +0 -0
  153. mindspore/mspdb140.dll +0 -0
  154. mindspore/mspdbcore.dll +0 -0
  155. mindspore/mspdbst.dll +0 -0
  156. mindspore/mspft140.dll +0 -0
  157. mindspore/msvcdis140.dll +0 -0
  158. mindspore/msvcp140_1.dll +0 -0
  159. mindspore/msvcp140_2.dll +0 -0
  160. mindspore/msvcp140_atomic_wait.dll +0 -0
  161. mindspore/msvcp140_codecvt_ids.dll +0 -0
  162. mindspore/nn/__init__.py +4 -1
  163. mindspore/nn/cell.py +1250 -176
  164. mindspore/nn/layer/activation.py +23 -21
  165. mindspore/nn/layer/basic.py +22 -16
  166. mindspore/nn/layer/container.py +1 -1
  167. mindspore/nn/layer/conv.py +22 -17
  168. mindspore/nn/layer/embedding.py +9 -8
  169. mindspore/nn/layer/normalization.py +48 -42
  170. mindspore/nn/layer/pooling.py +75 -31
  171. mindspore/nn/layer/transformer.py +11 -10
  172. mindspore/nn/learning_rate_schedule.py +4 -2
  173. mindspore/nn/loss/loss.py +27 -19
  174. mindspore/nn/optim/ada_grad.py +6 -5
  175. mindspore/nn/optim/adadelta.py +9 -7
  176. mindspore/nn/optim/adafactor.py +1 -1
  177. mindspore/nn/optim/adam.py +16 -12
  178. mindspore/nn/optim/adamax.py +8 -7
  179. mindspore/nn/optim/adasum.py +5 -5
  180. mindspore/nn/optim/asgd.py +1 -1
  181. mindspore/nn/optim/ftrl.py +11 -9
  182. mindspore/nn/optim/lamb.py +1 -1
  183. mindspore/nn/optim/lazyadam.py +12 -10
  184. mindspore/nn/optim/momentum.py +7 -6
  185. mindspore/nn/optim/optimizer.py +2 -2
  186. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  187. mindspore/nn/optim/rmsprop.py +13 -12
  188. mindspore/nn/optim/rprop.py +9 -7
  189. mindspore/nn/optim/sgd.py +9 -6
  190. mindspore/nn/optim/tft_wrapper.py +5 -2
  191. mindspore/nn/probability/bijector/bijector.py +17 -11
  192. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  193. mindspore/nn/probability/bijector/invert.py +2 -2
  194. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  195. mindspore/nn/probability/bijector/softplus.py +3 -2
  196. mindspore/nn/probability/distribution/beta.py +3 -3
  197. mindspore/nn/probability/distribution/categorical.py +1 -1
  198. mindspore/nn/probability/distribution/cauchy.py +4 -2
  199. mindspore/nn/probability/distribution/exponential.py +6 -7
  200. mindspore/nn/probability/distribution/gamma.py +2 -2
  201. mindspore/nn/probability/distribution/gumbel.py +2 -2
  202. mindspore/nn/probability/distribution/half_normal.py +5 -3
  203. mindspore/nn/probability/distribution/logistic.py +5 -3
  204. mindspore/nn/probability/distribution/poisson.py +1 -1
  205. mindspore/nn/probability/distribution/uniform.py +5 -3
  206. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  207. mindspore/nn/reinforcement/tensor_array.py +1 -1
  208. mindspore/nn/wrap/__init__.py +6 -6
  209. mindspore/nn/wrap/cell_wrapper.py +178 -117
  210. mindspore/nn/wrap/grad_reducer.py +45 -36
  211. mindspore/nn/wrap/loss_scale.py +3 -3
  212. mindspore/numpy/array_creations.py +3 -3
  213. mindspore/numpy/array_ops.py +1 -1
  214. mindspore/numpy/math_ops.py +4 -4
  215. mindspore/numpy/utils.py +1 -2
  216. mindspore/numpy/utils_const.py +1 -2
  217. mindspore/opencv_core452.dll +0 -0
  218. mindspore/opencv_imgcodecs452.dll +0 -0
  219. mindspore/opencv_imgproc452.dll +0 -0
  220. mindspore/ops/__init__.py +3 -2
  221. mindspore/ops/_grad_experimental/grad_comm_ops.py +18 -3
  222. mindspore/ops/_grad_experimental/grad_debug_ops.py +8 -1
  223. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  224. mindspore/ops/_register_for_op.py +0 -11
  225. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  226. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -4
  227. mindspore/ops/_vmap/vmap_array_ops.py +7 -6
  228. mindspore/ops/_vmap/vmap_grad_nn_ops.py +2 -1
  229. mindspore/ops/_vmap/vmap_math_ops.py +4 -7
  230. mindspore/ops/_vmap/vmap_nn_ops.py +9 -8
  231. mindspore/ops/auto_generate/__init__.py +4 -3
  232. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +102 -49
  233. mindspore/ops/auto_generate/gen_extend_func.py +281 -135
  234. mindspore/ops/auto_generate/gen_ops_def.py +2574 -2326
  235. mindspore/ops/auto_generate/gen_ops_prim.py +8566 -2755
  236. mindspore/ops/auto_generate/pyboost_inner_prim.py +106 -76
  237. mindspore/ops/composite/__init__.py +2 -1
  238. mindspore/ops/composite/base.py +19 -24
  239. mindspore/ops/composite/math_ops.py +6 -16
  240. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  241. mindspore/ops/composite/multitype_ops/_compile_utils.py +2 -3
  242. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  243. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  244. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  245. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  246. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  247. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  248. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  249. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  250. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  251. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  252. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  253. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  254. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  255. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  256. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  257. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  258. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  259. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  260. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  261. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  262. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  263. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  264. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  265. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  266. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  267. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -1
  268. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  269. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  270. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  271. mindspore/ops/function/__init__.py +28 -2
  272. mindspore/ops/function/_add_attr_func.py +58 -0
  273. mindspore/ops/function/array_func.py +1629 -2345
  274. mindspore/ops/function/clip_func.py +38 -45
  275. mindspore/ops/function/debug_func.py +36 -44
  276. mindspore/ops/function/grad/__init__.py +1 -0
  277. mindspore/ops/function/grad/grad_func.py +104 -71
  278. mindspore/ops/function/image_func.py +1 -1
  279. mindspore/ops/function/linalg_func.py +46 -78
  280. mindspore/ops/function/math_func.py +3035 -3705
  281. mindspore/ops/function/nn_func.py +676 -241
  282. mindspore/ops/function/other_func.py +159 -1
  283. mindspore/ops/function/parameter_func.py +17 -30
  284. mindspore/ops/function/random_func.py +204 -361
  285. mindspore/ops/function/reshard_func.py +4 -70
  286. mindspore/ops/function/sparse_func.py +3 -3
  287. mindspore/ops/function/sparse_unary_func.py +5 -5
  288. mindspore/ops/function/spectral_func.py +25 -58
  289. mindspore/ops/function/vmap_func.py +24 -17
  290. mindspore/ops/functional.py +6 -4
  291. mindspore/ops/functional_overload.py +547 -4
  292. mindspore/ops/op_info_register.py +32 -244
  293. mindspore/ops/operations/__init__.py +10 -5
  294. mindspore/ops/operations/_custom_ops_utils.py +247 -0
  295. mindspore/ops/operations/_grad_ops.py +1 -10
  296. mindspore/ops/operations/_inner_ops.py +5 -76
  297. mindspore/ops/operations/_ms_kernel.py +4 -10
  298. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  299. mindspore/ops/operations/_scalar_ops.py +3 -2
  300. mindspore/ops/operations/_sequence_ops.py +1 -1
  301. mindspore/ops/operations/_tensor_array.py +1 -1
  302. mindspore/ops/operations/array_ops.py +37 -22
  303. mindspore/ops/operations/comm_ops.py +150 -107
  304. mindspore/ops/operations/custom_ops.py +221 -23
  305. mindspore/ops/operations/debug_ops.py +115 -16
  306. mindspore/ops/operations/inner_ops.py +1 -1
  307. mindspore/ops/operations/linalg_ops.py +1 -58
  308. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  309. mindspore/ops/operations/manually_defined/ops_def.py +746 -79
  310. mindspore/ops/operations/math_ops.py +21 -18
  311. mindspore/ops/operations/nn_ops.py +65 -191
  312. mindspore/ops/operations/other_ops.py +62 -9
  313. mindspore/ops/operations/random_ops.py +13 -7
  314. mindspore/ops/operations/reshard_ops.py +1 -1
  315. mindspore/ops/operations/sparse_ops.py +2 -2
  316. mindspore/ops/primitive.py +43 -32
  317. mindspore/ops/tensor_method.py +232 -13
  318. mindspore/ops_generate/__init__.py +0 -5
  319. mindspore/ops_generate/aclnn/__init__.py +0 -0
  320. mindspore/ops_generate/{aclnn_kernel_register_auto_cc_generator.py → aclnn/aclnn_kernel_register_auto_cc_generator.py} +43 -18
  321. mindspore/ops_generate/{gen_aclnn_implement.py → aclnn/gen_aclnn_implement.py} +49 -51
  322. mindspore/ops_generate/api/__init__.py +0 -0
  323. mindspore/ops_generate/{add_tensor_docs_generator.py → api/add_tensor_docs_generator.py} +9 -7
  324. mindspore/ops_generate/{cpp_create_prim_instance_helper_generator.py → api/cpp_create_prim_instance_helper_generator.py} +6 -9
  325. mindspore/ops_generate/{functional_map_cpp_generator.py → api/functional_map_cpp_generator.py} +25 -12
  326. mindspore/ops_generate/{functional_overload_py_generator.py → api/functional_overload_py_generator.py} +8 -6
  327. mindspore/ops_generate/{functions_cc_generator.py → api/functions_cc_generator.py} +14 -10
  328. mindspore/ops_generate/api/gen_api.py +103 -0
  329. mindspore/ops_generate/{op_api_proto.py → api/op_api_proto.py} +98 -69
  330. mindspore/ops_generate/{tensor_func_reg_cpp_generator.py → api/tensor_func_reg_cpp_generator.py} +82 -43
  331. mindspore/ops_generate/common/__init__.py +0 -0
  332. mindspore/ops_generate/common/gen_constants.py +91 -0
  333. mindspore/ops_generate/{gen_utils.py → common/gen_utils.py} +72 -19
  334. mindspore/ops_generate/{op_proto.py → common/op_proto.py} +64 -1
  335. mindspore/ops_generate/{template.py → common/template.py} +96 -84
  336. mindspore/ops_generate/gen_ops.py +23 -325
  337. mindspore/ops_generate/op_def/__init__.py +0 -0
  338. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  339. mindspore/ops_generate/{lite_ops_cpp_generator.py → op_def/lite_ops_cpp_generator.py} +47 -11
  340. mindspore/ops_generate/{ops_def_cc_generator.py → op_def/ops_def_cc_generator.py} +18 -7
  341. mindspore/ops_generate/{ops_def_h_generator.py → op_def/ops_def_h_generator.py} +5 -5
  342. mindspore/ops_generate/{ops_name_h_generator.py → op_def/ops_name_h_generator.py} +30 -15
  343. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  344. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  345. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  346. mindspore/ops_generate/{op_def_py_generator.py → op_def_py/op_def_py_generator.py} +6 -5
  347. mindspore/ops_generate/{op_prim_py_generator.py → op_def_py/op_prim_py_generator.py} +24 -15
  348. mindspore/ops_generate/pyboost/__init__.py +0 -0
  349. mindspore/ops_generate/{auto_grad_impl_cc_generator.py → pyboost/auto_grad_impl_cc_generator.py} +11 -7
  350. mindspore/ops_generate/{auto_grad_reg_cc_generator.py → pyboost/auto_grad_reg_cc_generator.py} +7 -7
  351. mindspore/ops_generate/{gen_pyboost_func.py → pyboost/gen_pyboost_func.py} +40 -16
  352. mindspore/ops_generate/{op_template_parser.py → pyboost/op_template_parser.py} +105 -24
  353. mindspore/ops_generate/{pyboost_functions_cpp_generator.py → pyboost/pyboost_functions_cpp_generator.py} +55 -18
  354. mindspore/ops_generate/{pyboost_functions_h_generator.py → pyboost/pyboost_functions_h_generator.py} +42 -10
  355. mindspore/ops_generate/{pyboost_functions_py_generator.py → pyboost/pyboost_functions_py_generator.py} +6 -6
  356. mindspore/ops_generate/{pyboost_grad_function_cpp_generator.py → pyboost/pyboost_grad_function_cpp_generator.py} +11 -10
  357. mindspore/ops_generate/{pyboost_inner_prim_generator.py → pyboost/pyboost_inner_prim_generator.py} +8 -7
  358. mindspore/ops_generate/{pyboost_native_grad_functions_generator.py → pyboost/pyboost_native_grad_functions_generator.py} +14 -10
  359. mindspore/ops_generate/{pyboost_op_cpp_code_generator.py → pyboost/pyboost_op_cpp_code_generator.py} +140 -53
  360. mindspore/ops_generate/{pyboost_overload_functions_cpp_generator.py → pyboost/pyboost_overload_functions_cpp_generator.py} +28 -15
  361. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +88 -4
  362. mindspore/ops_generate/resources/__init__.py +0 -0
  363. mindspore/ops_generate/resources/resource_list.py +30 -0
  364. mindspore/ops_generate/resources/resource_loader.py +36 -0
  365. mindspore/ops_generate/resources/resource_manager.py +64 -0
  366. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  367. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  368. mindspore/parallel/__init__.py +6 -2
  369. mindspore/parallel/_auto_parallel_context.py +133 -6
  370. mindspore/parallel/_cell_wrapper.py +130 -15
  371. mindspore/parallel/_parallel_serialization.py +95 -4
  372. mindspore/parallel/_ps_context.py +1 -1
  373. mindspore/parallel/_recovery_context.py +7 -2
  374. mindspore/parallel/_tensor.py +142 -18
  375. mindspore/parallel/_utils.py +198 -25
  376. mindspore/parallel/algo_parameter_config.py +3 -3
  377. mindspore/parallel/auto_parallel.py +732 -0
  378. mindspore/parallel/checkpoint_convert.py +159 -0
  379. mindspore/parallel/checkpoint_transform.py +656 -37
  380. mindspore/parallel/cluster/process_entity/_api.py +151 -19
  381. mindspore/parallel/cluster/run.py +1 -1
  382. mindspore/parallel/function/__init__.py +24 -0
  383. mindspore/parallel/function/reshard_func.py +259 -0
  384. mindspore/parallel/nn/__init__.py +25 -0
  385. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  386. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  387. mindspore/parallel/parameter_broadcast.py +24 -13
  388. mindspore/parallel/shard.py +137 -61
  389. mindspore/parallel/transform_safetensors.py +287 -95
  390. mindspore/pgodb140.dll +0 -0
  391. mindspore/pgort140.dll +0 -0
  392. mindspore/profiler/__init__.py +9 -5
  393. mindspore/profiler/analysis/parser/ascend_cann_parser.py +6 -2
  394. mindspore/profiler/analysis/parser/ms_framework_parser.py +4 -4
  395. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -4
  396. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +22 -0
  397. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  398. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +241 -86
  399. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +41 -2
  400. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +33 -35
  401. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +7 -0
  402. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +8 -3
  403. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +141 -30
  404. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +5 -6
  405. mindspore/profiler/common/ascend_msprof_exporter.py +5 -4
  406. mindspore/profiler/common/constant.py +12 -0
  407. mindspore/profiler/common/msprof_cmd_tool.py +42 -23
  408. mindspore/profiler/common/path_manager.py +24 -0
  409. mindspore/profiler/common/profiler_context.py +26 -2
  410. mindspore/profiler/common/profiler_meta_data.py +74 -0
  411. mindspore/profiler/common/profiler_parameters.py +59 -18
  412. mindspore/profiler/common/profiler_path_manager.py +66 -7
  413. mindspore/profiler/dynamic_profiler.py +112 -79
  414. mindspore/profiler/envprofiler.py +26 -1
  415. mindspore/profiler/experimental_config.py +197 -0
  416. mindspore/profiler/mstx.py +57 -14
  417. mindspore/profiler/platform/npu_profiler.py +33 -7
  418. mindspore/profiler/profiler.py +541 -45
  419. mindspore/profiler/profiler_action_controller.py +1 -1
  420. mindspore/profiler/profiler_interface.py +4 -0
  421. mindspore/profiler/schedule.py +57 -22
  422. mindspore/rewrite/api/node.py +15 -13
  423. mindspore/rewrite/api/symbol_tree.py +1 -1
  424. mindspore/run_check/_check_version.py +25 -14
  425. mindspore/run_check/run_check.py +1 -1
  426. mindspore/runtime/__init__.py +2 -2
  427. mindspore/runtime/executor.py +40 -11
  428. mindspore/runtime/memory.py +25 -8
  429. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  430. mindspore/swresample-4.dll +0 -0
  431. mindspore/swscale-6.dll +0 -0
  432. mindspore/tbbmalloc.dll +0 -0
  433. mindspore/tinyxml2.dll +0 -0
  434. mindspore/train/__init__.py +8 -8
  435. mindspore/train/_utils.py +35 -7
  436. mindspore/train/amp.py +1 -1
  437. mindspore/train/callback/__init__.py +2 -2
  438. mindspore/train/callback/_callback.py +2 -16
  439. mindspore/train/callback/_checkpoint.py +24 -40
  440. mindspore/train/callback/_cluster_monitor.py +14 -18
  441. mindspore/train/callback/_flops_collector.py +2 -3
  442. mindspore/train/callback/_history.py +7 -4
  443. mindspore/train/callback/_lambda_callback.py +2 -2
  444. mindspore/train/callback/_landscape.py +0 -3
  445. mindspore/train/callback/_loss_monitor.py +2 -1
  446. mindspore/train/callback/_on_request_exit.py +6 -5
  447. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  448. mindspore/train/callback/_summary_collector.py +8 -13
  449. mindspore/train/callback/_time_monitor.py +2 -1
  450. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +179 -103
  451. mindspore/train/data_sink.py +25 -2
  452. mindspore/train/dataset_helper.py +4 -5
  453. mindspore/train/loss_scale_manager.py +8 -7
  454. mindspore/train/metrics/accuracy.py +3 -3
  455. mindspore/train/metrics/confusion_matrix.py +9 -9
  456. mindspore/train/metrics/error.py +3 -3
  457. mindspore/train/metrics/hausdorff_distance.py +4 -4
  458. mindspore/train/metrics/mean_surface_distance.py +3 -3
  459. mindspore/train/metrics/metric.py +0 -12
  460. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  461. mindspore/train/metrics/precision.py +8 -6
  462. mindspore/train/metrics/recall.py +9 -9
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  464. mindspore/train/mind_ir_pb2.py +19 -12
  465. mindspore/train/model.py +176 -103
  466. mindspore/train/serialization.py +246 -988
  467. mindspore/train/summary/_summary_adapter.py +2 -2
  468. mindspore/train/summary/summary_record.py +1 -1
  469. mindspore/turbojpeg.dll +0 -0
  470. mindspore/utils/__init__.py +3 -2
  471. mindspore/utils/dryrun.py +4 -2
  472. mindspore/utils/hooks.py +81 -0
  473. mindspore/utils/utils.py +138 -4
  474. mindspore/vcmeta.dll +0 -0
  475. mindspore/vcruntime140.dll +0 -0
  476. mindspore/vcruntime140_1.dll +0 -0
  477. mindspore/version.py +1 -1
  478. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/METADATA +2 -1
  479. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/RECORD +483 -438
  480. mindspore/_install_custom.py +0 -43
  481. mindspore/common/_register_for_adapter.py +0 -74
  482. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  483. mindspore/ops/auto_generate/gen_arg_handler.py +0 -136
  484. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  485. mindspore/ops_generate/gen_constants.py +0 -190
  486. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  487. mindspore/ops_generate/ops_primitive_h_generator.py +0 -81
  488. /mindspore/ops_generate/{base_generator.py → common/base_generator.py} +0 -0
  489. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/WHEEL +0 -0
  490. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/entry_points.txt +0 -0
  491. {mindspore-2.5.0.dist-info → mindspore-2.6.0rc1.dist-info}/top_level.txt +0 -0
@@ -25,12 +25,17 @@ import multiprocessing
25
25
 
26
26
  from mindspore import log as logger
27
27
  from mindspore.train import Callback
28
- from mindspore.profiler import Profiler, tensor_board_trace_handler, schedule
28
+ from mindspore.profiler import Profiler, tensorboard_trace_handler, schedule
29
29
  from mindspore.communication import get_rank
30
30
  from mindspore.profiler.parser.ascend_analysis.file_manager import FileManager
31
31
  from mindspore.profiler.parser.ascend_analysis.path_manager import PathManager
32
32
  from mindspore.profiler.profiler_interface import ProfilerInterface
33
- from mindspore.profiler.common.constant import ProfilerActivity, ProfilerLevel, AicoreMetrics
33
+ from mindspore.profiler.common.constant import (
34
+ ProfilerActivity,
35
+ ProfilerLevel,
36
+ AicoreMetrics,
37
+ ExportType,
38
+ )
34
39
  from mindspore.profiler.common.util import no_exception_func
35
40
 
36
41
 
@@ -51,16 +56,19 @@ class DynamicProfilerArgs:
51
56
  """
52
57
  Data class for dynamic profile config.
53
58
  """
54
- FMT = "iiiiii????"
59
+ FMT = "i" * 7 + "?" * 6
55
60
  SIZE = struct.calcsize(FMT)
56
61
 
57
62
  def __init__(self,
58
63
  start_step: int = -1,
59
64
  stop_step: int = -1,
60
- aicore_metrics: int = -1,
65
+ aic_metrics: int = -1,
61
66
  profiler_level: int = 0,
62
67
  analyse_mode: int = -1,
63
68
  activities: int = 0,
69
+ export_type: int = 0,
70
+ profile_memory: bool = False,
71
+ mstx: bool = False,
64
72
  parallel_strategy: bool = False,
65
73
  with_stack: bool = False,
66
74
  data_simplification: bool = True,
@@ -68,10 +76,13 @@ class DynamicProfilerArgs:
68
76
  **kwargs):
69
77
  self._start_step = start_step
70
78
  self._stop_step = stop_step
71
- self._aicore_metrics = aicore_metrics
79
+ self._aic_metrics = aic_metrics
72
80
  self._profiler_level = profiler_level
73
81
  self._analyse_mode = analyse_mode
74
82
  self._activities = activities
83
+ self._export_type = export_type
84
+ self._profile_memory = profile_memory
85
+ self._mstx = mstx
75
86
  self._parallel_strategy = parallel_strategy
76
87
  self._with_stack = with_stack
77
88
  self._data_simplification = data_simplification
@@ -79,42 +90,38 @@ class DynamicProfilerArgs:
79
90
  self._check_params_type()
80
91
 
81
92
  def _check_params_type(self):
82
- """ check params type."""
83
- if not isinstance(self._start_step, int):
84
- logger.warning("start_step should be int type, start_step will be reset to -1.")
85
- self._start_step = -1
86
-
87
- if not isinstance(self._stop_step, int):
88
- logger.warning("stop_step should be int type, stop_step will be reset to -1.")
89
- self._stop_step = -1
90
-
91
- if not isinstance(self._aicore_metrics, int):
92
- logger.warning("aicore_metrics should be int type, aicore_metrics will be reset to -1.")
93
- self._aicore_metrics = -1
94
-
95
- if not isinstance(self._profiler_level, int):
96
- logger.warning("profiler_level should be int type, profiler_level will be reset to 0.")
97
- self._profiler_level = 0
98
-
99
- if not isinstance(self._analyse_mode, int):
100
- logger.warning("analyse_mode should be int type, analyse_mode will be reset to -1.")
101
- self._analyse_mode = -1
102
-
103
- if not isinstance(self._activities, int):
104
- logger.warning("activities should be int type, activities will be reset to 0.")
105
- self._activities = 0
106
-
107
- if not isinstance(self._with_stack, bool):
108
- logger.warning("with_stack should be bool type, with_stack will be reset to False.")
109
- self._with_stack = False
110
-
111
- if not isinstance(self._data_simplification, bool):
112
- logger.warning("data_simplification should be bool type, data_simplification will be reset to True.")
113
- self._data_simplification = True
114
-
115
- if not isinstance(self._is_valid, bool):
116
- logger.warning("is_valid should be bool type, is_valid will be reset to False.")
117
- self._is_valid = False
93
+ """Check and enforce parameter types with lower complexity."""
94
+ # Define a parameter check rule. {Parameter name: (expected type, default value)}
95
+ param_rules = {
96
+ '_start_step': (int, -1),
97
+ '_stop_step': (int, -1),
98
+ '_aic_metrics': (int, -1),
99
+ '_profiler_level': (int, 0),
100
+ '_analyse_mode': (int, -1),
101
+ '_activities': (int, 0),
102
+ '_export_type': (int, 0),
103
+ '_profile_memory': (bool, False),
104
+ '_mstx': (bool, False),
105
+ '_parallel_strategy': (bool, False),
106
+ '_with_stack': (bool, False),
107
+ '_data_simplification': (bool, True),
108
+ '_is_valid': (bool, False)
109
+ }
110
+
111
+ def _is_valid_type(value, expected_type):
112
+ """Helper method for type checking."""
113
+ if expected_type is int and isinstance(value, bool):
114
+ return False
115
+ return isinstance(value, expected_type)
116
+
117
+ for param, (expected_type, default) in param_rules.items():
118
+ value = getattr(self, param)
119
+ if not _is_valid_type(value, expected_type):
120
+ logger.warning(
121
+ f"{param[1:]} should be {expected_type.__name__} type, "
122
+ f"will be reset to {default}."
123
+ )
124
+ setattr(self, param, default)
118
125
 
119
126
  @property
120
127
  def start_step(self):
@@ -156,7 +163,8 @@ class DynamicProfilerArgs:
156
163
  """ get all args in DynamicProfilerArgs."""
157
164
  self._profiler_level = self._convert_profiler_level(self._profiler_level)
158
165
  self._activities = self._convert_activities(self._activities)
159
- self._aicore_metrics = self._convert_aicore_metrics(self._aicore_metrics)
166
+ self._aic_metrics = self._convert_aic_metrics(self._aic_metrics)
167
+ self._export_type = self._convert_export_type(self._export_type)
160
168
  not_supported_args = ['_start_step', '_stop_step', '_analyse_mode', '_is_valid']
161
169
  res = {}
162
170
  for key, value in self.__dict__.items():
@@ -187,6 +195,8 @@ class DynamicProfilerArgs:
187
195
 
188
196
  def _convert_profiler_level(self, profiler_level: int) -> ProfilerLevel:
189
197
  """ convert profiler_level to real args in Profiler."""
198
+ if profiler_level == -1:
199
+ return ProfilerLevel.LevelNone
190
200
  if profiler_level == 0:
191
201
  return ProfilerLevel.Level0
192
202
  if profiler_level == 1:
@@ -205,26 +215,38 @@ class DynamicProfilerArgs:
205
215
  return [ProfilerActivity.NPU]
206
216
  return [ProfilerActivity.CPU, ProfilerActivity.NPU]
207
217
 
208
- def _convert_aicore_metrics(self, aicore_metrics: int) -> AicoreMetrics:
209
- """ convert aicore_metrics to real args in Profiler."""
210
- if aicore_metrics == -1:
218
+ def _convert_aic_metrics(self, aic_metrics: int) -> AicoreMetrics:
219
+ """ convert aic_metrics to real args in Profiler."""
220
+ if aic_metrics == -1:
211
221
  return AicoreMetrics.AiCoreNone
212
- if aicore_metrics == 0:
222
+ if aic_metrics == 0:
213
223
  return AicoreMetrics.PipeUtilization
214
- if aicore_metrics == 1:
224
+ if aic_metrics == 1:
215
225
  return AicoreMetrics.ArithmeticUtilization
216
- if aicore_metrics == 2:
226
+ if aic_metrics == 2:
217
227
  return AicoreMetrics.Memory
218
- if aicore_metrics == 3:
228
+ if aic_metrics == 3:
219
229
  return AicoreMetrics.MemoryL0
220
- if aicore_metrics == 4:
230
+ if aic_metrics == 4:
221
231
  return AicoreMetrics.MemoryUB
222
- if aicore_metrics == 5:
232
+ if aic_metrics == 5:
223
233
  return AicoreMetrics.ResourceConflictRatio
224
- if aicore_metrics == 6:
234
+ if aic_metrics == 6:
225
235
  return AicoreMetrics.L2Cache
236
+ if aic_metrics == 7:
237
+ return AicoreMetrics.MemoryAccess
226
238
  return AicoreMetrics.AiCoreNone
227
239
 
240
+ def _convert_export_type(self, export_type: int) -> ExportType:
241
+ """ convert export_type to real args in Profiler."""
242
+ if export_type == 0:
243
+ return [ExportType.Text]
244
+ if export_type == 1:
245
+ return [ExportType.Db]
246
+ if export_type == 2:
247
+ return [ExportType.Text, ExportType.Db]
248
+ return [ExportType.Text]
249
+
228
250
  class DynamicProfilerMonitorBase(Callback):
229
251
  """
230
252
  Dynamic profile callback base class implementing the dynamic profile functionality.
@@ -297,7 +319,8 @@ class DynamicProfilerMonitorBase(Callback):
297
319
  if self._profiler is None:
298
320
  prof_path = os.path.join(self._output_path, f"rank{self._rank_id}_start{start_step}_stop{stop_step}")
299
321
  PathManager.check_input_directory_path(prof_path)
300
- self._profiler = Profiler(output_path=prof_path, start_profile=False, **prof_args.args)
322
+ self._profiler = Profiler(on_trace_ready=tensorboard_trace_handler(dir_name=prof_path),
323
+ start_profile=False, **prof_args.args)
301
324
  print_msg(f"Rank {self._rank_id} create output path {prof_path}")
302
325
 
303
326
  self._profiler.start()
@@ -389,27 +412,30 @@ class DynamicProfilerMonitorBase(Callback):
389
412
  >>>
390
413
  >>> if __name__ == '__main__':
391
414
  ... # set json configuration file
392
- ... cfg_json = {
415
+ ... context.set_context(mode=mindspore.PYNATIVE_MODE)
416
+ ... mindspore.set_device("Ascend")
417
+ ... data_cfg = {
393
418
  ... "start_step": 2,
394
419
  ... "stop_step": 5,
395
- ... "aicore_metrics": -1,
420
+ ... "aic_metrics": -1,
396
421
  ... "profiler_level": 0,
397
422
  ... "activities": 0,
398
- ... "analyse_mode": -1,
423
+ ... "export_type": 0,
424
+ ... "profile_memory": False,
425
+ ... "mstx": False,
426
+ ... "analyse_mode": 0,
399
427
  ... "parallel_strategy": False,
400
428
  ... "with_stack": False,
401
429
  ... "data_simplification": True,
402
430
  ... }
403
- ... context.set_context(mode=mindspore.PYNATIVE_MODE)
404
- ... mindspore.set_device("Ascend")
405
- ... cfg_path = os.path.join("./cfg_path", "profiler_config.json")
431
+ ... output_path = "./cfg_path"
432
+ ... cfg_path = os.path.join(output_path, "profiler_config.json")
433
+ ... os.makedirs(output_path, exist_ok=True)
406
434
  ... # set cfg file
407
435
  ... with open(cfg_path, 'w') as f:
408
- ... json.dump(cfg_json, f, indent=4)
409
- ... # Assume the user has correctly configured the environment variable (RANK_ID is not a non-numeric type)
410
- ... rank_id = int(os.getenv('RANK_ID')) if os.getenv('RANK_ID') else 0
436
+ ... json.dump(data_cfg, f, indent=4)
411
437
  ... # cfg_path contains the json configuration file path, and output_path is the output path
412
- ... dp = DynamicProfilerMonitor(cfg_path=cfg_path, output_path=cfg_path)
438
+ ... dp = DynamicProfilerMonitor(cfg_path=output_path, output_path=output_path)
413
439
  ... STEP_NUM = 15
414
440
  ... # Define a network of training models
415
441
  ... net = Net()
@@ -417,11 +443,11 @@ class DynamicProfilerMonitorBase(Callback):
417
443
  ... print(f"step {i}")
418
444
  ... train(net)
419
445
  ... # Modify the configuration file after step 7. For example, change start_step to 8 and stop_step to 10
420
- ... if i == 7:
446
+ ... if i == 5:
421
447
  ... # Modify parameters in the JSON file
422
- ... change_cfg_json(os.path.join(cfg_path, "profiler_config.json"))
423
- ... # Call step collection
424
- ... dp.step()
448
+ ... change_cfg_json(os.path.join(output_path, "profiler_config.json"))
449
+ ... # Call step collection
450
+ ... dp.step()
425
451
  """
426
452
 
427
453
  self._step_num += 1
@@ -448,12 +474,11 @@ class DynamicProfilerMonitorBase(Callback):
448
474
  print_msg(f"Rank {self._rank_id} create output path {prof_path}")
449
475
  print_msg(f"Rank {self._rank_id} Dynamic profile start at step {self._start_step}, "
450
476
  f"will stop at step {self._stop_step}")
451
- self._profiler = Profiler(output_path=prof_path,
452
- schedule=schedule(wait=0, warmup=0,
477
+ self._profiler = Profiler(schedule=schedule(wait=0, warmup=0,
453
478
  active=self._stop_step - self._start_step + 1,
454
479
  repeat=1,
455
480
  skip_first=1),
456
- on_trace_ready=tensor_board_trace_handler,
481
+ on_trace_ready=tensorboard_trace_handler(dir_name=prof_path),
457
482
  **prof_args.args)
458
483
  else:
459
484
  self._profiler = None
@@ -625,7 +650,7 @@ if sys.version_info >= (3, 8):
625
650
  This class to enable the dynamic profile monitoring of MindSpore neural networks.
626
651
 
627
652
  Args:
628
- cfg_path (str): Dynamic profile json config file directory. The requirement is a shared path
653
+ cfg_path (str): (Ascend only) Dynamic profile json config file directory. The requirement is a shared path
629
654
  that can be accessed by all nodes. The parameters of the json configuration file are as follows:
630
655
 
631
656
  - start_step (int, required) - Sets the step number at which the Profiler starts collecting data.
@@ -635,16 +660,24 @@ if sys.version_info >= (3, 8):
635
660
  a relative value, with the first step of training being 1. The stop_step must be greater than or
636
661
  equal to start_step. The default value is -1, indicating that data collection will not start during
637
662
  the entire training process.
638
- - aicore_metrics (int, optional) - The range of values corresponds to the Profiler. The default value -1
663
+ - aic_metrics (int, optional) - The range of values corresponds to the Profiler. The default value -1
639
664
  indicates that AI Core utilization is not collected, and 0 indicates PipeUtilization, 1 indicates
640
665
  ArithmeticUtilization, 2 stands for Memory, 3 stands for MemoryL0, 4 stands for MemoryUB, 5 indicates
641
- ResourceConflictRatio, 6 indicates L2Cache.
642
- - profiler_level (int, optional) - Sets the level of performance data collection, where 0 represents
643
- ProfilerLevel.Level0, 1 represents ProfilerLevel.Level1, and 2 represents ProfilerLevel.Level2. The
644
- default value is 0, indicating the ProfilerLevel.Level0 collection level.
666
+ ResourceConflictRatio, 6 indicates L2Cache, 7 indicates MemoryAccess.
667
+ - profiler_level (int, optional) - Sets the level of performance data collection, where -1 represents
668
+ ProfilerLevel.LevelNone, 0 represents ProfilerLevel.Level0, 1 represents ProfilerLevel.Level1, and
669
+ 2 represents ProfilerLevel.Level2. The default value is 0, indicating the ProfilerLevel.Level0
670
+ collection level.
645
671
  - activities (int, optional) - Sets the devices for performance data collection, where 0 represents
646
672
  CPU+NPU, 1 represents CPU, and 2 represents NPU. The default value is 0, indicating the collection
647
673
  of CPU+NPU performance data.
674
+ - export_type (int, optional) - Sets the data type to export, where 0 represents text, 1 represents db,
675
+ and 2 represents text and db. The default value is 0, indicating only export text type data.
676
+ - profile_memory (bool, optional) - Set whether to collect memory performance data, true indicates that
677
+ memory performance data is collected, false indicates that memory performance data is not collected.
678
+ The default value is false, indicating that memory performance data is not collected.
679
+ - mstx (bool, optional) - Set whether to enable mstx, true indicates that mstx is enabled, false
680
+ indicates that mstx is disabled. The default value is false, indicating that mstx is not enabled.
648
681
  - analyse_mode (int, optional) - Sets the mode for online analysis, corresponding to the analyse_mode
649
682
  parameter of the mindspore.Profiler.analyse interface, where 0 represents "sync" and 1 represents
650
683
  "async". The default value is -1, indicating that online analysis is not used.
@@ -658,8 +691,8 @@ if sys.version_info >= (3, 8):
658
691
  to enable and false means not to enable. The default value is true, indicating that data
659
692
  simplification is enabled.
660
693
 
661
- output_path (str, optional): Output data path. Default: ``"./dyn_profile_data"`` .
662
- poll_interval (int, optional): The polling period of the monitoring process, in seconds.
694
+ output_path (str, optional): (Ascend only) Output data path. Default: ``"./dyn_profile_data"`` .
695
+ poll_interval (int, optional): (Ascend only) The polling period of the monitoring process, in seconds.
663
696
  Default value: ``2``.
664
697
 
665
698
  Raises:
@@ -728,7 +761,7 @@ if sys.version_info >= (3, 8):
728
761
  logger.info("Rank %s process stop", self._rank_id)
729
762
 
730
763
  # clear shared memory
731
- if self._shm:
764
+ if self._shm and self._is_create_process:
732
765
  try:
733
766
  self._shm.close()
734
767
  self._shm.unlink()
@@ -21,6 +21,7 @@ from mindspore.profiler.common.constant import (
21
21
  ProfilerLevel,
22
22
  AicoreMetrics,
23
23
  ProfilerActivity,
24
+ ExportType,
24
25
  )
25
26
  from mindspore.profiler.common.profiler_parameters import ProfilerParameters
26
27
 
@@ -107,7 +108,7 @@ class EnvProfiler:
107
108
  params[param] = cls._convert_activities_to_list(
108
109
  options[param], default_value
109
110
  )
110
- elif param == "aicore_metrics":
111
+ elif param == "aic_metrics":
111
112
  params[param] = cls._convert_option_to_enum_value(
112
113
  AicoreMetrics, options[param], default_value
113
114
  )
@@ -115,6 +116,10 @@ class EnvProfiler:
115
116
  params[param] = cls._convert_option_to_enum_value(
116
117
  ProfilerLevel, options[param], default_value
117
118
  )
119
+ elif param == "export_type":
120
+ params[param] = cls._convert_export_type_to_list(
121
+ options[param], default_value
122
+ )
118
123
  else:
119
124
  params[param] = options[param]
120
125
  return params
@@ -134,5 +139,25 @@ class EnvProfiler:
134
139
  # remove duplicate
135
140
  return list(set(default_value if default_value in res else res))
136
141
 
142
+ @classmethod
143
+ def _convert_export_type_to_list(cls, export_types, default_value) -> list:
144
+ """
145
+ Check the export type to the list.
146
+ """
147
+ res = []
148
+ for export_type in export_types:
149
+ if export_type != "text" and export_type != "db":
150
+ logger.warning(
151
+ f"The value '{export_type}' of parameter '{ExportType.__name__}' is invalid, "
152
+ f"use default value '{default_value}' instead."
153
+ )
154
+ return default_value
155
+ res.append(
156
+ cls._convert_option_to_enum_value(
157
+ ExportType, export_type, default_value
158
+ )
159
+ )
160
+ # remove duplicate
161
+ return list(set(res))
137
162
 
138
163
  EnvProfiler.init_profiler()
@@ -0,0 +1,197 @@
1
+ # Copyright 2020-2024 Huawei Technologies Co., Ltd
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ # ============================================================================
15
+ """Experimental config file."""
16
+
17
+ from mindspore.profiler.common.constant import ProfilerLevel, AicoreMetrics
18
+
19
+ __all__ = ["_ExperimentalConfig"]
20
+
21
+
22
+ class _ExperimentalConfig:
23
+ r"""
24
+ The purpose of this class is to configure scalable parameters when using profiles for model
25
+ performance data acquisition.
26
+
27
+ Args:
28
+ profiler_level (ProfilerLevel, optional): (Ascend only) The level of profiling.
29
+ Default: ``ProfilerLevel.Level0``.
30
+
31
+ - ProfilerLevel.LevelNone: This setting takes effect only when mstx is enabled, indicating that no
32
+ operator data is collected on the device side.
33
+ - ProfilerLevel.Level0: Leanest level of profiling data collection, collects information about the elapsed
34
+ time of the computational operators on the NPU and communication large operator information.
35
+ - ProfilerLevel.Level1: Collect more CANN layer AscendCL data and AICore performance metrics and
36
+ communication mini operator information based on Level0.
37
+ - ProfilerLevel.Level2: Collect GE and Runtime information in CANN layer on top of Level1
38
+ aic_metrics (AicoreMetrics, optional): (Ascend only) Types of AICORE performance data collected,
39
+ when using this parameter, `activities` must include ``ProfilerActivity.NPU`` , and the value
40
+ must be a member of AicoreMetrics. When profiler_level is Level0, the default value is
41
+ ``AicoreMetrics.AiCoreNone``; Profiler_level is a Level1 or Level2 stores, the default value is:
42
+ ``AicoreMetrics. PipeUtilization``.The data items contained in each metric are as follows:
43
+
44
+ - AicoreMetrics.AiCoreNone: Does not collect AICORE data.
45
+ - AicoreMetrics.ArithmeticUtilization: ArithmeticUtilization contains mac_fp16/int8_ratio,
46
+ vec_fp32/fp16/int32_ratio, vec_misc_ratio etc.
47
+ - AicoreMetrics.PipeUtilization: PipeUtilization contains vec_ratio, mac_ratio, scalar_ratio,
48
+ mte1/mte2/mte3_ratio, icache_miss_rate etc.
49
+ - AicoreMetrics.Memory: Memory contains ub_read/write_bw, l1_read/write_bw, l2_read/write_bw,
50
+ main_mem_read/write_bw etc.
51
+ - AicoreMetrics.MemoryL0: MemoryL0 contains l0a_read/write_bw, l0b_read/write_bw, l0c_read/write_bw etc.
52
+ - AicoreMetrics.ResourceConflictRatio: ResourceConflictRatio contains vec_bankgroup/bank/resc_cflt_ratio
53
+ etc.
54
+ - AicoreMetrics.MemoryUB: MemoryUB contains ub_read/write_bw_mte, ub_read/write_bw_vector,
55
+ ub\_read/write_bw_scalar etc.
56
+ - AicoreMetrics.L2Cache: L2Cache contains write_cache_hit, write_cache_miss_allocate, r0_read_cache_hit,
57
+ r1_read_cache_hit etc. This function only supports Atlas A2 training series products.
58
+ - AicoreMetrics.MemoryAccess: Statistics on storage access bandwidth and storage capacity of main
59
+ storage and l2 cache etc.
60
+ l2_cache (bool, optional): (Ascend only) Whether to collect l2 cache data, collect when True.
61
+ Default: ``False`` . The l2_cache.csv file is generated in the ASCEND_PROFILER_OUTPUT folder.In O2 mode,
62
+ only wait and skip_first parameters in schedule configuration can be set to 0.
63
+ mstx (bool, optional): (Ascend only) Whether to collect light weight profiling data, collect when True.
64
+ Default: ``False`` .
65
+ data_simplification (bool, optional): (Ascend only) Whether to remove FRAMEWORK data and other redundant data.
66
+ If set to True, only the profiler deliverables and raw performance data under the PROF_XXX directory are
67
+ kept to save space. Default value: ``True`` .
68
+ export_type (list, optional): (Ascend only) The data type to export.
69
+ The db and text formats can be exported at the same time. The default value is ``None``,
70
+ indicating that data of the text type is exported.
71
+
72
+ - ExportType.Text: Export text type data.
73
+ - ExportType.Db: Export db type data.
74
+
75
+ Raises:
76
+ RuntimeError: When the version of CANN does not match the version of MindSpore,
77
+ MindSpore cannot parse the generated ascend_job_id directory structure.
78
+
79
+ Supported Platforms:
80
+ ``Ascend`` ``GPU``
81
+
82
+ Examples:
83
+ >>> import numpy as np
84
+ >>> import mindspore
85
+ >>> from mindspore import nn, context
86
+ >>> import mindspore.dataset as ds
87
+ >>> from mindspore.profiler import ProfilerLevel, ProfilerActivity, AicoreMetrics, ExportType
88
+ >>>
89
+ >>> class Net(nn.Cell):
90
+ ... def __init__(self):
91
+ ... super(Net, self).__init__()
92
+ ... self.fc = nn.Dense(2,2)
93
+ ... def construct(self, x):
94
+ ... return self.fc(x)
95
+ >>>
96
+ >>> def generator():
97
+ ... for i in range(2):
98
+ ... yield np.ones([2, 2]).astype(np.float32), np.ones([2]).astype(np.int32)
99
+ >>>
100
+ >>> def train(net):
101
+ ... optimizer = nn.Momentum(net.trainable_params(), 1, 0.9)
102
+ ... loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
103
+ ... data = ds.GeneratorDataset(generator, ["data", "label"])
104
+ ... model = mindspore.train.Model(net, loss, optimizer)
105
+ ... model.train(1, data)
106
+ >>>
107
+ >>> if __name__ == '__main__':
108
+ ... # If the device_target is GPU, set the device_target to "GPU"
109
+ ... context.set_context(mode=mindspore.GRAPH_MODE)
110
+ ... mindspore.set_device("Ascend")
111
+ ...
112
+ ... # Init Profiler
113
+ ... experimental_config = mindspore.profiler._ExperimentalConfig(
114
+ ... profiler_level=ProfilerLevel.Level0,
115
+ ... aic_metrics=AicoreMetrics.AiCoreNone,
116
+ ... l2_cache=False,
117
+ ... mstx=False,
118
+ ... data_simplification=False,
119
+ ... export_type=[ExportType.Text])
120
+ ... steps = 10
121
+ ... net = Net()
122
+ ... # Note that the Profiler should be initialized before model.train
123
+ ... with mindspore.profiler.profile(activities=[ProfilerActivity.CPU, ProfilerActivity.NPU],
124
+ ... schedule=mindspore.profiler.schedule(wait=1, warmup=1, active=2,
125
+ ... repeat=1, skip_first=2),
126
+ ... on_trace_ready=mindspore.profiler.tensorboard_trace_handler("./data"),
127
+ ... profile_memory=False,
128
+ ... experimental_config=experimental_config) as prof:
129
+ ...
130
+ ... # Train Model
131
+ ... for step in range(steps):
132
+ ... train(net)
133
+ ... prof.step()
134
+ """
135
+
136
+ def __init__(self,
137
+ profiler_level: ProfilerLevel = ProfilerLevel.Level0,
138
+ aic_metrics: AicoreMetrics = AicoreMetrics.AiCoreNone,
139
+ l2_cache: bool = False,
140
+ mstx: bool = False,
141
+ data_simplification: bool = True,
142
+ export_type: list = None):
143
+ self._profiler_level = profiler_level
144
+ self._aic_metrics = aic_metrics
145
+ self._l2_cache = l2_cache
146
+ self._mstx = mstx
147
+ self._data_simplification = data_simplification
148
+ self._export_type = export_type
149
+
150
+ @property
151
+ def profiler_level(self) -> ProfilerLevel:
152
+ return self._profiler_level
153
+
154
+ @property
155
+ def aic_metrics(self) -> AicoreMetrics:
156
+ return self._aic_metrics
157
+
158
+ @property
159
+ def l2_cache(self) -> bool:
160
+ return self._l2_cache
161
+
162
+ @property
163
+ def mstx(self) -> bool:
164
+ return self._mstx
165
+
166
+ @property
167
+ def data_simplification(self) -> bool:
168
+ return self._data_simplification
169
+
170
+ @property
171
+ def export_type(self) -> list:
172
+ return self._export_type
173
+
174
+ # Setters
175
+ @profiler_level.setter
176
+ def profiler_level(self, value: ProfilerLevel):
177
+ self._profiler_level = value
178
+
179
+ @aic_metrics.setter
180
+ def aic_metrics(self, value: AicoreMetrics):
181
+ self._aic_metrics = value
182
+
183
+ @l2_cache.setter
184
+ def l2_cache(self, value: bool):
185
+ self._l2_cache = value
186
+
187
+ @mstx.setter
188
+ def mstx(self, value: bool):
189
+ self._mstx = value
190
+
191
+ @data_simplification.setter
192
+ def data_simplification(self, value: bool):
193
+ self._data_simplification = value
194
+
195
+ @export_type.setter
196
+ def export_type(self, value: list):
197
+ self._export_type = value