mindspore 2.4.10__cp311-cp311-win_amd64.whl → 2.6.0__cp311-cp311-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 (602) 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 +13 -6
  5. mindspore/_c_dataengine.cp311-win_amd64.pyd +0 -0
  6. mindspore/_c_expression.cp311-win_amd64.pyd +0 -0
  7. mindspore/_c_mindrecord.cp311-win_amd64.pyd +0 -0
  8. mindspore/_check_jit_forbidden_api.py +3 -0
  9. mindspore/_checkparam.py +3 -38
  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/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  14. mindspore/_extends/parse/__init__.py +6 -7
  15. mindspore/_extends/parse/compile_config.py +83 -0
  16. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  17. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  18. mindspore/_extends/parse/jit_fallback_modules/__init__.py +0 -0
  19. mindspore/_extends/parse/jit_fallback_modules/check_utils.py +123 -0
  20. mindspore/_extends/parse/jit_fallback_modules/third_party_modules.py +50 -0
  21. mindspore/_extends/parse/parser.py +47 -198
  22. mindspore/_extends/parse/resources.py +1 -5
  23. mindspore/_extends/parse/standard_method.py +229 -99
  24. mindspore/_extends/pijit/__init__.py +2 -2
  25. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  26. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  27. mindspore/_extends/utils.py +1 -1
  28. mindspore/amp.py +11 -5
  29. mindspore/atlprov.dll +0 -0
  30. mindspore/avcodec-59.dll +0 -0
  31. mindspore/avdevice-59.dll +0 -0
  32. mindspore/avfilter-8.dll +0 -0
  33. mindspore/avformat-59.dll +0 -0
  34. mindspore/avutil-57.dll +0 -0
  35. mindspore/boost/__init__.py +2 -2
  36. mindspore/boost/base.py +3 -7
  37. mindspore/boost/boost_cell_wrapper.py +138 -43
  38. mindspore/c1.dll +0 -0
  39. mindspore/c1xx.dll +0 -0
  40. mindspore/c2.dll +0 -0
  41. mindspore/common/__init__.py +6 -3
  42. mindspore/common/_grad_function.py +56 -0
  43. mindspore/common/_pijit_context.py +14 -5
  44. mindspore/common/_register_for_tensor.py +1 -2
  45. mindspore/common/_stub_tensor.py +30 -14
  46. mindspore/common/_tensor_cpp_method.py +17 -0
  47. mindspore/common/_tensor_docs.py +4760 -0
  48. mindspore/common/api.py +480 -372
  49. mindspore/common/auto_dynamic_shape.py +41 -44
  50. mindspore/common/dtype.py +39 -36
  51. mindspore/common/dump.py +9 -6
  52. mindspore/common/file_system.py +9 -1
  53. mindspore/common/generator.py +5 -0
  54. mindspore/common/hook_handle.py +6 -2
  55. mindspore/common/initializer.py +13 -10
  56. mindspore/common/jit_begin_end.py +94 -0
  57. mindspore/common/jit_config.py +6 -1
  58. mindspore/common/jit_context.py +76 -0
  59. mindspore/common/jit_trace.py +378 -0
  60. mindspore/common/lazy_inline.py +9 -3
  61. mindspore/common/mindir_util.py +10 -2
  62. mindspore/common/mutable.py +5 -4
  63. mindspore/common/parameter.py +135 -52
  64. mindspore/common/seed.py +2 -2
  65. mindspore/common/sparse_tensor.py +23 -17
  66. mindspore/common/tensor.py +975 -1981
  67. mindspore/communication/__init__.py +7 -5
  68. mindspore/communication/_comm_helper.py +52 -2
  69. mindspore/communication/comm_func.py +240 -181
  70. mindspore/communication/management.py +95 -26
  71. mindspore/context.py +324 -573
  72. mindspore/dataset/__init__.py +65 -37
  73. mindspore/dataset/audio/__init__.py +2 -8
  74. mindspore/dataset/audio/transforms.py +3 -17
  75. mindspore/dataset/callback/ds_callback.py +2 -1
  76. mindspore/dataset/core/config.py +87 -6
  77. mindspore/dataset/engine/cache_admin.py +3 -3
  78. mindspore/dataset/engine/cache_client.py +6 -5
  79. mindspore/dataset/engine/datasets.py +292 -267
  80. mindspore/dataset/engine/datasets_audio.py +22 -8
  81. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  82. mindspore/dataset/engine/datasets_text.py +78 -48
  83. mindspore/dataset/engine/datasets_user_defined.py +183 -117
  84. mindspore/dataset/engine/datasets_vision.py +120 -44
  85. mindspore/dataset/engine/iterators.py +283 -63
  86. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  87. mindspore/dataset/engine/obs/util.py +8 -0
  88. mindspore/dataset/engine/queue.py +40 -0
  89. mindspore/dataset/engine/samplers.py +289 -43
  90. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  91. mindspore/dataset/engine/validators.py +53 -11
  92. mindspore/dataset/text/__init__.py +7 -6
  93. mindspore/dataset/text/transforms.py +6 -5
  94. mindspore/dataset/text/utils.py +3 -3
  95. mindspore/dataset/transforms/__init__.py +0 -9
  96. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  97. mindspore/dataset/transforms/transforms.py +31 -14
  98. mindspore/dataset/utils/browse_dataset.py +1 -1
  99. mindspore/dataset/vision/__init__.py +2 -9
  100. mindspore/dataset/vision/transforms.py +202 -158
  101. mindspore/dataset/vision/utils.py +7 -5
  102. mindspore/dataset/vision/validators.py +1 -2
  103. mindspore/device_context/__init__.py +21 -0
  104. mindspore/device_context/ascend/__init__.py +25 -0
  105. mindspore/device_context/ascend/device.py +72 -0
  106. mindspore/device_context/ascend/op_debug.py +153 -0
  107. mindspore/device_context/ascend/op_precision.py +193 -0
  108. mindspore/device_context/ascend/op_tuning.py +123 -0
  109. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  110. mindspore/device_context/cpu/device.py +62 -0
  111. mindspore/device_context/cpu/op_tuning.py +43 -0
  112. mindspore/device_context/gpu/__init__.py +21 -0
  113. mindspore/device_context/gpu/device.py +70 -0
  114. mindspore/device_context/gpu/op_precision.py +67 -0
  115. mindspore/device_context/gpu/op_tuning.py +175 -0
  116. mindspore/device_manager.py +170 -0
  117. mindspore/dnnl.dll +0 -0
  118. mindspore/dpcmi.dll +0 -0
  119. mindspore/experimental/es/embedding_service.py +35 -27
  120. mindspore/experimental/llm_boost/__init__.py +1 -0
  121. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  122. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
  123. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  124. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  125. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  126. mindspore/experimental/llm_boost/register.py +1 -0
  127. mindspore/experimental/map_parameter.py +4 -4
  128. mindspore/experimental/optim/adadelta.py +6 -6
  129. mindspore/experimental/optim/adagrad.py +4 -4
  130. mindspore/experimental/optim/adam.py +7 -0
  131. mindspore/experimental/optim/adamax.py +4 -4
  132. mindspore/experimental/optim/adamw.py +4 -0
  133. mindspore/experimental/optim/asgd.py +1 -1
  134. mindspore/experimental/optim/lr_scheduler.py +73 -46
  135. mindspore/experimental/optim/radam.py +34 -31
  136. mindspore/experimental/optim/rprop.py +1 -1
  137. mindspore/experimental/optim/sgd.py +1 -1
  138. mindspore/hal/contiguous_tensors_handle.py +6 -10
  139. mindspore/hal/device.py +55 -53
  140. mindspore/hal/event.py +52 -52
  141. mindspore/hal/memory.py +179 -120
  142. mindspore/hal/stream.py +150 -109
  143. mindspore/include/api/context.h +0 -1
  144. mindspore/include/dataset/constants.h +7 -4
  145. mindspore/include/dataset/execute.h +2 -2
  146. mindspore/jpeg62.dll +0 -0
  147. mindspore/log.py +50 -0
  148. mindspore/mindrecord/__init__.py +21 -8
  149. mindspore/mindrecord/config.py +17 -316
  150. mindspore/mindrecord/filereader.py +1 -9
  151. mindspore/mindrecord/filewriter.py +5 -15
  152. mindspore/mindrecord/mindpage.py +1 -9
  153. mindspore/mindspore_backend_common.dll +0 -0
  154. mindspore/mindspore_backend_manager.dll +0 -0
  155. mindspore/mindspore_common.dll +0 -0
  156. mindspore/mindspore_core.dll +0 -0
  157. mindspore/mindspore_dump.dll +0 -0
  158. mindspore/mindspore_frontend.dll +0 -0
  159. mindspore/mindspore_glog.dll +0 -0
  160. mindspore/mindspore_memory_pool.dll +0 -0
  161. mindspore/mindspore_ms_backend.dll +0 -0
  162. mindspore/mindspore_ops.dll +0 -0
  163. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  164. mindspore/mindspore_ops_kernel_common.dll +0 -0
  165. mindspore/mindspore_profiler.dll +0 -0
  166. mindspore/mindspore_pyboost.dll +0 -0
  167. mindspore/mindspore_pynative.dll +0 -0
  168. mindspore/mindspore_res_manager.dll +0 -0
  169. mindspore/mindspore_runtime_pipeline.dll +0 -0
  170. mindspore/mint/__init__.py +798 -761
  171. mindspore/mint/distributed/__init__.py +70 -4
  172. mindspore/mint/distributed/distributed.py +2679 -44
  173. mindspore/mint/linalg/__init__.py +8 -0
  174. mindspore/mint/nn/__init__.py +743 -22
  175. mindspore/mint/nn/functional.py +716 -23
  176. mindspore/mint/nn/layer/__init__.py +21 -4
  177. mindspore/mint/nn/layer/_functions.py +334 -0
  178. mindspore/mint/nn/layer/activation.py +276 -1
  179. mindspore/mint/nn/layer/basic.py +123 -0
  180. mindspore/mint/nn/layer/conv.py +933 -0
  181. mindspore/mint/nn/layer/normalization.py +223 -28
  182. mindspore/mint/nn/layer/padding.py +797 -0
  183. mindspore/mint/nn/layer/pooling.py +235 -0
  184. mindspore/mint/optim/__init__.py +3 -1
  185. mindspore/mint/optim/adam.py +223 -0
  186. mindspore/mint/optim/adamw.py +26 -19
  187. mindspore/mint/optim/sgd.py +171 -0
  188. mindspore/mint/special/__init__.py +2 -1
  189. mindspore/msobj140.dll +0 -0
  190. mindspore/mspdb140.dll +0 -0
  191. mindspore/mspdbcore.dll +0 -0
  192. mindspore/mspdbst.dll +0 -0
  193. mindspore/mspft140.dll +0 -0
  194. mindspore/msvcdis140.dll +0 -0
  195. mindspore/msvcp140_1.dll +0 -0
  196. mindspore/msvcp140_2.dll +0 -0
  197. mindspore/msvcp140_atomic_wait.dll +0 -0
  198. mindspore/msvcp140_codecvt_ids.dll +0 -0
  199. mindspore/multiprocessing/__init__.py +5 -0
  200. mindspore/nn/__init__.py +4 -1
  201. mindspore/nn/cell.py +1373 -192
  202. mindspore/nn/dynamic_lr.py +2 -1
  203. mindspore/nn/layer/activation.py +29 -27
  204. mindspore/nn/layer/basic.py +51 -35
  205. mindspore/nn/layer/channel_shuffle.py +3 -3
  206. mindspore/nn/layer/container.py +1 -1
  207. mindspore/nn/layer/conv.py +53 -42
  208. mindspore/nn/layer/embedding.py +12 -11
  209. mindspore/nn/layer/normalization.py +56 -49
  210. mindspore/nn/layer/padding.py +4 -3
  211. mindspore/nn/layer/pooling.py +120 -42
  212. mindspore/nn/layer/rnn_cells.py +1 -1
  213. mindspore/nn/layer/rnns.py +2 -1
  214. mindspore/nn/layer/timedistributed.py +5 -5
  215. mindspore/nn/layer/transformer.py +59 -36
  216. mindspore/nn/learning_rate_schedule.py +8 -4
  217. mindspore/nn/loss/loss.py +58 -55
  218. mindspore/nn/optim/ada_grad.py +7 -5
  219. mindspore/nn/optim/adadelta.py +11 -9
  220. mindspore/nn/optim/adafactor.py +1 -1
  221. mindspore/nn/optim/adam.py +19 -15
  222. mindspore/nn/optim/adamax.py +8 -7
  223. mindspore/nn/optim/adasum.py +5 -5
  224. mindspore/nn/optim/asgd.py +3 -1
  225. mindspore/nn/optim/ftrl.py +11 -9
  226. mindspore/nn/optim/lamb.py +1 -1
  227. mindspore/nn/optim/lars.py +1 -4
  228. mindspore/nn/optim/lazyadam.py +12 -10
  229. mindspore/nn/optim/momentum.py +7 -6
  230. mindspore/nn/optim/optimizer.py +3 -3
  231. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  232. mindspore/nn/optim/rmsprop.py +13 -12
  233. mindspore/nn/optim/rprop.py +11 -9
  234. mindspore/nn/optim/sgd.py +9 -6
  235. mindspore/nn/optim/tft_wrapper.py +5 -2
  236. mindspore/nn/optim/thor.py +2 -1
  237. mindspore/nn/probability/bijector/bijector.py +17 -11
  238. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  239. mindspore/nn/probability/bijector/invert.py +2 -2
  240. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  241. mindspore/nn/probability/bijector/softplus.py +3 -2
  242. mindspore/nn/probability/distribution/beta.py +3 -3
  243. mindspore/nn/probability/distribution/categorical.py +1 -1
  244. mindspore/nn/probability/distribution/cauchy.py +4 -2
  245. mindspore/nn/probability/distribution/exponential.py +6 -7
  246. mindspore/nn/probability/distribution/gamma.py +2 -2
  247. mindspore/nn/probability/distribution/gumbel.py +2 -2
  248. mindspore/nn/probability/distribution/half_normal.py +5 -3
  249. mindspore/nn/probability/distribution/logistic.py +5 -3
  250. mindspore/nn/probability/distribution/poisson.py +1 -1
  251. mindspore/nn/probability/distribution/uniform.py +5 -3
  252. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  253. mindspore/nn/reinforcement/tensor_array.py +1 -1
  254. mindspore/nn/utils/init.py +13 -11
  255. mindspore/nn/wrap/__init__.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +181 -122
  257. mindspore/nn/wrap/grad_reducer.py +45 -36
  258. mindspore/nn/wrap/loss_scale.py +6 -7
  259. mindspore/numpy/array_creations.py +63 -65
  260. mindspore/numpy/array_ops.py +149 -144
  261. mindspore/numpy/logic_ops.py +41 -42
  262. mindspore/numpy/math_ops.py +361 -359
  263. mindspore/numpy/utils.py +17 -18
  264. mindspore/numpy/utils_const.py +5 -6
  265. mindspore/opencv_core452.dll +0 -0
  266. mindspore/opencv_imgcodecs452.dll +0 -0
  267. mindspore/opencv_imgproc452.dll +0 -0
  268. mindspore/ops/__init__.py +5 -3
  269. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  270. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  271. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  272. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  273. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  274. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  275. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  276. mindspore/ops/_register_for_op.py +0 -11
  277. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  278. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  279. mindspore/ops/_vmap/vmap_array_ops.py +52 -25
  280. mindspore/ops/_vmap/vmap_base.py +0 -2
  281. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  282. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  283. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  284. mindspore/ops/auto_generate/__init__.py +4 -3
  285. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
  286. mindspore/ops/auto_generate/gen_extend_func.py +757 -185
  287. mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
  288. mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
  289. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  290. mindspore/ops/composite/__init__.py +2 -1
  291. mindspore/ops/composite/base.py +20 -25
  292. mindspore/ops/composite/math_ops.py +6 -16
  293. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  294. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  295. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  296. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  297. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  299. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  301. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  302. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  303. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  304. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  305. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  306. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  307. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  308. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  309. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  310. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  311. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  312. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  313. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  314. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  315. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  316. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  317. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  318. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  319. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  320. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  321. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  324. mindspore/ops/function/__init__.py +40 -2
  325. mindspore/ops/function/_add_attr_func.py +58 -0
  326. mindspore/ops/function/array_func.py +2089 -2403
  327. mindspore/ops/function/clip_func.py +80 -23
  328. mindspore/ops/function/debug_func.py +57 -57
  329. mindspore/ops/function/grad/__init__.py +1 -0
  330. mindspore/ops/function/grad/grad_func.py +104 -71
  331. mindspore/ops/function/image_func.py +2 -2
  332. mindspore/ops/function/linalg_func.py +47 -78
  333. mindspore/ops/function/math_func.py +4351 -3813
  334. mindspore/ops/function/nn_func.py +1712 -637
  335. mindspore/ops/function/other_func.py +159 -1
  336. mindspore/ops/function/parameter_func.py +18 -84
  337. mindspore/ops/function/random_func.py +452 -387
  338. mindspore/ops/function/reshard_func.py +4 -70
  339. mindspore/ops/function/sparse_func.py +3 -3
  340. mindspore/ops/function/sparse_unary_func.py +6 -6
  341. mindspore/ops/function/spectral_func.py +25 -58
  342. mindspore/ops/function/vmap_func.py +26 -18
  343. mindspore/ops/functional.py +23 -7
  344. mindspore/ops/functional_overload.py +1548 -0
  345. mindspore/ops/op_info_register.py +32 -244
  346. mindspore/ops/operations/__init__.py +23 -15
  347. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  348. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  349. mindspore/ops/operations/_grad_ops.py +2 -43
  350. mindspore/ops/operations/_infer_ops.py +2 -1
  351. mindspore/ops/operations/_inner_ops.py +43 -84
  352. mindspore/ops/operations/_ms_kernel.py +4 -10
  353. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  354. mindspore/ops/operations/_scalar_ops.py +3 -2
  355. mindspore/ops/operations/_sequence_ops.py +1 -1
  356. mindspore/ops/operations/_tensor_array.py +1 -1
  357. mindspore/ops/operations/array_ops.py +81 -324
  358. mindspore/ops/operations/comm_ops.py +154 -108
  359. mindspore/ops/operations/custom_ops.py +298 -87
  360. mindspore/ops/operations/debug_ops.py +157 -59
  361. mindspore/ops/operations/inner_ops.py +7 -5
  362. mindspore/ops/operations/linalg_ops.py +1 -57
  363. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  364. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  365. mindspore/ops/operations/math_ops.py +32 -234
  366. mindspore/ops/operations/nn_ops.py +212 -531
  367. mindspore/ops/operations/other_ops.py +62 -9
  368. mindspore/ops/operations/random_ops.py +13 -7
  369. mindspore/ops/operations/reshard_ops.py +1 -1
  370. mindspore/ops/operations/sparse_ops.py +2 -2
  371. mindspore/ops/primitive.py +66 -53
  372. mindspore/ops/tensor_method.py +1895 -0
  373. mindspore/ops_generate/__init__.py +0 -5
  374. mindspore/ops_generate/aclnn/__init__.py +0 -0
  375. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  376. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  377. mindspore/ops_generate/api/__init__.py +0 -0
  378. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  379. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  380. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  381. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  382. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  383. mindspore/ops_generate/api/gen_api.py +103 -0
  384. mindspore/ops_generate/api/op_api_proto.py +235 -0
  385. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  386. mindspore/ops_generate/common/__init__.py +0 -0
  387. mindspore/ops_generate/common/base_generator.py +11 -0
  388. mindspore/ops_generate/common/gen_constants.py +91 -0
  389. mindspore/ops_generate/common/gen_utils.py +348 -0
  390. mindspore/ops_generate/common/op_proto.py +473 -0
  391. mindspore/ops_generate/common/template.py +523 -0
  392. mindspore/ops_generate/gen_ops.py +22 -1069
  393. mindspore/ops_generate/op_def/__init__.py +0 -0
  394. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  395. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  396. mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
  397. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  398. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  399. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  400. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  401. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  402. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  403. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  404. mindspore/ops_generate/pyboost/__init__.py +0 -0
  405. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  406. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  407. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  408. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  409. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  410. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  411. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  412. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  413. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  414. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  415. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  416. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  417. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  418. mindspore/ops_generate/resources/__init__.py +0 -0
  419. mindspore/ops_generate/resources/resource_list.py +30 -0
  420. mindspore/ops_generate/resources/resource_loader.py +36 -0
  421. mindspore/ops_generate/resources/resource_manager.py +64 -0
  422. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  423. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  424. mindspore/parallel/__init__.py +7 -3
  425. mindspore/parallel/_auto_parallel_context.py +159 -40
  426. mindspore/parallel/_cell_wrapper.py +132 -15
  427. mindspore/parallel/_parallel_serialization.py +107 -5
  428. mindspore/parallel/_ps_context.py +1 -1
  429. mindspore/parallel/_recovery_context.py +7 -2
  430. mindspore/parallel/_tensor.py +142 -18
  431. mindspore/parallel/_utils.py +199 -23
  432. mindspore/parallel/algo_parameter_config.py +4 -4
  433. mindspore/parallel/auto_parallel.py +732 -0
  434. mindspore/parallel/checkpoint_convert.py +159 -0
  435. mindspore/parallel/checkpoint_transform.py +700 -35
  436. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  437. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  438. mindspore/parallel/cluster/run.py +21 -4
  439. mindspore/parallel/function/__init__.py +24 -0
  440. mindspore/parallel/function/reshard_func.py +258 -0
  441. mindspore/parallel/nn/__init__.py +25 -0
  442. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  443. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  444. mindspore/parallel/parameter_broadcast.py +25 -14
  445. mindspore/parallel/shard.py +137 -59
  446. mindspore/parallel/transform_safetensors.py +364 -305
  447. mindspore/pgodb140.dll +0 -0
  448. mindspore/pgort140.dll +0 -0
  449. mindspore/profiler/__init__.py +22 -5
  450. mindspore/profiler/analysis/__init__.py +0 -0
  451. mindspore/profiler/analysis/parser/__init__.py +0 -0
  452. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  453. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  454. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  455. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  456. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  457. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  458. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  459. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  460. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
  461. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  462. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  463. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  464. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  465. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  466. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  467. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  468. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  469. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  470. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  471. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  472. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  473. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  474. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  475. mindspore/profiler/analysis/task_manager.py +131 -0
  476. mindspore/profiler/analysis/time_converter.py +84 -0
  477. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  478. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  479. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  480. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  481. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  482. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  483. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  484. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  485. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  486. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  487. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  488. mindspore/profiler/analysis/work_flow.py +73 -0
  489. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  490. mindspore/profiler/common/command_executor.py +90 -0
  491. mindspore/profiler/common/constant.py +186 -3
  492. mindspore/profiler/common/file_manager.py +208 -0
  493. mindspore/profiler/common/log.py +130 -0
  494. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  495. mindspore/profiler/common/path_manager.py +395 -0
  496. mindspore/profiler/common/process_bar.py +168 -0
  497. mindspore/profiler/common/process_pool.py +9 -3
  498. mindspore/profiler/common/profiler_context.py +500 -0
  499. mindspore/profiler/common/profiler_info.py +304 -0
  500. mindspore/profiler/common/profiler_meta_data.py +74 -0
  501. mindspore/profiler/common/profiler_output_path.py +284 -0
  502. mindspore/profiler/common/profiler_parameters.py +251 -0
  503. mindspore/profiler/common/profiler_path_manager.py +179 -0
  504. mindspore/profiler/common/record_function.py +76 -0
  505. mindspore/profiler/common/tlv_decoder.py +76 -0
  506. mindspore/profiler/common/util.py +75 -2
  507. mindspore/profiler/dynamic_profiler.py +341 -75
  508. mindspore/profiler/envprofiler.py +163 -0
  509. mindspore/profiler/experimental_config.py +197 -0
  510. mindspore/profiler/mstx.py +242 -0
  511. mindspore/profiler/platform/__init__.py +21 -0
  512. mindspore/profiler/platform/base_profiler.py +40 -0
  513. mindspore/profiler/platform/cpu_profiler.py +124 -0
  514. mindspore/profiler/platform/gpu_profiler.py +74 -0
  515. mindspore/profiler/platform/npu_profiler.py +335 -0
  516. mindspore/profiler/profiler.py +1073 -90
  517. mindspore/profiler/profiler_action_controller.py +187 -0
  518. mindspore/profiler/profiler_interface.py +118 -0
  519. mindspore/profiler/schedule.py +243 -0
  520. mindspore/rewrite/api/node.py +15 -13
  521. mindspore/rewrite/api/symbol_tree.py +2 -3
  522. mindspore/run_check/_check_version.py +27 -20
  523. mindspore/run_check/run_check.py +1 -1
  524. mindspore/runtime/__init__.py +37 -0
  525. mindspore/runtime/device.py +27 -0
  526. mindspore/runtime/event.py +209 -0
  527. mindspore/runtime/executor.py +177 -0
  528. mindspore/runtime/memory.py +416 -0
  529. mindspore/runtime/stream.py +460 -0
  530. mindspore/runtime/thread_bind_core.py +401 -0
  531. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  532. mindspore/swresample-4.dll +0 -0
  533. mindspore/swscale-6.dll +0 -0
  534. mindspore/tbbmalloc.dll +0 -0
  535. mindspore/tinyxml2.dll +0 -0
  536. mindspore/train/__init__.py +8 -8
  537. mindspore/train/_utils.py +96 -27
  538. mindspore/train/amp.py +9 -5
  539. mindspore/train/callback/__init__.py +2 -2
  540. mindspore/train/callback/_callback.py +2 -16
  541. mindspore/train/callback/_checkpoint.py +53 -55
  542. mindspore/train/callback/_cluster_monitor.py +14 -18
  543. mindspore/train/callback/_early_stop.py +1 -1
  544. mindspore/train/callback/_flops_collector.py +103 -68
  545. mindspore/train/callback/_history.py +8 -5
  546. mindspore/train/callback/_lambda_callback.py +2 -2
  547. mindspore/train/callback/_landscape.py +0 -3
  548. mindspore/train/callback/_loss_monitor.py +2 -1
  549. mindspore/train/callback/_on_request_exit.py +6 -5
  550. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  551. mindspore/train/callback/_summary_collector.py +52 -19
  552. mindspore/train/callback/_time_monitor.py +2 -1
  553. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
  554. mindspore/train/data_sink.py +25 -2
  555. mindspore/train/dataset_helper.py +15 -16
  556. mindspore/train/loss_scale_manager.py +8 -7
  557. mindspore/train/metrics/accuracy.py +3 -3
  558. mindspore/train/metrics/confusion_matrix.py +9 -9
  559. mindspore/train/metrics/error.py +3 -3
  560. mindspore/train/metrics/hausdorff_distance.py +4 -4
  561. mindspore/train/metrics/mean_surface_distance.py +3 -3
  562. mindspore/train/metrics/metric.py +0 -12
  563. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  564. mindspore/train/metrics/precision.py +11 -10
  565. mindspore/train/metrics/recall.py +9 -9
  566. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  567. mindspore/train/mind_ir_pb2.py +174 -46
  568. mindspore/train/model.py +269 -136
  569. mindspore/train/serialization.py +622 -978
  570. mindspore/train/summary/_summary_adapter.py +2 -2
  571. mindspore/train/summary/summary_record.py +2 -3
  572. mindspore/train/train_thor/model_thor.py +1 -1
  573. mindspore/turbojpeg.dll +0 -0
  574. mindspore/utils/__init__.py +6 -3
  575. mindspore/utils/dryrun.py +140 -0
  576. mindspore/utils/hooks.py +81 -0
  577. mindspore/utils/runtime_execution_order_check.py +552 -0
  578. mindspore/utils/utils.py +138 -4
  579. mindspore/vcmeta.dll +0 -0
  580. mindspore/vcruntime140.dll +0 -0
  581. mindspore/vcruntime140_1.dll +0 -0
  582. mindspore/version.py +1 -1
  583. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
  584. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +587 -418
  585. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
  586. mindspore/_install_custom.py +0 -43
  587. mindspore/common/_register_for_adapter.py +0 -74
  588. mindspore/common/_tensor_overload.py +0 -139
  589. mindspore/mindspore_np_dtype.dll +0 -0
  590. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  591. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  592. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  593. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  594. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  595. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  596. mindspore/ops_generate/gen_utils.py +0 -209
  597. mindspore/ops_generate/op_proto.py +0 -145
  598. mindspore/ops_generate/template.py +0 -261
  599. mindspore/profiler/envprofiling.py +0 -254
  600. mindspore/profiler/profiling.py +0 -1926
  601. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  602. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,401 @@
