mindspore 2.6.0__cp311-cp311-win_amd64.whl → 2.7.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 (455) 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 +2 -2
  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/_checkparam.py +42 -11
  9. mindspore/_extends/builtin_operations.py +3 -3
  10. mindspore/{_deprecated → _extends/optimize}/__init__.py +9 -3
  11. mindspore/_extends/optimize/cell_utils.py +96 -0
  12. mindspore/_extends/parallel_compile/akg_compiler/custom.py +1109 -0
  13. mindspore/_extends/parallel_compile/akg_compiler/gen_custom_op_files.py +1 -1
  14. mindspore/_extends/parse/__init__.py +3 -3
  15. mindspore/_extends/parse/compile_config.py +44 -22
  16. mindspore/_extends/parse/deprecated/deprecated_tensor_method.py +1 -2
  17. mindspore/_extends/parse/parser.py +64 -83
  18. mindspore/_extends/parse/resources.py +39 -0
  19. mindspore/_extends/parse/standard_method.py +47 -14
  20. mindspore/_extends/parse/trope.py +8 -1
  21. mindspore/_extends/pijit/__init__.py +1 -2
  22. mindspore/_extends/pijit/pijit_func_white_list.py +2 -5
  23. mindspore/amp.py +4 -22
  24. mindspore/atlprov.dll +0 -0
  25. mindspore/avcodec-59.dll +0 -0
  26. mindspore/avdevice-59.dll +0 -0
  27. mindspore/avfilter-8.dll +0 -0
  28. mindspore/avformat-59.dll +0 -0
  29. mindspore/avutil-57.dll +0 -0
  30. mindspore/boost/adasum.py +1 -1
  31. mindspore/boost/boost_cell_wrapper.py +4 -4
  32. mindspore/c1.dll +0 -0
  33. mindspore/c1xx.dll +0 -0
  34. mindspore/c2.dll +0 -0
  35. mindspore/common/__init__.py +43 -12
  36. mindspore/common/_grad_function.py +2 -1
  37. mindspore/common/_pijit_context.py +28 -7
  38. mindspore/common/_stub_tensor.py +1 -209
  39. mindspore/common/_tensor_cpp_method.py +1 -1
  40. mindspore/common/_tensor_docs.py +177 -52
  41. mindspore/common/_utils.py +9 -1
  42. mindspore/common/api.py +338 -208
  43. mindspore/common/dtype.py +108 -57
  44. mindspore/common/dump.py +11 -16
  45. mindspore/common/dynamic_shape/__init__.py +0 -0
  46. mindspore/common/{auto_dynamic_shape.py → dynamic_shape/auto_dynamic_shape.py} +17 -23
  47. mindspore/common/dynamic_shape/enable_dynamic.py +197 -0
  48. mindspore/common/file_system.py +59 -9
  49. mindspore/common/generator.py +2 -3
  50. mindspore/common/hook_handle.py +33 -5
  51. mindspore/common/jit_config.py +1 -1
  52. mindspore/common/jit_trace.py +84 -105
  53. mindspore/common/np_dtype.py +3 -3
  54. mindspore/common/parameter.py +27 -29
  55. mindspore/common/recompute.py +5 -7
  56. mindspore/common/sparse_tensor.py +0 -3
  57. mindspore/common/symbol.py +0 -1
  58. mindspore/common/tensor.py +84 -133
  59. mindspore/communication/_comm_helper.py +46 -4
  60. mindspore/communication/management.py +79 -7
  61. mindspore/context.py +47 -38
  62. mindspore/dataset/__init__.py +1 -1
  63. mindspore/dataset/audio/transforms.py +1 -1
  64. mindspore/dataset/core/config.py +38 -4
  65. mindspore/dataset/engine/datasets.py +350 -322
  66. mindspore/dataset/engine/datasets_user_defined.py +69 -23
  67. mindspore/dataset/engine/iterators.py +2 -2
  68. mindspore/dataset/engine/obs/config_loader.py +2 -2
  69. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +8 -0
  70. mindspore/dataset/transforms/c_transforms.py +2 -2
  71. mindspore/dataset/transforms/py_transforms.py +7 -3
  72. mindspore/dataset/transforms/transforms.py +10 -6
  73. mindspore/dataset/vision/__init__.py +1 -1
  74. mindspore/dataset/vision/py_transforms.py +8 -8
  75. mindspore/dataset/vision/transforms.py +17 -5
  76. mindspore/dataset/vision/utils.py +632 -21
  77. mindspore/dataset/vision/validators.py +1 -0
  78. mindspore/device_context/ascend/device.py +1 -1
  79. mindspore/device_context/ascend/op_tuning.py +35 -1
  80. mindspore/device_context/gpu/__init__.py +2 -2
  81. mindspore/device_context/gpu/device.py +1 -1
  82. mindspore/device_context/gpu/op_precision.py +4 -2
  83. mindspore/device_context/gpu/op_tuning.py +6 -3
  84. mindspore/device_manager.py +16 -9
  85. mindspore/dnnl.dll +0 -0
  86. mindspore/dpcmi.dll +0 -0
  87. mindspore/experimental/llm_boost/ascend_native/llama_boost_ascend_native.py +5 -4
  88. mindspore/experimental/llm_boost/atb/boost_base.py +2 -3
  89. mindspore/experimental/optim/adadelta.py +13 -20
  90. mindspore/experimental/optim/adagrad.py +15 -22
  91. mindspore/experimental/optim/adam.py +17 -24
  92. mindspore/experimental/optim/adamax.py +14 -22
  93. mindspore/experimental/optim/adamw.py +28 -34
  94. mindspore/experimental/optim/asgd.py +15 -25
  95. mindspore/experimental/optim/lr_scheduler.py +27 -45
  96. mindspore/experimental/optim/nadam.py +14 -24
  97. mindspore/experimental/optim/optimizer.py +13 -23
  98. mindspore/experimental/optim/radam.py +18 -24
  99. mindspore/experimental/optim/rmsprop.py +14 -25
  100. mindspore/experimental/optim/rprop.py +15 -26
  101. mindspore/experimental/optim/sgd.py +9 -19
  102. mindspore/hal/__init__.py +4 -4
  103. mindspore/hal/contiguous_tensors_handle.py +2 -2
  104. mindspore/hal/memory.py +1 -0
  105. mindspore/include/api/cell.h +65 -5
  106. mindspore/include/api/cfg.h +24 -7
  107. mindspore/include/api/context.h +1 -0
  108. mindspore/include/api/delegate.h +10 -2
  109. mindspore/include/api/dual_abi_helper.h +100 -19
  110. mindspore/include/api/graph.h +14 -1
  111. mindspore/include/api/kernel.h +16 -3
  112. mindspore/include/api/kernel_api.h +9 -1
  113. mindspore/include/api/metrics/accuracy.h +9 -0
  114. mindspore/include/api/model.h +8 -1
  115. mindspore/include/api/model_group.h +4 -0
  116. mindspore/include/api/model_parallel_runner.h +2 -0
  117. mindspore/include/api/status.h +48 -10
  118. mindspore/include/api/types.h +8 -3
  119. mindspore/include/c_api/model_c.h +0 -58
  120. mindspore/include/c_api/tensor_c.h +0 -26
  121. mindspore/include/dataset/constants.h +9 -0
  122. mindspore/include/dataset/vision_ascend.h +1 -1
  123. mindspore/jpeg62.dll +0 -0
  124. mindspore/mindrecord/tools/cifar10.py +61 -11
  125. mindspore/mindrecord/tools/cifar10_to_mr.py +5 -0
  126. mindspore/mindspore_backend_common.dll +0 -0
  127. mindspore/mindspore_backend_manager.dll +0 -0
  128. mindspore/mindspore_common.dll +0 -0
  129. mindspore/mindspore_core.dll +0 -0
  130. mindspore/mindspore_cpu_res_manager.dll +0 -0
  131. mindspore/mindspore_dump.dll +0 -0
  132. mindspore/mindspore_frontend.dll +0 -0
  133. mindspore/mindspore_glog.dll +0 -0
  134. mindspore/mindspore_memory_pool.dll +0 -0
  135. mindspore/mindspore_ms_backend.dll +0 -0
  136. mindspore/mindspore_ops.dll +0 -0
  137. mindspore/mindspore_ops_host.dll +0 -0
  138. mindspore/mindspore_ops_kernel_common.dll +0 -0
  139. mindspore/mindspore_profiler.dll +0 -0
  140. mindspore/mindspore_pyboost.dll +0 -0
  141. mindspore/mindspore_pynative.dll +0 -0
  142. mindspore/mindspore_res_manager.dll +0 -0
  143. mindspore/mindspore_runtime_pipeline.dll +0 -0
  144. mindspore/mint/__init__.py +4 -44
  145. mindspore/mint/distributed/__init__.py +5 -0
  146. mindspore/mint/distributed/distributed.py +425 -19
  147. mindspore/mint/nn/__init__.py +1 -1
  148. mindspore/mint/nn/functional.py +53 -6
  149. mindspore/mint/nn/layer/_functions.py +163 -294
  150. mindspore/mint/nn/layer/activation.py +8 -6
  151. mindspore/mint/nn/layer/conv.py +125 -101
  152. mindspore/mint/nn/layer/normalization.py +11 -25
  153. mindspore/mint/optim/adam.py +19 -18
  154. mindspore/mint/optim/adamw.py +14 -8
  155. mindspore/mint/optim/sgd.py +5 -5
  156. mindspore/msobj140.dll +0 -0
  157. mindspore/mspdb140.dll +0 -0
  158. mindspore/mspdbcore.dll +0 -0
  159. mindspore/mspdbst.dll +0 -0
  160. mindspore/mspft140.dll +0 -0
  161. mindspore/msvcdis140.dll +0 -0
  162. mindspore/msvcp140_1.dll +0 -0
  163. mindspore/msvcp140_2.dll +0 -0
  164. mindspore/msvcp140_atomic_wait.dll +0 -0
  165. mindspore/msvcp140_codecvt_ids.dll +0 -0
  166. mindspore/nn/cell.py +488 -620
  167. mindspore/nn/grad/cell_grad.py +11 -12
  168. mindspore/nn/layer/activation.py +36 -36
  169. mindspore/nn/layer/basic.py +74 -77
  170. mindspore/nn/layer/channel_shuffle.py +4 -4
  171. mindspore/nn/layer/combined.py +4 -2
  172. mindspore/nn/layer/conv.py +86 -85
  173. mindspore/nn/layer/dense.py +9 -7
  174. mindspore/nn/layer/embedding.py +50 -52
  175. mindspore/nn/layer/image.py +38 -40
  176. mindspore/nn/layer/math.py +111 -112
  177. mindspore/nn/layer/normalization.py +56 -44
  178. mindspore/nn/layer/pooling.py +58 -63
  179. mindspore/nn/layer/rnn_cells.py +33 -33
  180. mindspore/nn/layer/rnns.py +56 -56
  181. mindspore/nn/layer/thor_layer.py +74 -73
  182. mindspore/nn/layer/transformer.py +11 -1
  183. mindspore/nn/learning_rate_schedule.py +20 -20
  184. mindspore/nn/loss/loss.py +79 -81
  185. mindspore/nn/optim/adam.py +2 -4
  186. mindspore/nn/optim/adasum.py +2 -2
  187. mindspore/nn/optim/lamb.py +1 -3
  188. mindspore/nn/optim/optimizer.py +1 -1
  189. mindspore/nn/optim/tft_wrapper.py +2 -3
  190. mindspore/nn/optim/thor.py +2 -2
  191. mindspore/nn/probability/distribution/_utils/utils.py +2 -2
  192. mindspore/nn/probability/distribution/exponential.py +2 -1
  193. mindspore/nn/probability/distribution/poisson.py +2 -1
  194. mindspore/nn/sparse/sparse.py +3 -3
  195. mindspore/nn/wrap/cell_wrapper.py +73 -42
  196. mindspore/nn/wrap/grad_reducer.py +37 -52
  197. mindspore/nn/wrap/loss_scale.py +72 -74
  198. mindspore/numpy/array_creations.py +7 -7
  199. mindspore/numpy/fft.py +1 -1
  200. mindspore/numpy/math_ops.py +1 -1
  201. mindspore/numpy/utils_const.py +1 -1
  202. mindspore/opencv_core452.dll +0 -0
  203. mindspore/opencv_imgcodecs452.dll +0 -0
  204. mindspore/opencv_imgproc452.dll +0 -0
  205. mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
  206. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
  207. mindspore/ops/_grad_experimental/grad_inner_ops.py +0 -9
  208. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  209. mindspore/{experimental/es/__init__.py → ops/_op_impl/cpu/joinedstr_op.py} +12 -6
  210. mindspore/ops/_vmap/vmap_array_ops.py +6 -13
  211. mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
  212. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +29 -10
  213. mindspore/ops/auto_generate/gen_extend_func.py +5 -55
  214. mindspore/ops/auto_generate/gen_ops_def.py +753 -273
  215. mindspore/ops/auto_generate/gen_ops_prim.py +1687 -958
  216. mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
  217. mindspore/ops/composite/__init__.py +10 -0
  218. mindspore/ops/composite/base.py +9 -5
  219. mindspore/ops/composite/multitype_ops/__init__.py +12 -1
  220. mindspore/ops/composite/multitype_ops/_compile_utils.py +132 -108
  221. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -1
  222. mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
  223. mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
  224. mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
  225. mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
  226. mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
  227. mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
  228. mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
  229. mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
  230. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
  231. mindspore/ops/function/__init__.py +4 -1
  232. mindspore/ops/function/_add_attr_func.py +11 -6
  233. mindspore/ops/function/array_func.py +17 -100
  234. mindspore/ops/function/debug_func.py +8 -5
  235. mindspore/ops/function/grad/grad_func.py +5 -13
  236. mindspore/ops/function/math_func.py +65 -399
  237. mindspore/ops/function/nn_func.py +44 -61
  238. mindspore/ops/function/other_func.py +4 -1
  239. mindspore/ops/function/random_func.py +31 -4
  240. mindspore/ops/functional.py +2 -3
  241. mindspore/ops/functional_overload.py +486 -18
  242. mindspore/ops/op_info_register.py +21 -0
  243. mindspore/ops/operations/__init__.py +5 -2
  244. mindspore/ops/operations/_custom_ops_utils.py +675 -8
  245. mindspore/ops/operations/_inner_ops.py +14 -18
  246. mindspore/ops/operations/_sequence_ops.py +1 -1
  247. mindspore/ops/operations/array_ops.py +4 -50
  248. mindspore/ops/operations/comm_ops.py +186 -41
  249. mindspore/ops/operations/custom_ops.py +244 -175
  250. mindspore/ops/operations/debug_ops.py +55 -4
  251. mindspore/ops/operations/image_ops.py +13 -13
  252. mindspore/ops/operations/manually_defined/ops_def.py +27 -28
  253. mindspore/ops/operations/math_ops.py +8 -9
  254. mindspore/ops/operations/nn_ops.py +6 -7
  255. mindspore/ops/primitive.py +9 -20
  256. mindspore/ops/tensor_method.py +52 -11
  257. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
  258. mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
  259. mindspore/ops_generate/api/functions_cc_generator.py +58 -10
  260. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
  261. mindspore/ops_generate/common/base_generator.py +14 -0
  262. mindspore/ops_generate/common/gen_constants.py +7 -2
  263. mindspore/ops_generate/common/gen_utils.py +0 -19
  264. mindspore/ops_generate/common/op_proto.py +11 -4
  265. mindspore/ops_generate/common/template.py +88 -11
  266. mindspore/ops_generate/gen_ops.py +1 -1
  267. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
  268. mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
  269. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
  270. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
  271. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
  272. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
  273. mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -16
  274. mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
  275. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
  276. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
  277. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
  278. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
  279. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
  280. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
  281. mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
  282. mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
  283. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
  284. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
  285. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
  286. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
  287. mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
  288. mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
  289. mindspore/parallel/_auto_parallel_context.py +9 -17
  290. mindspore/parallel/_cell_wrapper.py +106 -40
  291. mindspore/parallel/_parallel_serialization.py +4 -3
  292. mindspore/parallel/_ps_context.py +4 -6
  293. mindspore/parallel/_tensor.py +167 -12
  294. mindspore/parallel/_transformer/moe.py +1 -1
  295. mindspore/parallel/_transformer/transformer.py +17 -12
  296. mindspore/parallel/_utils.py +5 -11
  297. mindspore/parallel/auto_parallel.py +33 -12
  298. mindspore/parallel/checkpoint_convert.py +3 -3
  299. mindspore/parallel/checkpoint_transform.py +5 -1
  300. mindspore/parallel/cluster/process_entity/_api.py +88 -49
  301. mindspore/parallel/cluster/process_entity/_utils.py +95 -7
  302. mindspore/parallel/cluster/run.py +48 -7
  303. mindspore/parallel/function/__init__.py +8 -1
  304. mindspore/parallel/function/reshard_func.py +7 -6
  305. mindspore/parallel/nn/__init__.py +15 -2
  306. mindspore/parallel/nn/parallel_cell_wrapper.py +50 -14
  307. mindspore/parallel/nn/parallel_grad_reducer.py +7 -14
  308. mindspore/parallel/shard.py +9 -23
  309. mindspore/parallel/transform_safetensors.py +468 -174
  310. mindspore/pgodb140.dll +0 -0
  311. mindspore/pgort140.dll +0 -0
  312. mindspore/profiler/__init__.py +2 -1
  313. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
  314. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
  315. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +3 -0
  316. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
  317. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  318. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
  319. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
  320. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
  321. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
  322. mindspore/profiler/analysis/task_manager.py +1 -1
  323. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
  324. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
  325. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +10 -9
  326. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +43 -23
  327. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
  328. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
  329. mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
  330. mindspore/profiler/common/constant.py +16 -0
  331. mindspore/profiler/common/msprof_cmd_tool.py +2 -2
  332. mindspore/profiler/common/path_manager.py +9 -0
  333. mindspore/profiler/common/profiler_context.py +50 -29
  334. mindspore/profiler/common/profiler_info.py +0 -16
  335. mindspore/profiler/common/profiler_meta_data.py +1 -0
  336. mindspore/profiler/common/profiler_op_analyse.py +239 -0
  337. mindspore/profiler/common/profiler_output_path.py +23 -8
  338. mindspore/profiler/common/profiler_parameters.py +128 -35
  339. mindspore/profiler/dynamic_profile/__init__.py +0 -0
  340. mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
  341. mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
  342. mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
  343. mindspore/profiler/dynamic_profiler.py +374 -338
  344. mindspore/profiler/envprofiler.py +42 -12
  345. mindspore/profiler/experimental_config.py +112 -7
  346. mindspore/profiler/mstx.py +33 -12
  347. mindspore/profiler/platform/__init__.py +2 -3
  348. mindspore/profiler/platform/cpu_profiler.py +10 -4
  349. mindspore/profiler/platform/npu_profiler.py +30 -20
  350. mindspore/profiler/profiler.py +218 -154
  351. mindspore/profiler/profiler_action_controller.py +65 -77
  352. mindspore/profiler/profiler_interface.py +2 -2
  353. mindspore/profiler/schedule.py +10 -4
  354. mindspore/rewrite/common/config.py +1 -0
  355. mindspore/rewrite/common/namer.py +1 -0
  356. mindspore/rewrite/common/namespace.py +1 -0
  357. mindspore/rewrite/node/node.py +31 -11
  358. mindspore/rewrite/parsers/assign_parser.py +1 -1
  359. mindspore/rewrite/symbol_tree/symbol_tree.py +2 -2
  360. mindspore/run_check/_check_version.py +7 -10
  361. mindspore/runtime/__init__.py +8 -6
  362. mindspore/runtime/event.py +10 -4
  363. mindspore/runtime/executor.py +87 -45
  364. mindspore/runtime/memory.py +22 -30
  365. mindspore/runtime/thread_bind_core.py +299 -165
  366. mindspore/safeguard/rewrite_obfuscation.py +12 -13
  367. mindspore/swresample-4.dll +0 -0
  368. mindspore/swscale-6.dll +0 -0
  369. mindspore/tbbmalloc.dll +0 -0
  370. mindspore/tinyxml2.dll +0 -0
  371. mindspore/train/_utils.py +9 -5
  372. mindspore/train/amp.py +43 -23
  373. mindspore/train/callback/__init__.py +5 -5
  374. mindspore/train/callback/_callback.py +2 -1
  375. mindspore/train/callback/_checkpoint.py +4 -14
  376. mindspore/train/callback/_flops_collector.py +11 -7
  377. mindspore/train/callback/_landscape.py +0 -1
  378. mindspore/train/callback/_train_fault_tolerance.py +72 -18
  379. mindspore/train/data_sink.py +15 -6
  380. mindspore/train/dataset_helper.py +14 -5
  381. mindspore/train/model.py +49 -47
  382. mindspore/train/serialization.py +168 -126
  383. mindspore/train/summary/summary_record.py +13 -2
  384. mindspore/train/train_thor/model_thor.py +2 -2
  385. mindspore/turbojpeg.dll +0 -0
  386. mindspore/utils/__init__.py +3 -2
  387. mindspore/utils/dryrun.py +0 -6
  388. mindspore/utils/runtime_execution_order_check.py +162 -78
  389. mindspore/utils/sdc_detect.py +68 -0
  390. mindspore/utils/utils.py +14 -17
  391. mindspore/vcmeta.dll +0 -0
  392. mindspore/vcruntime140.dll +0 -0
  393. mindspore/vcruntime140_1.dll +0 -0
  394. mindspore/version.py +1 -1
  395. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
  396. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/RECORD +400 -439
  397. mindspore/_deprecated/jit.py +0 -198
  398. mindspore/_extends/remote/kernel_build_server_ascend.py +0 -75
  399. mindspore/communication/_hccl_management.py +0 -297
  400. mindspore/experimental/es/embedding_service.py +0 -891
  401. mindspore/experimental/es/embedding_service_layer.py +0 -581
  402. mindspore/profiler/common/validator/__init__.py +0 -14
  403. mindspore/profiler/common/validator/validate_path.py +0 -84
  404. mindspore/profiler/parser/__init__.py +0 -14
  405. mindspore/profiler/parser/aicpu_data_parser.py +0 -272
  406. mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
  407. mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
  408. mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
  409. mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
  410. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
  411. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
  412. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
  413. mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
  414. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
  415. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
  416. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
  417. mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
  418. mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
  419. mindspore/profiler/parser/ascend_flops_generator.py +0 -116
  420. mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
  421. mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
  422. mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
  423. mindspore/profiler/parser/ascend_memory_generator.py +0 -185
  424. mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
  425. mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
  426. mindspore/profiler/parser/ascend_op_generator.py +0 -334
  427. mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
  428. mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
  429. mindspore/profiler/parser/base_timeline_generator.py +0 -483
  430. mindspore/profiler/parser/container.py +0 -229
  431. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
  432. mindspore/profiler/parser/flops_parser.py +0 -531
  433. mindspore/profiler/parser/framework_enum.py +0 -111
  434. mindspore/profiler/parser/framework_parser.py +0 -464
  435. mindspore/profiler/parser/framework_struct.py +0 -61
  436. mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
  437. mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
  438. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
  439. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
  440. mindspore/profiler/parser/hccl_parser.py +0 -573
  441. mindspore/profiler/parser/hwts_log_parser.py +0 -122
  442. mindspore/profiler/parser/integrator.py +0 -526
  443. mindspore/profiler/parser/memory_usage_parser.py +0 -277
  444. mindspore/profiler/parser/minddata_analyzer.py +0 -800
  445. mindspore/profiler/parser/minddata_parser.py +0 -186
  446. mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
  447. mindspore/profiler/parser/op_intermediate_parser.py +0 -149
  448. mindspore/profiler/parser/optime_parser.py +0 -250
  449. mindspore/profiler/parser/profiler_info.py +0 -213
  450. mindspore/profiler/parser/step_trace_parser.py +0 -666
  451. mindspore/utils/hooks.py +0 -81
  452. /mindspore/common/{_auto_dynamic.py → dynamic_shape/_auto_dynamic.py} +0 -0
  453. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
  454. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
  455. {mindspore-2.6.0.dist-info → mindspore-2.7.0.dist-info}/top_level.txt +0 -0
