mindspore 2.1.0__cp37-none-any.whl → 2.2.10__cp37-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-37m-aarch64-linux-gnu.so +0 -0
  32. mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
  33. mindspore/_c_mindrecord.cpython-37m-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-37m-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
@@ -1,341 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- # pylint: disable=invalid-name
18
- """measure bandwidth and compute peak"""
19
-
20
- import logging
21
- import tvm
22
- from . import util
23
- from .. import rpc
24
-
25
- def _convert_to_remote(func, remote):
26
- """ convert module function to remote rpc function"""
27
- temp = util.tempdir()
28
- path_dso = temp.relpath("tmp_func.tar")
29
- func.export_library(path_dso)
30
-
31
- remote.upload(path_dso)
32
- func = remote.load_module("tmp_func.tar")
33
- return func
34
-
35
- def measure_bandwidth_sum(total_item, item_per_thread, stride,
36
- base_type, bits, lanes,
37
- target, target_host, remote, ctx, n_times):
38
- """ measure memory bandwidth of gpu by product reduction for a given type
39
-
40
- The IR for measurement is
41
-
42
- for each thread
43
- for i in 1..num_per_thread:
44
- y[global_id] = y[global_id] * x[base + i * stride]
45
-
46
- Parameters
47
- ----------
48
- total_item: int
49
- number of elements in input array
50
- item_per_thread: int
51
- number of elements each thread accumulates
52
- stride: int
53
- stride in memory access
54
- base_type: str
55
- can be "int", "float"
56
- bits: int
57
- can be 16, 32
58
- lanes: int
59
- lane of the vector type, can be 1, 2, 4, 8, 16
60
- target: :any:`tvm.target.Target`
61
- the target and option of the compilation.
62
- target_host : str or :any:`tvm.target.Target`
63
- host compilation target
64
- ctx: TVMcontext
65
- the context of array
66
- remote: tvm.rpc.RPCSession
67
- remote rpc session
68
- n_times: int
69
- number of runs for taking mean
70
-
71
- Returns
72
- -------
73
- GBPS: float
74
- gigabyte per second
75
- """
76
- n, m = total_item, item_per_thread
77
- n //= lanes
78
-
79
- base_type = str(base_type) + str(bits)
80
- dtype = base_type if lanes == 1 else base_type + "x" + str(lanes)
81
-
82
- k = tvm.reduce_axis((0, m), name="k")
83
-
84
- x = tvm.placeholder((n,), dtype=dtype, name="x")
85
- op = tvm.comm_reducer(lambda x, y: x*y, lambda t: tvm.const(1, dtype=t), name="sum")
86
- y = tvm.compute((n // m,),
87
- lambda i: op(x[i // stride * stride * m + i % stride + k * stride], axis=k))
88
- s = tvm.create_schedule(y.op)
89
-
90
- yo, yi = s[y].split(y.op.axis[0], target.max_num_threads)
91
- s[y].bind(yo, tvm.thread_axis("blockIdx.x"))
92
- s[y].bind(yi, tvm.thread_axis("threadIdx.x"))
93
- s[y].unroll(k)
94
-
95
- try:
96
- func = tvm.build(s, [x, y], target, target_host=target_host)
97
-
98
- x = tvm.nd.empty((n,), dtype=dtype, ctx=ctx)
99
- y = tvm.nd.empty((n // m,), dtype=dtype, ctx=ctx)
100
-
101
- func = _convert_to_remote(func, remote)
102
- time_f = func.time_evaluator(func.entry_name, ctx, number=n_times)
103
- time = time_f(x, y).mean
104
- except tvm._ffi.base.TVMError:
105
- # build error (occur when device does not support half)
106
- return -1
107
-
108
- return 1.0 * (total_item * bits / 8) / 1e9 / time
109
-
110
- def measure_bandwidth_all_types(total_item, item_per_thread, n_times,
111
- target, target_host, remote, ctx, verbose=True):
112
- """ measure memory bandwidth for all types
113
-
114
- Parameters
115
- ----------
116
- total_item: int
117
- number of elements in input array
118
- item_per_thread: int
119
- number of elements each thread accmulates
120
- n_times: int
121
- number of runs for averaging
122
- target: :any:`tvm.target.Target`
123
- the target and option of the compilation.
124
- target_host : str or :any:`tvm.target.Target`
125
- host compilation target
126
- remote: tvm.rpc.RPCSession
127
- remote rpc session
128
- ctx: TVMcontext
129
- the context of array
130
- verbose: bool
131
- whether outputs immediate result
132
-
133
- Returns
134
- -------
135
- result: list
136
- a list of (type_name, GBPS) pairs
137
- """
138
- max_threads = target.max_num_threads
139
-
140
- result = []
141
- for base_type in ["float"]:
142
- for bits in [32]:
143
- for lanes in [1, 2, 4, 8, 16]:
144
- max_speed = -1e9
145
- # try different strides
146
- for stride in [max_threads, total_item // (lanes * item_per_thread)]:
147
- speed = measure_bandwidth_sum(total_item, item_per_thread, stride,
148
- base_type, bits, lanes, target,
149
- target_host, remote, ctx, n_times)
150
- max_speed = max(max_speed, speed)
151
- type_name = base_type + str(bits)
152
- result.append(["%sx%d" % (type_name, lanes), max_speed])
153
- if verbose:
154
- logging.info("\t%-10s %.2f GBPS", result[-1][0], result[-1][1])
155
- return result
156
-
157
- def measure_compute_mad(total_item, item_per_thread, base_type, bits, lanes,
158
- target, target_host, remote, ctx, n_times):
159
- """ measure peak compute speed by computing mad for a type
160
-
161
- The IR for measurement is
162
-
163
- for each thread
164
- for i in 1..item_per_thread
165
- x = mad(x, x, y)
166
- y = mad(y, y, x)
167
-
168
- Parameters
169
- ----------
170
- total_item: int
171
- number of elements in input array
172
- item_per_thread: int
173
- number of operations each thread does
174
- base_type: str
175
- can be "int", "float"
176
- bits: int
177
- can be 16, 32
178
- lanes: int
179
- lane of the vector type, can be 1, 2, 4, 8, 16
180
- target: :any:`tvm.target.Target`
181
- the target and option of the compilation.
182
- target_host : str or :any:`tvm.target.Target`
183
- host compilation target
184
- remote: tvm.rpc.RPCSession
185
- if it is not None, use remote rpc session
186
- ctx: TVMcontext
187
- the context of array
188
- n_times: int
189
- number of runs for taking mean
190
-
191
- Returns
192
- -------
193
- GOPS: float
194
- giga operation per second
195
- """
196
-
197
- n = total_item
198
-
199
- if bits >= 64 or lanes >= 16:
200
- n //= 2
201
-
202
- max_threads = target.max_num_threads
203
-
204
- base_type = str(base_type) + str(bits)
205
- dtype = base_type if lanes == 1 else base_type + "x" + str(lanes)
206
-
207
- def extern(ins, outs):
208
- # pylint: disable=unused-argument
209
- """construct measurement function by building IR directly"""
210
- ib = tvm.ir_builder.create()
211
-
212
- bx = tvm.thread_axis("blockIdx.x")
213
- tx = tvm.thread_axis("threadIdx.x")
214
-
215
- ib.scope_attr(bx, "thread_extent", n // max_threads)
216
- ib.scope_attr(tx, "thread_extent", max_threads)
217
-
218
- idx = bx.var * max_threads + tx.var
219
-
220
- a = ib.allocate(dtype, (1), name='a', scope='local')
221
- b = ib.allocate(dtype, (1), name='b', scope='local')
222
-
223
- a[0] = outs[0].vload(idx, dtype)
224
- b[0] = outs[0].vload(idx, dtype)
225
-
226
- if base_type.find('float') != -1:
227
- mad_func = lambda x, y: (x * x + y)
228
- else:
229
- mad_func = lambda x, y: y * y + x
230
-
231
- for _ in range(item_per_thread // 4 // lanes):
232
- a[0] = mad_func(a[0], b[0])
233
- b[0] = mad_func(b[0], a[0])
234
-
235
- ib.emit(outs[0].vstore(idx, b[0]))
236
- return ib.get()
237
-
238
- y = tvm.extern((n,), [], extern, name="y", dtype=dtype)
239
- s = tvm.create_schedule(y.op)
240
-
241
- try:
242
- func = tvm.build(s, [y], target, target_host=target_host)
243
- func = _convert_to_remote(func, remote)
244
- time_f = func.time_evaluator(func.entry_name, ctx, number=n_times)
245
- y = tvm.nd.empty((n,), dtype=dtype, ctx=ctx)
246
- time = time_f(y).mean
247
- except tvm._ffi.base.TVMError:
248
- # build error (occur when device does not support half)
249
- return -1
250
-
251
- return 1.0 * (n * item_per_thread) / 1e9 / time
252
-
253
- def measure_compute_all_types(total_item, item_per_thread, n_times,
254
- target, target_host, remote, ctx, verbose=True):
255
- """ measure peak flops for all types
256
-
257
- Parameters
258
- ----------
259
- total_item: int
260
- number of elements in input array
261
- item_per_thread: int
262
- number of elements each thread accmulates
263
- n_times: int
264
- number of runs for averaging
265
- target: :any:`tvm.target.Target`
266
- the target and option of the compilation.
267
- target_host : str or :any:`tvm.target.Target`
268
- host compilation target
269
- remote: tvm.rpc.RPCSession
270
- remote rpc session
271
- ctx: TVMcontext
272
- the context of array
273
- verbose: bool
274
- whether outputs immediate result
275
-
276
- Returns
277
- -------
278
- result: list
279
- a list of (type_name, GFLOPS/GIOPS) pairs
280
- """
281
- result = []
282
- for base_type in ["float", "int"]:
283
- for bits in [16, 32, 64]:
284
- for lanes in [1, 2, 4, 8, 16]:
285
- if base_type == 'int' and bits != 32: # only measure int32
286
- continue
287
-
288
- max_speed = -1e9
289
- for per_thread in [item_per_thread//2, item_per_thread, item_per_thread*2]:
290
- speed = measure_compute_mad(total_item, per_thread,
291
- base_type, bits, lanes, target,
292
- target_host, remote, ctx, n_times)
293
- max_speed = max(max_speed, speed)
294
- type_name = base_type + str(bits)
295
- result.append(["%sx%d" % (type_name, lanes), max_speed])
296
-
297
- unit = "GFLOPS" if base_type == "float" else "GIOPS"
298
-
299
- if verbose:
300
- logging.info("\t%-10s %.2f %s", result[-1][0], result[-1][1], unit)
301
-
302
- return result
303
-
304
-
305
- def measure_peak_all(target, target_host, host, port):
306
- """measure memory bandwidth and peak compute for gpu devices
307
-
308
- Parameters
309
- ----------
310
- target: str or :any:`tvm.target.Target`
311
- target_host: str
312
- host: str
313
- port: int
314
- """
315
-
316
- target = tvm.target.create(target)
317
- remote = rpc.connect(host, port)
318
- n_times = 20
319
-
320
- bandwidth_total_item = 1 << 25
321
- bandwidth_item_per_thread = 32
322
-
323
- compute_total_item = 1 << 21
324
- compute_item_per_thread = 4096
325
-
326
- if str(target).startswith("opencl"):
327
- ctx = remote.cl()
328
- elif str(target).startswith("cuda"):
329
- ctx = remote.gpu()
330
- elif str(target).startswith("metal"):
331
- ctx = remote.metal()
332
- else:
333
- raise RuntimeError("Unsupported target")
334
-
335
- logging.info("========== measure memory bandwidth ==========")
336
- measure_bandwidth_all_types(bandwidth_total_item, bandwidth_item_per_thread,
337
- n_times, target, target_host, remote, ctx)
338
-
339
- logging.info("========== measure peak compute ==========")
340
- measure_compute_all_types(compute_total_item, compute_item_per_thread,
341
- n_times, target, target_host, remote, ctx)
@@ -1,25 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- """Deprecation RPC module"""
18
- # pylint: disable=unused-import
19
- from __future__ import absolute_import as _abs
20
- import warnings
21
- from ..rpc import Server, RPCSession, LocalSession, TrackerSession, connect, connect_tracker
22
-
23
- warnings.warn(
24
- "Please use tvm.rpc instead of tvm.conrtib.rpc. tvm.contrib.rpc is going to be removed in 0.5",
25
- DeprecationWarning)
@@ -1,257 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- # pylint: disable=invalid-name
18
- """Utility to invoke Xcode compiler toolchain"""
19
- from __future__ import absolute_import as _abs
20
-
21
- import os
22
- import sys
23
- import subprocess
24
- from .._ffi.base import py_str
25
- from . import util
26
-
27
- def xcrun(cmd):
28
- """Run xcrun and return the output.
29
-
30
- Parameters
31
- ----------
32
- cmd : list of str
33
- The command sequence.
34
-
35
- Returns
36
- -------
37
- out : str
38
- The output string.
39
- """
40
- cmd = ["xcrun"] + cmd
41
- proc = subprocess.Popen(cmd,
42
- stdout=subprocess.PIPE,
43
- stderr=subprocess.STDOUT)
44
- (out, _) = proc.communicate()
45
- return out.strip()
46
-
47
-
48
- def codesign(lib):
49
- """Codesign the shared libary
50
-
51
- This is an required step for library to be loaded in
52
- the app.
53
-
54
- Parameters
55
- ----------
56
- lib : The path to the library.
57
- """
58
- if "TVM_IOS_CODESIGN" not in os.environ:
59
- raise RuntimeError("Require environment variable TVM_IOS_CODESIGN "
60
- " to be the signature")
61
- signature = os.environ["TVM_IOS_CODESIGN"]
62
- cmd = ["codesign", "--force", "--sign", signature]
63
- cmd += [lib]
64
- proc = subprocess.Popen(cmd,
65
- stdout=subprocess.PIPE,
66
- stderr=subprocess.STDOUT)
67
- (out, _) = proc.communicate()
68
- if proc.returncode != 0:
69
- msg = "Codesign error:\n"
70
- msg += py_str(out)
71
- raise RuntimeError(msg)
72
-
73
-
74
- def create_dylib(output, objects, arch, sdk="macosx"):
75
- """Create dynamic library.
76
-
77
- Parameters
78
- ----------
79
- output : str
80
- The target shared library.
81
-
82
- objects : list
83
- List of object files.
84
-
85
- options : str
86
- The additional options.
87
-
88
- arch : str
89
- Target major architectures
90
-
91
- sdk : str
92
- The sdk to be used.
93
- """
94
- clang = xcrun(["-sdk", sdk, "-find", "clang"])
95
- sdk_path = xcrun(["-sdk", sdk, "--show-sdk-path"])
96
- cmd = [clang]
97
- cmd += ["-dynamiclib"]
98
- cmd += ["-arch", arch]
99
- cmd += ["-isysroot", sdk_path]
100
- cmd += ["-o", output]
101
- if isinstance(objects, str):
102
- cmd += [objects]
103
- else:
104
- cmd += objects
105
-
106
- proc = subprocess.Popen(
107
- cmd, stdout=subprocess.PIPE,
108
- stderr=subprocess.STDOUT)
109
- (out, _) = proc.communicate()
110
-
111
- if proc.returncode != 0:
112
- msg = "Compilation error:\n"
113
- msg += py_str(out)
114
- raise RuntimeError(msg)
115
-
116
-
117
- # assign so as default output format
118
- create_dylib.output_format = "dylib"
119
-
120
- def compile_metal(code, path_target=None, sdk="macosx"):
121
- """Compile metal with CLI tool from env.
122
-
123
- Parameters
124
- ----------
125
- code : str
126
- The cuda code.
127
-
128
- path_target : str, optional
129
- Output file.
130
-
131
- sdk : str, optional
132
- The target platform SDK.
133
-
134
- Return
135
- ------
136
- metallib : bytearray
137
- The bytearray of the metallib
138
- """
139
- temp = util.tempdir()
140
- temp_code = temp.relpath("my_lib.metal")
141
- temp_ir = temp.relpath("my_lib.air")
142
- temp_target = temp.relpath("my_lib.metallib")
143
-
144
- with open(temp_code, "w") as out_file:
145
- out_file.write(code)
146
- file_target = path_target if path_target else temp_target
147
-
148
- # See:
149
- # - https://developer.apple.com/documentation/metal/gpu_functions_libraries/building_a_library_with_metal_s_command-line_tools#overview # pylint: disable=line-too-long
150
- #
151
- # xcrun -sdk macosx metal -c MyLibrary.metal -o MyLibrary.air
152
- # xcrun -sdk macosx metallib MyLibrary.air -o MyLibrary.metallib
153
- cmd1 = ["xcrun", "-sdk", sdk, "metal", "-O3"]
154
- cmd1 += ["-c", temp_code, "-o", temp_ir]
155
- cmd2 = ["xcrun", "-sdk", sdk, "metallib"]
156
- cmd2 += [temp_ir, "-o", file_target]
157
- proc = subprocess.Popen(
158
- ' '.join(cmd1) + ";" + ' '.join(cmd2),
159
- shell=True,
160
- stdout=subprocess.PIPE,
161
- stderr=subprocess.STDOUT)
162
- (out, _) = proc.communicate()
163
- if proc.returncode != 0:
164
- sys.stderr.write("Compilation error:\n")
165
- sys.stderr.write(py_str(out))
166
- sys.stderr.flush()
167
- libbin = None
168
- else:
169
- libbin = bytearray(open(file_target, "rb").read())
170
- return libbin
171
-
172
-
173
- class XCodeRPCServer(object):
174
- """Wrapper for RPC server
175
-
176
- Parameters
177
- ----------
178
- cmd : list of str
179
- The command to run
180
-
181
- lock: FileLock
182
- Lock on the path
183
- """
184
- def __init__(self, cmd, lock):
185
- self.proc = subprocess.Popen(cmd)
186
- self.lock = lock
187
-
188
- def join(self):
189
- """Wait server to finish and release its resource
190
- """
191
- self.proc.wait()
192
- self.lock.release()
193
-
194
-
195
- def popen_test_rpc(host,
196
- port,
197
- key,
198
- destination,
199
- libs=None,
200
- options=None):
201
- """Launch rpc server via xcodebuild test through another process.
202
-
203
- Parameters
204
- ----------
205
- host : str
206
- The address of RPC proxy host.
207
-
208
- port : int
209
- The port of RPC proxy host
210
-
211
- key : str
212
- The key of the RPC server
213
-
214
- destination : str
215
- Destination device of deployment, as in xcodebuild
216
-
217
- libs : list of str
218
- List of files to be packed into app/Frameworks/tvm
219
- These can be dylibs that can be loaed remoted by RPC.
220
-
221
- options : list of str
222
- Additional options to xcodebuild
223
-
224
- Returns
225
- -------
226
- proc : Popen
227
- The test rpc server process.
228
- Don't do wait() on proc, since it can terminate normally.
229
- """
230
- if "TVM_IOS_RPC_ROOT" in os.environ:
231
- rpc_root = os.environ["TVM_IOS_RPC_ROOT"]
232
- else:
233
- curr_path = os.path.dirname(os.path.realpath(os.path.expanduser(__file__)))
234
- rpc_root = os.path.join(curr_path, "../../../apps/ios_rpc")
235
- proj_path = os.path.realpath(os.path.join(rpc_root, "tvmrpc.xcodeproj"))
236
- if not os.path.exists(proj_path):
237
- raise RuntimeError("Cannot find tvmrpc.xcodeproj in %s," +
238
- (" please set env TVM_IOS_RPC_ROOT correctly" % rpc_root))
239
-
240
- # Lock the path so only one file can run
241
- lock = util.filelock(os.path.join(rpc_root, "ios_rpc.lock"))
242
-
243
- with open(os.path.join(rpc_root, "rpc_config.txt"), "w") as fo:
244
- fo.write("%s %d %s\n" % (host, port, key))
245
- libs = libs if libs else []
246
- for file_name in libs:
247
- fo.write("%s\n" % file_name)
248
-
249
- cmd = ["xcrun", "xcodebuild",
250
- "-scheme", "tvmrpc",
251
- "-project", proj_path,
252
- "-destination", destination]
253
- if options:
254
- cmd += options
255
- cmd += ["test"]
256
-
257
- return XCodeRPCServer(cmd, lock)
@@ -1,17 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- """Namespace of executables python files that directly run throw cmd"""
@@ -1,60 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
- # pylint: disable=invalid-name
18
- """Pick best log entries from a large file and store them to a small file"""
19
-
20
- import argparse
21
- import os
22
- import logging
23
- import warnings
24
-
25
- from .. import autotvm
26
-
27
- if __name__ == '__main__':
28
- parser = argparse.ArgumentParser()
29
- parser.add_argument("--act", type=str, choices=['pick-best'], required=True,
30
- help="The action")
31
- parser.add_argument("--i", type=str, help="The input file or directory", required=True)
32
- parser.add_argument("--o", type=str, help="The output file")
33
-
34
- args = parser.parse_args()
35
- logging.basicConfig(level=logging.INFO)
36
-
37
- if args.act == 'pick-best':
38
- if os.path.isfile(args.i):
39
- args.o = args.o or args.i + ".best.log"
40
- autotvm.record.pick_best(args.i, args.o)
41
- elif os.path.isdir(args.i):
42
- args.o = args.o or "best.log"
43
- tmp_filename = args.o + ".tmp"
44
-
45
- with open(tmp_filename, 'w') as tmp_fout:
46
- for filename in os.listdir(args.i):
47
- if filename.endswith(".log"):
48
- try:
49
- autotvm.record.pick_best(filename, tmp_fout)
50
- except Exception: # pylint: disable=broad-except
51
- warnings.warn("Ignore invalid file %s" % filename)
52
-
53
- logging.info("Run final filter...")
54
- autotvm.record.pick_best(tmp_filename, args.o)
55
- os.remove(tmp_filename)
56
- logging.info("Output to %s ...", args.o)
57
- else:
58
- raise ValueError("Invalid input file: " + args.i)
59
- else:
60
- raise ValueError("Invalid action " + args.act)