mindspore 2.0.0rc1__cp38-cp38-manylinux1_x86_64.whl → 2.2.0__cp38-cp38-manylinux1_x86_64.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 (884) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/Third_Party_Open_Source_Software_Notice +2 -2
  3. mindspore/__init__.py +5 -2
  4. mindspore/_akg/akg/build_module.py +5 -6
  5. mindspore/_akg/akg/composite/build_module.py +49 -16
  6. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  7. mindspore/_akg/akg/config/repository.json +195 -0
  8. mindspore/_akg/akg/global_configs.py +5 -1
  9. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  10. mindspore/_akg/akg/tvm/api.py +4 -3
  11. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  12. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  13. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  14. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  15. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  16. mindspore/_akg/akg/tvm/build_module.py +16 -1
  17. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  18. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  19. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  20. mindspore/_akg/akg/tvm/module.py +1 -2
  21. mindspore/_akg/akg/tvm/stmt.py +2 -2
  22. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  23. mindspore/_akg/akg/utils/kernel_exec.py +58 -260
  24. mindspore/_akg/akg/utils/op_dsl.py +17 -1
  25. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  26. mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
  27. mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
  28. mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
  29. mindspore/_c_mindrecord.cpython-38-x86_64-linux-gnu.so +0 -0
  30. mindspore/_check_jit_forbidden_api.py +5 -1
  31. mindspore/_checkparam.py +79 -62
  32. mindspore/_extends/graph_kernel/__init__.py +0 -1
  33. mindspore/_extends/graph_kernel/model/graph_split.py +2 -0
  34. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  35. mindspore/_extends/graph_kernel/splitter.py +1 -9
  36. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +128 -21
  37. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
  38. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  39. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +18 -13
  40. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +13 -9
  41. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  42. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  43. mindspore/_extends/parse/__init__.py +19 -17
  44. mindspore/_extends/parse/namespace.py +7 -36
  45. mindspore/_extends/parse/parser.py +375 -189
  46. mindspore/_extends/parse/resources.py +36 -41
  47. mindspore/_extends/parse/standard_method.py +350 -245
  48. mindspore/_extends/parse/trope.py +2 -12
  49. mindspore/_extends/remote/kernel_build_server.py +24 -7
  50. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  51. mindspore/_install_custom.py +43 -0
  52. mindspore/_mindspore_offline_debug.cpython-38-x86_64-linux-gnu.so +0 -0
  53. mindspore/amp.py +85 -19
  54. mindspore/bin/cache_admin +0 -0
  55. mindspore/bin/cache_server +0 -0
  56. mindspore/boost/base.py +2 -2
  57. mindspore/boost/boost.py +27 -32
  58. mindspore/boost/boost_cell_wrapper.py +37 -13
  59. mindspore/boost/grad_accumulation.py +1 -1
  60. mindspore/boost/grad_freeze.py +34 -6
  61. mindspore/boost/group_loss_scale_manager.py +15 -14
  62. mindspore/boost/less_batch_normalization.py +28 -3
  63. mindspore/common/__init__.py +15 -11
  64. mindspore/common/_auto_dynamic.py +68 -0
  65. mindspore/common/_jit_fallback_utils.py +111 -0
  66. mindspore/common/_register_for_adapter.py +17 -5
  67. mindspore/common/_register_for_tensor.py +2 -2
  68. mindspore/common/_stub_tensor.py +18 -15
  69. mindspore/common/_utils.py +31 -7
  70. mindspore/common/api.py +269 -101
  71. mindspore/common/auto_dynamic_shape.py +498 -0
  72. mindspore/common/dtype.py +61 -21
  73. mindspore/common/dump.py +9 -7
  74. mindspore/common/initializer.py +106 -76
  75. mindspore/common/jit_config.py +35 -14
  76. mindspore/common/lazy_inline.py +187 -0
  77. mindspore/common/mindir_util.py +101 -0
  78. mindspore/common/mutable.py +10 -13
  79. mindspore/common/parameter.py +246 -55
  80. mindspore/common/seed.py +13 -7
  81. mindspore/common/sparse_tensor.py +29 -33
  82. mindspore/common/tensor.py +907 -251
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +84 -4
  85. mindspore/communication/management.py +160 -88
  86. mindspore/config/op_info.config +99 -75
  87. mindspore/config/super_bar_config.json +36 -4
  88. mindspore/context.py +526 -219
  89. mindspore/dataset/__init__.py +9 -46
  90. mindspore/dataset/audio/__init__.py +4 -19
  91. mindspore/dataset/audio/transforms.py +545 -233
  92. mindspore/dataset/audio/utils.py +21 -18
  93. mindspore/dataset/callback/ds_callback.py +42 -13
  94. mindspore/dataset/core/config.py +158 -100
  95. mindspore/dataset/core/validator_helpers.py +1 -63
  96. mindspore/dataset/debug/debug_hook.py +45 -13
  97. mindspore/dataset/debug/pre_defined_hook.py +5 -5
  98. mindspore/dataset/engine/__init__.py +0 -5
  99. mindspore/dataset/engine/cache_client.py +38 -15
  100. mindspore/dataset/engine/datasets.py +615 -278
  101. mindspore/dataset/engine/datasets_audio.py +154 -283
  102. mindspore/dataset/engine/datasets_standard_format.py +104 -116
  103. mindspore/dataset/engine/datasets_text.py +443 -326
  104. mindspore/dataset/engine/datasets_user_defined.py +251 -164
  105. mindspore/dataset/engine/datasets_vision.py +839 -1443
  106. mindspore/dataset/engine/iterators.py +11 -4
  107. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +7 -3
  108. mindspore/dataset/engine/obs/util.py +3 -0
  109. mindspore/dataset/engine/offload.py +6 -6
  110. mindspore/dataset/engine/queue.py +15 -14
  111. mindspore/dataset/engine/samplers.py +39 -23
  112. mindspore/dataset/engine/serializer_deserializer.py +22 -6
  113. mindspore/dataset/engine/validators.py +21 -331
  114. mindspore/dataset/text/__init__.py +5 -33
  115. mindspore/dataset/text/transforms.py +334 -165
  116. mindspore/dataset/text/utils.py +215 -145
  117. mindspore/dataset/transforms/__init__.py +1 -1
  118. mindspore/dataset/transforms/c_transforms.py +3 -2
  119. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  120. mindspore/dataset/transforms/transforms.py +174 -71
  121. mindspore/dataset/utils/browse_dataset.py +25 -17
  122. mindspore/dataset/utils/line_reader.py +24 -21
  123. mindspore/dataset/vision/__init__.py +5 -26
  124. mindspore/dataset/vision/c_transforms.py +177 -165
  125. mindspore/dataset/vision/py_transforms.py +114 -119
  126. mindspore/dataset/vision/py_transforms_util.py +54 -51
  127. mindspore/dataset/vision/transforms.py +1127 -381
  128. mindspore/dataset/vision/utils.py +54 -38
  129. mindspore/dataset/vision/validators.py +12 -2
  130. mindspore/experimental/map_parameter.py +38 -4
  131. mindspore/{dataset/datapreprocess → experimental/optim}/__init__.py +14 -4
  132. mindspore/experimental/optim/adam.py +192 -0
  133. mindspore/experimental/optim/adamw.py +181 -0
  134. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  135. mindspore/experimental/optim/optimizer.py +252 -0
  136. mindspore/experimental/optim/sgd.py +147 -0
  137. mindspore/gen_ops.py +273 -0
  138. mindspore/include/OWNERS +1 -2
  139. mindspore/include/api/context.h +21 -1
  140. mindspore/include/api/data_type.h +2 -1
  141. mindspore/include/api/graph.h +0 -15
  142. mindspore/include/api/kernel.h +2 -0
  143. mindspore/include/api/kernel_api.h +37 -12
  144. mindspore/include/api/model.h +29 -42
  145. mindspore/include/api/model_group.h +14 -3
  146. mindspore/include/api/model_parallel_runner.h +18 -2
  147. mindspore/include/api/serialization.h +26 -0
  148. mindspore/include/api/status.h +1 -0
  149. mindspore/include/api/types.h +38 -4
  150. mindspore/include/c_api/ms/abstract.h +67 -0
  151. mindspore/include/c_api/ms/attribute.h +197 -0
  152. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  153. mindspore/include/c_api/ms/base/macros.h +32 -0
  154. mindspore/include/c_api/ms/base/status.h +33 -0
  155. mindspore/include/c_api/ms/base/types.h +282 -0
  156. mindspore/include/c_api/ms/context.h +102 -0
  157. mindspore/include/c_api/ms/graph.h +160 -0
  158. mindspore/include/c_api/ms/node.h +606 -0
  159. mindspore/include/c_api/ms/tensor.h +161 -0
  160. mindspore/include/c_api/ms/value.h +84 -0
  161. mindspore/include/c_api/status_c.h +3 -0
  162. mindspore/include/dataset/constants.h +6 -12
  163. mindspore/include/dataset/execute.h +23 -13
  164. mindspore/include/dataset/text.h +26 -26
  165. mindspore/include/dataset/transforms.h +25 -31
  166. mindspore/include/dataset/vision.h +60 -60
  167. mindspore/include/dataset/vision_ascend.h +5 -6
  168. mindspore/include/dataset/vision_lite.h +17 -17
  169. mindspore/include/mindapi/base/format.h +0 -1
  170. mindspore/include/mindapi/base/type_id.h +2 -1
  171. mindspore/include/mindapi/base/types.h +5 -1
  172. mindspore/lib/libdnnl.so.2 +0 -0
  173. mindspore/lib/libjemalloc.so.2 +0 -0
  174. mindspore/lib/libmindspore.so +0 -0
  175. mindspore/lib/libmindspore_backend.so +0 -0
  176. mindspore/lib/libmindspore_common.so +0 -0
  177. mindspore/lib/libmindspore_core.so +0 -0
  178. mindspore/lib/libmindspore_glog.so.0 +0 -0
  179. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  180. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  181. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  182. mindspore/lib/libmindspore_shared_lib.so +0 -0
  183. mindspore/lib/libmpi_adapter.so +0 -0
  184. mindspore/lib/libnnacl.so +0 -0
  185. mindspore/lib/libopencv_core.so.4.5 +0 -0
  186. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  187. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  188. mindspore/lib/libps_cache.so +0 -0
  189. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  190. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  191. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +9000 -0
  192. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  193. mindspore/lib/plugin/ascend/libakg.so +0 -0
  194. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  195. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  196. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  197. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  198. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  199. mindspore/lib/plugin/cpu/libakg.so +0 -0
  200. mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
  201. mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
  202. mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
  203. mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
  204. mindspore/lib/plugin/gpu10.1/libnvidia_collective.so +0 -0
  205. mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
  206. mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
  207. mindspore/lib/plugin/gpu11.1/libnvidia_collective.so +0 -0
  208. mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
  209. mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
  210. mindspore/lib/plugin/gpu11.6/libnvidia_collective.so +0 -0
  211. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  212. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  213. mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
  214. mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
  215. mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
  216. mindspore/log.py +9 -6
  217. mindspore/mindrecord/filereader.py +33 -4
  218. mindspore/mindrecord/filewriter.py +70 -35
  219. mindspore/mindrecord/mindpage.py +40 -34
  220. mindspore/mindrecord/shardreader.py +1 -1
  221. mindspore/mindrecord/shardsegment.py +1 -1
  222. mindspore/mindrecord/tools/cifar100_to_mr.py +25 -18
  223. mindspore/mindrecord/tools/cifar10_to_mr.py +25 -18
  224. mindspore/mindrecord/tools/csv_to_mr.py +29 -13
  225. mindspore/mindrecord/tools/imagenet_to_mr.py +24 -10
  226. mindspore/mindrecord/tools/mnist_to_mr.py +24 -11
  227. mindspore/mindrecord/tools/tfrecord_to_mr.py +31 -26
  228. mindspore/nn/cell.py +463 -169
  229. mindspore/nn/dynamic_lr.py +47 -43
  230. mindspore/nn/layer/activation.py +225 -82
  231. mindspore/nn/layer/basic.py +121 -79
  232. mindspore/nn/layer/channel_shuffle.py +21 -21
  233. mindspore/nn/layer/combined.py +33 -26
  234. mindspore/nn/layer/container.py +277 -22
  235. mindspore/nn/layer/conv.py +441 -304
  236. mindspore/nn/layer/dense.py +19 -13
  237. mindspore/nn/layer/embedding.py +62 -49
  238. mindspore/nn/layer/flash_attention.py +264 -0
  239. mindspore/nn/layer/image.py +50 -39
  240. mindspore/nn/layer/math.py +62 -51
  241. mindspore/nn/layer/normalization.py +219 -167
  242. mindspore/nn/layer/padding.py +58 -70
  243. mindspore/nn/layer/pooling.py +334 -287
  244. mindspore/nn/layer/rnn_cells.py +53 -38
  245. mindspore/nn/layer/rnns.py +59 -56
  246. mindspore/nn/layer/thor_layer.py +52 -44
  247. mindspore/nn/layer/timedistributed.py +6 -4
  248. mindspore/nn/layer/transformer.py +284 -164
  249. mindspore/nn/learning_rate_schedule.py +34 -25
  250. mindspore/nn/loss/__init__.py +3 -2
  251. mindspore/nn/loss/loss.py +554 -311
  252. mindspore/nn/optim/ada_grad.py +12 -9
  253. mindspore/nn/optim/adadelta.py +14 -11
  254. mindspore/nn/optim/adafactor.py +19 -16
  255. mindspore/nn/optim/adam.py +62 -47
  256. mindspore/nn/optim/adamax.py +13 -10
  257. mindspore/nn/optim/adasum.py +12 -8
  258. mindspore/nn/optim/asgd.py +10 -9
  259. mindspore/nn/optim/ftrl.py +20 -17
  260. mindspore/nn/optim/lamb.py +16 -12
  261. mindspore/nn/optim/lars.py +8 -6
  262. mindspore/nn/optim/lazyadam.py +25 -20
  263. mindspore/nn/optim/momentum.py +10 -7
  264. mindspore/nn/optim/optimizer.py +61 -9
  265. mindspore/nn/optim/proximal_ada_grad.py +14 -13
  266. mindspore/nn/optim/rmsprop.py +17 -13
  267. mindspore/nn/optim/rprop.py +30 -17
  268. mindspore/nn/optim/sgd.py +40 -23
  269. mindspore/nn/optim/thor.py +24 -26
  270. mindspore/nn/probability/bijector/bijector.py +11 -11
  271. mindspore/nn/probability/bijector/exp.py +1 -1
  272. mindspore/nn/probability/bijector/gumbel_cdf.py +3 -3
  273. mindspore/nn/probability/bijector/invert.py +1 -1
  274. mindspore/nn/probability/bijector/power_transform.py +29 -29
  275. mindspore/nn/probability/bijector/scalar_affine.py +3 -3
  276. mindspore/nn/probability/bijector/softplus.py +5 -5
  277. mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +4 -2
  278. mindspore/nn/probability/bnn_layers/conv_variational.py +13 -13
  279. mindspore/nn/probability/bnn_layers/dense_variational.py +12 -12
  280. mindspore/nn/probability/bnn_layers/layer_distribution.py +9 -8
  281. mindspore/nn/probability/distribution/_utils/custom_ops.py +19 -3
  282. mindspore/nn/probability/distribution/_utils/utils.py +1 -1
  283. mindspore/nn/probability/distribution/bernoulli.py +9 -9
  284. mindspore/nn/probability/distribution/beta.py +8 -8
  285. mindspore/nn/probability/distribution/categorical.py +23 -15
  286. mindspore/nn/probability/distribution/cauchy.py +5 -6
  287. mindspore/nn/probability/distribution/distribution.py +3 -3
  288. mindspore/nn/probability/distribution/exponential.py +4 -4
  289. mindspore/nn/probability/distribution/gamma.py +10 -10
  290. mindspore/nn/probability/distribution/geometric.py +8 -8
  291. mindspore/nn/probability/distribution/gumbel.py +8 -9
  292. mindspore/nn/probability/distribution/half_normal.py +5 -5
  293. mindspore/nn/probability/distribution/laplace.py +5 -5
  294. mindspore/nn/probability/distribution/log_normal.py +12 -11
  295. mindspore/nn/probability/distribution/logistic.py +8 -8
  296. mindspore/nn/probability/distribution/normal.py +6 -5
  297. mindspore/nn/probability/distribution/poisson.py +10 -11
  298. mindspore/nn/probability/distribution/student_t.py +8 -9
  299. mindspore/nn/probability/distribution/transformed_distribution.py +5 -5
  300. mindspore/nn/probability/distribution/uniform.py +11 -11
  301. mindspore/nn/reinforcement/tensor_array.py +2 -2
  302. mindspore/nn/sparse/sparse.py +9 -9
  303. mindspore/nn/wrap/cell_wrapper.py +188 -63
  304. mindspore/nn/wrap/grad_reducer.py +21 -12
  305. mindspore/nn/wrap/loss_scale.py +136 -49
  306. mindspore/numpy/__init__.py +4 -4
  307. mindspore/numpy/array_creations.py +55 -56
  308. mindspore/numpy/array_ops.py +134 -35
  309. mindspore/numpy/logic_ops.py +66 -20
  310. mindspore/numpy/math_ops.py +142 -139
  311. mindspore/numpy/utils_const.py +2 -2
  312. mindspore/offline_debug/convert_async.py +2 -2
  313. mindspore/ops/_grad_experimental/__init__.py +7 -5
  314. mindspore/ops/_grad_experimental/grad_array_ops.py +231 -348
  315. mindspore/ops/{_grad → _grad_experimental}/grad_base.py +1 -33
  316. mindspore/ops/{_grad → _grad_experimental}/grad_comm_ops.py +25 -13
  317. mindspore/ops/{_grad/__init__.py → _grad_experimental/grad_debug_ops.py} +15 -7
  318. mindspore/ops/{_grad → _grad_experimental}/grad_implementations.py +17 -11
  319. mindspore/ops/_grad_experimental/grad_inner_ops.py +33 -52
  320. mindspore/ops/_grad_experimental/grad_math_ops.py +151 -1224
  321. mindspore/ops/_grad_experimental/grad_nn_ops.py +141 -414
  322. mindspore/ops/{_grad → _grad_experimental}/grad_quant_ops.py +10 -6
  323. mindspore/ops/_grad_experimental/grad_sparse.py +317 -2
  324. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -13
  325. mindspore/ops/{_grad → _grad_experimental}/taylor_rule.py +1 -1
  326. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  327. mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
  328. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +406 -0
  329. mindspore/{_extends/graph_kernel/expanders/complex/__init__.py → ops/_op_impl/_custom_op/flash_attention/constants.py} +27 -8
  330. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +467 -0
  331. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +563 -0
  332. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +193 -0
  333. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +435 -0
  334. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
  335. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +45 -0
  336. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +67 -0
  337. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +62 -0
  338. mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
  339. mindspore/ops/_op_impl/aicpu/__init__.py +41 -1
  340. mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
  341. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  342. mindspore/ops/_op_impl/aicpu/cast.py +52 -0
  343. mindspore/ops/_op_impl/aicpu/coalesce.py +2 -0
  344. mindspore/ops/_op_impl/aicpu/col2im.py +3 -1
  345. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  346. mindspore/ops/_op_impl/aicpu/dropout_genmask.py +6 -0
  347. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  348. mindspore/ops/_op_impl/aicpu/eye.py +4 -4
  349. mindspore/ops/_op_impl/aicpu/fft_with_size.py +6 -0
  350. mindspore/ops/_op_impl/aicpu/fill_diagonal.py +5 -0
  351. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  352. mindspore/ops/_op_impl/aicpu/im2col.py +3 -5
  353. mindspore/ops/_op_impl/aicpu/lgamma.py +1 -0
  354. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  355. mindspore/ops/_op_impl/aicpu/lu.py +39 -0
  356. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  357. mindspore/ops/_op_impl/aicpu/masked_scatter.py +1 -0
  358. mindspore/ops/_op_impl/aicpu/masked_select_grad.py +3 -0
  359. mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
  360. mindspore/ops/_op_impl/aicpu/matrix_power.py +6 -1
  361. mindspore/ops/_op_impl/aicpu/median.py +1 -0
  362. mindspore/ops/_op_impl/aicpu/multinomial.py +9 -9
  363. mindspore/ops/_op_impl/aicpu/not_equal.py +0 -5
  364. mindspore/ops/_op_impl/aicpu/pad_v3.py +3 -1
  365. mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +2 -0
  366. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  367. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  368. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  369. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  370. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  371. mindspore/ops/_op_impl/aicpu/resize_bilinear_grad.py +0 -1
  372. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +0 -6
  373. mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +0 -7
  374. mindspore/ops/_op_impl/aicpu/scatter_nd.py +2 -0
  375. mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
  376. mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
  377. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  378. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  379. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -4
  380. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -4
  381. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  382. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  383. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  384. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  385. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  386. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d.py +14 -6
  387. mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +22 -8
  388. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +11 -6
  389. mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +21 -10
  390. mindspore/ops/_op_impl/tbe/__init__.py +6 -4
  391. mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
  392. mindspore/ops/_op_impl/tbe/avg_pool.py +2 -2
  393. mindspore/ops/_op_impl/tbe/avg_pool_3d.py +3 -3
  394. mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +4 -4
  395. mindspore/ops/_op_impl/tbe/avg_pool_ds.py +2 -2
  396. mindspore/ops/_op_impl/tbe/avg_pool_grad.py +3 -3
  397. mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +3 -3
  398. mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
  399. mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +2 -2
  400. mindspore/ops/_op_impl/tbe/bn_infer.py +2 -2
  401. mindspore/ops/_op_impl/tbe/bn_infer_ds.py +3 -2
  402. mindspore/ops/_op_impl/tbe/broadcast_to.py +1 -1
  403. mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +3 -3
  404. mindspore/ops/_op_impl/tbe/expand_dims.py +1 -1
  405. mindspore/ops/_op_impl/tbe/gather_v2.py +56 -0
  406. mindspore/ops/_op_impl/tbe/im2col.py +4 -4
  407. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  408. mindspore/ops/_op_impl/tbe/mem_set.py +38 -0
  409. mindspore/ops/_op_impl/tbe/scatter_nd_add.py +3 -0
  410. mindspore/ops/_op_impl/tbe/scatter_nd_d.py +1 -1
  411. mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
  412. mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +2 -2
  413. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  414. mindspore/ops/_primitive_cache.py +1 -1
  415. mindspore/ops/_tracefunc.py +241 -0
  416. mindspore/ops/_utils/utils.py +10 -2
  417. mindspore/ops/_vmap/vmap_array_ops.py +5 -3
  418. mindspore/ops/_vmap/vmap_base.py +5 -4
  419. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  420. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  421. mindspore/ops/_vmap/vmap_grad_nn_ops.py +11 -6
  422. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  423. mindspore/ops/_vmap/vmap_nn_ops.py +135 -11
  424. mindspore/ops/arg_dtype_cast.py +54 -0
  425. mindspore/ops/composite/__init__.py +7 -5
  426. mindspore/ops/composite/base.py +78 -34
  427. mindspore/ops/composite/math_ops.py +5 -695
  428. mindspore/ops/composite/multitype_ops/_compile_utils.py +403 -97
  429. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +28 -22
  430. mindspore/ops/composite/multitype_ops/add_impl.py +69 -7
  431. mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
  432. mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
  433. mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -0
  434. mindspore/ops/composite/multitype_ops/div_impl.py +1 -0
  435. mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -0
  436. mindspore/ops/composite/multitype_ops/getitem_impl.py +48 -10
  437. mindspore/ops/composite/multitype_ops/greater_equal_impl.py +2 -0
  438. mindspore/ops/composite/multitype_ops/greater_impl.py +2 -0
  439. mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -0
  440. mindspore/ops/composite/multitype_ops/less_equal_impl.py +2 -0
  441. mindspore/ops/composite/multitype_ops/less_impl.py +2 -0
  442. mindspore/ops/composite/multitype_ops/logic_not_impl.py +2 -2
  443. mindspore/ops/composite/multitype_ops/mod_impl.py +1 -0
  444. mindspore/ops/composite/multitype_ops/mul_impl.py +1 -0
  445. mindspore/ops/composite/multitype_ops/negative_impl.py +1 -0
  446. mindspore/ops/composite/multitype_ops/not_in_impl.py +1 -0
  447. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  448. mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
  449. mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -0
  450. mindspore/ops/composite/multitype_ops/setitem_impl.py +10 -7
  451. mindspore/ops/composite/multitype_ops/sub_impl.py +1 -0
  452. mindspore/ops/composite/multitype_ops/uadd_impl.py +2 -0
  453. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  454. mindspore/ops/deprecated.py +304 -0
  455. mindspore/ops/function/__init__.py +41 -4
  456. mindspore/ops/function/array_func.py +1108 -467
  457. mindspore/ops/function/clip_func.py +94 -27
  458. mindspore/ops/function/debug_func.py +3 -1
  459. mindspore/ops/function/grad/grad_func.py +82 -73
  460. mindspore/ops/function/image_func.py +28 -12
  461. mindspore/ops/function/linalg_func.py +135 -39
  462. mindspore/ops/function/math_func.py +3779 -894
  463. mindspore/ops/function/nn_func.py +1584 -657
  464. mindspore/ops/function/parameter_func.py +13 -3
  465. mindspore/ops/function/random_func.py +247 -153
  466. mindspore/ops/function/sparse_func.py +14 -11
  467. mindspore/ops/function/sparse_unary_func.py +173 -47
  468. mindspore/ops/function/spectral_func.py +8 -4
  469. mindspore/ops/function/vmap_func.py +8 -7
  470. mindspore/ops/functional.py +47 -16
  471. mindspore/ops/op_info_register.py +346 -86
  472. mindspore/ops/operations/__init__.py +38 -22
  473. mindspore/ops/operations/_grad_ops.py +145 -149
  474. mindspore/ops/operations/_inner_ops.py +298 -56
  475. mindspore/ops/operations/_ms_kernel.py +3 -3
  476. mindspore/ops/operations/_quant_ops.py +24 -28
  477. mindspore/ops/operations/_rl_inner_ops.py +9 -7
  478. mindspore/ops/operations/_scalar_ops.py +115 -0
  479. mindspore/ops/operations/_sequence_ops.py +148 -10
  480. mindspore/ops/operations/_tensor_array.py +1 -1
  481. mindspore/ops/operations/_thor_ops.py +2 -2
  482. mindspore/ops/operations/array_ops.py +1239 -561
  483. mindspore/ops/operations/comm_ops.py +166 -90
  484. mindspore/ops/operations/control_ops.py +3 -3
  485. mindspore/ops/operations/custom_ops.py +124 -102
  486. mindspore/ops/operations/debug_ops.py +24 -11
  487. mindspore/ops/operations/image_ops.py +86 -71
  488. mindspore/ops/operations/inner_ops.py +18 -13
  489. mindspore/ops/operations/linalg_ops.py +30 -11
  490. mindspore/ops/operations/math_ops.py +1730 -435
  491. mindspore/ops/operations/nn_ops.py +1953 -943
  492. mindspore/ops/operations/other_ops.py +65 -43
  493. mindspore/ops/operations/random_ops.py +258 -98
  494. mindspore/ops/operations/rl_ops.py +4 -36
  495. mindspore/ops/operations/sparse_ops.py +38 -33
  496. mindspore/ops/operations/spectral_ops.py +8 -4
  497. mindspore/ops/primitive.py +66 -44
  498. mindspore/ops/signature.py +5 -5
  499. mindspore/parallel/_auto_parallel_context.py +80 -19
  500. mindspore/parallel/_cost_model_context.py +42 -0
  501. mindspore/parallel/_offload_context.py +162 -72
  502. mindspore/parallel/_parallel_serialization.py +2 -2
  503. mindspore/parallel/_ps_context.py +16 -4
  504. mindspore/parallel/_recovery_context.py +2 -1
  505. mindspore/parallel/_tensor.py +15 -13
  506. mindspore/parallel/_transformer/layers.py +8 -6
  507. mindspore/parallel/_transformer/loss.py +1 -0
  508. mindspore/parallel/_transformer/moe.py +7 -7
  509. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  510. mindspore/parallel/_transformer/transformer.py +34 -14
  511. mindspore/parallel/_utils.py +36 -14
  512. mindspore/parallel/algo_parameter_config.py +114 -20
  513. mindspore/parallel/checkpoint_transform.py +16 -18
  514. mindspore/parallel/shard.py +16 -13
  515. mindspore/profiler/__init__.py +1 -1
  516. mindspore/profiler/common/struct_type.py +3 -3
  517. mindspore/profiler/common/util.py +3 -2
  518. mindspore/profiler/envprofiling.py +11 -4
  519. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  520. mindspore/profiler/parser/ascend_flops_generator.py +94 -0
  521. mindspore/profiler/parser/ascend_fpbp_generator.py +76 -0
  522. mindspore/profiler/parser/ascend_hccl_generator.py +288 -0
  523. mindspore/profiler/parser/ascend_msprof_exporter.py +213 -0
  524. mindspore/profiler/parser/ascend_msprof_generator.py +199 -0
  525. mindspore/profiler/parser/ascend_op_generator.py +276 -0
  526. mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
  527. mindspore/profiler/parser/ascend_timeline_generator.py +110 -54
  528. mindspore/profiler/parser/base_timeline_generator.py +11 -7
  529. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +45 -46
  530. mindspore/profiler/parser/flops_parser.py +15 -11
  531. mindspore/profiler/parser/framework_parser.py +92 -73
  532. mindspore/profiler/parser/hccl_parser.py +16 -12
  533. mindspore/profiler/parser/integrator.py +22 -11
  534. mindspore/profiler/parser/memory_usage_parser.py +36 -11
  535. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  536. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  537. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  538. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  539. mindspore/profiler/parser/optime_parser.py +1 -1
  540. mindspore/profiler/parser/profiler_info.py +4 -5
  541. mindspore/profiler/parser/step_trace_parser.py +11 -14
  542. mindspore/profiler/profiling.py +678 -377
  543. mindspore/rewrite/api/node.py +211 -54
  544. mindspore/rewrite/api/node_type.py +5 -0
  545. mindspore/rewrite/api/pattern_engine.py +22 -23
  546. mindspore/rewrite/api/scoped_value.py +20 -17
  547. mindspore/rewrite/api/symbol_tree.py +252 -106
  548. mindspore/rewrite/api/tree_node_helper.py +3 -0
  549. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  550. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  551. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  552. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +97 -46
  553. mindspore/rewrite/common/rewrite_elog.py +5 -1
  554. mindspore/rewrite/namer.py +51 -51
  555. mindspore/rewrite/namespace.py +14 -5
  556. mindspore/{ops/bprop_mindir → rewrite/node}/__init__.py +9 -4
  557. mindspore/rewrite/node/call_function.py +79 -0
  558. mindspore/rewrite/node/cell_container.py +135 -0
  559. mindspore/rewrite/node/control_flow.py +88 -0
  560. mindspore/rewrite/{node.py → node/node.py} +313 -247
  561. mindspore/rewrite/node/node_manager.py +254 -0
  562. mindspore/rewrite/node/node_topological_manager.py +243 -0
  563. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  564. mindspore/rewrite/parsers/assign_parser.py +225 -239
  565. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  566. mindspore/rewrite/parsers/class_def_parser.py +179 -218
  567. mindspore/rewrite/parsers/constant_parser.py +9 -6
  568. mindspore/rewrite/parsers/container_parser.py +9 -7
  569. mindspore/rewrite/parsers/for_parser.py +36 -15
  570. mindspore/rewrite/parsers/function_def_parser.py +23 -20
  571. mindspore/rewrite/parsers/if_parser.py +28 -24
  572. mindspore/rewrite/parsers/module_parser.py +202 -25
  573. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  574. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  575. mindspore/rewrite/parsers/return_parser.py +6 -6
  576. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  577. mindspore/rewrite/sparsify/sparsify.py +4 -1
  578. mindspore/rewrite/sparsify/utils.py +11 -5
  579. mindspore/rewrite/symbol_tree.py +577 -732
  580. mindspore/rewrite/symbol_tree_builder.py +9 -175
  581. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  582. mindspore/run_check/_check_version.py +46 -39
  583. mindspore/run_check/run_check.py +3 -2
  584. mindspore/{scipy/sparse → safeguard}/__init__.py +4 -5
  585. mindspore/safeguard/rewrite_obfuscation.py +517 -0
  586. mindspore/scipy/__init__.py +1 -1
  587. mindspore/scipy/linalg.py +67 -61
  588. mindspore/scipy/ops.py +5 -41
  589. mindspore/scipy/ops_grad.py +3 -2
  590. mindspore/scipy/ops_wrapper.py +5 -5
  591. mindspore/scipy/optimize/line_search.py +8 -8
  592. mindspore/scipy/optimize/linear_sum_assignment.py +4 -4
  593. mindspore/scipy/optimize/minimize.py +16 -12
  594. mindspore/scipy/utils.py +1 -52
  595. mindspore/scipy/utils_const.py +4 -4
  596. mindspore/train/__init__.py +4 -4
  597. mindspore/train/_utils.py +13 -5
  598. mindspore/train/amp.py +410 -148
  599. mindspore/train/anf_ir_pb2.py +16 -4
  600. mindspore/train/callback/_backup_and_restore.py +8 -11
  601. mindspore/train/callback/_callback.py +80 -3
  602. mindspore/train/callback/_checkpoint.py +82 -51
  603. mindspore/train/callback/_early_stop.py +12 -15
  604. mindspore/train/callback/_history.py +1 -1
  605. mindspore/train/callback/_lambda_callback.py +13 -13
  606. mindspore/train/callback/_landscape.py +21 -17
  607. mindspore/train/callback/_loss_monitor.py +9 -10
  608. mindspore/train/callback/_on_request_exit.py +16 -33
  609. mindspore/train/callback/_reduce_lr_on_plateau.py +21 -24
  610. mindspore/train/callback/_summary_collector.py +44 -30
  611. mindspore/train/callback/_time_monitor.py +62 -12
  612. mindspore/train/data_sink.py +10 -16
  613. mindspore/train/dataset_helper.py +154 -86
  614. mindspore/train/loss_scale_manager.py +14 -9
  615. mindspore/train/metrics/__init__.py +10 -2
  616. mindspore/train/metrics/accuracy.py +1 -1
  617. mindspore/train/metrics/auc.py +1 -1
  618. mindspore/train/metrics/bleu_score.py +2 -2
  619. mindspore/train/metrics/confusion_matrix.py +14 -14
  620. mindspore/train/metrics/cosine_similarity.py +3 -3
  621. mindspore/train/metrics/dice.py +1 -1
  622. mindspore/train/metrics/fbeta.py +1 -1
  623. mindspore/train/metrics/hausdorff_distance.py +8 -6
  624. mindspore/train/metrics/mean_surface_distance.py +5 -4
  625. mindspore/train/metrics/metric.py +49 -17
  626. mindspore/train/metrics/occlusion_sensitivity.py +4 -4
  627. mindspore/train/metrics/perplexity.py +1 -1
  628. mindspore/train/metrics/precision.py +2 -2
  629. mindspore/train/metrics/recall.py +2 -3
  630. mindspore/train/metrics/roc.py +7 -7
  631. mindspore/train/metrics/root_mean_square_surface_distance.py +5 -4
  632. mindspore/train/metrics/topk.py +7 -4
  633. mindspore/train/mind_ir_pb2.py +193 -48
  634. mindspore/train/model.py +377 -133
  635. mindspore/train/serialization.py +697 -245
  636. mindspore/train/summary/_summary_adapter.py +5 -2
  637. mindspore/train/summary/_writer_pool.py +4 -3
  638. mindspore/train/summary/summary_record.py +25 -23
  639. mindspore/train/train_thor/convert_utils.py +39 -23
  640. mindspore/train/train_thor/dataset_helper.py +4 -3
  641. mindspore/train/train_thor/model_thor.py +8 -8
  642. mindspore/version.py +1 -1
  643. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/METADATA +7 -8
  644. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/RECORD +647 -818
  645. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/entry_points.txt +0 -1
  646. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  647. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  648. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  649. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  650. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  651. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  652. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  653. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  654. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  655. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  656. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  657. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  658. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  659. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  660. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  661. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  662. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  663. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  664. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  665. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  666. mindspore/_extends/graph_kernel/expander.py +0 -80
  667. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -57
  668. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  669. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  670. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  671. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  672. mindspore/_extends/graph_kernel/expanders/bias_add_grad.py +0 -49
  673. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  674. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  675. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  676. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  677. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  678. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  679. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  680. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  681. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  682. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  683. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  684. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  685. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  686. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  687. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  688. mindspore/_extends/graph_kernel/expanders/gather.py +0 -43
  689. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  690. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  691. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  692. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  693. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  694. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  695. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  696. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  697. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  698. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  699. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  700. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  701. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  702. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  703. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  704. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  705. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  706. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  707. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  708. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  709. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  710. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  711. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  712. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  713. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  714. mindspore/_extends/graph_kernel/expanders/tile.py +0 -54
  715. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  716. mindspore/_extends/parse/jit_fallback_modules.py +0 -51
  717. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  718. mindspore/dataset/engine/graphdata.py +0 -1586
  719. mindspore/include/api/net.h +0 -142
  720. mindspore/ops/_grad/grad_array_ops.py +0 -1347
  721. mindspore/ops/_grad/grad_clip_ops.py +0 -84
  722. mindspore/ops/_grad/grad_debug_ops.py +0 -68
  723. mindspore/ops/_grad/grad_inner_ops.py +0 -235
  724. mindspore/ops/_grad/grad_math_ops.py +0 -1684
  725. mindspore/ops/_grad/grad_nn_ops.py +0 -1529
  726. mindspore/ops/_grad/grad_other_ops.py +0 -89
  727. mindspore/ops/_grad/grad_sequence_ops.py +0 -296
  728. mindspore/ops/_grad/grad_sparse.py +0 -323
  729. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -249
  730. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -195
  731. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  732. mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
  733. mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
  734. mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +0 -19
  735. mindspore/ops/bprop_mindir/Argmax_bprop.mindir +0 -15
  736. mindspore/ops/bprop_mindir/Argmin_bprop.mindir +0 -15
  737. mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +0 -19
  738. mindspore/ops/bprop_mindir/Assign_bprop.mindir +0 -17
  739. mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +0 -150
  740. mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +0 -66
  741. mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
  742. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -15
  743. mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
  744. mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +0 -28
  745. mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
  746. mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +0 -33
  747. mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +0 -306
  748. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -13
  749. mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
  750. mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
  751. mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +0 -240
  752. mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +0 -247
  753. mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +0 -247
  754. mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +0 -315
  755. mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +0 -278
  756. mindspore/ops/bprop_mindir/DType_bprop.mindir +0 -14
  757. mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +0 -58
  758. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -13
  759. mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +0 -23
  760. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  761. mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +0 -15
  762. mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
  763. mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
  764. mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +0 -25
  765. mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +0 -18
  766. mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +0 -27
  767. mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
  768. mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
  769. mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
  770. mindspore/ops/bprop_mindir/DynamicShape_bprop.mindir +0 -14
  771. mindspore/ops/bprop_mindir/Elu_bprop.mindir +0 -16
  772. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  773. mindspore/ops/bprop_mindir/Equal_bprop.mindir +0 -19
  774. mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +0 -58
  775. mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +0 -16
  776. mindspore/ops/bprop_mindir/Flatten_bprop.mindir +0 -54
  777. mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +0 -19
  778. mindspore/ops/bprop_mindir/GatherD_bprop.mindir +0 -26
  779. mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +0 -57
  780. mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
  781. mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +0 -19
  782. mindspore/ops/bprop_mindir/Greater_bprop.mindir +0 -19
  783. mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +0 -16
  784. mindspore/ops/bprop_mindir/HSwish_bprop.mindir +0 -16
  785. mindspore/ops/bprop_mindir/IOU_bprop.mindir +0 -19
  786. mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
  787. mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +0 -15
  788. mindspore/ops/bprop_mindir/IsInf_bprop.mindir +0 -15
  789. mindspore/ops/bprop_mindir/IsNan_bprop.mindir +0 -15
  790. mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +0 -126
  791. mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +0 -15
  792. mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +0 -30
  793. mindspore/ops/bprop_mindir/LRN_bprop.mindir +0 -43
  794. mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
  795. mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +0 -19
  796. mindspore/ops/bprop_mindir/Less_bprop.mindir +0 -19
  797. mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +0 -23
  798. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -13
  799. mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +0 -23
  800. mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +0 -19
  801. mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +0 -15
  802. mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +0 -21
  803. mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +0 -74
  804. mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +0 -74
  805. mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +0 -75
  806. mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +0 -65
  807. mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
  808. mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
  809. mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
  810. mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +0 -27
  811. mindspore/ops/bprop_mindir/Mish_bprop.mindir +0 -35
  812. mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
  813. mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
  814. mindspore/ops/bprop_mindir/NonZero_bprop.mindir +0 -14
  815. mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +0 -19
  816. mindspore/ops/bprop_mindir/OneHot_bprop.mindir +0 -26
  817. mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +0 -14
  818. mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
  819. mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
  820. mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
  821. mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +0 -29
  822. mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +0 -82
  823. mindspore/ops/bprop_mindir/Range_bprop.mindir +0 -22
  824. mindspore/ops/bprop_mindir/Rank_bprop.mindir +0 -14
  825. mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +0 -16
  826. mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
  827. mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +0 -19
  828. mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +0 -19
  829. mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +0 -20
  830. mindspore/ops/bprop_mindir/Reshape_bprop.mindir +0 -60
  831. mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +0 -29
  832. mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +0 -89
  833. mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +0 -52
  834. mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +0 -22
  835. mindspore/ops/bprop_mindir/Round_bprop.mindir +0 -15
  836. mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
  837. mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
  838. mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +0 -22
  839. mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +0 -24
  840. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -22
  841. mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
  842. mindspore/ops/bprop_mindir/SeLU_bprop.mindir +0 -21
  843. mindspore/ops/bprop_mindir/Select_bprop.mindir +0 -31
  844. mindspore/ops/bprop_mindir/Shape_bprop.mindir +0 -14
  845. mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +0 -21
  846. mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
  847. mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +0 -16
  848. mindspore/ops/bprop_mindir/Sign_bprop.mindir +0 -15
  849. mindspore/ops/bprop_mindir/Slice_bprop.mindir +0 -26
  850. mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +0 -36
  851. mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  852. mindspore/ops/bprop_mindir/Softplus_bprop.mindir +0 -16
  853. mindspore/ops/bprop_mindir/Softsign_bprop.mindir +0 -33
  854. mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
  855. mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +0 -28
  856. mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +0 -23
  857. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  858. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  859. mindspore/ops/bprop_mindir/Split_bprop.mindir +0 -22
  860. mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +0 -54
  861. mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +0 -95
  862. mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +0 -98
  863. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -29
  864. mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
  865. mindspore/ops/bprop_mindir/Tanh_bprop.mindir +0 -66
  866. mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +0 -22
  867. mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +0 -29
  868. mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +0 -14
  869. mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
  870. mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
  871. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -23
  872. mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +0 -19
  873. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -20
  874. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -16
  875. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -22
  876. mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +0 -32
  877. mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +0 -38
  878. mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +0 -15
  879. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  880. mindspore/rewrite/node_visitor.py +0 -44
  881. mindspore/rewrite/topological_manager.py +0 -203
  882. mindspore/scipy/sparse/linalg.py +0 -192
  883. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
  884. {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,8 @@ import re
24
24
  import hashlib
25
25
  import inspect
26
26
  import types
27
- import importlib
27
+ from collections import namedtuple
28
+ from typing import NamedTuple
28
29
  from textwrap import dedent
29
30
  import numpy
30
31
 
@@ -42,16 +43,12 @@ from mindspore.common.parameter import Parameter
42
43
  from mindspore.common import mutable
43
44
  from mindspore.common._register_for_adapter import ms_adapter_registry
44
45
  from mindspore._checkparam import is_stub_tensor
45
- from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace, ClassAttrNamespace
46
+ from mindspore.ops._tracefunc import _PackSourceBuilder
47
+ from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace
46
48
  from .resources import parse_object_map, ops_symbol_map, convert_object_map, convert_class_to_function_map, trope_ns
47
49
  from .resources import SYMBOL_UNDEFINE
48
- from .jit_fallback_modules import jit_fallback_third_party_modules_whitelist
49
50
  from ...common.api import _convert_python_data
50
51
 
51
- # Define return value
52
- RET_SUCCESS = 0
53
- RET_FAILURE = 0xFF
54
-
55
52
  # Define resolve type
56
53
  RESOLVE_TYPE_NONE = 0 # Resolve None.
57
54
  RESOLVE_TYPE_FUNCTION = 1 # Resolve function.
@@ -61,7 +58,9 @@ RESOLVE_TYPE_CLASS_INSTANCE = 4 # Resolve the class instance of common c
61
58
  RESOLVE_TYPE_NAMESPACE_INSTANCE = 5 # Resolve the namespace instance.
62
59
  RESOLVE_TYPE_NUMPY_INT_NUMBER = 6 # Resolve numpy int number.
63
60
  RESOLVE_TYPE_NUMPY_FLOAT_NUMBER = 7 # Resolve numpy float number.
64
- RESOLVE_TYPE_NUMPY_BOOL_NUMBER = 8 # Resolve numpy bool number.
61
+ RESOLVE_TYPE_NUMPY_BOOL_NUMBER = 8 # Resolve numpy bool number.
62
+ RESOLVE_TYPE_TUPLE = 9 # Resolve builtin tuple type.
63
+ RESOLVE_TYPE_LIST = 10 # Resolve builtin list type.
65
64
  RESOLVE_TYPE_INVALID = 0xFF # Resolve invalid.
66
65
 
67
66
  # Define the class instance detail type
@@ -82,9 +81,10 @@ AST_SUB_TYPE_AND = 3 # ast.And
82
81
  AST_SUB_TYPE_OR = 4 # ast.Or
83
82
  AST_SUB_TYPE_NAME = 5 # ast.Name
84
83
  AST_SUB_TYPE_TUPLE = 6 # ast.Tuple
85
- AST_SUB_TYPE_SUBSCRIPT = 7 # ast.Subscript
86
- AST_SUB_TYPE_STARRED = 8 # ast.Starred
87
- AST_SUB_TYPE_ATTRIBUTE = 9 # ast.Attribute
84
+ AST_SUB_TYPE_LIST = 7 # ast.List
85
+ AST_SUB_TYPE_SUBSCRIPT = 8 # ast.Subscript
86
+ AST_SUB_TYPE_STARRED = 9 # ast.Starred
87
+ AST_SUB_TYPE_ATTRIBUTE = 10 # ast.Attribute
88
88
  AST_SUB_TYPE_UNKNOWN = 0xFF # unknown
89
89
 
90
90
  # Syntax support
@@ -94,6 +94,11 @@ SYNTAX_UNSUPPORTED_EXTERNAL_TYPE = 2 # Unsupported external type
94
94
  SYNTAX_HYBRID_TYPE = 3 # Hybrid type
95
95
  SYNTAX_UNSUPPORTED_NAMESPACE = 4 # Unsupported namespace
96
96
 
97
+ # Module source location
98
+ MODULE_FROM_MINDSPORE = 0
99
+ MODULE_FROM_THIRDPARTY = 1
100
+ MODULE_FROM_USER_WORKSPACE = 2
101
+
97
102
 
98
103
  # Process expr statement white list
99
104
  # Add as needed, eg: "clear", "extend", "insert", "remove", "reverse"
@@ -118,16 +123,18 @@ _hybrid_type = (
118
123
 
119
124
  # Unsupported python builtin type in JIT Fallback.
120
125
  _fallback_unsupported_python_builtin_type = (
121
- compile, eval, exec, input, open, delattr, setattr, super, staticmethod, classmethod, __import__,
122
- memoryview, property,
126
+ compile, eval, exec
123
127
  )
124
128
 
125
- _unsupported_convert_data_type = (
126
- mutable,
129
+ _modules_from_mindspore = (
130
+ "mindspore", "msadapter", "mindocr", "mindyolo", "mindnlp", "mindcv", "mindspore_rec", "mindaudio", "mindone",
131
+ "mindspore_rl", "mindformers", "mindpet", "mindpose", "mindface", "mindsearch", "mindinsight", "mindelec",
132
+ "mindflow", "mindsponge", "mindearth", "sciai", "mindquantum", "mindarmour", "mindpandas", "mindvision",
133
+ "mindspore_gl", "mindspore_federated", "mindspore_gs", "mindspore_serving", "mindspore_xai", "mindspore_hub",
134
+ "ringmo_framework", "troubleshooter", "mindtorch",
127
135
  )
128
136
 
129
137
  _global_params = {}
130
- _local_value_nodes = {}
131
138
 
132
139
 
133
140
  def _convert_map():
@@ -146,6 +153,23 @@ def parse_cb(func, parse_method=None):
146
153
  return Parser(func, parse_method)
147
154
 
148
155
 
156
+ def get_attr_from_object(obj, attr_name=None):
157
+ """
158
+ Get attr from object.
159
+
160
+ Args:
161
+ obj(Object): Instance of class or module.
162
+ attr_name(str): Attribute name to check.
163
+
164
+ Returns:
165
+ Object, obj's attr.
166
+ """
167
+
168
+ if obj is not None and attr_name is not None and hasattr(obj, attr_name):
169
+ return getattr(obj, attr_name)
170
+ return None
171
+
172
+
149
173
  def get_parse_method_of_class(obj, parse_method=None):
150
174
  """
151
175
  Get parse method of class.
@@ -157,7 +181,7 @@ def get_parse_method_of_class(obj, parse_method=None):
157
181
  Returns:
158
182
  Function, obj's method.
159
183
  """
160
- method = None
184
+
161
185
  method_name = None
162
186
  if parse_method is not None:
163
187
  method_name = parse_method
@@ -166,10 +190,8 @@ def get_parse_method_of_class(obj, parse_method=None):
166
190
  method_name = "_backward_hook_construct"
167
191
  else:
168
192
  method_name = "construct"
169
- if method_name is not None:
170
- if hasattr(obj, method_name):
171
- method = getattr(obj, method_name)
172
- return method
193
+
194
+ return get_attr_from_object(obj, method_name)
173
195
 
174
196
 
175
197
  def get_bprop_method_of_class(obj, parse_method=None):
@@ -183,42 +205,11 @@ def get_bprop_method_of_class(obj, parse_method=None):
183
205
  Returns:
184
206
  Function, obj's method.
185
207
  """
186
- method = None
208
+
187
209
  if isinstance(obj, nn.Cell):
188
210
  method_name = "bprop"
189
- if hasattr(obj, method_name):
190
- method = getattr(obj, method_name)
191
- return method
192
-
193
-
194
- def get_env_support_modules():
195
- """Get support modules from environment variable."""
196
- support_modules = os.getenv('MS_DEV_SUPPORT_MODULES')
197
- if support_modules is None:
198
- return []
199
- env_support_modules = []
200
- modules = support_modules.split(',')
201
- for module in modules:
202
- try:
203
- module_spec = importlib.util.find_spec(module)
204
- except (ModuleNotFoundError, ValueError):
205
- module = module[0:module.rfind('.')]
206
- module_spec = importlib.util.find_spec(module)
207
- finally:
208
- pass
209
- if module_spec is None:
210
- raise ModuleNotFoundError(f"Cannot find module: {module}. " \
211
- f"Please check if {module} is installed, or if MS_DEV_SUPPORT_MODULES is set correctly.")
212
- # Add the outermost module.
213
- env_support_modules.append(module.split('.')[0])
214
- logger.debug(f"Get support modules from env: {env_support_modules}")
215
- return env_support_modules
216
-
217
-
218
- # The fallback feature is enabled in default.
219
- # Not support change the flag during the process is alive.
220
- support_fallback_ = os.getenv('MS_DEV_ENABLE_FALLBACK')
221
- support_modules_ = get_env_support_modules()
211
+ return get_attr_from_object(obj, method_name)
212
+ return None
222
213
 
223
214
 
224
215
  def resolve_symbol(namespace, symbol):
@@ -245,14 +236,6 @@ def resolve_symbol(namespace, symbol):
245
236
  if getattr(resolve_, "__hash__") is None:
246
237
  return resolve_
247
238
 
248
- # Raise a proper error if not using JIT Fallback feature.
249
- if support_fallback_ == '0':
250
- # Raise NotImplementedError when parsing the numpy methods, but not the numpy constant.
251
- if namespace.name == "numpy" and \
252
- isinstance(resolve_, (types.FunctionType, types.MethodType, types.ModuleType)):
253
- raise NotImplementedError("Mindspore does not support to use the numpy methods " \
254
- "within the construct() or @jit decorated function in graph mode.")
255
-
256
239
  # If need trope the obj
257
240
  convert_map = _convert_map()
258
241
  if resolve_ in convert_map:
@@ -315,7 +298,7 @@ def get_object_key(obj):
315
298
  return obj_id, obj_key
316
299
 
317
300
 
318
- def is_class_member(node):
301
+ def is_class_member_of_self(node):
319
302
  """Check the attr is class member variable."""
320
303
  type_ = node.__class__.__name__
321
304
  if type_ == "Attribute":
@@ -360,6 +343,10 @@ def get_obj_type(obj):
360
343
  obj_type = RESOLVE_TYPE_CLASS_TYPE
361
344
  elif isinstance(obj, Namespace):
362
345
  obj_type = RESOLVE_TYPE_NAMESPACE_INSTANCE
346
+ elif isinstance(obj, tuple):
347
+ obj_type = RESOLVE_TYPE_TUPLE
348
+ elif isinstance(obj, list):
349
+ obj_type = RESOLVE_TYPE_LIST
363
350
  elif _is_class_instance(obj):
364
351
  obj_type = RESOLVE_TYPE_CLASS_INSTANCE
365
352
  elif _is_numpy_int_number(obj):
@@ -369,14 +356,7 @@ def get_obj_type(obj):
369
356
  elif _is_numpy_bool_number(obj):
370
357
  obj_type = RESOLVE_TYPE_NUMPY_BOOL_NUMBER
371
358
  else:
372
- # Raise a proper error if not using Fallback feature.
373
- if support_fallback_ != '0':
374
- obj_type = RESOLVE_TYPE_INVALID
375
- else:
376
- # Here for ndarray, just print its shape (in case of the array to large and print many data in screen)
377
- is_ndarray = type(obj).__name__ == 'ndarray' and hasattr(obj, 'shape')
378
- raise TypeError(f"Not support for this object with type '{type(obj)}' and "
379
- f"{'shape' if is_ndarray else 'value'} '{obj.shape if is_ndarray else obj}'.")
359
+ obj_type = RESOLVE_TYPE_INVALID
380
360
  return obj_type
381
361
 
382
362
 
@@ -469,8 +449,14 @@ def create_instance(cls_type, params=None):
469
449
  return obj
470
450
 
471
451
 
472
- def convert_class_to_function(cls_str):
452
+ def convert_class_to_function(cls_str, cls_obj):
473
453
  """Convert class to function."""
454
+ if issubclass(cls_obj, (Parameter, ops.MultitypeFuncGraph)):
455
+ raise ValueError(f"Failed to compile in GRAPH_MODE because creating {cls_str} instances is not "
456
+ f"supported in 'construct' or @jit decorated function. Try to create {cls_str} "
457
+ f"instances external such as initialized in the method '__init__' before assigning. "
458
+ f"For more details, please refer to "
459
+ f"https://www.mindspore.cn/docs/zh-CN/r2.2/design/dynamic_graph_and_static_graph.html \n")
474
460
  return convert_class_to_function_map.get(cls_str)
475
461
 
476
462
 
@@ -491,8 +477,8 @@ def ms_isinstance(x, cmp_type):
491
477
  list: mstype.List,
492
478
  tuple: mstype.Tuple,
493
479
  dict: mstype.Dict,
494
- Tensor: mstype.tensor_type,
495
- Parameter: mstype.ref_type,
480
+ Tensor: mstype.TensorType,
481
+ Parameter: mstype.RefType,
496
482
  slice: mstype.Slice,
497
483
  }
498
484
  if cmp_type not in pytype_to_mstype:
@@ -536,14 +522,6 @@ def get_module_namespace(obj):
536
522
  return mod_namespace
537
523
 
538
524
 
539
- def get_class_attr_namespace_symbol(obj):
540
- """Get class namespace."""
541
- logger.debug("get class namespace, object: %r", obj)
542
- class_namespace = ClassAttrNamespace(obj)
543
- logger.debug("class namespace: %r", class_namespace)
544
- return class_namespace
545
-
546
-
547
525
  def get_class_member_namespace_symbol(obj):
548
526
  """Get obj class member type."""
549
527
  logger.debug("get class instance namespace, object: %r", obj)
@@ -574,6 +552,7 @@ def get_obj_defined_from_obj_type(obj_type):
574
552
  "List": list,
575
553
  "Tuple": tuple,
576
554
  "Dictionary": dict,
555
+ "NamedTuple": NamedTuple,
577
556
  }
578
557
 
579
558
  return obj_type_defined_map.get(obj_type)
@@ -596,6 +575,16 @@ def get_adapter_tensor_attr(name):
596
575
  return None, False
597
576
 
598
577
 
578
+ def is_adapter_tensor_class(cls):
579
+ """Check if cls is adapter tensor type."""
580
+ return cls in (Tensor, ms_adapter_registry.tensor)
581
+
582
+
583
+ def is_adapter_parameter_class(cls):
584
+ """Check if cls is adapter parameter type."""
585
+ return cls in (Parameter, ms_adapter_registry.parameter)
586
+
587
+
599
588
  def get_ms_class_name(cls):
600
589
  """Get the name of the class instance decorated with jit_class."""
601
590
  if isinstance(cls, type):
@@ -618,6 +607,12 @@ def convert_to_ms_cootensor(data):
618
607
  return COOTensor(coo_tensor=data)
619
608
 
620
609
 
610
+ def convert_to_namedtuple(type_name, key_sequeue, value_sequeue):
611
+ """Convert C++ namedtuple to python object namedtuple."""
612
+ logger.debug(f"type_name: {type_name}, key_sequeue: {key_sequeue}, value_sequeue: {value_sequeue}")
613
+ return namedtuple(type_name, [*key_sequeue])(*value_sequeue)
614
+
615
+
621
616
  def get_object_description(obj, fname, fline):
622
617
  """Return method or funcition description for error report, include location, class name, etc."""
623
618
  if isinstance(obj, types.MethodType):
@@ -693,6 +688,8 @@ def get_ast_type(node):
693
688
  ast_type = AST_SUB_TYPE_NAME
694
689
  elif isinstance(node, ast.Tuple):
695
690
  ast_type = AST_SUB_TYPE_TUPLE
691
+ elif isinstance(node, ast.List):
692
+ ast_type = AST_SUB_TYPE_LIST
696
693
  elif isinstance(node, ast.Subscript):
697
694
  ast_type = AST_SUB_TYPE_SUBSCRIPT
698
695
  elif isinstance(node, ast.Starred):
@@ -767,51 +764,29 @@ def get_args(node):
767
764
  return args
768
765
 
769
766
 
770
- def _in_sys_path(file_path):
771
- """To check if file_path is under system path."""
772
- for path in list(sys.path):
773
- if file_path.startswith(path):
774
- return True
775
- return False
776
-
777
-
778
- def is_third_party_module(value):
779
- """To check if value is a third-party module."""
780
- # Check if value is a module or package, check if module file is under the sys path.
781
- if not inspect.ismodule(value) or not hasattr(value, '__file__') or not _in_sys_path(value.__file__):
782
- return False
783
-
784
- # Get module leftmost name.
785
- if not hasattr(value, '__name__'):
786
- return False
787
- module_name = value.__name__
788
- module_leftmost_name = module_name.split('.')[0]
789
- # Ignore mindspore package.
790
- if module_leftmost_name == "mindspore":
791
- return False
792
- # Check if module is in whitelist.
793
- if module_leftmost_name in support_modules_:
794
- logger.debug(f"Found support modules from env: {module_name}")
795
- return True
796
- if module_leftmost_name in jit_fallback_third_party_modules_whitelist:
797
- logger.debug(f"Found third-party module: {module_name}")
798
- return True
799
- return False
800
-
801
-
802
767
  def _convert_stub_tensor(data):
803
768
  """Convert stub tensor output to tensor"""
804
769
  if is_stub_tensor(data):
805
770
  return data.stub_sync()
806
771
  if isinstance(data, tuple):
772
+ # Handle namedtuple since its type is tuple.
773
+ if hasattr(data, "_fields"):
774
+ type_name = data.__class__.__name__
775
+ data_dict = data._asdict()
776
+ fields = data_dict.keys()
777
+ return namedtuple(type_name, fields)(**_convert_stub_tensor(data_dict))
807
778
  return tuple(_convert_stub_tensor(x) for x in data)
808
779
  if isinstance(data, list):
809
780
  # Keep the list object not change.
810
- for _, input_data in enumerate(data):
811
- input_data = _convert_stub_tensor(input_data)
781
+ for i in range(len(data)):
782
+ data[i] = _convert_stub_tensor(data[i])
812
783
  return data
813
784
  if isinstance(data, dict):
814
- return dict((_convert_stub_tensor(key), _convert_stub_tensor(value)) for key, value in data.items())
785
+ # Keep the dict object not change.
786
+ keys = tuple(data.keys())
787
+ for key in keys:
788
+ data[_convert_stub_tensor(key)] = _convert_stub_tensor(data.pop(key))
789
+ return data
815
790
  return data
816
791
 
817
792
 
@@ -825,53 +800,188 @@ def eval_script(exp_str, params):
825
800
  # Eval function parses the expression argument and evaluates it as a python expression.
826
801
  global_params = params[0]
827
802
  local_params = params[1]
828
- logger.debug(f"exp_str: '{exp_str}', params: '{params}'")
829
803
  try:
830
804
  local_params = _convert_python_data(local_params)
831
805
  res = eval(exp_str, global_params, local_params)
832
806
  res = _convert_stub_tensor(res)
833
- logger.debug(f"eval res: '{res}'")
834
807
  except Exception as e:
835
- error_info = f"When eval '{exp_str}' by using JIT Fallback feature, an error occurred: " + str(e) + \
836
- ". You can try to turn off JIT Fallback feature by 'export MS_DEV_ENABLE_FALLBACK=0'."
808
+ error_info = f"When eval '{exp_str}' by using JIT Fallback feature, an error occurred: " + str(e)
837
809
  logger.debug(error_info)
838
810
  raise e
839
811
 
840
- # Convert set to tuple.
841
- if isinstance(res, set):
842
- return tuple(res)
843
812
  return res
844
813
 
845
814
 
846
- def get_script_ids(script):
815
+ def get_script_id_attrs(script):
847
816
  """Get the ids for the ast of script"""
848
817
  ast_tokens = asttokens.ASTTokens(script, parse=True)
849
818
  ast_tree = ast_tokens.tree
850
819
  ast_str = astunparse.dump(ast_tree)
851
820
  ids = re.findall(r"id='(.+?)'", ast_str)
852
- return set(ids)
853
-
854
-
855
- def merge_global_params(global_dict):
856
- """Merge the global parameter."""
857
- logger.debug(f'merge global_dict: {global_dict}')
858
- _global_params.update(global_dict)
821
+ id_sets = set(ids)
822
+ pattern = r"Attribute\(\s*value.*?id='(.*?)'.*?attr='(.*?)'.*?\)"
823
+ matches = re.findall(pattern, ast_str, re.DOTALL)
824
+ id_attrs = ["{}.{}".format(match[0], match[1]) for match in matches]
825
+ logger.debug(f'id_attrs: {id_attrs}')
826
+ id_attrs_set = set(id_attrs)
827
+ logger.debug(f'id_attrs_set: {id_attrs_set}')
828
+ res = id_sets.union(id_attrs_set)
829
+ logger.debug(f'res: {res}')
830
+ return res
859
831
 
860
832
 
861
833
  def get_global_params():
862
834
  """Get the global parameter."""
863
- logger.debug(f'get global_dict: {_global_params}')
835
+ logger.debug(f"get global_dict: {_global_params}")
864
836
  return _global_params
865
837
 
866
838
 
867
- def set_local_variable(name, value):
868
- """Set the local variable with name and value."""
869
- _local_value_nodes[name] = value
839
+ def get_dtype(name: str):
840
+ """get mstype from name"""
841
+ return get_attr_from_object(mstype, name)
842
+
870
843
 
844
+ class ThirdPartyLibraryChecker:
845
+ """
846
+ Check if a module or function is from third-party libraries.
871
847
 
872
- def get_local_variable(name):
873
- """Get the local variable according name."""
874
- return _local_value_nodes.get(name)
848
+ Rules for detecting third-party libraries:
849
+
850
+ 1. The mindspore module and its suite are not third-party libraries.
851
+
852
+ 2. Python built-in modules and python standard libraries are third-party libraries.
853
+
854
+ 3. Modules with module names provided by MS_JIT_IGNORE_MODULES are treated as third-party
855
+ libraries, but those provided by MS_JIT_MODULES are not.
856
+
857
+ 4. Third-party libraries have 'site-packages' in their installation path.
858
+ """
859
+ def __init__(self):
860
+ self.user_workspace_dir = self.get_top_level_module_path(os.getcwd())
861
+ self.python_builtin_dir = os.path.abspath(os.path.dirname(os.__file__))
862
+
863
+ @staticmethod
864
+ def get_jit_modules():
865
+ """Modules in jit_modules require jit."""
866
+ jit_modules = []
867
+ # Get jit modules from environment variable.
868
+ env_modules = os.getenv('MS_JIT_MODULES')
869
+ if env_modules is not None:
870
+ jit_modules = env_modules.split(',')
871
+ return jit_modules
872
+
873
+ @staticmethod
874
+ def get_jit_ignore_modules():
875
+ """Modules in jit_ignore_modules do not need jit."""
876
+ jit_ignore_modules = []
877
+ # Get jit ignore modules from environment variable.
878
+ env_modules = os.getenv('MS_JIT_IGNORE_MODULES')
879
+ if env_modules is not None:
880
+ jit_ignore_modules = env_modules.split(',')
881
+ # sys.builtin_module_names do not need jit.
882
+ jit_ignore_modules.extend(sys.builtin_module_names)
883
+ return jit_ignore_modules
884
+
885
+ @staticmethod
886
+ def is_mindspore_related_module(module):
887
+ """Check if module is mindspore module or its suite."""
888
+ module_leftmost_name = module.__name__.split('.')[0]
889
+ return module_leftmost_name in _modules_from_mindspore
890
+
891
+ def get_top_level_module_path(self, module_path):
892
+ """Get the path of the top level package of the current working directory."""
893
+ module_abspath = os.path.abspath(module_path)
894
+ upper_path = os.path.abspath(os.path.dirname(module_abspath))
895
+ if module_abspath == upper_path:
896
+ return module_abspath
897
+ # Check whether __init__.py exists in the upper directory.
898
+ init_path = os.path.join(upper_path, '__init__.py')
899
+ # If the path does not exist or is accessed without permission, os.path.isfile returns false.
900
+ if os.path.isfile(init_path):
901
+ module_abspath = self.get_top_level_module_path(upper_path)
902
+ return module_abspath
903
+
904
+ def is_third_party_module(self, module):
905
+ """Check if module is a third-party library."""
906
+ module_leftmost_name = module.__name__.split('.')[0]
907
+ # Modules in jit_ignore_modules are treated as third-party libraries, such as sys.builtin_module_names.
908
+ jit_ignore_modules = self.get_jit_ignore_modules()
909
+ if module_leftmost_name in jit_ignore_modules:
910
+ logger.debug(f"Found third-party module '{module_leftmost_name}' in jit_ignore_modules.")
911
+ return True
912
+ # Modules in jit_modules require jit and they are considered to be in user workspace.
913
+ jit_modules = self.get_jit_modules()
914
+ if module_leftmost_name in jit_modules:
915
+ logger.debug(f"Found user-defined module '{module_leftmost_name}' in jit_modules.")
916
+ return False
917
+ # A modules without __file__ attribute is considered to be in user workspace.
918
+ if not hasattr(module, '__file__'):
919
+ return False
920
+ module_path = os.path.abspath(module.__file__)
921
+ # Python builtin modules are treated as third-party libraries.
922
+ if module_path.startswith(self.python_builtin_dir):
923
+ logger.debug(f"Found python builtin module '{module.__name__}', which is a third-party module.")
924
+ return True
925
+ # Check if module is under user workspace directory.
926
+ if module_path.startswith(self.user_workspace_dir):
927
+ logger.debug(f"Found module '{module.__name__}' in user_workspace_dir: {self.user_workspace_dir}")
928
+ return False
929
+ # Third-party modules are under site-packages.
930
+ split_path = module_path.split(os.path.sep)
931
+ result = "site-packages" in split_path
932
+ if result:
933
+ logger.debug(f"Found third-party module '{module.__name__}' in path '{module_path}'")
934
+ return result
935
+
936
+ def get_module_source_location(self, module):
937
+ """Get the source location of the module."""
938
+ if self.is_mindspore_related_module(module):
939
+ return MODULE_FROM_MINDSPORE
940
+ if self.is_third_party_module(module):
941
+ return MODULE_FROM_THIRDPARTY
942
+ return MODULE_FROM_USER_WORKSPACE
943
+
944
+ def is_third_party_module_or_function(self, value):
945
+ """Check if value is from a third-party library."""
946
+ if inspect.ismodule(value):
947
+ module = value
948
+ elif (isinstance(value, types.FunctionType) and not hasattr(value, "__jit_function__")) or \
949
+ (isinstance(value, types.MethodType) and not hasattr(value.__func__, "__jit_function__")):
950
+ if value in _convert_map():
951
+ return False
952
+ module = inspect.getmodule(value)
953
+ if module is None:
954
+ return False
955
+ else:
956
+ return False
957
+ return self.get_module_source_location(module) == MODULE_FROM_THIRDPARTY
958
+
959
+
960
+ third_party_checker = ThirdPartyLibraryChecker()
961
+
962
+
963
+ def is_from_third_party_library(value):
964
+ """Check if value is from a third-party library."""
965
+ return third_party_checker.is_third_party_module_or_function(value)
966
+
967
+
968
+ def get_const_abs(obj):
969
+ """Get absolute value of const object."""
970
+ return abs(obj)
971
+
972
+
973
+ def get_const_round(obj):
974
+ """Get round value of const object."""
975
+ if isinstance(obj, tuple):
976
+ val = obj[0]
977
+ point_num = obj[1]
978
+ return round(val, point_num)
979
+ return round(obj)
980
+
981
+
982
+ def get_const_len(obj):
983
+ """Get the length of const object."""
984
+ return len(obj)
875
985
 
876
986
 
877
987
  class Parser:
@@ -887,6 +997,7 @@ class Parser:
887
997
 
888
998
  def __init__(self, fn: (types.FunctionType, types.MethodType), parse_method=None) -> None:
889
999
  self.fn = inspect.unwrap(fn.__func__ if isinstance(fn, types.MethodType) else fn)
1000
+ self.pack_builder = _PackSourceBuilder(fn) if hasattr(fn, "pack_fn") else None
890
1001
  self.parse_method = parse_method
891
1002
  self.line_offset = 0
892
1003
  self.filename: str = self.fn.__code__.co_filename
@@ -923,9 +1034,10 @@ class Parser:
923
1034
  if value == item:
924
1035
  logger.debug(f"Found unsupported internal type: '{value}'.")
925
1036
  return True
1037
+ if ms_adapter_registry.is_registered and value == ms_adapter_registry.tensor:
1038
+ return True
926
1039
  return False
927
1040
 
928
-
929
1041
  @staticmethod
930
1042
  def is_hybrid_type(value):
931
1043
  """To check if hybrid type, such as print"""
@@ -936,15 +1048,29 @@ class Parser:
936
1048
  return False
937
1049
 
938
1050
  @staticmethod
939
- def is_unsupported_convert_data_type(value):
940
- """Check whether the value don't support to be converted in C++."""
941
- return value in _unsupported_convert_data_type
942
-
943
- def get_convert_object_for_unsupported_type(self, value):
1051
+ def get_convert_object_for_mutable(value):
944
1052
  """Get the convert object for value which don't support to be converted in C++."""
945
- if not self.is_unsupported_convert_data_type(value):
946
- return value
947
- return _convert_map().get(value)
1053
+ # The value may not be supported to do ConvertData such as api 'mutable',
1054
+ # and we get its converted object from python.
1055
+ if inspect.isfunction(value) and value in (mutable,):
1056
+ return _convert_map().get(value)
1057
+ return value
1058
+
1059
+ def get_syntax_support_type(self, value):
1060
+ """Get syntax support type."""
1061
+ if is_from_third_party_library(value):
1062
+ logger.debug(f"value: '{value}' is from third party library.")
1063
+ return SYNTAX_UNSUPPORTED_NAMESPACE
1064
+ if inspect.isclass(value) or isinstance(value, _builtin_function_or_method_type):
1065
+ if self.is_unsupported_internal_type(value):
1066
+ return SYNTAX_UNSUPPORTED_INTERNAL_TYPE
1067
+ if self.is_unsupported_namespace(value):
1068
+ return SYNTAX_UNSUPPORTED_NAMESPACE
1069
+ if self.is_unsupported_python_builtin_type(value):
1070
+ return SYNTAX_UNSUPPORTED_EXTERNAL_TYPE
1071
+ if self.is_hybrid_type(value):
1072
+ return SYNTAX_HYBRID_TYPE
1073
+ return SYNTAX_SUPPORTED
948
1074
 
949
1075
  def parse(self):
950
1076
  """Parse the function or method."""
@@ -953,26 +1079,26 @@ class Parser:
953
1079
  type(self.fn).__name__ == 'cython_function_or_method':
954
1080
  attr = 'source'
955
1081
  try:
956
- source = inspect.getsourcelines(self.fn)
1082
+ source_lines = inspect.getsourcelines(self.fn)
957
1083
  if context.get_context('support_binary') and \
958
1084
  '/mindspore/' not in self.filename and '\\mindspore\\' not in self.filename and \
959
- (not hasattr(self.fn, attr) or getattr(self.fn, attr) != source):
1085
+ (not hasattr(self.fn, attr) or getattr(self.fn, attr) != source_lines):
960
1086
  if not os.access(self.filename, os.W_OK):
961
1087
  raise PermissionError(f"Don't have the write permission on the file {self.filename}.")
962
1088
  with open(self.filename, 'a') as f:
963
1089
  f.write(f"\n# Set source attribute for function {self.function_name} "
964
1090
  f"to support run so or pyc file in Graph Mode."
965
- f"\nsetattr({self.function_name}, '{attr}', {source})\n")
966
- setattr(self.fn, attr, source)
1091
+ f"\nsetattr({self.function_name}, '{attr}', {source_lines})\n")
1092
+ setattr(self.fn, attr, source_lines)
967
1093
  except (OSError, TypeError) as e:
968
1094
  if hasattr(self.fn, attr):
969
- source = getattr(self.fn, attr)
1095
+ source_lines = getattr(self.fn, attr)
970
1096
  else:
971
1097
  if e.__str__() == "could not get source code":
972
1098
  raise OSError(f"Mindspore can not compile temporary source code in terminal. "
973
1099
  f"Please write source code to a python file and run the file.")
974
1100
  raise e
975
- self.lines, self.line_offset = source
1101
+ self.lines, self.line_offset = source_lines
976
1102
  original_src = ''.join(self.lines)
977
1103
  hexstr = hashlib.sha256(original_src.encode()).hexdigest()
978
1104
  ast_tokens_cache = Parser.ast_cache.get(hexstr)
@@ -982,6 +1108,8 @@ class Parser:
982
1108
  len(original_src.split('\n')[0]) - len(src.split('\n')[0])
983
1109
  logger.debug("Get source: %s", src)
984
1110
  try:
1111
+ if self.pack_builder:
1112
+ src = self.pack_builder.get_code_source()
985
1113
  ast_tokens = asttokens.ASTTokens(src, parse=True)
986
1114
  except IndentationError as idt_err:
987
1115
  idt_err.filename = self.filename
@@ -998,58 +1126,79 @@ class Parser:
998
1126
  logger.error("Fn type is invalid")
999
1127
  return None, None
1000
1128
 
1001
- def is_constant_value(self, var, attr):
1129
+ def is_jit_supported_attribute(self, var, attr):
1002
1130
  """Check whether the value is a constant."""
1003
1131
  if var in self.global_namespace:
1004
1132
  module = self.global_namespace[var]
1005
1133
  if hasattr(module, attr):
1006
1134
  value = getattr(module, attr)
1007
1135
  # Check if value is constant.
1008
- return isinstance(value, (int, float, bool))
1136
+ if isinstance(value, (int, float, bool)):
1137
+ return True
1138
+ # Check if value in convert_map.
1139
+ if isinstance(value, (tuple, list, dict)) or getattr(value, "__hash__") is None:
1140
+ return False
1141
+ if inspect.ismodule(module) and value in _convert_map():
1142
+ return True
1009
1143
  return False
1010
1144
 
1011
1145
  def get_namespace_symbol(self, var: str):
1012
- """Get symbol type and namespace and symbol."""
1013
- if var in self.closure_namespace:
1014
- logger.debug(f"Found '{var}' in closure_namespace {self.closure_namespace.__str__()}")
1015
- return self.closure_namespace, var
1016
- if var in self.global_namespace:
1017
- logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}")
1018
- value = self.global_namespace[var]
1019
- if self.is_unsupported_namespace(value):
1020
- error_info = f"The builtin function '{var}' of python is not supported in graph mode."
1021
- return None, error_info
1022
- return self.global_namespace, var
1023
-
1024
- error_info = f"The name '{var}' is not defined in function '{self.function_name}'."
1025
- return None, error_info
1026
-
1027
- def get_builtin_namespace_symbol(self, var: str):
1028
1146
  """Get mindspore builtin namespace and symbol."""
1029
1147
  if var in self.closure_namespace:
1030
1148
  logger.debug(f"Found '{var}' in closure_namespace {self.closure_namespace.__str__()}.")
1031
- return self.closure_namespace, var
1149
+ try:
1150
+ value = self.closure_namespace[var]
1151
+ return self.closure_namespace, var, value
1152
+ except UnboundLocalError:
1153
+ return self.closure_namespace, var, None
1032
1154
  if var in self.global_namespace:
1033
1155
  logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
1034
1156
  value = self.global_namespace[var]
1035
1157
  value_str = value.__name__ if hasattr(value, '__name__') else str(value)
1036
1158
  logger.debug(f"value: {type(value)}, '{value_str}', hasattr(__name__): {hasattr(value, '__name__')}.")
1037
1159
  # To check if allowed to support.
1038
- if self.is_unsupported_internal_type(value):
1039
- support_info = self.global_namespace, var, value, SYNTAX_UNSUPPORTED_INTERNAL_TYPE
1040
- elif self.is_unsupported_python_builtin_type(value):
1041
- support_info = self.global_namespace, var, value, SYNTAX_UNSUPPORTED_EXTERNAL_TYPE
1042
- elif self.is_unsupported_namespace(value) or is_third_party_module(value):
1043
- support_info = self.global_namespace, var, value, SYNTAX_UNSUPPORTED_NAMESPACE
1044
- elif self.is_hybrid_type(value):
1045
- support_info = self.global_namespace, var, value, SYNTAX_HYBRID_TYPE
1046
- else:
1047
- support_info = self.global_namespace, var, value, SYNTAX_SUPPORTED
1160
+ value = self.get_convert_object_for_mutable(value)
1161
+ support_type = self.get_syntax_support_type(value)
1162
+ support_info = self.global_namespace, var, value, support_type
1048
1163
  return support_info
1049
1164
 
1050
- error_info = f"The name '{var}' is not defined, or not supported in graph mode."
1051
- logger.debug(f"error_info: {error_info}")
1052
- return None, error_info
1165
+ logger.debug(f"The name '{var}' is an undefined symbol.")
1166
+ return None, None, None
1167
+
1168
+ def check_third_party_library_side_effect(self, var, attr):
1169
+ """Check if value is from a third-party library."""
1170
+ logger.debug(f"var '{var}'.")
1171
+ logger.debug(f"attr '{attr}'.")
1172
+ side_effect_attrs = {
1173
+ "numpy": {"load", "save", "savez", "savez_compressed", "loadtxt", "savetxt", "genfromtxt", "fromregex",
1174
+ "fromstring", "tofile", "memmap", "open_memmap", "open", "exists", "abspath", "DataSource",
1175
+ "format"},
1176
+ "pandas": {"read_csv", "to_csv", "read_excel", "to_excel", "read_json", "to_json", "read_html", "to_html",
1177
+ "read_sql", "to_sql", "read_feather", "to_feather", "read_parquet", "to_parquet", "read_pickle",
1178
+ "to_pickle"},
1179
+ "scipy": {"loadmat", "savemat"},
1180
+ "csv": {"reader", "writer"},
1181
+ "json": {"load", "loads", "dump", "dumps"},
1182
+ "pickle": {"load", "loads", "dump", "dumps"},
1183
+ "h5py": {"File", "Group", "Dataset"},
1184
+ "os": {"listdir", "isfile", "exists", "isdir", "mkdir", "remove", "rmdir", "symlink", "rename"},
1185
+ "shutil": {"copy", "copy2", "copytree", "move", "rmtree"},
1186
+ "pathlib": {"Path", "mkdir", "rmdir", "unlink", "rename", "symlink_to"},
1187
+ "glob": {"glob", "iglob"},
1188
+ "zipfile": {"zipfile", "ZipFile", "write", "extractall"},
1189
+ "troubleshooter": {"save", "load"}}
1190
+ if var in self.global_namespace:
1191
+ logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
1192
+ value = self.global_namespace[var]
1193
+ value_str = value.__name__ if hasattr(value, '__name__') else str(value)
1194
+ logger.debug(f"value: {type(value)}, '{value_str}', hasattr(__name__): {hasattr(value, '__name__')}.")
1195
+ value = self.get_convert_object_for_mutable(value)
1196
+ if is_from_third_party_library(value):
1197
+ logger.debug(f"value: '{value}' is from third party library.")
1198
+ # pylint: disable=get-dict-value-exception
1199
+ if value_str in side_effect_attrs and attr in side_effect_attrs[value_str]:
1200
+ return True
1201
+ return False
1053
1202
 
1054
1203
  def analyze_super(self, class_type_node, subclass_instance):
1055
1204
  """Analyze super and return a class instance."""
@@ -1074,6 +1223,41 @@ class Parser:
1074
1223
  f"but got {subclass_instance}.")