@@ -14,10 +14,14 @@
14
14
  # ============================================================================
15
15
  """File system registration management"""
16
16
  from mindspore import log as logger
17
+ from mindspore import _checkparam as Validator
18
+
19
+ mindio_server_info = {"memfs.data_block_pool_capacity_in_gb": "100"}
17
20
 
18
21
 
19
22
  class FileSystem:
20
23
  """File operation interface manager"""
24
+
21
25
  def __init__(self):
22
26
  self.create = open
23
27
  self.create_args = ("ab",)
@@ -35,20 +39,33 @@ def _register_basic_file_system(fs: FileSystem):
35
39
  return True
36
40
 
37
41
 
38
- def _register_mindio_file_system(fs: FileSystem):
39
- """register mindio file system"""
42
+ def _init_mindio():
43
+ """Initialize MindIO and return the module if successful"""
40
44
  try:
41
- import mindio
45
+ import mindio_acp as mindio
46
+ ret = mindio.initialize(server_info=mindio_server_info)
47
+ if ret == 0:
48
+ return mindio
49
+ logger.warning(f"Failed to initialize mindio_acp: ret = {ret}")
42
50
  except ImportError:
43
- return False
51
+ pass
44
52
  try:
53
+ import mindio
45
54
  ret = mindio.initialize()
