mindspore 2.1.0__cp38-none-any.whl → 2.2.10__cp38-none-any.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 (569) hide show
  1. mindspore/.commit_id +1 -1
  2. mindspore/__init__.py +4 -1
  3. mindspore/_akg/akg/build_module.py +5 -6
  4. mindspore/_akg/akg/composite/build_module.py +46 -19
  5. mindspore/_akg/akg/composite/split_stitch.py +10 -11
  6. mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
  7. mindspore/_akg/akg/tvm/api.py +4 -3
  8. mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
  9. mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
  10. mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
  11. mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
  12. mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
  13. mindspore/_akg/akg/tvm/build_module.py +16 -1
  14. mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
  15. mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
  16. mindspore/_akg/akg/tvm/ir_builder.py +1 -1
  17. mindspore/_akg/akg/tvm/module.py +1 -2
  18. mindspore/_akg/akg/tvm/stmt.py +2 -2
  19. mindspore/_akg/akg/utils/ascend_profilier/__init__.py +0 -0
  20. mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
  21. mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
  22. mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
  23. mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
  24. mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
  25. mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
  26. mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
  27. mindspore/_akg/akg/utils/kernel_exec.py +98 -274
  28. mindspore/_akg/akg/utils/result_analysis.py +4 -24
  29. mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
  30. mindspore/_akg/akg/utils/util.py +38 -0
  31. mindspore/_c_dataengine.cpython-38-aarch64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-38-aarch64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-38-aarch64-linux-gnu.so +0 -0
  34. mindspore/_check_jit_forbidden_api.py +3 -1
  35. mindspore/_checkparam.py +23 -29
  36. mindspore/_extends/graph_kernel/__init__.py +0 -1
  37. mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
  38. mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
  39. mindspore/_extends/graph_kernel/splitter.py +4 -11
  40. mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
  41. mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
  42. mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
  43. mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
  44. mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
  45. mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
  46. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
  47. mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
  48. mindspore/_extends/parse/__init__.py +12 -15
  49. mindspore/_extends/parse/namespace.py +7 -33
  50. mindspore/_extends/parse/parser.py +61 -71
  51. mindspore/_extends/parse/resources.py +1 -1
  52. mindspore/_extends/parse/standard_method.py +74 -104
  53. mindspore/_extends/parse/trope.py +1 -1
  54. mindspore/_extends/remote/kernel_build_server.py +25 -7
  55. mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
  56. mindspore/_install_custom.py +43 -0
  57. mindspore/_mindspore_offline_debug.cpython-38-aarch64-linux-gnu.so +0 -0
  58. mindspore/amp.py +47 -11
  59. mindspore/bin/cache_admin +0 -0
  60. mindspore/bin/cache_server +0 -0
  61. mindspore/boost/boost.py +1 -8
  62. mindspore/boost/boost_cell_wrapper.py +3 -2
  63. mindspore/boost/grad_accumulation.py +1 -1
  64. mindspore/boost/group_loss_scale_manager.py +8 -7
  65. mindspore/common/__init__.py +5 -3
  66. mindspore/common/_jit_fallback_utils.py +6 -0
  67. mindspore/common/_register_for_adapter.py +2 -0
  68. mindspore/common/_register_for_tensor.py +2 -2
  69. mindspore/common/_stub_tensor.py +13 -0
  70. mindspore/common/_utils.py +13 -0
  71. mindspore/common/api.py +174 -259
  72. mindspore/common/auto_dynamic_shape.py +494 -0
  73. mindspore/common/dtype.py +18 -11
  74. mindspore/common/dump.py +6 -4
  75. mindspore/common/initializer.py +14 -14
  76. mindspore/common/jit_config.py +33 -15
  77. mindspore/common/lazy_inline.py +126 -7
  78. mindspore/common/mindir_util.py +101 -0
  79. mindspore/common/parameter.py +51 -41
  80. mindspore/common/seed.py +4 -4
  81. mindspore/common/sparse_tensor.py +13 -14
  82. mindspore/common/tensor.py +243 -165
  83. mindspore/communication/__init__.py +7 -4
  84. mindspore/communication/_comm_helper.py +83 -4
  85. mindspore/communication/management.py +152 -84
  86. mindspore/config/op_info.config +14 -3
  87. mindspore/config/super_bar_config.json +4 -2
  88. mindspore/context.py +152 -61
  89. mindspore/dataset/__init__.py +5 -5
  90. mindspore/dataset/audio/__init__.py +2 -2
  91. mindspore/dataset/audio/transforms.py +52 -52
  92. mindspore/dataset/callback/ds_callback.py +16 -2
  93. mindspore/dataset/core/config.py +68 -51
  94. mindspore/dataset/engine/cache_client.py +28 -5
  95. mindspore/dataset/engine/datasets.py +250 -112
  96. mindspore/dataset/engine/datasets_audio.py +43 -211
  97. mindspore/dataset/engine/datasets_standard_format.py +16 -35
  98. mindspore/dataset/engine/datasets_text.py +43 -67
  99. mindspore/dataset/engine/datasets_user_defined.py +86 -100
  100. mindspore/dataset/engine/datasets_vision.py +219 -1029
  101. mindspore/dataset/engine/iterators.py +11 -4
  102. mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
  103. mindspore/dataset/engine/obs/util.py +3 -0
  104. mindspore/dataset/engine/samplers.py +1 -1
  105. mindspore/dataset/engine/validators.py +19 -5
  106. mindspore/dataset/text/__init__.py +3 -3
  107. mindspore/dataset/text/transforms.py +101 -127
  108. mindspore/dataset/text/utils.py +205 -138
  109. mindspore/dataset/transforms/__init__.py +1 -1
  110. mindspore/dataset/transforms/py_transforms_util.py +40 -12
  111. mindspore/dataset/transforms/transforms.py +95 -40
  112. mindspore/dataset/utils/browse_dataset.py +8 -2
  113. mindspore/dataset/utils/line_reader.py +17 -19
  114. mindspore/dataset/vision/__init__.py +3 -3
  115. mindspore/dataset/vision/c_transforms.py +6 -3
  116. mindspore/dataset/vision/transforms.py +409 -287
  117. mindspore/dataset/vision/utils.py +13 -14
  118. mindspore/dataset/vision/validators.py +11 -1
  119. mindspore/experimental/map_parameter.py +14 -0
  120. mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
  121. mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
  122. mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
  123. mindspore/experimental/optim/lr_scheduler.py +1427 -0
  124. mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
  125. mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
  126. mindspore/gen_ops.py +273 -0
  127. mindspore/include/OWNERS +0 -1
  128. mindspore/include/api/data_type.h +2 -1
  129. mindspore/include/api/graph.h +0 -15
  130. mindspore/include/api/kernel.h +2 -0
  131. mindspore/include/api/kernel_api.h +37 -12
  132. mindspore/include/api/model.h +17 -14
  133. mindspore/include/api/status.h +8 -3
  134. mindspore/include/api/types.h +37 -4
  135. mindspore/include/c_api/ms/abstract.h +67 -0
  136. mindspore/include/c_api/ms/attribute.h +197 -0
  137. mindspore/include/c_api/ms/base/handle_types.h +43 -0
  138. mindspore/include/c_api/ms/base/macros.h +32 -0
  139. mindspore/include/c_api/ms/base/status.h +33 -0
  140. mindspore/include/c_api/ms/base/types.h +282 -0
  141. mindspore/include/c_api/ms/context.h +102 -0
  142. mindspore/include/c_api/ms/graph.h +160 -0
  143. mindspore/include/c_api/ms/node.h +606 -0
  144. mindspore/include/c_api/ms/tensor.h +161 -0
  145. mindspore/include/c_api/ms/value.h +84 -0
  146. mindspore/include/dataset/constants.h +6 -5
  147. mindspore/include/dataset/execute.h +23 -13
  148. mindspore/include/dataset/text.h +26 -26
  149. mindspore/include/dataset/transforms.h +13 -13
  150. mindspore/include/dataset/vision.h +60 -60
  151. mindspore/include/dataset/vision_ascend.h +5 -6
  152. mindspore/include/dataset/vision_lite.h +17 -17
  153. mindspore/include/mindapi/base/type_id.h +1 -0
  154. mindspore/include/mindapi/base/types.h +1 -0
  155. mindspore/lib/libdnnl.so.2 +0 -0
  156. mindspore/lib/libjemalloc.so.2 +0 -0
  157. mindspore/lib/libmindspore.so +0 -0
  158. mindspore/lib/libmindspore_backend.so +0 -0
  159. mindspore/lib/libmindspore_common.so +0 -0
  160. mindspore/lib/libmindspore_core.so +0 -0
  161. mindspore/lib/libmindspore_glog.so.0 +0 -0
  162. mindspore/lib/libmindspore_gpr.so.15 +0 -0
  163. mindspore/lib/libmindspore_grpc++.so.1 +0 -0
  164. mindspore/lib/libmindspore_grpc.so.15 +0 -0
  165. mindspore/lib/libmindspore_shared_lib.so +0 -0
  166. mindspore/lib/libnnacl.so +0 -0
  167. mindspore/lib/libopencv_core.so.4.5 +0 -0
  168. mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
  169. mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
  170. mindspore/lib/libps_cache.so +0 -0
  171. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
  172. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
  173. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
  174. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
  175. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  176. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  177. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  178. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  179. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
  180. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
  181. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
  182. mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
  183. mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
  184. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
  185. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
  186. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8928 -0
  187. mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
  188. mindspore/lib/plugin/ascend/libakg.so +0 -0
  189. mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
  190. mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
  191. mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
  192. mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
  193. mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
  194. mindspore/lib/plugin/cpu/libakg.so +0 -0
  195. mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
  196. mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
  197. mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
  198. mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
  199. mindspore/nn/__init__.py +0 -2
  200. mindspore/nn/cell.py +313 -74
  201. mindspore/nn/dynamic_lr.py +21 -21
  202. mindspore/nn/layer/activation.py +22 -30
  203. mindspore/nn/layer/basic.py +15 -13
  204. mindspore/nn/layer/channel_shuffle.py +1 -1
  205. mindspore/nn/layer/container.py +271 -9
  206. mindspore/nn/layer/conv.py +323 -204
  207. mindspore/nn/layer/dense.py +8 -5
  208. mindspore/nn/layer/embedding.py +33 -27
  209. mindspore/nn/layer/flash_attention.py +141 -88
  210. mindspore/nn/layer/image.py +8 -6
  211. mindspore/nn/layer/math.py +16 -25
  212. mindspore/nn/layer/normalization.py +107 -66
  213. mindspore/nn/layer/padding.py +1 -1
  214. mindspore/nn/layer/pooling.py +131 -109
  215. mindspore/nn/layer/rnn_cells.py +27 -22
  216. mindspore/nn/layer/rnns.py +13 -16
  217. mindspore/nn/layer/thor_layer.py +1 -1
  218. mindspore/nn/layer/transformer.py +221 -154
  219. mindspore/nn/learning_rate_schedule.py +9 -1
  220. mindspore/nn/loss/loss.py +235 -174
  221. mindspore/nn/optim/ada_grad.py +2 -1
  222. mindspore/nn/optim/adadelta.py +1 -0
  223. mindspore/nn/optim/adafactor.py +2 -1
  224. mindspore/nn/optim/adam.py +7 -4
  225. mindspore/nn/optim/adamax.py +3 -2
  226. mindspore/nn/optim/adasum.py +2 -2
  227. mindspore/nn/optim/asgd.py +2 -3
  228. mindspore/nn/optim/ftrl.py +6 -5
  229. mindspore/nn/optim/lamb.py +7 -4
  230. mindspore/nn/optim/lars.py +1 -1
  231. mindspore/nn/optim/lazyadam.py +5 -3
  232. mindspore/nn/optim/momentum.py +2 -1
  233. mindspore/nn/optim/optimizer.py +53 -4
  234. mindspore/nn/optim/proximal_ada_grad.py +3 -4
  235. mindspore/nn/optim/rmsprop.py +4 -3
  236. mindspore/nn/optim/rprop.py +23 -12
  237. mindspore/nn/optim/sgd.py +26 -11
  238. mindspore/nn/optim/thor.py +9 -7
  239. mindspore/nn/probability/bijector/bijector.py +5 -5
  240. mindspore/nn/probability/bijector/power_transform.py +27 -27
  241. mindspore/nn/probability/bijector/softplus.py +3 -3
  242. mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
  243. mindspore/nn/probability/distribution/bernoulli.py +5 -5
  244. mindspore/nn/probability/distribution/beta.py +3 -3
  245. mindspore/nn/probability/distribution/categorical.py +7 -7
  246. mindspore/nn/probability/distribution/cauchy.py +0 -1
  247. mindspore/nn/probability/distribution/distribution.py +3 -3
  248. mindspore/nn/probability/distribution/gamma.py +3 -3
  249. mindspore/nn/probability/distribution/geometric.py +4 -4
  250. mindspore/nn/probability/distribution/gumbel.py +4 -4
  251. mindspore/nn/probability/distribution/log_normal.py +2 -2
  252. mindspore/nn/probability/distribution/logistic.py +2 -2
  253. mindspore/nn/probability/distribution/poisson.py +4 -4
  254. mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
  255. mindspore/nn/probability/distribution/uniform.py +6 -6
  256. mindspore/nn/wrap/cell_wrapper.py +84 -34
  257. mindspore/nn/wrap/grad_reducer.py +8 -5
  258. mindspore/nn/wrap/loss_scale.py +105 -42
  259. mindspore/numpy/array_creations.py +1 -2
  260. mindspore/numpy/array_ops.py +3 -2
  261. mindspore/numpy/utils_const.py +5 -5
  262. mindspore/offline_debug/convert_async.py +2 -2
  263. mindspore/ops/_grad_experimental/__init__.py +0 -5
  264. mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
  265. mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
  266. mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
  267. mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
  268. mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
  269. mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
  270. mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
  271. mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
  272. mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
  273. mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
  274. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
  275. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
  276. mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
  277. mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
  278. mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
  279. mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
  280. mindspore/ops/_op_impl/aicpu/add.py +3 -3
  281. mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
  282. mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
  283. mindspore/ops/_op_impl/aicpu/eps.py +32 -0
  284. mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
  285. mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
  286. mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
  287. mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
  288. mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
  289. mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
  290. mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
  291. mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
  292. mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
  293. mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
  294. mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
  295. mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
  296. mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
  297. mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
  298. mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
  299. mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
  300. mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
  301. mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
  302. mindspore/ops/_op_impl/tbe/__init__.py +4 -4
  303. mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
  304. mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
  305. mindspore/ops/_primitive_cache.py +1 -1
  306. mindspore/ops/_tracefunc.py +45 -13
  307. mindspore/ops/_utils/utils.py +6 -1
  308. mindspore/ops/_vmap/vmap_array_ops.py +3 -3
  309. mindspore/ops/_vmap/vmap_base.py +3 -3
  310. mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
  311. mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
  312. mindspore/ops/_vmap/vmap_math_ops.py +5 -2
  313. mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
  314. mindspore/ops/arg_dtype_cast.py +54 -0
  315. mindspore/ops/composite/base.py +37 -10
  316. mindspore/ops/composite/math_ops.py +5 -4
  317. mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
  318. mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
  319. mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
  320. mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
  321. mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
  322. mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
  323. mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
  324. mindspore/ops/deprecated.py +304 -0
  325. mindspore/ops/function/__init__.py +4 -1
  326. mindspore/ops/function/array_func.py +174 -193
  327. mindspore/ops/function/clip_func.py +81 -13
  328. mindspore/ops/function/debug_func.py +1 -1
  329. mindspore/ops/function/grad/grad_func.py +18 -9
  330. mindspore/ops/function/image_func.py +10 -4
  331. mindspore/ops/function/linalg_func.py +5 -5
  332. mindspore/ops/function/math_func.py +575 -386
  333. mindspore/ops/function/nn_func.py +568 -260
  334. mindspore/ops/function/random_func.py +88 -57
  335. mindspore/ops/function/sparse_func.py +1 -1
  336. mindspore/ops/function/sparse_unary_func.py +14 -12
  337. mindspore/ops/function/vmap_func.py +6 -5
  338. mindspore/ops/functional.py +15 -10
  339. mindspore/ops/op_info_register.py +244 -25
  340. mindspore/ops/operations/__init__.py +28 -19
  341. mindspore/ops/operations/_grad_ops.py +72 -7
  342. mindspore/ops/operations/_inner_ops.py +350 -17
  343. mindspore/ops/operations/_quant_ops.py +4 -8
  344. mindspore/ops/operations/_sequence_ops.py +42 -0
  345. mindspore/ops/operations/array_ops.py +68 -282
  346. mindspore/ops/operations/comm_ops.py +107 -59
  347. mindspore/ops/operations/custom_ops.py +94 -70
  348. mindspore/ops/operations/debug_ops.py +8 -4
  349. mindspore/ops/operations/image_ops.py +18 -12
  350. mindspore/ops/operations/inner_ops.py +26 -3
  351. mindspore/ops/operations/math_ops.py +189 -141
  352. mindspore/ops/operations/nn_ops.py +794 -489
  353. mindspore/ops/operations/other_ops.py +0 -22
  354. mindspore/ops/operations/random_ops.py +53 -111
  355. mindspore/ops/operations/sparse_ops.py +3 -1
  356. mindspore/ops/primitive.py +24 -18
  357. mindspore/parallel/_auto_parallel_context.py +68 -8
  358. mindspore/parallel/_cost_model_context.py +2 -2
  359. mindspore/parallel/_offload_context.py +17 -3
  360. mindspore/parallel/_parallel_serialization.py +12 -5
  361. mindspore/parallel/_ps_context.py +12 -0
  362. mindspore/parallel/_tensor.py +18 -13
  363. mindspore/parallel/_transformer/layers.py +5 -3
  364. mindspore/parallel/_transformer/loss.py +1 -0
  365. mindspore/parallel/_transformer/moe.py +2 -2
  366. mindspore/parallel/_transformer/op_parallel_config.py +12 -1
  367. mindspore/parallel/_transformer/transformer.py +23 -3
  368. mindspore/parallel/_utils.py +11 -7
  369. mindspore/parallel/algo_parameter_config.py +85 -5
  370. mindspore/parallel/checkpoint_transform.py +19 -12
  371. mindspore/parallel/shard.py +21 -14
  372. mindspore/profiler/common/struct_type.py +3 -3
  373. mindspore/profiler/common/util.py +4 -2
  374. mindspore/profiler/envprofiling.py +1 -1
  375. mindspore/profiler/parser/aicpu_data_parser.py +5 -3
  376. mindspore/profiler/parser/ascend_flops_generator.py +2 -2
  377. mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
  378. mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
  379. mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
  380. mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
  381. mindspore/profiler/parser/ascend_op_generator.py +6 -6
  382. mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
  383. mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
  384. mindspore/profiler/parser/base_timeline_generator.py +10 -8
  385. mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
  386. mindspore/profiler/parser/flops_parser.py +15 -11
  387. mindspore/profiler/parser/framework_parser.py +38 -22
  388. mindspore/profiler/parser/hccl_parser.py +16 -12
  389. mindspore/profiler/parser/integrator.py +22 -11
  390. mindspore/profiler/parser/memory_usage_parser.py +2 -2
  391. mindspore/profiler/parser/minddata_analyzer.py +12 -14
  392. mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
  393. mindspore/profiler/parser/msadvisor_parser.py +8 -4
  394. mindspore/profiler/parser/op_intermediate_parser.py +5 -2
  395. mindspore/profiler/parser/optime_parser.py +1 -1
  396. mindspore/profiler/parser/profiler_info.py +21 -2
  397. mindspore/profiler/parser/step_trace_parser.py +11 -14
  398. mindspore/profiler/profiling.py +179 -89
  399. mindspore/rewrite/api/node.py +102 -19
  400. mindspore/rewrite/api/node_type.py +5 -1
  401. mindspore/rewrite/api/pattern_engine.py +1 -1
  402. mindspore/rewrite/api/scoped_value.py +9 -17
  403. mindspore/rewrite/api/symbol_tree.py +131 -47
  404. mindspore/rewrite/ast_helpers/__init__.py +2 -1
  405. mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
  406. mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
  407. mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
  408. mindspore/rewrite/common/rewrite_elog.py +5 -1
  409. mindspore/rewrite/namer.py +33 -24
  410. mindspore/rewrite/namespace.py +14 -5
  411. mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
  412. mindspore/rewrite/node/call_function.py +79 -0
  413. mindspore/rewrite/node/cell_container.py +135 -0
  414. mindspore/rewrite/node/control_flow.py +88 -0
  415. mindspore/rewrite/{node.py → node/node.py} +273 -234
  416. mindspore/rewrite/node/node_manager.py +254 -0
  417. mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
  418. mindspore/rewrite/parsers/arguments_parser.py +22 -21
  419. mindspore/rewrite/parsers/assign_parser.py +216 -221
  420. mindspore/rewrite/parsers/attribute_parser.py +9 -7
  421. mindspore/rewrite/parsers/class_def_parser.py +174 -113
  422. mindspore/rewrite/parsers/constant_parser.py +9 -6
  423. mindspore/rewrite/parsers/container_parser.py +9 -7
  424. mindspore/rewrite/parsers/for_parser.py +36 -15
  425. mindspore/rewrite/parsers/function_def_parser.py +24 -16
  426. mindspore/rewrite/parsers/if_parser.py +28 -24
  427. mindspore/rewrite/parsers/module_parser.py +196 -25
  428. mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
  429. mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
  430. mindspore/rewrite/parsers/return_parser.py +6 -6
  431. mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
  432. mindspore/rewrite/sparsify/utils.py +1 -1
  433. mindspore/rewrite/symbol_tree.py +523 -578
  434. mindspore/rewrite/symbol_tree_builder.py +9 -193
  435. mindspore/rewrite/symbol_tree_dumper.py +2 -2
  436. mindspore/run_check/_check_version.py +6 -4
  437. mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
  438. mindspore/safeguard/rewrite_obfuscation.py +541 -0
  439. mindspore/scipy/linalg.py +1 -1
  440. mindspore/scipy/optimize/minimize.py +7 -3
  441. mindspore/train/_utils.py +7 -3
  442. mindspore/train/amp.py +323 -123
  443. mindspore/train/anf_ir_pb2.py +14 -2
  444. mindspore/train/callback/_backup_and_restore.py +2 -12
  445. mindspore/train/callback/_callback.py +29 -4
  446. mindspore/train/callback/_checkpoint.py +23 -8
  447. mindspore/train/callback/_early_stop.py +2 -2
  448. mindspore/train/callback/_landscape.py +4 -4
  449. mindspore/train/callback/_loss_monitor.py +2 -2
  450. mindspore/train/callback/_on_request_exit.py +2 -2
  451. mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
  452. mindspore/train/callback/_summary_collector.py +15 -8
  453. mindspore/train/callback/_time_monitor.py +58 -5
  454. mindspore/train/data_sink.py +5 -11
  455. mindspore/train/dataset_helper.py +84 -57
  456. mindspore/train/loss_scale_manager.py +2 -2
  457. mindspore/train/metrics/__init__.py +3 -3
  458. mindspore/train/metrics/cosine_similarity.py +1 -1
  459. mindspore/train/metrics/hausdorff_distance.py +3 -2
  460. mindspore/train/metrics/mean_surface_distance.py +3 -2
  461. mindspore/train/metrics/metric.py +39 -19
  462. mindspore/train/metrics/roc.py +2 -2
  463. mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
  464. mindspore/train/mind_ir_pb2.py +85 -36
  465. mindspore/train/model.py +187 -47
  466. mindspore/train/serialization.py +487 -161
  467. mindspore/train/summary/_summary_adapter.py +1 -1
  468. mindspore/train/summary/_writer_pool.py +3 -2
  469. mindspore/train/summary/summary_record.py +37 -17
  470. mindspore/train/train_thor/convert_utils.py +3 -3
  471. mindspore/train/train_thor/dataset_helper.py +1 -1
  472. mindspore/version.py +1 -1
  473. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/METADATA +6 -7
  474. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +477 -517
  475. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/entry_points.txt +0 -1
  476. mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
  477. mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
  478. mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
  479. mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
  480. mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
  481. mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
  482. mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
  483. mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
  484. mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
  485. mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
  486. mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
  487. mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
  488. mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
  489. mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
  490. mindspore/_akg/akg/tvm/rpc/base.py +0 -182
  491. mindspore/_akg/akg/tvm/rpc/client.py +0 -436
  492. mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
  493. mindspore/_akg/akg/tvm/rpc/server.py +0 -413
  494. mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
  495. mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
  496. mindspore/_extends/graph_kernel/expander.py +0 -80
  497. mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
  498. mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
  499. mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
  500. mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
  501. mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
  502. mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
  503. mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
  504. mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
  505. mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
  506. mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
  507. mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
  508. mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
  509. mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
  510. mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
  511. mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
  512. mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
  513. mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
  514. mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
  515. mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
  516. mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
  517. mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
  518. mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
  519. mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
  520. mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
  521. mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
  522. mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
  523. mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
  524. mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
  525. mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
  526. mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
  527. mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
  528. mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
  529. mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
  530. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
  531. mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
  532. mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
  533. mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
  534. mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
  535. mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
  536. mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
  537. mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
  538. mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
  539. mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
  540. mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
  541. mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
  542. mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
  543. mindspore/dataset/datapreprocess/__init__.py +0 -20
  544. mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
  545. mindspore/include/api/net.h +0 -142
  546. mindspore/nn/lr_scheduler.py +0 -262
  547. mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
  548. mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
  549. mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
  550. mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
  551. mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
  552. mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
  553. mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
  554. mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
  555. mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
  556. mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
  557. mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
  558. mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
  559. mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
  560. mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
  561. mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
  562. mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
  563. mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
  564. mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
  565. mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
  566. mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
  567. mindspore/rewrite/node_visitor.py +0 -44
  568. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
  569. {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
@@ -33,8 +33,7 @@ import tempfile
33
33
 
34
34
  import numpy as np
35
35
 
36
- from ... import ir_pass, build, build_config, nd, TVMError, register_func, \
37
- rpc as _rpc, target as _target
36
+ from ... import ir_pass, build, build_config, nd, TVMError, register_func, target as _target
38
37
  from ...contrib import nvcc, ndk, tar
39
38
 
40
39
  from ..util import get_const_tuple
@@ -139,210 +138,6 @@ class LocalBuilder(Builder):
139
138
  return results
140
139
 
141
140
 
142
- class RPCRunner(Runner):
143
- """Run generated code on remove devices.
144
- This function will ask a RPC Tracker to get device for measurement.
145
-
146
- Parameters
147
- ----------
148
- timeout: float
149
- The timeout of a compilation
150
- n_parallel: int
151
- The number of tasks run in parallel. "None" will use all cpu cores
152
- key: str
153
- The key of the device registered in the tracker
154
- host: str
155
- The host address of RPC Tracker
156
- port: int
157
- The port of RPC Tracker
158
- number: int
159
- The number of times to run the generated code for taking average.
160
- We call these runs as one `repeat` of measurement.
161
- repeat : int, optional
162
- The number of times to repeat the measurement.
163
- In total, the generated code will be run (1 + number x repeat) times,
164
- where the first "1" is warm up and will be discarded.
165
- The returned result contains `repeat` costs,
166
- each of which is an average of `number` costs.
167
- min_repeat_ms: int, optional
168
- The minimum duration of one `repeat` in milliseconds.
169
- By default, one `repeat` contains `number` runs. If this parameter is set,
170
- the parameters `number` will be dynamically adjusted to meet the
171
- minimum duration requirement of one `repeat`.
172
- i.e., When the run time of one `repeat` falls below this time, the `number` parameter
173
- will be automatically increased.
174
- cooldown_interval: float, optional
175
- The cool down interval between two measurements.
176
- check_correctness: bool, optional
177
- Whether check correctness after measurement. This will use llvm cpu target to
178
- call your template and get the reference output.
179
- This can work for TOPI templates, but may not work for your custom template.
180
- """
181
- def __init__(self,
182
- key, host, port, priority=1,
183
- timeout=10, n_parallel=None,
184
- number=4, repeat=3, min_repeat_ms=0, cooldown_interval=0.1,
185
- check_correctness=False):
186
- super(RPCRunner, self).__init__(timeout, n_parallel)
187
-
188
- self.key = key
189
- self.host = host
190
- self.port = port
191
- self.priority = priority
192
- self.timeout = timeout
193
-
194
- self.number = number
195
- self.repeat = repeat
196
- self.min_repeat_ms = min_repeat_ms
197
-
198
- self.ref_input = None
199
- self.ref_output = None
200
- self.check_correctness = check_correctness
201
- self.cooldown_interval = cooldown_interval
202
-
203
- self.executor = LocalExecutor()
204
-
205
- def set_task(self, task):
206
- self.task = task
207
-
208
- if check_remote(task.target, self.key, self.host, self.port):
209
- logger.info("Get devices for measurement successfully!")
210
- else:
211
- raise RuntimeError("Cannot get remote devices from the tracker. "
212
- "Please check the status of tracker by "
213
- "'python -m tvm.exec.query_rpc_tracker --port [THE PORT YOU USE]' "
214
- "and make sure you have free devices on the queue status.")
215
-
216
- if self.check_correctness:
217
- # use llvm cpu to generate a reference input/output
218
- # this option works for tuning topi, but might not work for you custom op
219
- with _target.create("llvm"):
220
- s, arg_bufs = task.instantiate(task.config_space.get(0))
221
- self.ref_input = [np.random.uniform(size=get_const_tuple(x.shape)).astype(x.dtype)
222
- for x in arg_bufs]
223
- func = build(s, arg_bufs, "llvm")
224
- tvm_buf = [nd.array(x) for x in self.ref_input]
225
- func(*tvm_buf)
226
- self.ref_output = [x.asnumpy() for x in tvm_buf]
227
-
228
- def get_build_kwargs(self):
229
- kwargs = {}
230
- if 'cuda' in self.task.target.keys or 'opencl' in self.task.target.keys or \
231
- 'rocm' in self.task.target.keys:
232
- remote = request_remote(self.key, self.host, self.port)
233
- ctx = remote.context(str(self.task.target), 0)
234
- max_dims = ctx.max_thread_dimensions
235
- kwargs['check_gpu'] = {
236
- 'max_shared_memory_per_block': ctx.max_shared_memory_per_block,
237
- 'max_threads_per_block': ctx.max_threads_per_block,
238
- 'max_thread_x': max_dims[0],
239
- 'max_thread_y': max_dims[1],
240
- 'max_thread_z': max_dims[2],
241
- }
242
-
243
- if 'cuda' in self.task.target.keys:
244
- kwargs["cuda_arch"] = "sm_" + "".join(ctx.compute_version.split('.'))
245
-
246
- return kwargs
247
-
248
- def run(self, measure_inputs, build_results):
249
- results = []
250
- remote_args = (self.key, self.host, self.port, self.priority, self.timeout)
251
-
252
- for i in range(0, len(measure_inputs), self.n_parallel):
253
- futures = []
254
- for measure_inp, build_res in zip(measure_inputs[i:i+self.n_parallel],
255
- build_results[i:i+self.n_parallel]):
256
- ret = self.executor.submit(run_through_rpc,
257
- measure_inp,
258
- build_res,
259
- self.number,
260
- self.repeat,
261
- self.min_repeat_ms,
262
- self.cooldown_interval,
263
- remote_args,
264
- self.ref_input,
265
- self.ref_output)
266
- futures.append(ret)
267
-
268
- for future in futures:
269
- res = future.get()
270
- if isinstance(res, Exception): # executor error or timeout
271
- results.append(MeasureResult((str(res),), MeasureErrorNo.RUN_TIMEOUT,
272
- self.timeout, time.time()))
273
- else:
274
- results.append(res)
275
-
276
- return results
277
-
278
- class LocalRunner(RPCRunner):
279
- """Run generated code on local devices.
280
-
281
- Parameters
282
- ----------
283
- timeout: float
284
- The timeout of a compilation
285
- number: int
286
- The number of times to run the generated code for taking average.
287
- We call these runs as one `repeat` of measurement.
288
- repeat : int, optional
289
- The number of times to repeat the measurement.
290
- In total, the generated code will be run (1 + number x repeat) times,
291
- where the first one is warm up and will be discarded.
292
- The returned result contains `repeat` costs,
293
- each of which is an average of `number` costs.
294
- min_repeat_ms: int, optional
295
- The minimum duration of one `repeat` in milliseconds.
296
- By default, one `repeat` contains `number` runs. If this parameter is set,
297
- the parameters `number` will be dynamically adjusted to meet the
298
- minimum duration requirement of one `repeat`.
299
- i.e., When the run time of one `repeat` falls below this time, the `number` parameter
300
- will be automatically increased.
301
- cooldown_interval: float, optional
302
- The cool down interval between two measurements.
303
- check_correctness: bool, optional
304
- Whether check correctness after measurement. This will use llvm cpu target to
305
- call your template and get the reference output.
306
- This can work for TOPI templates, but may not work for your custom template.
307
-
308
- Note
309
- ----
310
- This is a "fake" local mode. We start a silent rpc tracker and rpc server
311
- for the user. In this way we reuse timeout/isolation mechanism in RPC infrastructure.
312
- """
313
- def __init__(self,
314
- timeout=10,
315
- number=4, repeat=3, min_repeat_ms=0, cooldown_interval=0.1,
316
- check_correctness=False):
317
- super(LocalRunner, self).__init__('', None, None, 0,
318
- timeout=timeout, n_parallel=1,
319
- number=number, repeat=repeat,
320
- min_repeat_ms=min_repeat_ms,
321
- cooldown_interval=cooldown_interval,
322
- check_correctness=check_correctness)
323
- self.tracker = None
324
- self.server = None
325
-
326
- def set_task(self, task):
327
- self.task = task
328
-
329
- from ...rpc.tracker import Tracker
330
- from ...rpc.server import Server
331
-
332
- tracker = Tracker('0.0.0.0', port=9000, port_end=10000, silent=True)
333
- device_key = '$local$device$%d' % tracker.port
334
- server = Server('0.0.0.0', port=9000, port_end=10000,
335
- key=device_key,
336
- use_popen=True, silent=True,
337
- tracker_addr=(tracker.host, tracker.port))
338
- self.key = device_key
339
- self.host = tracker.host
340
- self.port = tracker.port
341
-
342
- super(LocalRunner, self).set_task(task)
343
- return server, tracker
344
-
345
-
346
141
  def _build_func_common(measure_input, check_gpu=None, cuda_arch=None, build_option=None):
347
142
  """Common part for building a configuration"""
348
143
  target, task, config = measure_input
@@ -413,172 +208,6 @@ def _wrap_build_func(build_func):
413
208
  return _wrapped
414
209
 
415
210
 
416
- def run_through_rpc(measure_input, build_result,
417
- number, repeat, min_repeat_ms, cooldown_interval,
418
- remote_args, ref_input=None, ref_output=None):
419
- """Run a generated library through rpc
420
-
421
- Parameters
422
- ----------
423
- measure_input: MeasureInput
424
- The raw measure input
425
- build_result: BuildResult
426
- The result returned from Builder. This contains the path to the generated library.
427
- number: int
428
- The number of times to run the generated code for taking average.
429
- We call these runs as one `repeat` of measurement.
430
- repeat : int, optional
431
- The number of times to repeat the measurement.
432
- In total, the generated code will be run (1 + number x repeat) times,
433
- where the first one is warm up and will be discarded.
434
- The returned result contains `repeat` costs,
435
- each of which is an average of `number` costs.
436
- min_repeat_ms: int, optional
437
- The minimum duration of one `repeat` in milliseconds.
438
- By default, one `repeat` contains `number` runs. If this parameter is set,
439
- the parameters `number` will be dynamically adjusted to meet the
440
- minimum duration requirement of one `repeat`.
441
- i.e., When the run time of one `repeat` falls below this time, the `number` parameter
442
- will be automatically increased.
443
- cooldown_interval: float
444
- The cool down interval between two measurements
445
- remote_args: Tuple
446
- The argument for request_remote
447
- ref_input: List of np.ndarray
448
- The reference input used for checking correctness
449
- ref_output: List of np.ndarray
450
- The reference output used for checking correctness
451
- """
452
- if isinstance(build_result, MeasureResult):
453
- return build_result
454
-
455
- tic = time.time()
456
- errno = MeasureErrorNo.NO_ERROR
457
- try:
458
- # upload built module
459
- remote = request_remote(*remote_args)
460
- # Program the FPGA every single time when targeting VTA
461
- if hasattr(measure_input.target, 'device_name') and \
462
- measure_input.target.device_name == 'vta':
463
- from vta import program_fpga, reconfig_runtime
464
- program_fpga(remote, None)
465
- reconfig_runtime(remote)
466
- remote.upload(build_result.filename)
467
- func = remote.load_module(os.path.split(build_result.filename)[1])
468
- ctx = remote.context(str(measure_input.target), 0)
469
- time_f = func.time_evaluator(
470
- func.entry_name, ctx, number=number, repeat=repeat, min_repeat_ms=min_repeat_ms)
471
-
472
- # set input
473
- if ref_input:
474
- args = [nd.array(x, ctx=ctx) for x in ref_input]
475
- else:
476
- # create empty arrays on the remote device and copy them once.
477
- # This can avoid some memory issues that make the measurement results unreliable.
478
- args = [nd.empty(x[0], dtype=x[1], ctx=ctx) for x in build_result.arg_info]
479
- args = [nd.array(x, ctx=ctx) for x in args]
480
- ctx.sync()
481
-
482
- costs = time_f(*args).results
483
-
484
- # clean up remote files
485
- remote.remove(build_result.filename)
486
- remote.remove(os.path.splitext(build_result.filename)[0] + '.so')
487
- remote.remove('')
488
-
489
- if len(costs) > 2: # remove largest and smallest value to reduce variance
490
- costs = list(costs)
491
- costs.sort()
492
- costs = tuple(costs[1:-1])
493
-
494
- # check correctness of output
495
- if ref_output:
496
- for expected, real in zip(ref_output, args):
497
- if not np.allclose(expected, real.asnumpy(), rtol=1e-4):
498
- logger.warning("Wrong Answer!")
499
- errno = MeasureErrorNo.WRONG_ANSWER
500
- except TVMError as exc:
501
- msg = str(exc)
502
- if "Stack trace returned" in msg:
503
- msg = msg[:msg.index("Stack trace returned")]
504
- if "CUDA Source" in msg:
505
- msg = msg[:msg.index("CUDA Source")]
506
- costs = (RuntimeError(msg[:1024]),)
507
- errno = MeasureErrorNo.RUNTIME_DEVICE
508
- tstamp = time.time()
509
- time.sleep(cooldown_interval)
510
- return MeasureResult(costs, errno, tstamp - tic + build_result.time_cost, tstamp)
511
-
512
-
513
- def request_remote(device_key, host=None, port=None, priority=1, timeout=60):
514
- """Request a remote session
515
-
516
- Parameters
517
- ----------
518
- device_key: string
519
- The device key of registered device in tracker
520
- host: host, optional
521
- The host address of rpc tracker.
522
- If is none, will use environment variable "TVM_TRACKER_HOST"
523
- port: int, optional
524
- The port of rpc tracker.
525
- If is none, will use environment variable "TVM_TRACKER_PORT"
526
- priority: int, optional
527
- The priority of this request, larger is more prior
528
- timeout: float, optional
529
- The timeout of this session (units: second)
530
-
531
- Returns
532
- ------
533
- session: RPCSession
534
- """
535
- # connect to the tracker
536
- host = host or os.environ['TVM_TRACKER_HOST']
537
- port = port or int(os.environ['TVM_TRACKER_PORT'])
538
-
539
- tracker = _rpc.connect_tracker(host, port)
540
- remote = tracker.request(device_key, priority=priority,
541
- session_timeout=timeout)
542
- return remote
543
-
544
-
545
- def check_remote(target, device_key, host=None, port=None, priority=100, timeout=10):
546
- """
547
- Check the availability of a remote device
548
-
549
- Parameters
550
- ----------
551
- target: Target
552
- The wanted compilation target
553
- device_key: string
554
- device key of registered device in tracker
555
- host: host, optional
556
- The host address of rpc tracker.
557
- If is none, will use environment variable "TVM_TRACKER_HOST"
558
- port: int, optional
559
- The port address of rpc tracker.
560
- If is none, will use environment variable "TVM_TRACKER_PORT"
561
- priority: int, optional
562
- The priority of this request, larger is more prior
563
- timeout: float, optional
564
- The timeout of this check (units: seconds).
565
-
566
- Returns
567
- -------
568
- available: bool
569
- True if can find available device
570
- """
571
- def _check():
572
- remote = request_remote(device_key, host, port, priority)
573
- ctx = remote.context(str(target))
574
- while not ctx.exist: # wait until we get an available device
575
- pass
576
- t = threading.Thread(target=_check,)
577
- t.start()
578
- t.join(timeout)
579
- return not t.is_alive()
580
-
581
-
582
211
  @register_func
583
212
  def tvm_callback_cuda_compile(code):
584
213
  """use nvcc to generate ptx code for better optimization"""
@@ -21,6 +21,7 @@ LoweredFunc and compiled Module.
21
21
  """
22
22
  # 2021.01.13 - Modify variable unroll_explicit to False.
23
23
  # 2021.03.17 - Add dump_mlir.
24
+ # 2023.02.03 - Add activated_pass.
24
25
 
25
26
  from __future__ import absolute_import as _abs
26
27
  import warnings
@@ -182,6 +183,19 @@ class BuildConfig(NodeBase):
182
183
  add_lower_pass_args += [x[0], x[1]]
183
184
  _api_internal._BuildConfigSetAddLowerPass(self, *add_lower_pass_args)
184
185
 
186
+ @property
187
+ def activated_passes(self):
188
+ size = _api_internal._BuildConfigGetActivatedPassesInfo(self)
189
+ result = []
190
+ for i in range(size):
191
+ result.append(_api_internal._BuildConfigGetActivatedPassesInfo(self, i))
192
+ return result
193
+
194
+ @activated_passes.setter
195
+ def activated_passes(self, value):
196
+ activated_passes_args = [pass_name for pass_name in value]
197
+ _api_internal._BuildConfigSetActivatedPasses(self, *activated_passes_args)
198
+
185
199
  def __enter__(self):
186
200
  # pylint: disable=protected-access
187
201
  _api_internal._EnterBuildConfigScope(self)
@@ -266,7 +280,8 @@ def build_config(**kwargs):
266
280
 
267
281
  if "add_lower_pass" in kwargs:
268
282
  config.add_lower_pass = kwargs["add_lower_pass"]
269
-
283
+ if "activated_passes" in kwargs:
284
+ config.activated_passes = kwargs["activated_passes"]
270
285
  return config
271
286
 
272
287
  def get_binds(args, compact=False, binds=None):
@@ -20,7 +20,6 @@ import numpy as np
20
20
  from .._ffi.base import string_types
21
21
  from .._ffi.function import get_global_func
22
22
  from .._ffi.runtime_ctypes import TVMContext
23
- from ..rpc import base as rpc_base
24
23
 
25
24
  def create(graph_json_str, libmod, ctx):
26
25
  """Create a runtime executor module given a graph and module.
@@ -48,60 +47,9 @@ def create(graph_json_str, libmod, ctx):
48
47
  except AttributeError:
49
48
  raise ValueError("Type %s is not supported" % type(graph_json_str))
50
49
 
51
- ctx, num_rpc_ctx, device_type_id = get_device_ctx(libmod, ctx)
52
-
53
- if num_rpc_ctx == len(ctx):
54
- hmod = rpc_base._ModuleHandle(libmod)
55
- fcreate = ctx[0]._rpc_sess.get_function("tvm.graph_runtime.remote_create")
56
- return GraphModule(fcreate(graph_json_str, hmod, *device_type_id))
57
-
58
50
  fcreate = get_global_func("tvm.graph_runtime.create")
59
51
  return GraphModule(fcreate(graph_json_str, libmod, *device_type_id))
60
52
 
61
- def get_device_ctx(libmod, ctx):
62
- """Parse and validate all the device context(s).
63
- Parameters
64
- ----------
65
- libmod : tvm.Module
66
- The module of the corresponding function
67
- ctx : TVMContext or list of TVMContext
68
- Returns
69
- -------
70
- ctx : list of TVMContext
71
- num_rpc_ctx : Number of rpc contexts
72
- device_type_id : List of device type and device id
73
- """
74
-
75
- if isinstance(ctx, TVMContext):
76
- ctx = [ctx]
77
- elif not isinstance(ctx, (list, tuple)):
78
- raise ValueError("ctx has to be the type of TVMContext or a list of "
79
- "TVMCTVMContext")
80
- for cur_ctx in ctx:
81
- if not isinstance(cur_ctx, TVMContext):
82
- raise ValueError("ctx has to be the type of TVMContext or a list "
83
- "of TVMContext")
84
-
85
- # device_type_id[0], device_type_id[1] are used as the primary/fallback
86
- # context type and id. All other ones are used as device context for
87
- # heterogeneous execution.
88
- num_rpc_ctx = 0
89
- device_type_id = []
90
- for cur_ctx in ctx:
91
- device_type = cur_ctx.device_type
92
- if device_type >= rpc_base.RPC_SESS_MASK:
93
- assert libmod.type_key == "rpc"
94
- assert rpc_base._SessTableIndex(
95
- libmod) == cur_ctx._rpc_sess._tbl_index
96
- num_rpc_ctx += 1
97
- device_type = cur_ctx.device_type % rpc_base.RPC_SESS_MASK
98
- device_type_id.append(device_type)
99
- device_type_id.append(cur_ctx.device_id)
100
-
101
- if 0 < num_rpc_ctx < len(ctx):
102
- raise ValueError("Either all or none of the contexts should be rpc.")
103
- return ctx, num_rpc_ctx, device_type_id
104
-
105
53
 
106
54
  class GraphModule(object):
107
55
  """Wrapper runtime module.
@@ -149,7 +97,6 @@ class GraphModule(object):
149
97
  self._get_input(key).copyfrom(value)
150
98
 
151
99
  if params:
152
- # upload big arrays first to avoid memory issue in rpc mode
153
100
  keys = list(params.keys())
154
101
  keys.sort(key=lambda x: -np.prod(params[x].shape))
155
102
  for k in keys:
@@ -16,6 +16,7 @@
16
16
  # under the License.
17
17
  """Hybrid Script Parser"""
18
18
 
19
+ # 2023.08.16 - Support parser for python 3.9 and up.
19
20
  # 2022.02.15 - Support grid as new loop mode.
20
21
  # 2022.01.19 - Support negative extent for range.
21
22
  # 2021.12.15 - Support block_realize intrin in with scope.
@@ -304,7 +305,7 @@ class HybridParser(ast.NodeVisitor):
304
305
  _dtype = _buf.dtype
305
306
  _true = _api.convert(True)
306
307
  body = _make.Realize(_buf.op, _buf.value_index, _dtype, _domain, _true, body)
307
- body = _make.AttrStmt(_buf.op, 'realize_scope', _api.convert(_scope), body)
308
+ body = _make.AttrStmt(_buf.op, 'realize_scope', _api.convert(_scope), body, None)
308
309
 
309
310
  for elem in to_pop:
310
311
  self.symbols.pop(elem)
@@ -315,7 +316,7 @@ class HybridParser(ast.NodeVisitor):
315
316
  def wrap_up_binds(self, body):
316
317
  for _, iter_var in self.binds.items():
317
318
  ext = iter_var.dom.extent
318
- body = _make.AttrStmt(iter_var, 'thread_extent', ext, body)
319
+ body = _make.AttrStmt(iter_var, 'thread_extent', ext, body, None)
319
320
  self.binds = {}
320
321
  return body
321
322
 
@@ -650,7 +651,7 @@ class HybridParser(ast.NodeVisitor):
650
651
  _apply_indices(self.closure_vars[node.value.id], args))
651
652
 
652
653
  buf = self.visit(node.value)
653
- if isinstance(buf, Array):
654
+ if isinstance(buf, (Array, list)):
654
655
  for i in args:
655
656
  if isinstance(i, numbers.Integral):
656
657
  buf = buf[i]
@@ -709,17 +710,17 @@ class HybridParser(ast.NodeVisitor):
709
710
  if context.func.id == "attr":
710
711
  args = [self.visit(i) for i in context.args]
711
712
  return _make.AttrStmt(_api._IterVar(None, block.loop_var.name, 0), args[0],
712
- _api.convert(args[1]), block)
713
+ _api.convert(args[1]), block, None)
713
714
  elif context.func.id == "allocate":
714
715
  lhs = node.items[0].optional_vars
715
716
  rhs = self.visit(context)
716
717
  _ = self.generate_one_assign(lhs, rhs)
717
718
  return _make.AttrStmt(rhs, "type",
718
- _api.convert("inline"), block)
719
+ _api.convert("inline"), block, None)
719
720
  elif context.func.id == "block_realize":
720
721
  args = [self.visit(i) for i in context.args]
721
722
  return _make.AttrStmt(args[0].op, "block_realize",
722
- _api.convert(True), block)
723
+ _api.convert(True), block, None)
723
724
  else:
724
725
  raise ValueError("unsupported function in With scope")
725
726
 
@@ -174,7 +174,7 @@ class IRBuilder(object):
174
174
  node = _make.StringImm(node)
175
175
  if isinstance(value, string_types):
176
176
  value = _make.StringImm(value)
177
- self.emit(lambda x: _make.AttrStmt(node, attr_key, value, x))
177
+ self.emit(lambda x: _make.AttrStmt(node, attr_key, value, x, None))
178
178
 
179
179
  def for_range(self, begin, end, name="i", dtype="int32", for_type="serial"):
180
180
  """Create a for iteration scope.
@@ -206,7 +206,7 @@ class Module(ModuleBase):
206
206
  The ProfileResult reports `repeat` time costs in seconds.
207
207
  """
208
208
  try:
209
- feval = _RPCTimeEvaluator(
209
+ feval = _TimeEvaluator(
210
210
  self, func_name, ctx.device_type, ctx.device_id, number, repeat, min_repeat_ms,
211
211
  cooldown_interval_ms, repeats_to_cooldown, preproc_name)
212
212
 
@@ -268,7 +268,6 @@ def load(path, fmt=""):
268
268
  cc.create_shared if the path is in format .o or .tar
269
269
  """
270
270
  # High level handling for .o and .tar file.
271
- # We support this to be consistent with RPC module load.
272
271
  if path.endswith(".o"):
273
272
  _cc.create_shared(path + ".so", path)
274
273
  path += ".so"
@@ -235,9 +235,9 @@ class AttrStmt(Stmt):
235
235
  body : Stmt
236
236
  The body statement.
237
237
  """
238
- def __init__(self, node, attr_key, value, body):
238
+ def __init__(self, node, attr_key, value, body, bounds=None):
239
239
  self.__init_handle_by_constructor__(
240
- _make.AttrStmt, node, attr_key, value, body)
240
+ _make.AttrStmt, node, attr_key, value, body, bounds)
241
241
 
242
242
 
243
243
  @register_node
File without changes
@@ -0,0 +1,76 @@
1
+ import os
2
+ import re
3
+ import subprocess
4
+ from enum import Enum
5
+
6
+ from .file_manager import FileManager
7
+ from .path_manager import PathManager
8
+
9
+
10
+ class CANNDataEnum(Enum):
11
+ OP_SUMMARY = 0
12
+ NPU_MEMORY = 1
13
+ MSPROF_TIMELINE = 2
14
+ STEP_TRACE = 3
15
+ GE_MEMORY_RECORD = 4
16
+ GE_OPERATOR_MEMORY = 5
17
+ L2_CACHE = 6
18
+ AI_CPU = 7
19
+ COMMUNICATION = 8
20
+ MATRIX = 9
21
+
22
+
23
+ class CANNFileParser:
24
+ COMMAND_SUCCESS = 0
25
+ ACL_TO_NPU = "acl_to_npu"
26
+ START_FLOW = "s"
27
+ END_FLOW = "f"
28
+ SUMMARY = "summary"
29
+ TIMELINE = "timeline"
30
+ ANALYZE = "analyze"
31
+ CANN_DATA_MATCH = {
32
+ CANNDataEnum.OP_SUMMARY: [r"^op_summary_\d+_\d+\.csv", r"^op_summary_\d+_\d+_\d+\.csv",
33
+ r"^op_summary_\d+_\d+_\d+_\d+\.csv"],
34
+ }
35
+
36
+ def __init__(self, profiler_path: str):
37
+ self._cann_path = PathManager.get_cann_path(profiler_path)
38
+ self._file_dict = {}
39
+ self._file_dispatch()
40
+
41
+ def export_cann_profiling(self):
42
+ if not os.path.isdir(self._cann_path):
43
+ return
44
+ self._del_summary_and_timeline_data()
45
+ completed_process = subprocess.run(["msprof", "--export=on", f"--output={self._cann_path}"],
46
+ capture_output=True)
47
+ if completed_process.returncode != self.COMMAND_SUCCESS:
48
+ raise RuntimeError(
49
+ f"Export CANN Profiling data failed, please verify that the ascend-toolkit is installed and set-env.sh "
50
+ f"is sourced. or you can execute the command to confirm the CANN Profiling export result: "
51
+ f"msprof --export=on --output={self._cann_path}")
52
+
53
+
54
+ def get_file_list_by_type(self, file_type: CANNDataEnum) -> set:
55
+ return self._file_dict.get(file_type, set())
56
+
57
+ def _file_dispatch(self):
58
+ all_file_list = PathManager.get_device_all_file_list_by_type(self._cann_path, self.SUMMARY)
59
+ all_file_list += PathManager.get_device_all_file_list_by_type(self._cann_path, self.TIMELINE)
60
+ all_file_list += PathManager.get_analyze_all_file(self._cann_path, self.ANALYZE)
61
+ for file_path in all_file_list:
62
+ if not os.path.isfile(file_path):
63
+ continue
64
+ for data_type, re_match_exp_list in self.CANN_DATA_MATCH.items():
65
+ for re_match_exp in re_match_exp_list:
66
+ if re.match(re_match_exp, os.path.basename(file_path)):
67
+ self._file_dict.setdefault(data_type, set()).add(file_path)
68
+
69
+ def _del_summary_and_timeline_data(self):
70
+ device_path = PathManager.get_device_path(self._cann_path)
71
+ if not device_path:
72
+ return
73
+ summary_path = os.path.join(device_path, "summary")
74
+ timeline_path = os.path.join(device_path, "timeline")
75
+ FileManager.remove_file_safety(summary_path)
76
+ FileManager.remove_file_safety(timeline_path)