mindspore 2.4.10__cp39-cp39-win_amd64.whl → 2.6.0__cp39-cp39-win_amd64.whl

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

Potentially problematic release.


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

Files changed (579) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +13 -6
  3. mindspore/_c_dataengine.cp39-win_amd64.pyd +0 -0
  4. mindspore/_c_expression.cp39-win_amd64.pyd +0 -0
  5. mindspore/_c_mindrecord.cp39-win_amd64.pyd +0 -0
  6. mindspore/_check_jit_forbidden_api.py +3 -0
  7. mindspore/_checkparam.py +3 -38
  8. mindspore/_deprecated/__init__.py +17 -0
  9. mindspore/_deprecated/jit.py +198 -0
  10. mindspore/_extends/builtin_operations.py +1 -1
  11. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  12. mindspore/_extends/parse/__init__.py +6 -7
  13. mindspore/_extends/parse/compile_config.py +83 -0
  14. mindspore/_extends/parse/deprecated/__init__.py +0 -0
  15. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +394 -0
  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 +47 -198
  20. mindspore/_extends/parse/resources.py +1 -5
  21. mindspore/_extends/parse/standard_method.py +229 -99
  22. mindspore/_extends/pijit/__init__.py +2 -2
  23. mindspore/_extends/pijit/pijit_func_white_list.py +17 -12
  24. mindspore/_extends/pijit/tensor_func_list.py +27 -0
  25. mindspore/_extends/utils.py +1 -1
  26. mindspore/amp.py +11 -5
  27. mindspore/avcodec-59.dll +0 -0
  28. mindspore/avdevice-59.dll +0 -0
  29. mindspore/avfilter-8.dll +0 -0
  30. mindspore/avformat-59.dll +0 -0
  31. mindspore/avutil-57.dll +0 -0
  32. mindspore/boost/__init__.py +2 -2
  33. mindspore/boost/base.py +3 -7
  34. mindspore/boost/boost_cell_wrapper.py +138 -43
  35. mindspore/common/__init__.py +6 -3
  36. mindspore/common/_grad_function.py +56 -0
  37. mindspore/common/_pijit_context.py +14 -5
  38. mindspore/common/_register_for_tensor.py +1 -2
  39. mindspore/common/_stub_tensor.py +30 -14
  40. mindspore/common/_tensor_cpp_method.py +17 -0
  41. mindspore/common/_tensor_docs.py +4760 -0
  42. mindspore/common/api.py +480 -372
  43. mindspore/common/auto_dynamic_shape.py +41 -44
  44. mindspore/common/dtype.py +39 -36
  45. mindspore/common/dump.py +9 -6
  46. mindspore/common/file_system.py +9 -1
  47. mindspore/common/generator.py +5 -0
  48. mindspore/common/hook_handle.py +6 -2
  49. mindspore/common/initializer.py +13 -10
  50. mindspore/common/jit_begin_end.py +94 -0
  51. mindspore/common/jit_config.py +6 -1
  52. mindspore/common/jit_context.py +76 -0
  53. mindspore/common/jit_trace.py +378 -0
  54. mindspore/common/lazy_inline.py +9 -3
  55. mindspore/common/mindir_util.py +10 -2
  56. mindspore/common/mutable.py +5 -4
  57. mindspore/common/parameter.py +135 -52
  58. mindspore/common/seed.py +2 -2
  59. mindspore/common/sparse_tensor.py +23 -17
  60. mindspore/common/tensor.py +975 -1981
  61. mindspore/communication/__init__.py +7 -5
  62. mindspore/communication/_comm_helper.py +52 -2
  63. mindspore/communication/comm_func.py +240 -181
  64. mindspore/communication/management.py +95 -26
  65. mindspore/context.py +324 -573
  66. mindspore/dataset/__init__.py +65 -37
  67. mindspore/dataset/audio/__init__.py +2 -8
  68. mindspore/dataset/audio/transforms.py +3 -17
  69. mindspore/dataset/callback/ds_callback.py +2 -1
  70. mindspore/dataset/core/config.py +87 -6
  71. mindspore/dataset/engine/cache_admin.py +3 -3
  72. mindspore/dataset/engine/cache_client.py +6 -5
  73. mindspore/dataset/engine/datasets.py +292 -267
  74. mindspore/dataset/engine/datasets_audio.py +22 -8
  75. mindspore/dataset/engine/datasets_standard_format.py +46 -27
  76. mindspore/dataset/engine/datasets_text.py +78 -48
  77. mindspore/dataset/engine/datasets_user_defined.py +183 -117
  78. mindspore/dataset/engine/datasets_vision.py +120 -44
  79. mindspore/dataset/engine/iterators.py +283 -63
  80. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +1 -1
  81. mindspore/dataset/engine/obs/util.py +8 -0
  82. mindspore/dataset/engine/queue.py +40 -0
  83. mindspore/dataset/engine/samplers.py +289 -43
  84. mindspore/dataset/engine/serializer_deserializer.py +3 -2
  85. mindspore/dataset/engine/validators.py +53 -11
  86. mindspore/dataset/text/__init__.py +7 -6
  87. mindspore/dataset/text/transforms.py +6 -5
  88. mindspore/dataset/text/utils.py +3 -3
  89. mindspore/dataset/transforms/__init__.py +0 -9
  90. mindspore/dataset/transforms/py_transforms_util.py +17 -0
  91. mindspore/dataset/transforms/transforms.py +31 -14
  92. mindspore/dataset/utils/browse_dataset.py +1 -1
  93. mindspore/dataset/vision/__init__.py +2 -9
  94. mindspore/dataset/vision/transforms.py +202 -158
  95. mindspore/dataset/vision/utils.py +7 -5
  96. mindspore/dataset/vision/validators.py +1 -2
  97. mindspore/device_context/__init__.py +21 -0
  98. mindspore/device_context/ascend/__init__.py +25 -0
  99. mindspore/device_context/ascend/device.py +72 -0
  100. mindspore/device_context/ascend/op_debug.py +153 -0
  101. mindspore/device_context/ascend/op_precision.py +193 -0
  102. mindspore/device_context/ascend/op_tuning.py +123 -0
  103. mindspore/{ops_generate/gen_constants.py → device_context/cpu/__init__.py} +6 -17
  104. mindspore/device_context/cpu/device.py +62 -0
  105. mindspore/device_context/cpu/op_tuning.py +43 -0
  106. mindspore/device_context/gpu/__init__.py +21 -0
  107. mindspore/device_context/gpu/device.py +70 -0
  108. mindspore/device_context/gpu/op_precision.py +67 -0
  109. mindspore/device_context/gpu/op_tuning.py +175 -0
  110. mindspore/device_manager.py +170 -0
  111. mindspore/dnnl.dll +0 -0
  112. mindspore/experimental/es/embedding_service.py +35 -27
  113. mindspore/experimental/llm_boost/__init__.py +1 -0
  114. mindspore/experimental/llm_boost/ascend_native/__init__.py +22 -0
  115. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +209 -0
  116. mindspore/experimental/llm_boost/ascend_native/llm_boost.py +52 -0
  117. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  118. mindspore/experimental/llm_boost/atb/llama_boost.py +6 -1
  119. mindspore/experimental/llm_boost/register.py +1 -0
  120. mindspore/experimental/map_parameter.py +4 -4
  121. mindspore/experimental/optim/adadelta.py +6 -6
  122. mindspore/experimental/optim/adagrad.py +4 -4
  123. mindspore/experimental/optim/adam.py +7 -0
  124. mindspore/experimental/optim/adamax.py +4 -4
  125. mindspore/experimental/optim/adamw.py +4 -0
  126. mindspore/experimental/optim/asgd.py +1 -1
  127. mindspore/experimental/optim/lr_scheduler.py +73 -46
  128. mindspore/experimental/optim/radam.py +34 -31
  129. mindspore/experimental/optim/rprop.py +1 -1
  130. mindspore/experimental/optim/sgd.py +1 -1
  131. mindspore/hal/contiguous_tensors_handle.py +6 -10
  132. mindspore/hal/device.py +55 -53
  133. mindspore/hal/event.py +52 -52
  134. mindspore/hal/memory.py +179 -120
  135. mindspore/hal/stream.py +150 -109
  136. mindspore/include/api/context.h +0 -1
  137. mindspore/include/dataset/constants.h +7 -4
  138. mindspore/include/dataset/execute.h +2 -2
  139. mindspore/jpeg62.dll +0 -0
  140. mindspore/log.py +50 -0
  141. mindspore/mindrecord/__init__.py +21 -8
  142. mindspore/mindrecord/config.py +17 -316
  143. mindspore/mindrecord/filereader.py +1 -9
  144. mindspore/mindrecord/filewriter.py +5 -15
  145. mindspore/mindrecord/mindpage.py +1 -9
  146. mindspore/mindspore_backend_common.dll +0 -0
  147. mindspore/mindspore_backend_manager.dll +0 -0
  148. mindspore/mindspore_common.dll +0 -0
  149. mindspore/mindspore_core.dll +0 -0
  150. mindspore/mindspore_dump.dll +0 -0
  151. mindspore/mindspore_frontend.dll +0 -0
  152. mindspore/mindspore_glog.dll +0 -0
  153. mindspore/mindspore_memory_pool.dll +0 -0
  154. mindspore/mindspore_ms_backend.dll +0 -0
  155. mindspore/mindspore_ops.dll +0 -0
  156. mindspore/{mindspore_backend.dll → mindspore_ops_host.dll} +0 -0
  157. mindspore/mindspore_ops_kernel_common.dll +0 -0
  158. mindspore/mindspore_profiler.dll +0 -0
  159. mindspore/mindspore_pyboost.dll +0 -0
  160. mindspore/mindspore_pynative.dll +0 -0
  161. mindspore/mindspore_res_manager.dll +0 -0
  162. mindspore/mindspore_runtime_pipeline.dll +0 -0
  163. mindspore/mint/__init__.py +798 -761
  164. mindspore/mint/distributed/__init__.py +70 -4
  165. mindspore/mint/distributed/distributed.py +2679 -44
  166. mindspore/mint/linalg/__init__.py +8 -0
  167. mindspore/mint/nn/__init__.py +743 -22
  168. mindspore/mint/nn/functional.py +716 -23
  169. mindspore/mint/nn/layer/__init__.py +21 -4
  170. mindspore/mint/nn/layer/_functions.py +334 -0
  171. mindspore/mint/nn/layer/activation.py +276 -1
  172. mindspore/mint/nn/layer/basic.py +123 -0
  173. mindspore/mint/nn/layer/conv.py +933 -0
  174. mindspore/mint/nn/layer/normalization.py +223 -28
  175. mindspore/mint/nn/layer/padding.py +797 -0
  176. mindspore/mint/nn/layer/pooling.py +235 -0
  177. mindspore/mint/optim/__init__.py +3 -1
  178. mindspore/mint/optim/adam.py +223 -0
  179. mindspore/mint/optim/adamw.py +26 -19
  180. mindspore/mint/optim/sgd.py +171 -0
  181. mindspore/mint/special/__init__.py +2 -1
  182. mindspore/multiprocessing/__init__.py +5 -0
  183. mindspore/nn/__init__.py +4 -1
  184. mindspore/nn/cell.py +1373 -192
  185. mindspore/nn/dynamic_lr.py +2 -1
  186. mindspore/nn/layer/activation.py +29 -27
  187. mindspore/nn/layer/basic.py +51 -35
  188. mindspore/nn/layer/channel_shuffle.py +3 -3
  189. mindspore/nn/layer/container.py +1 -1
  190. mindspore/nn/layer/conv.py +53 -42
  191. mindspore/nn/layer/embedding.py +12 -11
  192. mindspore/nn/layer/normalization.py +56 -49
  193. mindspore/nn/layer/padding.py +4 -3
  194. mindspore/nn/layer/pooling.py +120 -42
  195. mindspore/nn/layer/rnn_cells.py +1 -1
  196. mindspore/nn/layer/rnns.py +2 -1
  197. mindspore/nn/layer/timedistributed.py +5 -5
  198. mindspore/nn/layer/transformer.py +59 -36
  199. mindspore/nn/learning_rate_schedule.py +8 -4
  200. mindspore/nn/loss/loss.py +58 -55
  201. mindspore/nn/optim/ada_grad.py +7 -5
  202. mindspore/nn/optim/adadelta.py +11 -9
  203. mindspore/nn/optim/adafactor.py +1 -1
  204. mindspore/nn/optim/adam.py +19 -15
  205. mindspore/nn/optim/adamax.py +8 -7
  206. mindspore/nn/optim/adasum.py +5 -5
  207. mindspore/nn/optim/asgd.py +3 -1
  208. mindspore/nn/optim/ftrl.py +11 -9
  209. mindspore/nn/optim/lamb.py +1 -1
  210. mindspore/nn/optim/lars.py +1 -4
  211. mindspore/nn/optim/lazyadam.py +12 -10
  212. mindspore/nn/optim/momentum.py +7 -6
  213. mindspore/nn/optim/optimizer.py +3 -3
  214. mindspore/nn/optim/proximal_ada_grad.py +12 -10
  215. mindspore/nn/optim/rmsprop.py +13 -12
  216. mindspore/nn/optim/rprop.py +11 -9
  217. mindspore/nn/optim/sgd.py +9 -6
  218. mindspore/nn/optim/tft_wrapper.py +5 -2
  219. mindspore/nn/optim/thor.py +2 -1
  220. mindspore/nn/probability/bijector/bijector.py +17 -11
  221. mindspore/nn/probability/bijector/gumbel_cdf.py +5 -5
  222. mindspore/nn/probability/bijector/invert.py +2 -2
  223. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  224. mindspore/nn/probability/bijector/softplus.py +3 -2
  225. mindspore/nn/probability/distribution/beta.py +3 -3
  226. mindspore/nn/probability/distribution/categorical.py +1 -1
  227. mindspore/nn/probability/distribution/cauchy.py +4 -2
  228. mindspore/nn/probability/distribution/exponential.py +6 -7
  229. mindspore/nn/probability/distribution/gamma.py +2 -2
  230. mindspore/nn/probability/distribution/gumbel.py +2 -2
  231. mindspore/nn/probability/distribution/half_normal.py +5 -3
  232. mindspore/nn/probability/distribution/logistic.py +5 -3
  233. mindspore/nn/probability/distribution/poisson.py +1 -1
  234. mindspore/nn/probability/distribution/uniform.py +5 -3
  235. mindspore/nn/reinforcement/_tensors_queue.py +1 -1
  236. mindspore/nn/reinforcement/tensor_array.py +1 -1
  237. mindspore/nn/utils/init.py +13 -11
  238. mindspore/nn/wrap/__init__.py +6 -6
  239. mindspore/nn/wrap/cell_wrapper.py +181 -122
  240. mindspore/nn/wrap/grad_reducer.py +45 -36
  241. mindspore/nn/wrap/loss_scale.py +6 -7
  242. mindspore/numpy/array_creations.py +63 -65
  243. mindspore/numpy/array_ops.py +149 -144
  244. mindspore/numpy/logic_ops.py +41 -42
  245. mindspore/numpy/math_ops.py +361 -359
  246. mindspore/numpy/utils.py +17 -18
  247. mindspore/numpy/utils_const.py +5 -6
  248. mindspore/opencv_core452.dll +0 -0
  249. mindspore/opencv_imgcodecs452.dll +0 -0
  250. mindspore/opencv_imgproc452.dll +0 -0
  251. mindspore/ops/__init__.py +5 -3
  252. mindspore/ops/_grad_experimental/grad_comm_ops.py +112 -16
  253. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -2
  254. mindspore/ops/_grad_experimental/grad_inner_ops.py +9 -0
  255. mindspore/ops/_grad_experimental/grad_math_ops.py +2 -1
  256. mindspore/ops/_grad_experimental/taylor_rule.py +29 -0
  257. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  258. mindspore/ops/_op_impl/cpu/raise_op.py +28 -0
  259. mindspore/ops/_register_for_op.py +0 -11
  260. mindspore/{ops_generate → ops/_utils}/arg_dtype_cast.py +123 -4
  261. mindspore/{ops_generate → ops/_utils}/arg_handler.py +3 -65
  262. mindspore/ops/_vmap/vmap_array_ops.py +52 -25
  263. mindspore/ops/_vmap/vmap_base.py +0 -2
  264. mindspore/ops/_vmap/vmap_grad_nn_ops.py +21 -14
  265. mindspore/ops/_vmap/vmap_math_ops.py +15 -16
  266. mindspore/ops/_vmap/vmap_nn_ops.py +29 -42
  267. mindspore/ops/auto_generate/__init__.py +4 -3
  268. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +258 -46
  269. mindspore/ops/auto_generate/gen_extend_func.py +757 -185
  270. mindspore/ops/auto_generate/gen_ops_def.py +4197 -2243
  271. mindspore/ops/auto_generate/gen_ops_prim.py +16976 -6055
  272. mindspore/ops/auto_generate/pyboost_inner_prim.py +221 -87
  273. mindspore/ops/composite/__init__.py +2 -1
  274. mindspore/ops/composite/base.py +20 -25
  275. mindspore/ops/composite/math_ops.py +6 -16
  276. mindspore/ops/composite/multitype_ops/__init__.py +5 -2
  277. mindspore/ops/composite/multitype_ops/_compile_utils.py +228 -30
  278. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -2
  279. mindspore/ops/composite/multitype_ops/add_impl.py +2 -1
  280. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  281. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  282. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -1
  283. mindspore/ops/composite/multitype_ops/div_impl.py +6 -4
  284. mindspore/ops/composite/multitype_ops/equal_impl.py +4 -3
  285. mindspore/ops/composite/multitype_ops/floordiv_impl.py +2 -1
  286. mindspore/ops/composite/multitype_ops/getitem_impl.py +3 -2
  287. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +4 -3
  288. mindspore/ops/composite/multitype_ops/greater_impl.py +4 -3
  289. mindspore/ops/composite/multitype_ops/in_impl.py +2 -1
  290. mindspore/ops/composite/multitype_ops/invert_impl.py +50 -0
  291. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -1
  292. mindspore/ops/composite/multitype_ops/less_equal_impl.py +4 -3
  293. mindspore/ops/composite/multitype_ops/less_impl.py +4 -3
  294. mindspore/ops/composite/multitype_ops/logic_not_impl.py +3 -2
  295. mindspore/ops/composite/multitype_ops/logical_and_impl.py +2 -1
  296. mindspore/ops/composite/multitype_ops/logical_or_impl.py +2 -1
  297. mindspore/ops/composite/multitype_ops/mod_impl.py +2 -1
  298. mindspore/ops/composite/multitype_ops/mul_impl.py +3 -2
  299. mindspore/ops/composite/multitype_ops/negative_impl.py +2 -1
  300. mindspore/ops/composite/multitype_ops/not_equal_impl.py +2 -1
  301. mindspore/ops/composite/multitype_ops/not_in_impl.py +2 -1
  302. mindspore/ops/composite/multitype_ops/ones_like_impl.py +18 -0
  303. mindspore/ops/composite/multitype_ops/pow_impl.py +2 -30
  304. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -1
  305. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  306. mindspore/ops/composite/multitype_ops/sub_impl.py +2 -1
  307. mindspore/ops/function/__init__.py +40 -2
  308. mindspore/ops/function/_add_attr_func.py +58 -0
  309. mindspore/ops/function/array_func.py +2089 -2403
  310. mindspore/ops/function/clip_func.py +80 -23
  311. mindspore/ops/function/debug_func.py +57 -57
  312. mindspore/ops/function/grad/__init__.py +1 -0
  313. mindspore/ops/function/grad/grad_func.py +104 -71
  314. mindspore/ops/function/image_func.py +2 -2
  315. mindspore/ops/function/linalg_func.py +47 -78
  316. mindspore/ops/function/math_func.py +4351 -3813
  317. mindspore/ops/function/nn_func.py +1712 -637
  318. mindspore/ops/function/other_func.py +159 -1
  319. mindspore/ops/function/parameter_func.py +18 -84
  320. mindspore/ops/function/random_func.py +452 -387
  321. mindspore/ops/function/reshard_func.py +4 -70
  322. mindspore/ops/function/sparse_func.py +3 -3
  323. mindspore/ops/function/sparse_unary_func.py +6 -6
  324. mindspore/ops/function/spectral_func.py +25 -58
  325. mindspore/ops/function/vmap_func.py +26 -18
  326. mindspore/ops/functional.py +23 -7
  327. mindspore/ops/functional_overload.py +1548 -0
  328. mindspore/ops/op_info_register.py +32 -244
  329. mindspore/ops/operations/__init__.py +23 -15
  330. mindspore/ops/operations/_custom_ops_utils.py +235 -0
  331. mindspore/ops/operations/_embedding_cache_ops.py +4 -4
  332. mindspore/ops/operations/_grad_ops.py +2 -43
  333. mindspore/ops/operations/_infer_ops.py +2 -1
  334. mindspore/ops/operations/_inner_ops.py +43 -84
  335. mindspore/ops/operations/_ms_kernel.py +4 -10
  336. mindspore/ops/operations/_rl_inner_ops.py +1 -1
  337. mindspore/ops/operations/_scalar_ops.py +3 -2
  338. mindspore/ops/operations/_sequence_ops.py +1 -1
  339. mindspore/ops/operations/_tensor_array.py +1 -1
  340. mindspore/ops/operations/array_ops.py +81 -324
  341. mindspore/ops/operations/comm_ops.py +154 -108
  342. mindspore/ops/operations/custom_ops.py +298 -87
  343. mindspore/ops/operations/debug_ops.py +157 -59
  344. mindspore/ops/operations/inner_ops.py +7 -5
  345. mindspore/ops/operations/linalg_ops.py +1 -57
  346. mindspore/ops/operations/manually_defined/_inner.py +1 -1
  347. mindspore/ops/operations/manually_defined/ops_def.py +928 -180
  348. mindspore/ops/operations/math_ops.py +32 -234
  349. mindspore/ops/operations/nn_ops.py +212 -531
  350. mindspore/ops/operations/other_ops.py +62 -9
  351. mindspore/ops/operations/random_ops.py +13 -7
  352. mindspore/ops/operations/reshard_ops.py +1 -1
  353. mindspore/ops/operations/sparse_ops.py +2 -2
  354. mindspore/ops/primitive.py +66 -53
  355. mindspore/ops/tensor_method.py +1895 -0
  356. mindspore/ops_generate/__init__.py +0 -5
  357. mindspore/ops_generate/aclnn/__init__.py +0 -0
  358. mindspore/ops_generate/aclnn/aclnn_kernel_register_auto_cc_generator.py +135 -0
  359. mindspore/ops_generate/aclnn/gen_aclnn_implement.py +257 -0
  360. mindspore/ops_generate/api/__init__.py +0 -0
  361. mindspore/ops_generate/api/add_tensor_docs_generator.py +56 -0
  362. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +105 -0
  363. mindspore/ops_generate/api/functional_map_cpp_generator.py +504 -0
  364. mindspore/ops_generate/api/functional_overload_py_generator.py +112 -0
  365. mindspore/ops_generate/api/functions_cc_generator.py +237 -0
  366. mindspore/ops_generate/api/gen_api.py +103 -0
  367. mindspore/ops_generate/api/op_api_proto.py +235 -0
  368. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +461 -0
  369. mindspore/ops_generate/common/__init__.py +0 -0
  370. mindspore/ops_generate/common/base_generator.py +11 -0
  371. mindspore/ops_generate/common/gen_constants.py +91 -0
  372. mindspore/ops_generate/common/gen_utils.py +348 -0
  373. mindspore/ops_generate/common/op_proto.py +473 -0
  374. mindspore/ops_generate/common/template.py +523 -0
  375. mindspore/ops_generate/gen_ops.py +22 -1069
  376. mindspore/ops_generate/op_def/__init__.py +0 -0
  377. mindspore/ops_generate/op_def/gen_op_def.py +90 -0
  378. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +191 -0
  379. mindspore/ops_generate/op_def/ops_def_cc_generator.py +296 -0
  380. mindspore/ops_generate/op_def/ops_def_h_generator.py +74 -0
  381. mindspore/ops_generate/op_def/ops_name_h_generator.py +83 -0
  382. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +125 -0
  383. mindspore/ops_generate/op_def_py/__init__.py +0 -0
  384. mindspore/ops_generate/op_def_py/gen_op_def_py.py +47 -0
  385. mindspore/ops_generate/op_def_py/op_def_py_generator.py +132 -0
  386. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +489 -0
  387. mindspore/ops_generate/pyboost/__init__.py +0 -0
  388. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +139 -0
  389. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +93 -0
  390. mindspore/ops_generate/pyboost/gen_pyboost_func.py +175 -0
  391. mindspore/ops_generate/pyboost/op_template_parser.py +517 -0
  392. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +407 -0
  393. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +100 -0
  394. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +148 -0
  395. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +155 -0
  396. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +132 -0
  397. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +272 -0
  398. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +938 -0
  399. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +357 -0
  400. mindspore/ops_generate/{pyboost_utils.py → pyboost/pyboost_utils.py} +179 -36
  401. mindspore/ops_generate/resources/__init__.py +0 -0
  402. mindspore/ops_generate/resources/resource_list.py +30 -0
  403. mindspore/ops_generate/resources/resource_loader.py +36 -0
  404. mindspore/ops_generate/resources/resource_manager.py +64 -0
  405. mindspore/ops_generate/resources/yaml_loader.py +88 -0
  406. mindspore/ops_generate/tensor_py_cc_generator.py +122 -0
  407. mindspore/parallel/__init__.py +7 -3
  408. mindspore/parallel/_auto_parallel_context.py +159 -40
  409. mindspore/parallel/_cell_wrapper.py +132 -15
  410. mindspore/parallel/_parallel_serialization.py +107 -5
  411. mindspore/parallel/_ps_context.py +1 -1
  412. mindspore/parallel/_recovery_context.py +7 -2
  413. mindspore/parallel/_tensor.py +142 -18
  414. mindspore/parallel/_utils.py +199 -23
  415. mindspore/parallel/algo_parameter_config.py +4 -4
  416. mindspore/parallel/auto_parallel.py +732 -0
  417. mindspore/parallel/checkpoint_convert.py +159 -0
  418. mindspore/parallel/checkpoint_transform.py +700 -35
  419. mindspore/parallel/cluster/process_entity/_api.py +276 -50
  420. mindspore/parallel/cluster/process_entity/_utils.py +41 -6
  421. mindspore/parallel/cluster/run.py +21 -4
  422. mindspore/parallel/function/__init__.py +24 -0
  423. mindspore/parallel/function/reshard_func.py +258 -0
  424. mindspore/parallel/nn/__init__.py +25 -0
  425. mindspore/parallel/nn/parallel_cell_wrapper.py +263 -0
  426. mindspore/parallel/nn/parallel_grad_reducer.py +169 -0
  427. mindspore/parallel/parameter_broadcast.py +25 -14
  428. mindspore/parallel/shard.py +137 -59
  429. mindspore/parallel/transform_safetensors.py +364 -305
  430. mindspore/profiler/__init__.py +22 -5
  431. mindspore/profiler/analysis/__init__.py +0 -0
  432. mindspore/profiler/analysis/parser/__init__.py +0 -0
  433. mindspore/profiler/analysis/parser/ascend_cann_parser.py +170 -0
  434. mindspore/profiler/analysis/parser/base_parser.py +158 -0
  435. mindspore/profiler/analysis/parser/framework_cann_relation_parser.py +45 -0
  436. mindspore/profiler/analysis/parser/ms_framework_parser.py +142 -0
  437. mindspore/profiler/analysis/parser/ms_minddata_parser.py +145 -0
  438. mindspore/profiler/analysis/parser/timeline_assembly_factory/__init__.py +0 -0
  439. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +264 -0
  440. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +40 -0
  441. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +109 -0
  442. mindspore/profiler/analysis/parser/timeline_creator/__init__.py +0 -0
  443. mindspore/profiler/analysis/parser/timeline_creator/base_timeline_creator.py +44 -0
  444. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +90 -0
  445. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +76 -0
  446. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +103 -0
  447. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +134 -0
  448. mindspore/profiler/analysis/parser/timeline_event/__init__.py +0 -0
  449. mindspore/profiler/analysis/parser/timeline_event/base_event.py +233 -0
  450. mindspore/profiler/analysis/parser/timeline_event/cpu_op_event.py +47 -0
  451. mindspore/profiler/analysis/parser/timeline_event/flow_event.py +36 -0
  452. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +415 -0
  453. mindspore/profiler/analysis/parser/timeline_event/msprof_event.py +73 -0
  454. mindspore/profiler/analysis/parser/timeline_event/scope_layer_event.py +53 -0
  455. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +146 -0
  456. mindspore/profiler/analysis/task_manager.py +131 -0
  457. mindspore/profiler/analysis/time_converter.py +84 -0
  458. mindspore/profiler/analysis/viewer/__init__.py +0 -0
  459. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +372 -0
  460. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +87 -0
  461. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +250 -0
  462. mindspore/profiler/analysis/viewer/ascend_memory_viewer.py +320 -0
  463. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +327 -0
  464. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +376 -0
  465. mindspore/profiler/analysis/viewer/ascend_timeline_viewer.py +58 -0
  466. mindspore/profiler/analysis/viewer/base_viewer.py +26 -0
  467. mindspore/profiler/analysis/viewer/ms_dataset_viewer.py +96 -0
  468. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +581 -0
  469. mindspore/profiler/analysis/work_flow.py +73 -0
  470. mindspore/profiler/common/ascend_msprof_exporter.py +139 -0
  471. mindspore/profiler/common/command_executor.py +90 -0
  472. mindspore/profiler/common/constant.py +186 -3
  473. mindspore/profiler/common/file_manager.py +208 -0
  474. mindspore/profiler/common/log.py +130 -0
  475. mindspore/profiler/common/msprof_cmd_tool.py +221 -0
  476. mindspore/profiler/common/path_manager.py +395 -0
  477. mindspore/profiler/common/process_bar.py +168 -0
  478. mindspore/profiler/common/process_pool.py +9 -3
  479. mindspore/profiler/common/profiler_context.py +500 -0
  480. mindspore/profiler/common/profiler_info.py +304 -0
  481. mindspore/profiler/common/profiler_meta_data.py +74 -0
  482. mindspore/profiler/common/profiler_output_path.py +284 -0
  483. mindspore/profiler/common/profiler_parameters.py +251 -0
  484. mindspore/profiler/common/profiler_path_manager.py +179 -0
  485. mindspore/profiler/common/record_function.py +76 -0
  486. mindspore/profiler/common/tlv_decoder.py +76 -0
  487. mindspore/profiler/common/util.py +75 -2
  488. mindspore/profiler/dynamic_profiler.py +341 -75
  489. mindspore/profiler/envprofiler.py +163 -0
  490. mindspore/profiler/experimental_config.py +197 -0
  491. mindspore/profiler/mstx.py +242 -0
  492. mindspore/profiler/platform/__init__.py +21 -0
  493. mindspore/profiler/platform/base_profiler.py +40 -0
  494. mindspore/profiler/platform/cpu_profiler.py +124 -0
  495. mindspore/profiler/platform/gpu_profiler.py +74 -0
  496. mindspore/profiler/platform/npu_profiler.py +335 -0
  497. mindspore/profiler/profiler.py +1073 -90
  498. mindspore/profiler/profiler_action_controller.py +187 -0
  499. mindspore/profiler/profiler_interface.py +118 -0
  500. mindspore/profiler/schedule.py +243 -0
  501. mindspore/rewrite/api/node.py +15 -13
  502. mindspore/rewrite/api/symbol_tree.py +2 -3
  503. mindspore/run_check/_check_version.py +27 -20
  504. mindspore/run_check/run_check.py +1 -1
  505. mindspore/runtime/__init__.py +37 -0
  506. mindspore/runtime/device.py +27 -0
  507. mindspore/runtime/event.py +209 -0
  508. mindspore/runtime/executor.py +177 -0
  509. mindspore/runtime/memory.py +416 -0
  510. mindspore/runtime/stream.py +460 -0
  511. mindspore/runtime/thread_bind_core.py +401 -0
  512. mindspore/safeguard/rewrite_obfuscation.py +12 -9
  513. mindspore/swresample-4.dll +0 -0
  514. mindspore/swscale-6.dll +0 -0
  515. mindspore/tinyxml2.dll +0 -0
  516. mindspore/train/__init__.py +8 -8
  517. mindspore/train/_utils.py +96 -27
  518. mindspore/train/amp.py +9 -5
  519. mindspore/train/callback/__init__.py +2 -2
  520. mindspore/train/callback/_callback.py +2 -16
  521. mindspore/train/callback/_checkpoint.py +53 -55
  522. mindspore/train/callback/_cluster_monitor.py +14 -18
  523. mindspore/train/callback/_early_stop.py +1 -1
  524. mindspore/train/callback/_flops_collector.py +103 -68
  525. mindspore/train/callback/_history.py +8 -5
  526. mindspore/train/callback/_lambda_callback.py +2 -2
  527. mindspore/train/callback/_landscape.py +0 -3
  528. mindspore/train/callback/_loss_monitor.py +2 -1
  529. mindspore/train/callback/_on_request_exit.py +6 -5
  530. mindspore/train/callback/_reduce_lr_on_plateau.py +11 -6
  531. mindspore/train/callback/_summary_collector.py +52 -19
  532. mindspore/train/callback/_time_monitor.py +2 -1
  533. mindspore/train/callback/{_tft_register.py → _train_fault_tolerance.py} +228 -108
  534. mindspore/train/data_sink.py +25 -2
  535. mindspore/train/dataset_helper.py +15 -16
  536. mindspore/train/loss_scale_manager.py +8 -7
  537. mindspore/train/metrics/accuracy.py +3 -3
  538. mindspore/train/metrics/confusion_matrix.py +9 -9
  539. mindspore/train/metrics/error.py +3 -3
  540. mindspore/train/metrics/hausdorff_distance.py +4 -4
  541. mindspore/train/metrics/mean_surface_distance.py +3 -3
  542. mindspore/train/metrics/metric.py +0 -12
  543. mindspore/train/metrics/occlusion_sensitivity.py +4 -2
  544. mindspore/train/metrics/precision.py +11 -10
  545. mindspore/train/metrics/recall.py +9 -9
  546. mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
  547. mindspore/train/mind_ir_pb2.py +174 -46
  548. mindspore/train/model.py +269 -136
  549. mindspore/train/serialization.py +622 -978
  550. mindspore/train/summary/_summary_adapter.py +2 -2
  551. mindspore/train/summary/summary_record.py +2 -3
  552. mindspore/train/train_thor/model_thor.py +1 -1
  553. mindspore/turbojpeg.dll +0 -0
  554. mindspore/utils/__init__.py +6 -3
  555. mindspore/utils/dryrun.py +140 -0
  556. mindspore/utils/hooks.py +81 -0
  557. mindspore/utils/runtime_execution_order_check.py +552 -0
  558. mindspore/utils/utils.py +138 -4
  559. mindspore/version.py +1 -1
  560. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/METADATA +3 -3
  561. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/RECORD +564 -395
  562. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/entry_points.txt +1 -1
  563. mindspore/_install_custom.py +0 -43
  564. mindspore/common/_register_for_adapter.py +0 -74
  565. mindspore/common/_tensor_overload.py +0 -139
  566. mindspore/mindspore_np_dtype.dll +0 -0
  567. mindspore/ops/auto_generate/gen_arg_dtype_cast.py +0 -252
  568. mindspore/ops/auto_generate/gen_arg_handler.py +0 -197
  569. mindspore/ops/operations/_opaque_predicate_registry.py +0 -41
  570. mindspore/ops_generate/gen_aclnn_implement.py +0 -263
  571. mindspore/ops_generate/gen_ops_inner_prim.py +0 -131
  572. mindspore/ops_generate/gen_pyboost_func.py +0 -1052
  573. mindspore/ops_generate/gen_utils.py +0 -209
  574. mindspore/ops_generate/op_proto.py +0 -145
  575. mindspore/ops_generate/template.py +0 -261
  576. mindspore/profiler/envprofiling.py +0 -254
  577. mindspore/profiler/profiling.py +0 -1926
  578. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/WHEEL +0 -0
  579. {mindspore-2.4.10.dist-info → mindspore-2.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,76 @@
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
+ """JIT Context for various JIT compile."""
17
+
18
+
19
+ class JitContext():
20
+ """JIT context"""
21
+ def __init__(self):
22
+ self._compiled = False
23
+ self._result = None
24
+ self._phase = None
25
+ self._args = None
26
+
27
+ def run_op(self, prim, prim_res, *args):
28
+ raise AttributeError("For 'JitContext', the method 'run_op' is not defined.")
29
+
30
+ @property
31
+ def compiled(self):
32
+ return self._compiled
33
+
34
+ @compiled.setter
35
+ def compiled(self, value):
36
+ if not isinstance(value, bool):
37
+ raise TypeError(f"For 'JitContext', the property 'compiled' must be bool type, but got type {type(value)}.")
38
+ self._compiled = value
39
+
40
+ @property
41
+ def result(self):
42
+ return self._result
43
+
44
+ @result.setter
45
+ def result(self, value):
46
+ self._result = value
47
+
48
+ @property
49
+ def phase(self):
50
+ return self._phase
51
+
52
+ @phase.setter
53
+ def phase(self, value):
54
+ if not isinstance(value, str):
55
+ raise TypeError(f"For 'JitContext', the property 'phase' must be str type, but got type {type(value)}.")
56
+ self._phase = value
57
+
58
+ @property
59
+ def args(self):
60
+ return self._args
61
+
62
+ @args.setter
63
+ def args(self, value):
64
+ self._args = value
65
+
66
+
67
+ _jit_context = None
68
+
69
+
70
+ def set_jit_context(new_jit_context):
71
+ global _jit_context
72
+ _jit_context = new_jit_context
73
+
74
+
75
+ def jit_context():
76
+ return _jit_context
@@ -0,0 +1,378 @@
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
+ """JIT Context for trace JIT."""
17
+
18
+ import inspect
19
+ import re
20
+ from functools import wraps
21
+ import mindspore as ms
22
+ from mindspore import log as logger
23
+ from mindspore import context
24
+ from mindspore.common.jit_context import JitContext, set_jit_context, jit_context
25
+ from mindspore.common.tensor import Tensor as PythonTensor
26
+ from mindspore._checkparam import is_stub_tensor
27
+ from mindspore._c_expression import TraceRecorder as tr
28
+ from mindspore._c_expression import JitExecutor_
29
+ from mindspore._c_expression import TensorNode
30
+ from mindspore._c_expression import TensorPy as Tensor, CSRTensor, COOTensor
31
+ from mindspore._c_expression import typing
32
+
33
+
34
+ class TraceJitContext(JitContext):
35
+ """JIT Context for trace JIT."""
36
+
37
+ def __init__(self):
38
+ JitContext.__init__(self)
39
+ self._is_nested = False
40
+
41
+ def set_is_nested(self, status):
42
+ self._is_nested = status
43
+
44
+ def is_nested(self):
45
+ return self._is_nested
46
+
47
+ def run_op(self, prim, prim_res, *args):
48
+ """Capture op"""
49
+ logger.debug(f'prim: {prim}, args: {args}, prim_res: {prim_res}')
50
+ if isinstance(prim_res, TensorNode):
51
+ prim_res = prim_res.get_value()
52
+ prim_res = _sync_stub_tensor(prim_res)
53
+ args = tuple(_sync_stub_tensor(arg) for arg in args)
54
+ args = tuple(_convert_arg_for_operators(arg, prim.name) for arg in args)
55
+ file_names, linenos = _get_caller_lines()
56
+ tr.get_instance().new_node(prim, prim_res, file_names, linenos, False, *args)
57
+ return prim_res
58
+
59
+ def run_graph(self, phase, prim_res, *args):
60
+ """Capture func_graph generated from ast"""
61
+ logger.debug(f'phase: {phase}, args: {args}, prim_res: {prim_res}')
62
+ if isinstance(prim_res, TensorNode):
63
+ prim_res = prim_res.get_value()
64
+ prim_res = _sync_stub_tensor(prim_res)
65
+ args = tuple(_sync_stub_tensor(arg) for arg in args)
66
+ file_names, linenos = _get_caller_lines()
67
+ tr.get_instance().new_fg_node((phase, prim_res, file_names, linenos, self._is_nested), *args)
68
+ return prim_res
69
+
70
+
71
+ _compile_only = False
72
+ _trace_jit_context = TraceJitContext()
73
+ _trace_compile_cache = set()
74
+ _jit_executor = JitExecutor_.get_instance()
75
+ _using_trace = False
76
+
77
+
78
+ def _set_compile_only(compile_only=True):
79
+ global _compile_only
80
+ _compile_only = compile_only
81
+
82
+
83
+ def _sync_stub_tensor(stub):
84
+ """Synchronize stub tensor"""
85
+ if is_stub_tensor(stub):
86
+ real_tensor = stub.stub_sync()
87
+ logger.debug(f'Convert stub tensor, stub: [{type(stub)}] {id(stub)}/{stub}, '
88
+ f'tensor: [{type(real_tensor)}] {id(real_tensor)}/{real_tensor}')
89
+ return real_tensor
90
+ if isinstance(stub, tuple):
91
+ return tuple(_sync_stub_tensor(item) for item in stub)
92
+ if isinstance(stub, list):
93
+ return list(_sync_stub_tensor(item) for item in stub)
94
+ return stub
95
+
96
+
97
+ def convert_tensorpy(args):
98
+ new_args = []
99
+ for arg in args:
100
+ if isinstance(arg, Tensor):
101
+ new_args.append(PythonTensor(arg))
102
+ else:
103
+ new_args.append(arg)
104
+ return tuple(new_args)
105
+
106
+
107
+ def _convert_arg_for_operators(arg, prim_name):
108
+ """Convert dtype to enum"""
109
+ from mindspore.ops._utils.arg_dtype_cast import DtypeToEnum
110
+ if isinstance(arg, typing.Type):
111
+ return DtypeToEnum()(prim_name, 'dtype', arg)
112
+ return arg
113
+
114
+
115
+
116
+ def nested_run(obj, cell, *args):
117
+ """Start a trace process nested in ast."""
118
+ set_jit_context(_trace_jit_context)
119
+ _trace_jit_context.set_is_nested(True)
120
+ args = args[0]
121
+ args = convert_tensorpy(args)
122
+ if isinstance(obj, ms.nn.Cell):
123
+ res = obj.construct.__wrapped__(obj, *args)
124
+ else:
125
+ if not cell:
126
+ res = obj.__wrapped__(*args)
127
+ else:
128
+ res = obj.__wrapped__(cell, *args)
129
+ if res is not tuple:
130
+ res = (res,)
131
+ file_names, linenos = _get_caller_lines()
132
+ res = _sync_stub_tensor(res)
133
+ set_jit_context(None)
134
+ return file_names, linenos, res
135
+
136
+
137
+ def _jit_trace(fn):
138
+ """
139
+ Create a callable MindSpore graph from a Python function by trace method.
140
+
141
+ This allows the MindSpore runtime to apply optimizations based on traced func graph.
142
+
143
+ Args:
144
+ fn (Function): The Python function that will be run as a graph. Default: ``None`` .
145
+
146
+ Returns:
147
+ Function, if `fn` is not None, returns a callable function that will execute the compiled function; If `fn` is
148
+ None, returns a decorator and when this decorator invokes with a single `fn` argument, the callable function is
149
+ equal to the case when `fn` is not None.
150
+
151
+ Supported Platforms:
152
+ ``Ascend`` ``GPU`` ``CPU``
153
+
154
+ Examples:
155
+ >>> import numpy as np
156
+ >>> from mindspore import Tensor
157
+ >>> from mindspore.common.jit_trace import _jit_trace as jit_trace
158
+ ...
159
+ >>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
160
+ >>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
161
+ ...
162
+ >>> # To create a callable MindSpore graph by calling decorator @jit_trace
163
+ >>> def tensor_add(x, y):
164
+ ... z = x + y
165
+ ... return z
166
+ ...
167
+ >>> tensor_add_graph = jit_trace(fn=tensor_add)
168
+ >>> out = tensor_add_graph(x, y)
169
+ """
170
+
171
+ @wraps(fn)
172
+ def jit_trace_wrap(*args, **kwargs):
173
+ # If a trace graph is already built, keep going without building a new trace graph.
174
+ if jit_context():
175
+ return fn(*args, **kwargs)
176
+ # Start trace process.
177
+ if kwargs:
178
+ bound_arguments = inspect.signature(fn).bind(*args, **kwargs)
179
+ bound_arguments.apply_defaults()
180
+ args = bound_arguments.args
181
+ kwargs = bound_arguments.kwargs
182
+ generate_name = fn.__module__
183
+ if args:
184
+ jit_args = args[1:] if hasattr(args[0], fn.__name__) else args
185
+ obj = args[0]
186
+ if hasattr(obj, fn.__name__): # Add class name for Cell.
187
+ generate_name = generate_name + "." + obj.__class__.__name__
188
+ else:
189
+ jit_args = args
190
+ generate_name = generate_name + "." + fn.__name__ + "#" + str(id(fn))
191
+ # Add create time for Cell.
192
+ if args and hasattr(obj, fn.__name__):
193
+ generate_name = generate_name + '#created_' + str(args[0].create_time)
194
+ line_str = fn.__code__.co_filename + ":" + str(fn.__code__.co_firstlineno)
195
+ generate_name = generate_name + '#[' + line_str + ']'
196
+
197
+ new_compile = _jit_trace_begin(generate_name, *jit_args)
198
+ if new_compile:
199
+ fn_res = fn(*args, **kwargs)
200
+ logger.debug(f'fn: {fn}, fn_res: {fn_res}, line: {line_str}')
201
+ # Use fn's output to build func graph's output.
202
+ output = _jit_trace_end(fn_res)
203
+ else:
204
+ output = _jit_trace_end(None) # Run with compilation.
205
+ logger.debug(f'output: {output}')
206
+ return output
207
+
208
+ jit_trace_wrap.__trace_func__ = True
209
+ return jit_trace_wrap
210
+
211
+
212
+ def _get_caller_lines():
213
+ """Get caller code line info."""
214
+ file_names = []
215
+ linenos = []
216
+ for frame_info in inspect.stack():
217
+ logger.debug(f'\t- frame: {frame_info[1]}:{frame_info[2]}/{frame_info[4][0]}')
218
+ file_name = frame_info[1]
219
+ if re.search(r'mindspore/common/.*\.py|mindspore/ops/.*\.py|mindspore/nn/.*\.py', file_name) is not None:
220
+ continue
221
+ lineno = frame_info[2]
222
+ logger.debug(f'Match caller frame: {frame_info[1]}:{frame_info[2]}/{frame_info[4][0]}')
223
+ file_names.append(file_name)
224
+ linenos.append(lineno)
225
+ return file_names, linenos
226
+
227
+
228
+ def _get_args_for_run(args):
229
+ """Get the actual input args and kwargs for runtime."""
230
+ new_args = []
231
+ for arg in args:
232
+ if isinstance(arg, PythonTensor):
233
+ if arg.has_init:
234
+ arg.init_data()
235
+ if not arg.const_arg:
236
+ new_args.append(arg)
237
+ elif isinstance(arg, (Tensor, CSRTensor, COOTensor)):
238
+ new_args.append(arg)
239
+ elif context.get_context("grad_for_scalar") and isinstance(arg, (int, float)):
240
+ new_args.append(arg)
241
+ elif isinstance(arg, dict) and hasattr(arg, "__ms_mutable__"):
242
+ new_args.append(tuple(arg.values()))
243
+ return tuple(new_args)
244
+
245
+
246
+ def _jit_trace_begin(fn_name, *args):
247
+ """
248
+ Start to build a MindIR func graph for a code snippet by trace method.
249
+
250
+ This allows the MindSpore runtime to apply optimizations based on traced func graph.
251
+
252
+ Note:
253
+ Use it with `_jit_trace_end` cooperatively.
254
+
255
+ Also see: :func:`_jit_trace_end`.
256
+
257
+ Args:
258
+ fn_name (str): The name of func graph to be built.
259
+ args (tuple): The arguments of func graph.
260
+
261
+ Supported Platforms:
262
+ ``Ascend`` ``GPU`` ``CPU``
263
+
264
+ Examples:
265
+ >>> import numpy as np
266
+ >>> from mindspore import Tensor
267
+ >>> from mindspore.common.jit_trace import _jit_trace_begin, _jit_trace_end
268
+ ...
269
+ >>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
270
+ >>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
271
+ >>> def tensor_add(x, y):
272
+ ... _jit_trace_begin(x, y)
273
+ ... z = x + y
274
+ ... z = _jit_trace_end(z)
275
+ ... return z
276
+ ...
277
+ >>> out = tensor_add(x, y)
278
+ """
279
+ global _using_trace
280
+ if _using_trace:
281
+ raise RuntimeError(
282
+ "Should not use jit_block and jit_trace at the same time.")
283
+ _using_trace = True
284
+ logger.debug(f'_jit_trace_begin, args: {args}')
285
+ _trace_jit_context.set_is_nested(False)
286
+ set_jit_context(_trace_jit_context)
287
+ args = tuple(_sync_stub_tensor(arg) for arg in args)
288
+ for arg in args:
289
+ logger.debug(f'_jit_trace_begin, arg: {arg}, {type(arg)}')
290
+
291
+ # Generate phase for compile pipeline.
292
+ key = _jit_executor.generate_arguments_key(None, args, dict(), False)
293
+ from mindspore.common.api import _PyNativeExecutor
294
+ phase = fn_name + '.' + str(key)
295
+ if _PyNativeExecutor().requires_grad():
296
+ phase = phase + ".grad"
297
+ logger.debug(f'phase: {phase}')
298
+ # Compiled before, just run.
299
+ if not _compile_only and phase in _trace_compile_cache:
300
+ logger.debug('Had compiled, just run.')
301
+ _trace_jit_context.compiled = True
302
+ output = tr.get_instance().run_graph(phase, args)
303
+ from mindspore.common.api import _convert_python_data
304
+ _trace_jit_context.result = _convert_python_data(output)
305
+ logger.debug(f'jit trace result: {_trace_jit_context.result}')
306
+ return False
307
+ logger.debug('Start compiling...')
308
+ file_names, linenos = _get_caller_lines()
309
+ fn_short_name = fn_name.split('#')[0]
310
+ tr.get_instance().begin_graph(fn_short_name, phase, file_names, linenos, *args)
311
+ _trace_compile_cache.add(phase)
312
+ # Save for first call, used in end().
313
+ _trace_jit_context.phase = phase
314
+ _trace_jit_context.args = args
315
+ return True
316
+
317
+
318
+ def _jit_trace_end(*output_args):
319
+ """
320
+ Finish building a MindIR func graph for a code snippet by trace method.
321
+
322
+ This allows the MindSpore runtime to apply optimizations based on traced func graph.
323
+
324
+ Note:
325
+ Use it with `_jit_trace_begin` cooperatively.
326
+
327
+ Also see: :func:`_jit_trace_begin`.
328
+
329
+ Args:
330
+ output_args (tuple): The output of func graph.
331
+
332
+ Returns:
333
+ The same as args `output_args`.
334
+
335
+ Supported Platforms:
336
+ ``Ascend`` ``GPU`` ``CPU``
337
+
338
+ Examples:
339
+ >>> import numpy as np
340
+ >>> from mindspore import Tensor
341
+ >>> from mindspore.common.jit_trace import _jit_trace_begin, _jit_trace_end
342
+ ...
343
+ >>> x = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
344
+ >>> y = Tensor(np.ones([1, 1, 3, 3]).astype(np.float32))
345
+ >>> def tensor_add(x, y):
346
+ ... _jit_trace_begin(x, y)
347
+ ... z = x + y
348
+ ... z = _jit_trace_end(z)
349
+ ... return z
350
+ ...
351
+ >>> out = tensor_add(x, y)
352
+ """
353
+ if _trace_jit_context.compiled:
354
+ output = _trace_jit_context.result
355
+ logger.debug(f'jit trace result: {output}')
356
+ else:
357
+ logger.debug(f'output_args: {output_args}')
358
+ output_args = tuple(_sync_stub_tensor(arg) for arg in output_args)
359
+ file_names, linenos = _get_caller_lines()
360
+ tr.get_instance().end_graph(file_names, linenos, *output_args)
361
+ if _compile_only:
362
+ output = output_args[0] if len(output_args) == 1 else output_args
363
+ else:
364
+ args = _get_args_for_run(_trace_jit_context.args)
365
+ output = tr.get_instance().run_graph(
366
+ _trace_jit_context.phase, args)
367
+ from mindspore.common.api import _convert_python_data
368
+ output = _convert_python_data(output)
369
+ logger.debug(f'jit trace result: {output}')
370
+ logger.debug(
371
+ f'python result: {output_args[0] if len(output_args) == 1 else output_args}')
372
+ _trace_jit_context.phase = ''
373
+ _trace_jit_context.args = None
374
+ set_jit_context(None)
375
+ _trace_jit_context.compiled = False
376
+ global _using_trace
377
+ _using_trace = False
378
+ return output
@@ -27,6 +27,10 @@ def lazy_inline(fn=None, attrs=None, policy=None):
27
27
  Registering the decorator of the built-in function `__init__` of a cell, the decorator
28
28
  will add the parameters of `__init__` according to the `attrs` as the attributes of this cell.
29
29
 
30
+ For a detailed description of the function, see `Using the lazy_inline decorator
31
+ <https://www.mindspore.cn/tutorials/en/master/compile/
32
+ static_graph_expert_programming.html#using-lazy-inline-decorator>`_ .
33
+
30
34
  .. warning::
31
35
  This feature is only supported on Ascend and is not supported on other hardwares.
32
36
  The construct parameters must be positional or key word arguments and have not default values.
@@ -35,7 +39,7 @@ def lazy_inline(fn=None, attrs=None, policy=None):
35
39
  Args:
36
40
  fn (function): `__init__` function of a cell.
37
41
  attrs (Union[list[string], string]): The attributes list to add for the cell.
38
- policy (Union[None, "front"]): The policy of inline. Default is None.
42
+ policy (Union[None, "front"], optional): The policy of inline. Default is ``None``.
39
43
 
40
44
  - ``None``: The cell will be compiled to sub graph and will not be inline.
41
45
  - ``"front"``: The cell will be compiled to sub graph first and will be inline at front end.
@@ -47,6 +51,7 @@ def lazy_inline(fn=None, attrs=None, policy=None):
47
51
  ``Ascend``
48
52
 
49
53
  Examples:
54
+ >>> import os
50
55
  >>> import numpy as np
51
56
  >>> from mindspore import Tensor
52
57
  >>> import mindspore.nn as nn
@@ -154,8 +159,9 @@ def lazy_inline(fn=None, attrs=None, policy=None):
154
159
  ... inp = Tensor(np.ones([1, 3, 224, 224]).astype(np.float32))
155
160
  ... net(inp)
156
161
  ...
157
- >>> context.set_context(mode=context.GRAPH_MODE,
158
- ... save_graphs=True, save_graphs_path="./lazy")
162
+ >>> context.set_context(mode=context.GRAPH_MODE)
163
+ >>> os.environ["MS_DEV_SAVE_GRAPHS"] = "2"
164
+ >>> os.environ["MS_DEV_SAVE_GRAPHS_PATH"] = os.path.realpath("./lazy")
159
165
  ...
160
166
  >>> test_compile()
161
167
  """
@@ -26,6 +26,9 @@ def load_mindir(file_name):
26
26
  """
27
27
  load protobuf file.
28
28
 
29
+ Note:
30
+ The interface is deprecated from version 2.5 and will be removed in a future version.
31
+
29
32
  Args:
30
33
  file_name (str): File name.
31
34
 
@@ -42,7 +45,8 @@ def load_mindir(file_name):
42
45
  >>> import mindspore as ms
43
46
  >>> md = ms.load_mindir("test.mindir")
44
47
  """
45
-
48
+ logger.warning("The interface 'mindspore.load_mindir' is deprecated from version 2.5 "
49
+ "and will be removed in a future version.")
46
50
  Validator.check_file_name_by_regular(file_name)
47
51
  file_name = os.path.realpath(file_name)
48
52
  model = mindir_model()
@@ -65,6 +69,9 @@ def save_mindir(model, file_name):
65
69
  """
66
70
  save protobuf file.
67
71
 
72
+ Note:
73
+ The interface is deprecated from version 2.5 and will be removed in a future version.
74
+
68
75
  Args:
69
76
  model (ModelProto): mindir model
70
77
  file_name (str): File name.
@@ -84,7 +91,8 @@ def save_mindir(model, file_name):
84
91
  >>> md_new = ms.load_mindir("test_new.mindir")
85
92
  >>> md_new.user_info
86
93
  """
87
-
94
+ logger.warning("The interface 'mindspore.save_mindir' is deprecated from version 2.5 "
95
+ "and will be removed in a future version.")
88
96
  Validator.check_file_name_by_regular(file_name)
89
97
  file_name = os.path.realpath(file_name)
90
98
  if not file_name.endswith('.mindir'):
@@ -16,7 +16,7 @@
16
16
  from __future__ import absolute_import
17
17
 
18
18
  from mindspore.common.tensor import Tensor
19
- from mindspore._c_expression import Tensor as Tensor_
19
+ from mindspore._c_expression import TensorPy as Tensor_
20
20
  from mindspore import log as logger
21
21
 
22
22
  _check_elements_set = set()
@@ -126,13 +126,14 @@ def mutable(input_data, dynamic_len=False):
126
126
  When the `input_data` is tuple or list and `dynamic_len` is False, `mutable` will return a constant length tuple
127
127
  or list with all mutable elements. If `dynamic_len` is True, the length of the return tuple or list will be dynamic.
128
128
 
129
- If a dynamic length tuple or list is used as the input of the network and the network is repeatedly called, and
129
+ When a dynamic-length tuple or list returned by `mutable` is used as input to a network
130
+ and the network is called repeatedly, and
130
131
  the length of the tuple or list is different for each run, it does not need to be re-compiled.
131
132
 
132
133
  Args:
133
134
  input_data (Union[Tensor, scalar, tuple, list, dict]): The input data to be made mutable. If
134
135
  'input_data' is list/tuple/dict, the type of each element should also in the valid types.
135
- dynamic_len (bool): Whether to set the whole sequence to be dynamic length. In graph compilation, if
136
+ dynamic_len (bool, optional): Whether to set the whole sequence to be dynamic length. In graph compilation, if
136
137
  `dynamic_len` is ``True`` , the `input_data` must be list or tuple and the elements of `input_data` must
137
138
  have the same type and shape. Default: ``False`` .
138
139
 
@@ -222,7 +223,7 @@ def mutable(input_data, dynamic_len=False):
222
223
  We will add set_const_arg=False statement automatically.")
223
224
  ret.set_const_arg(False)
224
225
  elif isinstance(input_data, Tensor_):
225
- ret = Tensor(input_data, internal=True)
226
+ ret = Tensor(input_data)
226
227
  logger.info("For 'mutable', the Tensor_ in 'input_data' must not be constant. \
227
228
  We will add set_const_arg=False statement automatically.")
228
229
  ret.set_const_arg(False)