46
- except AttributeError as e:
47
- logger.warning(f"Failed to initialize MindIO: {e}")
48
- return False
49
- if ret != 0:
50
- logger.warning(f"Failed to initialize MindIO: ret = {ret}")
55
+ if ret == 0:
56
+ return mindio
57
+ logger.warning(f"Failed to initialize mindio: ret = {ret}")
58
+ except ImportError:
59
+ pass
60
+ return None
61
+
62
+
63
+ def _register_mindio_file_system(fs: FileSystem):
64
+ """register mindio file system"""
65
+ mindio = _init_mindio()
66
+ if mindio is None:
51
67
  return False
68
+
52
69
  fs.create = mindio.create_file
53
70
  fs.create_args = ()
54
71
  fs.open = mindio.open_file
@@ -56,3 +73,36 @@ def _register_mindio_file_system(fs: FileSystem):
56
73
  fs.backend = "mindio"
57
74
  logger.info("The weights are stored using MindIO as the backend.")
58
75
  return True
76
+
77
+
78
+ def set_mindio_server_info(data_block_pool_capacity_in_gb=100):
79
+ """
80
+ Configure MindIO server settings.
81
+
82
+ Args:
83
+ data_block_pool_capacity_in_gb (int): Memory pool capacity for data blocks in gigabytes.
84
+ """
85
+ global mindio_server_info
86
+ Validator.check_positive_int(data_block_pool_capacity_in_gb, "data_block_pool_capacity_in_gb")
87
+ mindio_server_info["memfs.data_block_pool_capacity_in_gb"] = str(data_block_pool_capacity_in_gb)
88
+
89
+
90
+ def mindio_preload(ckpt_file_name):
91
+ """
92
+ Preload data into memory using MindIO for faster access.
93
+
94
+ Args:
95
+ ckpt_file_name (str): Checkpoint file name.
96
+
97
+ Returns:
98
+ bool: True if preloading is successful, False otherwise.
99
+ """
100
+ Validator.check_value_type('ckpt_file_name', ckpt_file_name, str, "mindio_preload")
101
+ mindio = _init_mindio()
102
+ if mindio is None:
103
+ return False
104
+ if not hasattr(mindio, 'preload'):
105
+ logger.warning("MindIO module does not have preload method")
106
+ return False
107
+ mindio.preload(ckpt_file_name)
108
+ return True
@@ -77,10 +77,9 @@ class Generator:
77
77
  """
78
78
 
79
79
  def __init__(self):
80
- self._seed = Parameter(Tensor(0, mstype.int64),
81
- name="seed", requires_grad=False)
80
+ self._seed = Parameter(Tensor(0, mstype.int64), requires_grad=False)
82
81
  self._offset = Parameter(
83
- Tensor(0, mstype.int64), name="offset", requires_grad=False)
82
+ Tensor(0, mstype.int64), requires_grad=False)
84
83
 
85
84
  self._generator = GeneratorOp().set_device("CPU")
86
85
  self._generator.add_prim_attr("manual_seed", False)
@@ -16,6 +16,21 @@
16
16
  from __future__ import absolute_import
17
17
  import weakref
18
18
  from mindspore._c_expression import TensorPy as Tensor_
19
+ from mindspore._check_jit_forbidden_api import jit_forbidden_register
20
+
21
+
22
+ # Global variable to mark the `Parameter` hook and `Cell` hook version
23
+ _HOOK_VERSION = 0
24
+
25
+
26
+ def _update_hook_version():
27
+ global _HOOK_VERSION
28
+ _HOOK_VERSION += 1
29
+
30
+
31
+ def _hook_version():
32
+ global _HOOK_VERSION
33
+ return _HOOK_VERSION
19
34
 
20
35
 
21
36
  class _TensorHookHandle:
@@ -31,8 +46,9 @@ class _TensorHookHandle:
31
46
 
32
47
  def __init__(self, tensor):
33
48
  self.id = None
34
- self.tensor_ref = weakref.ref(tensor)
49
+ self.tensor_weakref = weakref.ref(tensor)
35
50
 
51
+ @jit_forbidden_register
36
52
  def remove(self):
37
53
  """