1
+ # Copyright 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
+
16
+ """Executor manager interfaces."""
17
+ import subprocess
18
+ from dataclasses import dataclass
19
+ from typing import Union
20
+ import re
21
+ from mindspore import log as logger
22
+ from mindspore import context
23
+
24
+
25
+ def execute_command(cmd_list):
26
+ try:
27
+ with subprocess.Popen(cmd_list, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p:
28
+ out, _ = p.communicate(timeout=1000)
29
+ res = out.decode()
30
+ return res
31
+ except FileNotFoundError as e:
32
+ raise RuntimeError(f"Failed to execute command, because {e}.")
33
+
34
+
35
+ def _validate_affinity_cpu_list(affinity_cpu_list):
36
+ """
37
+ Validate the user-configured affinity_cpu_list.
38
+
39
+ Args:
40
+ affinity_cpu_list (dict): Customized bind-core policy to be validated.
41
+
42
+ Returns:
43
+ None.
44
+ """
45
+ device_pattern = re.compile(r'^device\d+$')
46
+ range_pattern = re.compile(r'^\d+-\d+$')
47
+
48
+ for key, value in affinity_cpu_list.items():
49
+ if not isinstance(key, str):
50
+ raise ValueError(f"The key of affinity_cpu_list: {key} should be a string.")
51
+ if not device_pattern.match(key):
52
+ raise ValueError(f"The key of affinity_cpu_list: {key} should be in format 'deviceX'.")
53
+ if not isinstance(value, list):
54
+ raise ValueError(f"The value of affinity_cpu_list: {value} should be a list.")
55
+ for item in value:
56
+ if not isinstance(item, str):
57
+ raise ValueError(f"The value of affinity_cpu_list: {item} should be a string.")
58
+ if not range_pattern.match(item):
59
+ raise ValueError(f"The value of affinity_cpu_list: {item} should be in format 'cpuidX-cpuidY'.")
60
+
61
+
62
+ def _get_cpu_available():
63
+ """
64
+ Get the CPU resources available on the environment.
65
+
66
+ Returns:
67
+ list: List of available CPUs on the environment.
68
+ """
69
+ available_cpu_str = execute_command(["cat", "/sys/fs/cgroup/cpuset/cpuset.cpus"]).strip().split(",")
70
+ available_cpus = list()
71
+ for range_str in available_cpu_str:
72
+ endpoints = range_str.split("-")
73
+ if len(endpoints) != 2:
74
+ raise RuntimeError("'cat /sys/fs/cgroup/cpuset/cpuset.cpus' command output error, please check!")
75
+ available_cpus += [cid for cid in range(int(endpoints[0]), int(endpoints[1]) + 1)]
76
+ return available_cpus
77
+
78
+
79
+ @dataclass
80
+ class DeviceInfo:
81
+ """
82
+ A class to represent information about an Ascend device.
83
+
84
+ Attributes:
85
+ _info_line (str): A raw string containing device information.
86
+ npu_id (int): The ID of the NPU.
87
+ chip_id (int): The ID of the chip.
88
+ chip_logic_id (Union[int, str]): The logical ID of the chip, which can be an integer or a string.
89
+ chip_name (str): The name of the chip.
90
+
91
+ Methods:
92
+ __post_init__(): Initializes the attributes based on input.
93
+ """
94
+ _info_line: str = ""
95
+ npu_id: int = 0
96
+ chip_id: int = 0
97
+ chip_logic_id: Union[int, str] = 0
98
+ chip_name: str = ""
99
+
100
+ def __post_init__(self):
101
+ self.npu_id, self.chip_id, self.chip_logic_id, self.chip_name = \
102
+ self._info_line.strip().split(None, 3)
103
+ self.npu_id = int(self.npu_id)
104
+ self.chip_id = int(self.chip_id)
105
+ if self.chip_logic_id.isnumeric():
106
+ self.chip_logic_id = int(self.chip_logic_id)
107
+
108
+
109
+ def _get_device_map_info():
110
+ """
111
+ Get abbreviated information about all NPUs on the environment.
112
+
113
+ Returns:
114
+ dict: Mapping of NPU logical ID to its details.
115
+ set: Contains all available NPU logical ids on the environment.
116
+ """
117
+ device_map_info = {}
118
+ available_devices = set()
119
+ device_map = \
120
+ execute_command(["npu-smi", "info", "-m"]).strip().split("\n")[1:]
121
+ for line in device_map:
122
+ device_info = DeviceInfo(line.strip())
123
+ if isinstance(device_info.chip_logic_id, int):
124
+ device_map_info[device_info.chip_logic_id] = device_info
125
+ available_devices.add(device_info.chip_logic_id)
126
+ return device_map_info, available_devices
127
+
128
+
129
+ def _get_pcie_info(device_map_info, available_devices, keyword="PCIeBusInfo"):
130
+ """
131
+ Get the PCIe number of the NPU device.
132
+
133
+ Args:
134
+ device_map_info (dict): A map of NPU logical ID to its details.
135
+ available_devices (set): All available NPU logical ids on the environment.
136
+
137
+ Returns:
138
+ dict: Mapping of NPU logical ID to its PCIe number.
139
+ """
140
+ device_pcie_map = {}
141
+ for device in available_devices:
142
+ device_info = device_map_info.get(device)
143
+ if not device_info:
144
+ raise RuntimeError("Can not get device info, binding cpu will skip.")
145
+ pcie_info = \
146
+ execute_command(["npu-smi", "info", "-t", "board", "-i", f"{device_info.npu_id}",
147
+ "-c", f"{device_info.chip_id}"]).strip().split("\n")
148
+ for _ in pcie_info:
149
+ line = ''.join(_.split())
150
+ if line.startswith(keyword):
151
+ device_pcie_map[device] = line[len(keyword) + 1:]
152
+ break
153
+ return device_pcie_map
154
+
155
+
156
+ def _get_numa_info(device_pcie_map, keyword="NUMAnode"):
157
+ """
158
+ Get NUNA node affinity for device based on PCIe.
159
+
160
+ Args:
161
+ device_pcie_map (dict): A map of NPU logical ID to its PCIe number.
162
+
163
+ Returns:
164
+ dict: Mapping of device ID to its affinity NUMA nodes.
165
+ dict: Mapping of NUMA node to its affinity device IDs.
166
+ """
167
+ device_to_numa_map = {}
168
+ numa_to_device_map = {}
169
+
170
+ for device, pcie_no in device_pcie_map.items():
171
+ numa_info = execute_command(["lspci", "-s", f"{pcie_no}", "-vvv"]).strip().split("\n")
172
+ for _ in numa_info:
173
+ line = ''.join(_.split())
174
+ if line.startswith(keyword):
175
+ numa_id = int(line[len(keyword) + 1:])
176
+ device_to_numa_map[device] = numa_id
177
+
178
+ devices = numa_to_device_map.get(numa_id, None)
179
+ if devices is None:
180
+ numa_to_device_map[numa_id] = list()
181
+ numa_to_device_map[numa_id].append(device)
182
+ break
183
+ numa_to_device_map[-1] = list(device_pcie_map.keys())
184
+ return device_to_numa_map, numa_to_device_map
185
+
186
+
187
+ def _get_cpu_info(numa_ids, available_cpus, keyword1="NUMAnode", keyword2="CPU(s)"):
188
+ """
189
+ Get information about the CPUs on the NUMA nodes on the environment.
190
+
191
+ Args:
192
+ numa_ids (list): A list of NUMA nodes need to get related CPU information.
193
+ available_cpus (list): A list of available CPUs on the environment.
194
+
195
+ Returns:
196
+ dict: Mapping of NUMA node to its affinity CPUs.
197
+ """
198
+ numa_to_cpu_map = dict()
199
+
200
+ cpu_info = execute_command(["lscpu"]).strip().split("\n")
201
+ for _ in cpu_info:
202
+ line = ''.join(_.split())
203
+ if line.startswith(keyword1):
204
+ pattern = re.escape(keyword1) + r'(\d+)' + re.escape(keyword2)
205
+ match = re.search(pattern, line)
206
+ if match:
207
+ numa_id = int(match.group(1))
208
+ split_info = line.split(":")
209
+ cpu_id_ranges = split_info[-1].split(",")
210
+ ranges = list()
211
+ for range_str in cpu_id_ranges:
212
+ endpoints = range_str.split("-")
213
+ if len(endpoints) != 2:
214
+ raise RuntimeError("'lscpu' command output error, please check!")
215
+ ranges += [cid for cid in range(int(endpoints[0]), int(endpoints[1]) + 1) if cid in available_cpus]
216
+ if numa_id not in numa_ids:
217
+ numa_id = int(-1)
218
+ if numa_id not in numa_to_cpu_map:
219
+ numa_to_cpu_map[numa_id] = list()
220
+ numa_to_cpu_map[numa_id].extend(ranges)
221
+ return numa_to_cpu_map
222
+
223
+
224
+ def _auto_generate_policy(available_devices, available_cpus, affinity_flag, numa_to_cpu_map, device_to_numa_map):
225
+ """
226
+ Automatically generate bind-core policy based on CPU affinity.
227
+
228
+ Args:
229
+ available_devices (list): All available NPU logical ids on the environment.
230
+ available_cpus (list): A list of available CPUs on the environment.
231
+ affinity_flag (bool): Whether or not it satisfies generating CPU affinity bind-core policy based on the
232
+ resources on the environment.
233
+ numa_to_cpu_map (dict): A map of NUMA node to its affinity CPUs.
234
+ device_to_numa_map (dict): A map of device ID to its affinity NUMA nodes.
235
+
236
+ Returns:
237
+ dict: Mapping of device to its affinity CPUs.
238
+ """
239
+ device_to_cpu_map = {}
240
+ for device_id in available_devices:
241
+ device_to_cpu_map[device_id] = list()
242
+
243
+ available_cpu_num = len(available_cpus)
244
+ available_device_num = len(available_devices)
245
+ cpu_num_per_device = available_cpu_num // available_device_num
246
+ if cpu_num_per_device < 7:
247
+ raise RuntimeError(f"Cpu num available for each device is {cpu_num_per_device}, "
248
+ "which is less than the minimum cpu num need. Will not enable bind core feature.")
249
+
250
+ if affinity_flag:
251
+ device_to_cpu_idx = {}
252
+ for numa_id in numa_to_cpu_map:
253
+ device_to_cpu_idx[numa_id] = 0
254
+ for device_id in available_devices:
255
+ numa_id = device_to_numa_map.get(device_id)
256
+ affinity_cpu_num = 0
257
+ # Prioritize the use of affinity cpu resources.
258
+ affinity_cpu_start_idx = device_to_cpu_idx[numa_id]
259
+ if len(numa_to_cpu_map[numa_id][affinity_cpu_start_idx:]) >= cpu_num_per_device:
260
+ affinity_cpu = numa_to_cpu_map[numa_id][
261
+ affinity_cpu_start_idx:(affinity_cpu_start_idx + cpu_num_per_device)]
262
+ else:
263
+ affinity_cpu = numa_to_cpu_map[numa_id][affinity_cpu_start_idx:]
264
+ affinity_cpu_num = len(affinity_cpu)
265
+ device_to_cpu_map[device_id].extend(affinity_cpu)
266
+ device_to_cpu_idx[numa_id] = affinity_cpu_start_idx + affinity_cpu_num
267
+ # If the affinity cpu resources are insufficient then use resources from the non-affinity cpu pool.
268
+ if -1 in device_to_cpu_idx:
269
+ unaffinity_cpu_start_idx = device_to_cpu_idx[-1]
270
+ unaffinity_cpu_num = cpu_num_per_device - affinity_cpu_num
271
+ unaffinity_cpu = numa_to_cpu_map[-1][
272
+ unaffinity_cpu_start_idx:(unaffinity_cpu_start_idx + unaffinity_cpu_num)]
273
+ device_to_cpu_map[device_id].extend(unaffinity_cpu)
274
+ device_to_cpu_idx[-1] = unaffinity_cpu_start_idx + unaffinity_cpu_num
275
+ else:
276
+ device_rank = 0
277
+ for device_id in available_devices:
278
+ cpu_start = device_rank * cpu_num_per_device
279
+ device_to_cpu_map[device_id] = available_cpus[cpu_start:(cpu_start + cpu_num_per_device)]
280
+ device_rank += 1
281
+ return device_to_cpu_map
282
+
283
+
284
+ def _customize_generate_policy(affinity_cpu_list, available_cpus):
285
+ """
286
+ Generate customized bind-core policy based on user-configured inputs.
287
+
288
+ Args:
289
+ affinity_cpu_list (dict): User-configured inputs to generate customized bind-core policy.
290
+ available_cpus (list): A list of available CPUs on the environment.
291
+
292
+ Returns:
293
+ dict: Mapping of device to its affinity CPUs.
294
+ """
295
+ device_to_cpu_map = {}
296
+ _validate_affinity_cpu_list(affinity_cpu_list)
297
+ for device, cpu_id_ranges in affinity_cpu_list.items():
298
+ ranges = list()
299
+ for range_str in cpu_id_ranges:
300
+ endpoints = range_str.split("-")
301
+ for cid in range(int(endpoints[0]), int(endpoints[1]) + 1):
302
+ if cid not in available_cpus:
303
+ raise RuntimeError(f"CPU id: {cid} set in affinity_cpu_list is not available.")
304
+ ranges.append(cid)
305
+ if len(ranges) < 7:
306
+ raise RuntimeError(f"cpu num available for {device} is less than 7, which is the minimum cpu num need.")
307
+ device_id = int(device.replace("device", ""))
308
+ device_to_cpu_map[device_id] = ranges
309
+ return device_to_cpu_map
310
+
311
+
312
+ def _assign_cpu_to_module(device_to_cpu_map):
313
+ """
314
+ Assign specific CPUs to modules.
315
+
316
+ Args:
317
+ device_to_cpu_map (dict): A map of device to its affinity CPUs.
318
+
319
+ Returns:
320
+ dict: Mapping of device to its affinity CPUs based on module segmentation.
321
+ """
322
+ module_bind_core_policy = {}
323
+ for device, cpu_list in device_to_cpu_map.items():
324
+ thread_to_cpu_map = {}
325
+ thread_to_cpu_map["main"] = [cpu_list[0]]
326
+ thread_to_cpu_map["runtime"] = cpu_list[1:6]
327
+ thread_to_cpu_map["pynative"] = cpu_list[1:5]
328
+ thread_to_cpu_map["minddata"] = cpu_list[6:]
329
+ module_bind_core_policy[device] = thread_to_cpu_map
330
+ return module_bind_core_policy
331
+
332
+
333
+ def _get_cpu_affinity_policy(affinity_cpu_list=None):
334
+ """
335
+ The entry to get bind-core policy.
336
+
337
+ Args:
338
+ affinity_cpu_list (dict, optional): User-configured inputs to generate customized bind-core policy.
339
+ Default: ``None``.
340
+
341
+ Returns:
342
+ dict: Mapping of device to its affinity CPUs based on module segmentation.
343
+ bool: Whether the generated bind-core policy is based on cpu affinity.
344
+ """
345
+ device_target = context.get_context("device_target")
346
+ device_pcie_map = {}
347
+ device_to_numa_map = {}
348
+ numa_to_device_map = {}
349
+ numa_to_cpu_map = {}
350
+ affinity_flag = False
351
+ bind_policy_flag = False
352
+
353
+ # Get the CPU resources in the environment. If this fails, the binding core feature will not be enabled.
354
+ try:
355
+ available_cpus = _get_cpu_available()
356
+ except RuntimeError as e:
357
+ logger.warning(f"Failed to acquire available cpu info, error: {e} Will not enable bind core feature.")
358
+ return {}, False
359
+ # Automatic generation of binding core policy based on resources on the environment.
360
+ if (affinity_cpu_list is None) or (not affinity_cpu_list):
361
+ # If the device target is Ascend, the affinity between the device and NUMA node is taken into account
362
+ # to generate the binding core policy.
363
+ if device_target == "Ascend":
364
+ # Get the hardware resources in the environment. If this fails, will bind core not based on device.
365
+ try:
366
+ device_map_info, available_devices = _get_device_map_info()
367
+ except RuntimeError as e:
368
+ logger.warning(f"Failed to acquire device to numa affinity info, error: {e} "
369
+ "Will not bind core based on affinity. Module bind core policy "
370
+ f"generated: {available_cpus}.")
371
+ return available_cpus, bind_policy_flag
372
+ # Get the affinity resources in the environment. If this fails, will bind core not based on affinity.
373
+ try:
374
+ device_pcie_map = _get_pcie_info(device_map_info, available_devices)
375
+ device_to_numa_map, numa_to_device_map = _get_numa_info(device_pcie_map)
376
+ numa_to_cpu_map = _get_cpu_info(list(numa_to_device_map.keys()), available_cpus)
377
+ except RuntimeError as e:
378
+ logger.warning(f"Failed to acquire device to numa affinity info, error: {e} "
379
+ "Will not bind core based on affinity.")
380
+ affinity_flag = False
381
+ if device_pcie_map and device_to_numa_map and numa_to_device_map and numa_to_cpu_map:
382
+ affinity_flag = True
383
+ # Auto-generation of bind core policy for Ascned.
384
+ try:
385
+ device_to_cpu_map = _auto_generate_policy(available_devices, available_cpus, affinity_flag,
386
+ numa_to_cpu_map, device_to_numa_map)
387
+ except (RuntimeError, ZeroDivisionError) as e:
388
+ logger.warning(f"Failed to auto generate bind core policy, error: {e}. "
389
+ "Will not enable bind core feature.")
390
+ return {}, False
391
+ module_bind_core_policy = _assign_cpu_to_module(device_to_cpu_map)
392
+ bind_policy_flag = True
393
+ else:
394
+ module_bind_core_policy = available_cpus
395
+ # User configured binding core policy.
396
+ else:
397
+ device_to_cpu_map = _customize_generate_policy(affinity_cpu_list, available_cpus)
398
+ module_bind_core_policy = _assign_cpu_to_module(device_to_cpu_map)
399
+ bind_policy_flag = True
400
+ logger.warning(f"Module bind core policy generated: {module_bind_core_policy}.")
401
+ return module_bind_core_policy, bind_policy_flag
@@ -129,7 +129,7 @@ def obfuscate_ckpt(network, ckpt_files, target_modules=None, obf_config=None, sa
129
129
  Args:
130
130
  network (nn.Cell): The original network that need to be obfuscated.
131
131
  ckpt_files (str): The directory path of original ckpt files.
132
- target_modules (list[str]): The target ops that need to be obfuscated in the network. The first string
132
+ target_modules (list[str], optional): The target ops that need to be obfuscated in the network. The first string
133
133
  represents the network path of the target ops in the original network, which should be in form of
134
134
  ``"A/B/C"``. The second string represents the names of multiple target ops in the same path, which
135
135
  should be in form of ``"D|E|F"``. For example, the target_modules of GPT2 can be ``['backbone/blocks
@@ -137,10 +137,11 @@ def obfuscate_ckpt(network, ckpt_files, target_modules=None, obf_config=None, sa
137
137
  format of 'obfuscate_layers:all' or 'obfuscate_layers:int', which represents the number of layers
138
138
  need to be obfuscated of duplicate layers (such as transformer layers or resnet blocks).
139
139
  Default: ``None``.
140
- obf_config (dict): The configuration of model obfuscation polices. Default: ``None``.
141
- saved_path (str): The directory path for saving obfuscated ckpt files. Default: ``'./'``.
142
- obfuscate_scale (Union[float, int]): Obfuscate scale of weights. The generated random obf_ratios will be in
143
- range of (1 / obfuscate_scale, obfuscate_scale). Default: 100.
140
+ obf_config (dict, optional): The configuration of model obfuscation polices. Default: ``None``.
141
+ saved_path (str, optional): The directory path for saving obfuscated ckpt files. Default: ``'./'``.
142
+ obfuscate_scale (Union[float, int], optional): Obfuscate scale of weights.
143
+ The generated random obf_ratios will be in
144
+ range of (1 / obfuscate_scale, obfuscate_scale). Default: ``100``.
144
145
 
145
146
  Returns:
146
147
  dict[str], obf_metadata, which is the necessary data that needs to be load when running obfuscated network.
@@ -371,7 +372,8 @@ def load_obf_params_into_net(network, target_modules=None, obf_ratios=None, obf_
371
372
 
372
373
  Args:
373
374
  network (nn.Cell): The original network that need to be obfuscated.
374
- target_modules (list[str]): The target ops that need to be obfuscated in the network. The first string
375
+ target_modules (list[str], optional): The target ops that need to be obfuscated in the network.
376
+ The first string
375
377
  represents the network path of the target ops in the original network, which should be in form of
376
378
  ``"A/B/C"``. The second string represents the names of multiple target ops in the same path, which
377
379
  should be in form of ``"D|E|F"``. For example, thr target_modules of GPT2 can be ``['backbone
@@ -379,9 +381,10 @@ def load_obf_params_into_net(network, target_modules=None, obf_ratios=None, obf_
379
381
  in the format of 'obfuscate_layers:all' or 'obfuscate_layers:int', which represents the number of
380
382
  layers need to be obfuscated of duplicate layers (such as transformer layers or resnet blocks).
381
383
  Default: ``None``.
382
- obf_ratios (Tensor): The obf ratios generated when execute :func:`mindspore.obfuscate_ckpt`. Default: ``None``.
383
- obf_config (dict): The configuration of model obfuscation polices. Default: ``None``.
384
- data_parallel_num (int): The data parallel number of parallel training. Default: 1.
384
+ obf_ratios (Tensor, optional): The obf ratios generated when execute :func:`mindspore.obfuscate_ckpt`.
385
+ Default: ``None``.
386
+ obf_config (dict, optional): The configuration of model obfuscation polices. Default: ``None``.
387
+ data_parallel_num (int, optional): The data parallel number of parallel training. Default: ``1``.
385
388
  kwargs (dict): Configuration options dictionary.
386
389
 
387
390
  - ignored_func_decorators (list[str]): The name list of function decorators in network's python code.
Binary file
mindspore/swscale-6.dll CHANGED
Binary file
mindspore/tbbmalloc.dll CHANGED
Binary file
mindspore/tinyxml2.dll CHANGED
Binary file
@@ -25,12 +25,12 @@ from mindspore.train import amp
25
25
  from mindspore.train.amp import build_train_network
26
26
  from mindspore.train.loss_scale_manager import LossScaleManager, FixedLossScaleManager, DynamicLossScaleManager
27
27
  from mindspore.train.serialization import save_checkpoint, load_checkpoint, load_param_into_net, export, \
28
- load, parse_print, build_searched_strategy, merge_sliced_parameter, load_distributed_checkpoint, \
29
- async_ckpt_thread_status, restore_group_info_list, convert_model, obfuscate_model, export_split_mindir, \
30
- load_checkpoint_async, check_checkpoint, get_ckpt_path_with_strategy
28
+ load, parse_print, async_ckpt_thread_status, convert_model, export_split_mindir, \
29
+ load_checkpoint_async, check_checkpoint, get_ckpt_path_with_strategy, ckpt_to_safetensors, safetensors_to_ckpt, \
30
+ build_searched_strategy, merge_sliced_parameter, load_distributed_checkpoint, restore_group_info_list
31
31
  from mindspore.train.callback import Callback, LossMonitor, TimeMonitor, ModelCheckpoint, SummaryCollector, \
32
32
  CheckpointConfig, RunContext, LearningRateScheduler, SummaryLandscape, FlopsUtilizationCollector, \
33
- History, LambdaCallback, ReduceLROnPlateau, EarlyStopping, OnRequestExit, BackupAndRestore, TFTRegister
33
+ History, LambdaCallback, ReduceLROnPlateau, EarlyStopping, OnRequestExit, BackupAndRestore, TrainFaultTolerance
34
34
  from mindspore.train.summary import SummaryRecord
35
35
  from mindspore.train.train_thor import ConvertNetUtils, ConvertModelUtils
36
36
  from mindspore.train.metrics import *
@@ -38,10 +38,10 @@ from mindspore.train.data_sink import data_sink
38
38
 
39
39
  __all__ = ["Model", "DatasetHelper", "connect_network_with_dataset", "build_train_network", "LossScaleManager",
40
40
  "FixedLossScaleManager", "DynamicLossScaleManager", "save_checkpoint", "load_checkpoint", "check_checkpoint",
41
- "load_param_into_net", "export", "load", "export_split_mindir", "parse_print", "build_searched_strategy",
42
- "merge_sliced_parameter", "load_distributed_checkpoint", "async_ckpt_thread_status",
43
- "restore_group_info_list", "convert_model", "data_sink", "obfuscate_model", "load_checkpoint_async",
44
- "get_ckpt_path_with_strategy"]
41
+ "load_param_into_net", "export", "load", "export_split_mindir", "parse_print", "async_ckpt_thread_status",
42
+ "convert_model", "data_sink", "load_checkpoint_async", "get_ckpt_path_with_strategy", "ckpt_to_safetensors",
43
+ "safetensors_to_ckpt", "build_searched_strategy", "merge_sliced_parameter", "load_distributed_checkpoint",
44
+ "restore_group_info_list"]
45
45
  __all__.extend(callback.__all__)
46
46
  __all__.extend(summary.__all__)
47
47
  __all__.extend(train_thor.__all__)