1075
1224
  return super(target_father_class, subclass_instance)
1076
1225
 
1226
+ def get_jit_comments(self, start_lineno, end_lineno):
1227
+ """
1228
+ Get the comments at the location, starting with '# @jit'.
1229
+
1230
+ Args:
1231
+ start_lineno: The start line no.
1232
+ end_lineno: The end line no.
1233
+
1234
+ Returns:
1235
+ list[str], the comment strings.
1236
+ """
1237
+ comments = []
1238
+ # Ignore if to fetch the whole lines's comments.
1239
+ if start_lineno == 1 and end_lineno == len(self.lines):
1240
+ return comments
1241
+
1242
+ # Add previous line comment.
1243
+ if start_lineno > 1:
1244
+ previous_lineno = start_lineno - 1
1245
+ previous_line = self.lines[previous_lineno - 1]
1246
+ striped_previous_line = previous_line.strip(' \t')
1247
+ result = re.search(r'^#\s*@jit[^\'\"]*?(?=\n|$)', striped_previous_line)
1248
+ if result:
1249
+ comments.append(result.group())
1250
+
1251
+ # Add line ending comments.
1252
+ if start_lineno >= 1:
1253
+ while start_lineno <= end_lineno:
1254
+ line = self.lines[start_lineno - 1]
1255
+ result = re.search(r'#\s*@jit[^\'\"]*?(?=\n|$)', line)
1256
+ if result:
1257
+ comments.append(result.group())
1258
+ start_lineno += 1
1259
+ return comments
1260
+
1077
1261
  def get_source_code(self, start_lineno, start_colno, end_lineno, end_colno):