38
54
  Remove the tensor hook function, which corresponds to this '_TensorHookHandle' object.
@@ -67,9 +83,9 @@ class _TensorHookHandle:
67
83
  """
68
84
  if self.id is not None:
69
85
  Tensor_.remove_hook(self.id)
70
- tensor = self.tensor_ref()
86
+ tensor = self.tensor_weakref()
71
87
  if tensor is not None:
72
- tensor._remove_hook() # pylint:disable=protected-access
88
+ tensor._remove_hook() # pylint:disable=protected-access
73
89
 
74
90
 
75
91
  class HookHandle:
@@ -81,20 +97,25 @@ class HookHandle:
81
97
  It is only supported in pynative mode and works when registering or removing hook function for Cell object.
82
98
 
83
99
  Args:
84
- hook_dict (Dict): The hook object with hook function registered on. Default value: None.
100
+ hook_dict (Dict, optional): The hook object with hook function registered on. Default value: ``None`` .
101
+ extra_dict (Dict, optional): The extra dict. Default value: ``None`` .
85
102
 
86
103
  Supported Platforms:
87
104
  ``Ascend`` ``GPU`` ``CPU``
88
105
  """
89
106
  unique_id = 0
90
107
 
91
- def __init__(self, hook_dict=None):
108
+ def __init__(self, hook_dict=None, *, extra_dict=None):
92
109
  self.hook_dict_ref = None
