mindspore 2.6.0rc1__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 (458) 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 +65 -84
  18. mindspore/_extends/parse/resources.py +39 -0
  19. mindspore/_extends/parse/standard_method.py +58 -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 +178 -53
  41. mindspore/common/_utils.py +9 -1
  42. mindspore/common/api.py +377 -203
  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 +5 -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 +117 -131
  59. mindspore/communication/_comm_helper.py +46 -4
  60. mindspore/communication/management.py +79 -7
  61. mindspore/context.py +67 -55
  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 +70 -24
  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 +3 -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 +27 -7
  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 +6 -46
  145. mindspore/mint/distributed/__init__.py +5 -0
  146. mindspore/mint/distributed/distributed.py +429 -23
  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 +140 -104
  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 +491 -623
  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 +117 -110
  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 +4 -6
  186. mindspore/nn/optim/adasum.py +2 -2
  187. mindspore/nn/optim/asgd.py +2 -0
  188. mindspore/nn/optim/lamb.py +1 -3
  189. mindspore/nn/optim/optimizer.py +1 -1
  190. mindspore/nn/optim/tft_wrapper.py +2 -3
  191. mindspore/nn/optim/thor.py +2 -2
  192. mindspore/nn/probability/distribution/_utils/utils.py +2 -2
  193. mindspore/nn/probability/distribution/exponential.py +2 -1
  194. mindspore/nn/probability/distribution/poisson.py +2 -1
  195. mindspore/nn/sparse/sparse.py +3 -3
  196. mindspore/nn/wrap/cell_wrapper.py +73 -42
  197. mindspore/nn/wrap/grad_reducer.py +37 -52
  198. mindspore/nn/wrap/loss_scale.py +72 -74
  199. mindspore/numpy/array_creations.py +7 -7
  200. mindspore/numpy/fft.py +1 -1
  201. mindspore/numpy/math_ops.py +5 -5
  202. mindspore/numpy/utils_const.py +1 -1
  203. mindspore/opencv_core452.dll +0 -0
  204. mindspore/opencv_imgcodecs452.dll +0 -0
  205. mindspore/opencv_imgproc452.dll +0 -0
  206. mindspore/ops/_grad_experimental/grad_comm_ops.py +51 -13
  207. mindspore/ops/_grad_experimental/grad_debug_ops.py +14 -0
  208. mindspore/ops/_grad_experimental/grad_inner_ops.py +0 -9
  209. mindspore/ops/_op_impl/cpu/__init__.py +1 -0
  210. mindspore/{experimental/es/__init__.py → ops/_op_impl/cpu/joinedstr_op.py} +12 -6
  211. mindspore/ops/_vmap/vmap_array_ops.py +31 -13
  212. mindspore/ops/_vmap/vmap_nn_ops.py +8 -16
  213. mindspore/ops/auto_generate/cpp_create_prim_instance_helper.py +54 -13
  214. mindspore/ops/auto_generate/gen_extend_func.py +27 -145
  215. mindspore/ops/auto_generate/gen_ops_def.py +1027 -347
  216. mindspore/ops/auto_generate/gen_ops_prim.py +2341 -1117
  217. mindspore/ops/auto_generate/pyboost_inner_prim.py +31 -1
  218. mindspore/ops/composite/__init__.py +10 -0
  219. mindspore/ops/composite/base.py +9 -5
  220. mindspore/ops/composite/multitype_ops/__init__.py +12 -1
  221. mindspore/ops/composite/multitype_ops/_compile_utils.py +133 -109
  222. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +1 -1
  223. mindspore/ops/composite/multitype_ops/add_impl.py +70 -2
  224. mindspore/ops/composite/multitype_ops/div_impl.py +49 -0
  225. mindspore/ops/composite/multitype_ops/floordiv_impl.py +29 -0
  226. mindspore/ops/composite/multitype_ops/getitem_impl.py +11 -0
  227. mindspore/ops/composite/multitype_ops/mod_impl.py +5 -3
  228. mindspore/ops/composite/multitype_ops/mul_impl.py +49 -0
  229. mindspore/ops/composite/multitype_ops/setitem_impl.py +57 -0
  230. mindspore/ops/composite/multitype_ops/sub_impl.py +34 -0
  231. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +14 -0
  232. mindspore/ops/function/__init__.py +4 -1
  233. mindspore/ops/function/_add_attr_func.py +11 -6
  234. mindspore/ops/function/array_func.py +19 -102
  235. mindspore/ops/function/debug_func.py +8 -5
  236. mindspore/ops/function/grad/grad_func.py +5 -13
  237. mindspore/ops/function/math_func.py +77 -572
  238. mindspore/ops/function/nn_func.py +46 -94
  239. mindspore/ops/function/other_func.py +4 -1
  240. mindspore/ops/function/random_func.py +44 -5
  241. mindspore/ops/function/vmap_func.py +2 -1
  242. mindspore/ops/functional.py +4 -4
  243. mindspore/ops/functional_overload.py +594 -18
  244. mindspore/ops/op_info_register.py +21 -0
  245. mindspore/ops/operations/__init__.py +16 -11
  246. mindspore/ops/operations/_custom_ops_utils.py +689 -34
  247. mindspore/ops/operations/_inner_ops.py +14 -18
  248. mindspore/ops/operations/_sequence_ops.py +1 -1
  249. mindspore/ops/operations/array_ops.py +5 -51
  250. mindspore/ops/operations/comm_ops.py +186 -41
  251. mindspore/ops/operations/custom_ops.py +303 -177
  252. mindspore/ops/operations/debug_ops.py +59 -4
  253. mindspore/ops/operations/image_ops.py +13 -13
  254. mindspore/ops/operations/manually_defined/ops_def.py +27 -28
  255. mindspore/ops/operations/math_ops.py +8 -9
  256. mindspore/ops/operations/nn_ops.py +8 -40
  257. mindspore/ops/primitive.py +9 -20
  258. mindspore/ops/tensor_method.py +63 -15
  259. mindspore/ops_generate/api/cpp_create_prim_instance_helper_generator.py +1 -1
  260. mindspore/ops_generate/api/functional_map_cpp_generator.py +10 -9
  261. mindspore/ops_generate/api/functions_cc_generator.py +58 -10
  262. mindspore/ops_generate/api/tensor_func_reg_cpp_generator.py +1 -1
  263. mindspore/ops_generate/common/base_generator.py +14 -0
  264. mindspore/ops_generate/common/gen_constants.py +8 -3
  265. mindspore/ops_generate/common/gen_utils.py +0 -19
  266. mindspore/ops_generate/common/op_proto.py +11 -4
  267. mindspore/ops_generate/common/template.py +88 -11
  268. mindspore/ops_generate/gen_ops.py +1 -1
  269. mindspore/ops_generate/op_def/lite_ops_cpp_generator.py +4 -4
  270. mindspore/ops_generate/op_def/ops_def_cc_generator.py +0 -3
  271. mindspore/ops_generate/op_def/ops_name_h_generator.py +0 -3
  272. mindspore/ops_generate/op_def/ops_primitive_h_generator.py +0 -4
  273. mindspore/ops_generate/op_def_py/op_prim_py_generator.py +5 -2
  274. mindspore/ops_generate/pyboost/auto_grad_impl_cc_generator.py +49 -8
  275. mindspore/ops_generate/pyboost/auto_grad_reg_cc_generator.py +2 -2
  276. mindspore/ops_generate/pyboost/gen_pyboost_func.py +31 -16
  277. mindspore/ops_generate/pyboost/op_template_parser.py +98 -72
  278. mindspore/ops_generate/pyboost/pyboost_functions_cpp_generator.py +70 -273
  279. mindspore/ops_generate/pyboost/pyboost_functions_h_generator.py +14 -6
  280. mindspore/ops_generate/pyboost/pyboost_functions_impl_cpp_generator.py +316 -0
  281. mindspore/ops_generate/pyboost/pyboost_functions_py_generator.py +1 -1
  282. mindspore/ops_generate/pyboost/pyboost_grad_function_cpp_generator.py +5 -3
  283. mindspore/ops_generate/pyboost/pyboost_inner_prim_generator.py +1 -1
  284. mindspore/ops_generate/pyboost/pyboost_internal_functions_cpp_generator.py +76 -0
  285. mindspore/ops_generate/pyboost/pyboost_internal_functions_h_generator.py +76 -0
  286. mindspore/ops_generate/pyboost/pyboost_internal_kernel_info_adapter_generator.py +125 -0
  287. mindspore/ops_generate/pyboost/pyboost_native_grad_functions_generator.py +4 -3
  288. mindspore/ops_generate/pyboost/pyboost_op_cpp_code_generator.py +348 -61
  289. mindspore/ops_generate/pyboost/pyboost_overload_functions_cpp_generator.py +1 -1
  290. mindspore/ops_generate/pyboost/pyboost_utils.py +118 -9
  291. mindspore/ops_generate/tensor_py_cc_generator.py +1 -24
  292. mindspore/parallel/_auto_parallel_context.py +16 -23
  293. mindspore/parallel/_cell_wrapper.py +113 -45
  294. mindspore/parallel/_parallel_serialization.py +4 -3
  295. mindspore/parallel/_ps_context.py +4 -6
  296. mindspore/parallel/_tensor.py +167 -12
  297. mindspore/parallel/_transformer/moe.py +1 -1
  298. mindspore/parallel/_transformer/transformer.py +17 -12
  299. mindspore/parallel/_utils.py +5 -11
  300. mindspore/parallel/auto_parallel.py +35 -14
  301. mindspore/parallel/checkpoint_convert.py +3 -3
  302. mindspore/parallel/checkpoint_transform.py +13 -7
  303. mindspore/parallel/cluster/process_entity/_api.py +88 -49
  304. mindspore/parallel/cluster/process_entity/_utils.py +95 -7
  305. mindspore/parallel/cluster/run.py +48 -7
  306. mindspore/parallel/function/__init__.py +8 -1
  307. mindspore/parallel/function/reshard_func.py +12 -12
  308. mindspore/parallel/nn/__init__.py +15 -2
  309. mindspore/parallel/nn/parallel_cell_wrapper.py +50 -14
  310. mindspore/parallel/nn/parallel_grad_reducer.py +7 -14
  311. mindspore/parallel/shard.py +10 -25
  312. mindspore/parallel/transform_safetensors.py +469 -174
  313. mindspore/pgodb140.dll +0 -0
  314. mindspore/pgort140.dll +0 -0
  315. mindspore/profiler/__init__.py +2 -1
  316. mindspore/profiler/analysis/parser/timeline_assembly_factory/ascend_timeline_assembler.py +7 -7
  317. mindspore/profiler/analysis/parser/timeline_assembly_factory/base_timeline_assembler.py +3 -0
  318. mindspore/profiler/analysis/parser/timeline_assembly_factory/trace_view_container.py +12 -6
  319. mindspore/profiler/analysis/parser/timeline_creator/cpu_op_timeline_creator.py +3 -3
  320. mindspore/profiler/analysis/parser/timeline_creator/fwk_timeline_creator.py +3 -3
  321. mindspore/profiler/analysis/parser/timeline_creator/msprof_timeline_creator.py +4 -4
  322. mindspore/profiler/analysis/parser/timeline_creator/scope_layer_timeline_creator.py +3 -3
  323. mindspore/profiler/analysis/parser/timeline_event/fwk_event.py +4 -1
  324. mindspore/profiler/analysis/parser/timeline_event/timeline_event_pool.py +2 -1
  325. mindspore/profiler/analysis/task_manager.py +1 -1
  326. mindspore/profiler/analysis/viewer/ascend_communication_viewer.py +5 -1
  327. mindspore/profiler/analysis/viewer/ascend_integrate_viewer.py +2 -1
  328. mindspore/profiler/analysis/viewer/ascend_kernel_details_viewer.py +10 -9
  329. mindspore/profiler/analysis/viewer/ascend_op_memory_viewer.py +43 -23
  330. mindspore/profiler/analysis/viewer/ascend_step_trace_time_viewer.py +3 -2
  331. mindspore/profiler/analysis/viewer/ms_minddata_viewer.py +9 -5
  332. mindspore/profiler/analysis/viewer/ms_operator_details_viewer.py +132 -0
  333. mindspore/profiler/common/constant.py +16 -0
  334. mindspore/profiler/common/msprof_cmd_tool.py +2 -2
  335. mindspore/profiler/common/path_manager.py +9 -0
  336. mindspore/profiler/common/profiler_context.py +50 -29
  337. mindspore/profiler/common/profiler_info.py +0 -16
  338. mindspore/profiler/common/profiler_meta_data.py +1 -0
  339. mindspore/profiler/common/profiler_op_analyse.py +239 -0
  340. mindspore/profiler/common/profiler_output_path.py +23 -8
  341. mindspore/profiler/common/profiler_parameters.py +128 -35
  342. mindspore/profiler/dynamic_profile/__init__.py +0 -0
  343. mindspore/profiler/dynamic_profile/dynamic_monitor_proxy.py +39 -0
  344. mindspore/profiler/dynamic_profile/dynamic_profiler_config_context.py +666 -0
  345. mindspore/profiler/dynamic_profile/dynamic_profiler_utils.py +62 -0
  346. mindspore/profiler/dynamic_profiler.py +374 -338
  347. mindspore/profiler/envprofiler.py +42 -12
  348. mindspore/profiler/experimental_config.py +112 -7
  349. mindspore/profiler/mstx.py +33 -12
  350. mindspore/profiler/platform/__init__.py +2 -3
  351. mindspore/profiler/platform/cpu_profiler.py +10 -4
  352. mindspore/profiler/platform/npu_profiler.py +30 -20
  353. mindspore/profiler/profiler.py +218 -154
  354. mindspore/profiler/profiler_action_controller.py +65 -77
  355. mindspore/profiler/profiler_interface.py +2 -2
  356. mindspore/profiler/schedule.py +10 -4
  357. mindspore/rewrite/common/config.py +1 -0
  358. mindspore/rewrite/common/namer.py +1 -0
  359. mindspore/rewrite/common/namespace.py +1 -0
  360. mindspore/rewrite/node/node.py +31 -11
  361. mindspore/rewrite/parsers/assign_parser.py +1 -1
  362. mindspore/rewrite/symbol_tree/symbol_tree.py +2 -2
  363. mindspore/run_check/_check_version.py +7 -10
  364. mindspore/runtime/__init__.py +8 -6
  365. mindspore/runtime/event.py +10 -4
  366. mindspore/runtime/executor.py +87 -45
  367. mindspore/runtime/memory.py +31 -32
  368. mindspore/runtime/thread_bind_core.py +299 -165
  369. mindspore/safeguard/rewrite_obfuscation.py +12 -13
  370. mindspore/swresample-4.dll +0 -0
  371. mindspore/swscale-6.dll +0 -0
  372. mindspore/tbbmalloc.dll +0 -0
  373. mindspore/tinyxml2.dll +0 -0
  374. mindspore/train/_utils.py +17 -7
  375. mindspore/train/amp.py +43 -23
  376. mindspore/train/callback/__init__.py +5 -5
  377. mindspore/train/callback/_callback.py +2 -1
  378. mindspore/train/callback/_checkpoint.py +4 -14
  379. mindspore/train/callback/_flops_collector.py +11 -7
  380. mindspore/train/callback/_landscape.py +0 -1
  381. mindspore/train/callback/_train_fault_tolerance.py +98 -21
  382. mindspore/train/data_sink.py +15 -6
  383. mindspore/train/dataset_helper.py +14 -5
  384. mindspore/train/model.py +133 -69
  385. mindspore/train/serialization.py +168 -126
  386. mindspore/train/summary/summary_record.py +13 -2
  387. mindspore/train/train_thor/model_thor.py +2 -2
  388. mindspore/turbojpeg.dll +0 -0
  389. mindspore/utils/__init__.py +3 -2
  390. mindspore/utils/dryrun.py +0 -6
  391. mindspore/utils/runtime_execution_order_check.py +163 -77
  392. mindspore/utils/sdc_detect.py +68 -0
  393. mindspore/utils/utils.py +14 -17
  394. mindspore/vcmeta.dll +0 -0
  395. mindspore/vcruntime140.dll +0 -0
  396. mindspore/vcruntime140_1.dll +0 -0
  397. mindspore/version.py +1 -1
  398. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/METADATA +5 -4
  399. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/RECORD +403 -442
  400. mindspore/_deprecated/jit.py +0 -198
  401. mindspore/_extends/remote/kernel_build_server_ascend.py +0 -75
  402. mindspore/communication/_hccl_management.py +0 -297
  403. mindspore/experimental/es/embedding_service.py +0 -891
  404. mindspore/experimental/es/embedding_service_layer.py +0 -581
  405. mindspore/profiler/common/validator/__init__.py +0 -14
  406. mindspore/profiler/common/validator/validate_path.py +0 -84
  407. mindspore/profiler/parser/__init__.py +0 -14
  408. mindspore/profiler/parser/aicpu_data_parser.py +0 -272
  409. mindspore/profiler/parser/ascend_analysis/__init__.py +0 -14
  410. mindspore/profiler/parser/ascend_analysis/constant.py +0 -71
  411. mindspore/profiler/parser/ascend_analysis/file_manager.py +0 -180
  412. mindspore/profiler/parser/ascend_analysis/function_event.py +0 -185
  413. mindspore/profiler/parser/ascend_analysis/fwk_cann_parser.py +0 -136
  414. mindspore/profiler/parser/ascend_analysis/fwk_file_parser.py +0 -131
  415. mindspore/profiler/parser/ascend_analysis/msprof_timeline_parser.py +0 -104
  416. mindspore/profiler/parser/ascend_analysis/path_manager.py +0 -313
  417. mindspore/profiler/parser/ascend_analysis/profiler_info_parser.py +0 -123
  418. mindspore/profiler/parser/ascend_analysis/tlv_decoder.py +0 -86
  419. mindspore/profiler/parser/ascend_analysis/trace_event_manager.py +0 -75
  420. mindspore/profiler/parser/ascend_cluster_generator.py +0 -116
  421. mindspore/profiler/parser/ascend_communicate_generator.py +0 -314
  422. mindspore/profiler/parser/ascend_flops_generator.py +0 -116
  423. mindspore/profiler/parser/ascend_fpbp_generator.py +0 -82
  424. mindspore/profiler/parser/ascend_hccl_generator.py +0 -271
  425. mindspore/profiler/parser/ascend_integrate_generator.py +0 -42
  426. mindspore/profiler/parser/ascend_memory_generator.py +0 -185
  427. mindspore/profiler/parser/ascend_msprof_exporter.py +0 -282
  428. mindspore/profiler/parser/ascend_msprof_generator.py +0 -187
  429. mindspore/profiler/parser/ascend_op_generator.py +0 -334
  430. mindspore/profiler/parser/ascend_steptrace_generator.py +0 -94
  431. mindspore/profiler/parser/ascend_timeline_generator.py +0 -545
  432. mindspore/profiler/parser/base_timeline_generator.py +0 -483
  433. mindspore/profiler/parser/container.py +0 -229
  434. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +0 -697
  435. mindspore/profiler/parser/flops_parser.py +0 -531
  436. mindspore/profiler/parser/framework_enum.py +0 -111
  437. mindspore/profiler/parser/framework_parser.py +0 -464
  438. mindspore/profiler/parser/framework_struct.py +0 -61
  439. mindspore/profiler/parser/gpu_analysis/__init__.py +0 -14
  440. mindspore/profiler/parser/gpu_analysis/function_event.py +0 -44
  441. mindspore/profiler/parser/gpu_analysis/fwk_file_parser.py +0 -89
  442. mindspore/profiler/parser/gpu_analysis/profiler_info_parser.py +0 -72
  443. mindspore/profiler/parser/hccl_parser.py +0 -573
  444. mindspore/profiler/parser/hwts_log_parser.py +0 -122
  445. mindspore/profiler/parser/integrator.py +0 -526
  446. mindspore/profiler/parser/memory_usage_parser.py +0 -277
  447. mindspore/profiler/parser/minddata_analyzer.py +0 -800
  448. mindspore/profiler/parser/minddata_parser.py +0 -186
  449. mindspore/profiler/parser/minddata_pipeline_parser.py +0 -299
  450. mindspore/profiler/parser/op_intermediate_parser.py +0 -149
  451. mindspore/profiler/parser/optime_parser.py +0 -250
  452. mindspore/profiler/parser/profiler_info.py +0 -213
  453. mindspore/profiler/parser/step_trace_parser.py +0 -666
  454. mindspore/utils/hooks.py +0 -81
  455. /mindspore/common/{_auto_dynamic.py → dynamic_shape/_auto_dynamic.py} +0 -0
  456. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/WHEEL +0 -0
  457. {mindspore-2.6.0rc1.dist-info → mindspore-2.7.0.dist-info}/entry_points.txt +0 -0
  458. {mindspore-2.6.0rc1.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
@@ -56,6 +56,9 @@ class Generator:
56
56
  A generator that manages the state of random numbers and provides seed and offset for random functions.
57
57
  When the seed and offset are fixed, the random function generates the same random sequence.
58
58
 
59
+ .. note::
60
+ Graph mode does not support the use of multiple generators at the same time for now.
61
+
59
62
  Supported Platforms:
60
63
  ``Ascend`` ``GPU`` ``CPU``
61
64
 
@@ -74,10 +77,9 @@ class Generator:
74
77
  """
75
78
 
76
79
  def __init__(self):
77
- self._seed = Parameter(Tensor(0, mstype.int64),
78
- name="seed", requires_grad=False)
80
+ self._seed = Parameter(Tensor(0, mstype.int64), requires_grad=False)
79
81
  self._offset = Parameter(
80
- Tensor(0, mstype.int64), name="offset", requires_grad=False)
82
+ Tensor(0, mstype.int64), requires_grad=False)
81
83
 
82
84
  self._generator = GeneratorOp().set_device("CPU")
83
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."""