1078
1262
  """
1079
1263
  Get the script source at the location.
@@ -1087,6 +1271,7 @@ class Parser:
1087
1271
  Returns:
1088
1272
  str, the source string.
1089
1273
  """
1274
+
1090
1275
  if start_lineno == 0:
1091
1276
  logger.critical('start_lineno should not be 0')
1092
1277
 
@@ -1133,11 +1318,12 @@ class Parser:
1133
1318
  start_lineno, start_colno = start_node.first_token.start
1134
1319
  end_lineno, end_colno = end_node.last_token.end
1135
1320
  expr_src = self.get_source_code(start_lineno, start_colno, end_lineno, end_colno)
1321
+ comments = self.get_jit_comments(start_lineno, end_lineno)
1136
1322
  start_lineno += self.line_offset - 1
1137
1323
  start_colno += self.col_offset
1138
1324
  end_lineno += self.line_offset - 1
1139
1325
  end_colno += self.col_offset
1140
- res = res + [start_lineno, start_colno, end_lineno, end_colno, expr_src]
1326
+ res = res + [start_lineno, start_colno, end_lineno, end_colno, expr_src, comments]
1141
1327
  else:
1142
- res = res + [0, 0, 0, 0, '']
1328
+ res = res + [0, 0, 0, 0, '', []]
1143
1329
  return res