110
+ self.extra_dict_ref = None
93
111
  if hook_dict is not None:
94
112
  self.hook_dict_ref = weakref.ref(hook_dict)
95
113
  self.handle_id = HookHandle.unique_id
96
114
  HookHandle.unique_id += 1
115
+ if extra_dict is not None:
116
+ self.extra_dict_ref = weakref.ref(extra_dict)
97
117
 
118
+ @jit_forbidden_register
98
119
  def remove(self):
99
120
  """
100
121
  Remove the cell hook function, which corresponds to this 'HookHandle' object.
@@ -141,7 +162,14 @@ class HookHandle:
141
162
  (Tensor(shape=[1], dtype=Float32, value= [ 2.00000000e+00]), Tensor(shape=[1], dtype=Float32,
142
163
  value= [ 2.00000000e+00]))
143
164
  """
165
+ _update_hook_version() # pylint:disable=protected-access
166
+
144
167
  if self.hook_dict_ref is not None:
145
168
  hook_dict = self.hook_dict_ref()
146
169
  if hook_dict is not None and self.handle_id in hook_dict:
147
170
  del hook_dict[self.handle_id]
171
+
172
+ if self.extra_dict_ref is not None:
173
+ extra_dict = self.extra_dict_ref()
174
+ if extra_dict is not None and self.handle_id in extra_dict:
175
+ del extra_dict[self.handle_id]
@@ -97,7 +97,7 @@ class JitConfig:
97
97
  self.jit_config_dict["debug_level"] = debug_level
98
98
  self.jit_config_dict["infer_boost"] = infer_boost
99
99
  if "backend" not in self.jit_config_dict:
100
- if jit_level == "O0" or jit_level == "O1":
100
+ if jit_level in ["O0", "O1"]:
101
101
  self.jit_config_dict["backend"] = "ms_backend"
102
102
  elif jit_level == "O2":
103
103
  self.jit_config_dict["backend"] = "GE"
@@ -17,16 +17,15 @@
17
17
 
18
18
  import inspect
19
19
  import re
20
+ import types
20
21
  from functools import wraps
21
22
  import mindspore as ms
22
23
  from mindspore import log as logger
23
24
  from mindspore import context
24
25
  from mindspore.common.jit_context import JitContext, set_jit_context, jit_context
25
26
  from mindspore.common.tensor import Tensor as PythonTensor
26
- from mindspore._checkparam import is_stub_tensor
27
27
  from mindspore._c_expression import TraceRecorder as tr
28
28
  from mindspore._c_expression import JitExecutor_
29
- from mindspore._c_expression import TensorNode
30
29
  from mindspore._c_expression import TensorPy as Tensor, CSRTensor, COOTensor
31
30
  from mindspore._c_expression import typing
32
31
 
@@ -35,7 +34,7 @@ class TraceJitContext(JitContext):
35
34
  """JIT Context for trace JIT."""
36
35
 
37
36
  def __init__(self):
38
- JitContext.__init__(self)
37
+ super().__init__()
39
38
  self._is_nested = False
40
39
 
41
40
  def set_is_nested(self, status):
@@ -44,29 +43,34 @@ class TraceJitContext(JitContext):
44
43
  def is_nested(self):
45
44
  return self._is_nested
46
45
 
46
+ def args_preprocess(self, prim_name, prim_res, *args):
47
+ args = tuple(_convert_arg_for_operators(arg, prim_name)
48
+ for arg in args)
49
+ file_names, linenos = _get_caller_lines()
50
+ return prim_res, file_names, linenos, args
51
+
47
52
  def run_op(self, prim, prim_res, *args):
48
53
  """Capture op"""
49
54
  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)
55
+ prim_res, file_names, linenos, args = self.args_preprocess(prim.name, prim_res, *args)
56
+ tr.get_instance().new_node(prim, (prim_res, file_names, linenos, False), *args)
57
57
  return prim_res
58
58
 
59
+ def prepare_op(self, prim_name, prim_res, *args):
60
+ """Prepare op"""
61
+ logger.debug(f'prim: {prim_name}, args: {args}, prim_res: {prim_res}')
62
+ return self.args_preprocess(prim_name, prim_res, *args)
63
+
59
64
  def run_graph(self, phase, prim_res, *args):
60
65
  """Capture func_graph generated from ast"""
61
66
  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
67
  file_names, linenos = _get_caller_lines()
67
- tr.get_instance().new_fg_node((phase, prim_res, file_names, linenos, self._is_nested), *args)
68
+ tr.get_instance().new_fg_node((prim_res, file_names, linenos, phase, self._is_nested), *args)
68
69
  return prim_res
69
70
 
71
+ def default_output(self):
72
+ return PythonTensor(0)
73
+
70
74
 
71
75
  _compile_only = False
72
76
  _trace_jit_context = TraceJitContext()
@@ -80,20 +84,6 @@ def _set_compile_only(compile_only=True):
80
84
  _compile_only = compile_only
81
85
 
82
86
 
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
87
  def convert_tensorpy(args):
98
88
  new_args = []
99
89
  for arg in args:
@@ -129,84 +119,73 @@ def nested_run(obj, cell, *args):
129
119
  if res is not tuple:
130
120
  res = (res,)
131
121
  file_names, linenos = _get_caller_lines()
132
- res = _sync_stub_tensor(res)
133
122
  set_jit_context(None)
134
123
  return file_names, linenos, res
135
124
 
136
125
 
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
126
+ def _jit_trace():
127
+ """Return the wrapped function for trace mode jit."""
128
+ def wrap_func(fn):
129
+ if hasattr(fn, "construct"):
130
+ if isinstance(fn, ms.nn.Cell):
131
+ # Bound the cell object to get the self arg.
132
+ return types.MethodType(_jit_trace()(fn.construct.__func__), fn)
133
+ if isinstance(fn, type) and issubclass(fn, ms.nn.Cell):
134
+ fn.construct = _jit_trace()(fn.construct)
135
+ return fn
136
+
137
+ if isinstance(fn, types.MethodType):
138
+ return types.MethodType(_jit_trace()(fn.__func__), fn.__self__)
139
+
140
+ if not isinstance(fn, types.FunctionType):
141
+ logger.warning(f"The fn should be function, method or cell instance/class, but got {fn}")
142
+ return fn
143
+
144
+ if hasattr(fn, "__wrapped_by_jit__"):
145
+ logger.warning(f"The fn {fn} should be wrapped by jit only once.")
146
+
147
+ @wraps(fn)
148
+ def jit_trace_wrap(*args, **kwargs):
149
+ # If a trace graph is already built, keep going without building a new trace graph.
150
+ if jit_context():
151
+ return fn(*args, **kwargs)
152
+ # Start trace process.
153
+ if kwargs:
154
+ bound_arguments = inspect.signature(fn).bind(*args, **kwargs)
155
+ bound_arguments.apply_defaults()
156
+ args = bound_arguments.args
157
+ kwargs = bound_arguments.kwargs
158
+ generate_name = fn.__module__
159
+ if args:
160
+ jit_args = args[1:] if hasattr(args[0], fn.__name__) else args
161
+ obj = args[0]
162
+ if hasattr(obj, fn.__name__): # Add class name for Cell.
163
+ generate_name = generate_name + "." + obj.__class__.__name__
164
+ else:
165
+ jit_args = args
166
+ generate_name = generate_name + "." + fn.__name__ + "#" + str(id(fn))
167
+ # Add create time for Cell.
168
+ if args and hasattr(obj, fn.__name__):
169
+ generate_name = generate_name + '#created_' + str(args[0].create_time)
170
+ line_str = fn.__code__.co_filename + ":" + str(fn.__code__.co_firstlineno)
171
+ generate_name = generate_name + '#[' + line_str + ']'
172
+
173
+ new_compile = _jit_trace_begin(generate_name, *jit_args)
174
+ if new_compile:
175
+ fn_res = fn(*args, **kwargs)
176
+ logger.debug(f'fn: {fn}, fn_res: {fn_res}, line: {line_str}')
177
+ # Use fn's output to build func graph's output.
178
+ output = _jit_trace_end(fn_res)
179
+ else:
180
+ output = _jit_trace_end(None) # Run with compilation.
181
+ logger.debug(f'output: {output}')
182
+ return output
183
+
184
+ jit_trace_wrap.__trace_func__ = True
185
+ setattr(jit_trace_wrap, "__wrapped_by_jit__", True)
186
+ return jit_trace_wrap
187
+
188
+ return wrap_func
210
189
 
211
190
 
212
191
  def _get_caller_lines():
@@ -240,6 +219,8 @@ def _get_args_for_run(args):
240
219
  new_args.append(arg)
241
220
  elif isinstance(arg, dict) and hasattr(arg, "__ms_mutable__"):
242
221
  new_args.append(tuple(arg.values()))
222
+ elif isinstance(arg, (tuple, list)) and hasattr(arg, "__ms_mutable__"):
223
+ new_args.append(arg)
243
224
  return tuple(new_args)
244
225
 
245
226
 
@@ -284,7 +265,6 @@ def _jit_trace_begin(fn_name, *args):
284
265
  logger.debug(f'_jit_trace_begin, args: {args}')
285
266
  _trace_jit_context.set_is_nested(False)
286
267
  set_jit_context(_trace_jit_context)
287
- args = tuple(_sync_stub_tensor(arg) for arg in args)
288
268
  for arg in args:
289
269
  logger.debug(f'_jit_trace_begin, arg: {arg}, {type(arg)}')
290
270
 
@@ -355,7 +335,6 @@ def _jit_trace_end(*output_args):
355
335
  logger.debug(f'jit trace result: {output}')
356
336
  else:
357
337
  logger.debug(f'output_args: {output_args}')
358
- output_args = tuple(_sync_stub_tensor(arg) for arg in output_args)
359
338
  file_names, linenos = _get_caller_lines()
360
339
  tr.get_instance().end_graph(file_names, linenos, *output_args)
361
340
  if _compile_only:
@@ -16,10 +16,10 @@
16
16
  # ============================================================================
17
17
  """Numpy data type for MindSpore."""
18
18
 
19
- from mindspore._c_expression.np_dtypes import np_version_valid
20
- if np_version_valid(True):
19
+ from mindspore._c_expression.np_dtypes import np_dtype_valid
20
+ if np_dtype_valid(True):
21
21
  from mindspore._c_expression.np_dtypes import bfloat16 # pylint: disable=unused-import
22
22
 
23
23
  __all__ = []
24
- if np_version_valid(False):
24
+ if np_dtype_valid(False):
25
25
  __all__.extend(["bfloat16"])
@@ -33,6 +33,7 @@ from mindspore import context
33
33
  from mindspore.common._utils import get_slice_num, get_slice_shape
34
34
  from mindspore.common.initializer import initializer
35
35
  from mindspore.common.tensor import Tensor, _TensorMeta
36
+ from mindspore.common.hook_handle import _update_hook_version
36
37
  from mindspore import _checkparam as Validator
37
38
  from mindspore._check_jit_forbidden_api import jit_forbidden_register
38
39
  from mindspore._c_expression import TensorPy as Tensor_
@@ -49,20 +50,27 @@ import mindspore.common._monad as monad
49
50
  __all__ = ['Parameter', 'ParameterTuple']
50
51
 
51
52
  PARAMETER_NAME_DEFAULT = "Parameter"
53
+ _GENERATED_PARAMETER_NAME_PREFIX = PARAMETER_NAME_DEFAULT + '#'
52
54
  PARAMETER_NAME_PREFIX_MAX_LEN = 1024
53
55
 
54
- # Global variable for parameter unique key.
55
- _GLOBAL_PARAMETER_KEY = -1
56
+ _PARAMETER_NAME_ID = 0
57
+
58
+
59
+ def _generate_parameter_name():
60
+ global _PARAMETER_NAME_ID
61
+ name = _GENERATED_PARAMETER_NAME_PREFIX + str(_PARAMETER_NAME_ID)
62
+ _PARAMETER_NAME_ID += 1
63
+ return name
64
+
65
+
66
+ def _is_parameter_generated(param_name):
67
+ if not param_name or not isinstance(param_name, str):
68
+ return False
69
+ return param_name.startswith(_GENERATED_PARAMETER_NAME_PREFIX)
56
70
 
57
- # Global variable to mark the hook of parameter is updated
58
- _parameter_hook_updated = True
59
- def set_parameter_hook_updated(value):
60
- global _parameter_hook_updated
61
- _parameter_hook_updated = value
62
71
 
63
- def parameter_hook_updated():
64
- global _parameter_hook_updated
65
- return _parameter_hook_updated
72
+ # Global variable for parameter unique key.
73
+ _GLOBAL_PARAMETER_KEY = -1
66
74
 
67
75
 
68
76
  def _is_in_auto_parallel_mode():
@@ -72,7 +80,7 @@ def _is_in_auto_parallel_mode():
72
80
 
73
81
  def _is_parallel_mode():
74
82
  """ Whether is parallel mode """
75
- if not _is_initialized() or context.get_context('mode') == context.PYNATIVE_MODE:
83
+ if not _is_initialized():
76
84
  return False
77
85
  if os.getenv("RUN_MODE") != "predict":
78
86
  return False
@@ -410,10 +418,6 @@ class Parameter(Tensor_):
410
418
  "1. context.set_ps_context(enable_ps=True) \n"
411
419
  "2. export MS_ROLE environment variable \n"
412
420
  "Please refer to the official website for detailed usage.")
413
-
414
- if context.get_context("mode") == context.PYNATIVE_MODE:
415
- raise RuntimeError("Parameter server training is not supported in pynative mode currently."
416
- "Please switch to graph mode and retry.")
417
421
  self.is_param_ps = True
418
422
  self.init_in_server = init_in_server
419
423
  self.param_info.init_in_server = init_in_server
@@ -496,11 +500,11 @@ class Parameter(Tensor_):
496
500
  the default value `PARAMETER_NAME_DEFAULT` is used.
497
501
  """
498
502
  if name_ is None:
499
- name_ = PARAMETER_NAME_DEFAULT
503
+ name_ = _generate_parameter_name()
500
504
  elif isinstance(name_, str):
501
505
  name_ = name_.strip()
502
506
  if name_ == '':
503
- name_ = PARAMETER_NAME_DEFAULT
507
+ name_ = _generate_parameter_name()
504
508
  if len(name_) > PARAMETER_NAME_PREFIX_MAX_LEN:
505
509
  raise ValueError("The length of the '{}' name should be less than {}.".
506
510
  format(name_, PARAMETER_NAME_PREFIX_MAX_LEN))
@@ -904,13 +908,10 @@ class Parameter(Tensor_):
904
908
  incoming_tensor_is_init = isinstance(data, Tensor) and not data.has_init
905
909
  current_tensor_is_init = isinstance(self, Tensor) and not self.has_init
906
910
  if self.dtype != data.dtype:
907
- if mstype.implicit_conversion_seq.get(self.dtype) < mstype.implicit_conversion_seq.get(data.dtype):
908
- self._raise_type_error(data.dtype)
909
- else:
910
- from mindspore.ops import functional as F
911
- if isinstance(data, Tensor) and data.init is not None:
912
- data.init_data()
913
- data = F.cast(data, self.dtype)
911
+ from mindspore.ops import functional as F
912
+ if isinstance(data, Tensor) and data.init is not None:
913
+ data.init_data()
914
+ data = F.cast(data, self.dtype)
914
915
  if isinstance(data, Tensor) and data.has_init:
915
916
  # The parameter has been initialized, directly update by the data
916
917
  if current_tensor_is_init:
@@ -938,7 +939,6 @@ class Parameter(Tensor_):
938
939
  init_data_args += (slice_index, layout[2], layout[5])
939
940
  return init_data_args
940
941
 
941
-
942
942
  def init_data(self, layout=None, set_sliced=False):
943
943
  """
944
944
  Initialize the parameter's data.
@@ -1007,11 +1007,11 @@ class Parameter(Tensor_):
1007
1007
  For details, please refer to :func:`mindspore.Tensor.register_hook`.
1008
1008
  """
1009
1009
  handle = Tensor.register_hook(self, hook_fn)
1010
- set_parameter_hook_updated(True)
1010
+ _update_hook_version()
1011
1011
  return handle
1012
1012
 
1013
1013
  def _remove_hook(self):
1014
- set_parameter_hook_updated(True)
1014
+ _update_hook_version()
1015
1015
 
1016
1016
  def _offload(self):
1017
1017
  r"""
@@ -1030,7 +1030,6 @@ class Parameter(Tensor_):
1030
1030
  """
1031
1031
  return Tensor_._offload(self, True)
1032
1032
 
1033
-
1034
1033
  def _load(self):
1035
1034
  r"""
1036
1035
  Load parameter to device.
@@ -1160,6 +1159,5 @@ class ParameterTuple(tuple):
1160
1159
  _insert_accumu_init_info(x1.name, init_to_value(init))
1161
1160
  return ParameterTuple(new)
1162
1161
 
1163
-
1164
1162
  def __parameter_tuple__(self):
1165
1163
  """For parse check."""
@@ -18,15 +18,15 @@ from collections import OrderedDict
18
18
  from types import MethodType
19
19
  from mindspore import log as logger
20
20
  from mindspore.nn.cell import Cell
21
- from mindspore import context
22
21
  from mindspore.common.tensor import Tensor
23
22
  from mindspore import ops
24
23
  from mindspore.ops.composite import GradOperation
25
24
  from mindspore.common._register_for_recompute import recompute_registry
26
25
  from mindspore.common.api import _pynative_executor, _no_grad
27
26
  from mindspore.common.generator import get_rng_state, set_rng_state
28
- from mindspore.train.amp import amp_decorator
27
+ from mindspore.train.amp import AmpDecorator
29
28
  from mindspore._c_expression.amp import get_curr_amp_strategy
29
+ from mindspore._check_jit_forbidden_api import jit_forbidden_register
30
30
 
31
31
 
32
32
  class _WrapCell(Cell):
@@ -104,8 +104,8 @@ class _RecomputeCell(Cell):
104
104
  set_rng_state(self.cpu_rng_state)
105
105
  _pynative_executor.set_is_run_recompute(True)
106
106
  if self.amp_strategy:
107
- with amp_decorator(self.amp_strategy.get_amp_level(), self.amp_strategy.get_amp_dtype(),
108
- self.amp_strategy.get_white_list(), self.amp_strategy.get_black_list()):
107
+ with AmpDecorator(self.amp_strategy.get_amp_level(), self.amp_strategy.get_amp_dtype(),
108
+ self.amp_strategy.get_white_list(), self.amp_strategy.get_black_list()):
109
109
  grads = self.grad(self.net, self.internal_params)(*input_args, **kwargs)
110
110
  else:
111
111
  grads = self.grad(self.net, self.internal_params)(*input_args, **kwargs)
@@ -211,14 +211,12 @@ def _detach_input(input_arg):
211
211
  def _check_validation(block):
212
212
  if not isinstance(block, Cell):
213
213
  raise TypeError("Recompute function now only support block which inherited from Cell!")
214
- if context.get_context("mode") != context.PYNATIVE_MODE:
215
- raise AssertionError("Recompute function now only support pynative mode, you can use "
216
- "Cell.recompute() in graph mode.")
217
214
  if block.construct.__code__.co_name == "staging_specialize":
218
215
  logger.warning('Block\'s construct method decorated by @jit that recompute '
219
216
  'function will not come into effect.')
220
217
 
221
218
 
219
+ @jit_forbidden_register
222
220
  def recompute(block, *args, **kwargs):
223
221
  r"""
224
222
  This function is used to reduce memory, when run block, rather than