mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.11__cp38-cp38-manylinux1_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +4 -1
- mindspore/_akg/akg/build_module.py +5 -6
- mindspore/_akg/akg/composite/build_module.py +139 -22
- mindspore/_akg/akg/composite/split_stitch.py +10 -11
- mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
- mindspore/_akg/akg/tvm/api.py +4 -3
- mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
- mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
- mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
- mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
- mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
- mindspore/_akg/akg/tvm/build_module.py +16 -1
- mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
- mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
- mindspore/_akg/akg/tvm/ir_builder.py +1 -1
- mindspore/_akg/akg/tvm/module.py +1 -2
- mindspore/_akg/akg/tvm/stmt.py +2 -2
- mindspore/_akg/akg/utils/ascend_profilier/cann_file_parser.py +76 -0
- mindspore/_akg/akg/utils/ascend_profilier/file_manager.py +56 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_bean.py +23 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_headers.py +8 -0
- mindspore/_akg/akg/utils/ascend_profilier/op_summary_parser.py +42 -0
- mindspore/_akg/akg/utils/ascend_profilier/path_manager.py +65 -0
- mindspore/_akg/akg/utils/composite_op_helper.py +16 -12
- mindspore/_akg/akg/utils/dump_ascend_meta.py +22 -3
- mindspore/_akg/akg/utils/kernel_exec.py +98 -274
- mindspore/_akg/akg/utils/result_analysis.py +4 -24
- mindspore/_akg/akg/utils/tbe_codegen_utils.py +219 -0
- mindspore/_akg/akg/utils/util.py +56 -1
- mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -1
- mindspore/_checkparam.py +23 -29
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- mindspore/_extends/graph_kernel/model/graph_split.py +84 -76
- mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
- mindspore/_extends/graph_kernel/splitter.py +4 -11
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +122 -15
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +84 -67
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
- mindspore/_extends/parallel_compile/akg_compiler/util.py +10 -7
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +2 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +6 -5
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
- mindspore/_extends/parse/__init__.py +13 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +67 -72
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +86 -106
- mindspore/_extends/parse/trope.py +1 -1
- mindspore/_extends/remote/kernel_build_server.py +25 -7
- mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
- mindspore/_install_custom.py +43 -0
- mindspore/_mindspore_offline_debug.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/amp.py +47 -11
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/boost.py +1 -8
- mindspore/boost/boost_cell_wrapper.py +3 -2
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +8 -7
- mindspore/common/__init__.py +5 -3
- mindspore/common/_jit_fallback_utils.py +6 -0
- mindspore/common/_register_for_adapter.py +2 -0
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +13 -0
- mindspore/common/_utils.py +29 -0
- mindspore/common/api.py +174 -259
- mindspore/common/auto_dynamic_shape.py +494 -0
- mindspore/common/dtype.py +18 -11
- mindspore/common/dump.py +6 -4
- mindspore/common/initializer.py +14 -14
- mindspore/common/jit_config.py +33 -15
- mindspore/common/lazy_inline.py +126 -7
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/parameter.py +51 -41
- mindspore/common/seed.py +4 -4
- mindspore/common/sparse_tensor.py +13 -14
- mindspore/common/tensor.py +243 -165
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +83 -4
- mindspore/communication/management.py +152 -84
- mindspore/config/op_info.config +14 -3
- mindspore/config/super_bar_config.json +4 -2
- mindspore/context.py +152 -61
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +52 -52
- mindspore/dataset/callback/ds_callback.py +16 -2
- mindspore/dataset/core/config.py +68 -51
- mindspore/dataset/engine/cache_client.py +33 -7
- mindspore/dataset/engine/datasets.py +250 -112
- mindspore/dataset/engine/datasets_audio.py +43 -211
- mindspore/dataset/engine/datasets_standard_format.py +16 -35
- mindspore/dataset/engine/datasets_text.py +43 -67
- mindspore/dataset/engine/datasets_user_defined.py +86 -100
- mindspore/dataset/engine/datasets_vision.py +219 -1029
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/samplers.py +1 -1
- mindspore/dataset/engine/validators.py +19 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +101 -127
- mindspore/dataset/text/utils.py +205 -138
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +95 -40
- mindspore/dataset/utils/browse_dataset.py +8 -2
- mindspore/dataset/utils/line_reader.py +17 -19
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/c_transforms.py +6 -3
- mindspore/dataset/vision/transforms.py +409 -287
- mindspore/dataset/vision/utils.py +13 -14
- mindspore/dataset/vision/validators.py +11 -1
- mindspore/experimental/map_parameter.py +14 -0
- mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
- mindspore/{nn/optim_ex → experimental/optim}/adam.py +60 -67
- mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
- mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/data_type.h +2 -1
- mindspore/include/api/graph.h +0 -15
- mindspore/include/api/kernel.h +2 -0
- mindspore/include/api/kernel_api.h +37 -12
- mindspore/include/api/model.h +17 -14
- mindspore/include/api/status.h +8 -3
- mindspore/include/api/types.h +37 -4
- mindspore/include/c_api/ms/abstract.h +67 -0
- mindspore/include/c_api/ms/attribute.h +197 -0
- mindspore/include/c_api/ms/base/handle_types.h +43 -0
- mindspore/include/c_api/ms/base/macros.h +32 -0
- mindspore/include/c_api/ms/base/status.h +33 -0
- mindspore/include/c_api/ms/base/types.h +282 -0
- mindspore/include/c_api/ms/context.h +102 -0
- mindspore/include/c_api/ms/graph.h +160 -0
- mindspore/include/c_api/ms/node.h +606 -0
- mindspore/include/c_api/ms/tensor.h +161 -0
- mindspore/include/c_api/ms/value.h +84 -0
- mindspore/include/dataset/constants.h +6 -5
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +13 -13
- mindspore/include/dataset/vision.h +60 -60
- mindspore/include/dataset/vision_ascend.h +5 -6
- mindspore/include/dataset/vision_lite.h +17 -17
- mindspore/include/mindapi/base/type_id.h +1 -0
- mindspore/include/mindapi/base/types.h +1 -0
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libjemalloc.so.2 +0 -0
- mindspore/lib/libmindspore.so +0 -0
- mindspore/lib/libmindspore_backend.so +0 -0
- mindspore/lib/libmindspore_common.so +0 -0
- mindspore/lib/libmindspore_core.so +0 -0
- mindspore/lib/libmindspore_glog.so.0 +0 -0
- mindspore/lib/libmindspore_gpr.so.15 +0 -0
- mindspore/lib/libmindspore_grpc++.so.1 +0 -0
- mindspore/lib/libmindspore_grpc.so.15 +0 -0
- mindspore/lib/libmindspore_shared_lib.so +0 -0
- mindspore/lib/libnnacl.so +0 -0
- mindspore/lib/libopencv_core.so.4.5 +0 -0
- mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
- mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
- mindspore/lib/libps_cache.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310/aic-ascend310-ops-info.json +123 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend310p/aic-ascend310p-ops-info.json +123 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910/aic-ascend910-ops-info.json +158 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/config/ascend910b/aic-ascend910b-ops-info.json +37 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/ai_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_dsl.py +46 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/add_tik.py +51 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/kv_cache_mgr.py +241 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_impl/vector_core/tbe/custom_aicore_ops_impl/matmul_tik.py +212 -0
- mindspore/lib/plugin/ascend/custom_aicore_ops/op_proto/libop_proto.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/aicpu_kernel/impl/libcust_cpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_impl/cpu/config/cust_aicpu_kernel.json +8998 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
- mindspore/lib/plugin/ascend/libakg.so +0 -0
- mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
- mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
- mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
- mindspore/lib/plugin/cpu/libakg.so +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
- mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
- mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
- mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
- mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- mindspore/nn/__init__.py +0 -2
- mindspore/nn/cell.py +313 -74
- mindspore/nn/dynamic_lr.py +21 -21
- mindspore/nn/layer/activation.py +22 -30
- mindspore/nn/layer/basic.py +15 -13
- mindspore/nn/layer/channel_shuffle.py +1 -1
- mindspore/nn/layer/container.py +271 -9
- mindspore/nn/layer/conv.py +323 -204
- mindspore/nn/layer/dense.py +8 -5
- mindspore/nn/layer/embedding.py +33 -27
- mindspore/nn/layer/flash_attention.py +61 -95
- mindspore/nn/layer/image.py +8 -6
- mindspore/nn/layer/math.py +16 -25
- mindspore/nn/layer/normalization.py +107 -66
- mindspore/nn/layer/padding.py +1 -1
- mindspore/nn/layer/pooling.py +131 -109
- mindspore/nn/layer/rnn_cells.py +27 -22
- mindspore/nn/layer/rnns.py +13 -16
- mindspore/nn/layer/thor_layer.py +1 -1
- mindspore/nn/layer/transformer.py +221 -154
- mindspore/nn/learning_rate_schedule.py +9 -1
- mindspore/nn/loss/loss.py +235 -174
- mindspore/nn/optim/ada_grad.py +2 -1
- mindspore/nn/optim/adadelta.py +1 -0
- mindspore/nn/optim/adafactor.py +2 -1
- mindspore/nn/optim/adam.py +7 -4
- mindspore/nn/optim/adamax.py +3 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -3
- mindspore/nn/optim/ftrl.py +6 -5
- mindspore/nn/optim/lamb.py +7 -4
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +5 -3
- mindspore/nn/optim/momentum.py +2 -1
- mindspore/nn/optim/optimizer.py +53 -4
- mindspore/nn/optim/proximal_ada_grad.py +3 -4
- mindspore/nn/optim/rmsprop.py +4 -3
- mindspore/nn/optim/rprop.py +23 -12
- mindspore/nn/optim/sgd.py +26 -11
- mindspore/nn/optim/thor.py +9 -7
- mindspore/nn/probability/bijector/bijector.py +5 -5
- mindspore/nn/probability/bijector/power_transform.py +27 -27
- mindspore/nn/probability/bijector/softplus.py +3 -3
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
- mindspore/nn/probability/distribution/bernoulli.py +5 -5
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +7 -7
- mindspore/nn/probability/distribution/cauchy.py +0 -1
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +4 -4
- mindspore/nn/probability/distribution/gumbel.py +4 -4
- mindspore/nn/probability/distribution/log_normal.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/poisson.py +4 -4
- mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
- mindspore/nn/probability/distribution/uniform.py +6 -6
- mindspore/nn/wrap/__init__.py +4 -2
- mindspore/nn/wrap/cell_wrapper.py +87 -34
- mindspore/nn/wrap/grad_reducer.py +8 -5
- mindspore/nn/wrap/loss_scale.py +105 -42
- mindspore/numpy/array_creations.py +1 -2
- mindspore/numpy/array_ops.py +3 -2
- mindspore/numpy/utils_const.py +5 -5
- mindspore/offline_debug/convert_async.py +2 -2
- mindspore/ops/_grad_experimental/__init__.py +0 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +2 -3
- mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
- mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
- mindspore/ops/_grad_experimental/grad_implementations.py +11 -1
- mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
- mindspore/ops/_grad_experimental/grad_math_ops.py +19 -199
- mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -3
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
- mindspore/ops/_op_impl/aicpu/add.py +3 -3
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/{_custom_op/flash_attention/constants.py → aicpu/eps.py} +18 -27
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/linear_sum_assignment.py +21 -2
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
- mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
- mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
- mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
- mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
- mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
- mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
- mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
- mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
- mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
- mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
- mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
- mindspore/ops/_op_impl/tbe/__init__.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +45 -13
- mindspore/ops/_utils/utils.py +6 -1
- mindspore/ops/_vmap/vmap_array_ops.py +3 -3
- mindspore/ops/_vmap/vmap_base.py +3 -3
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/base.py +37 -10
- mindspore/ops/composite/math_ops.py +5 -4
- mindspore/ops/composite/multitype_ops/_compile_utils.py +275 -73
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
- mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
- mindspore/ops/composite/multitype_ops/getitem_impl.py +42 -4
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/array_func.py +174 -193
- mindspore/ops/function/clip_func.py +81 -13
- mindspore/ops/function/debug_func.py +1 -1
- mindspore/ops/function/grad/grad_func.py +18 -9
- mindspore/ops/function/image_func.py +10 -4
- mindspore/ops/function/linalg_func.py +5 -5
- mindspore/ops/function/math_func.py +575 -386
- mindspore/ops/function/nn_func.py +568 -260
- mindspore/ops/function/random_func.py +88 -57
- mindspore/ops/function/sparse_func.py +1 -1
- mindspore/ops/function/sparse_unary_func.py +14 -12
- mindspore/ops/function/vmap_func.py +6 -5
- mindspore/ops/functional.py +15 -10
- mindspore/ops/op_info_register.py +244 -25
- mindspore/ops/operations/__init__.py +31 -19
- mindspore/ops/operations/_grad_ops.py +71 -7
- mindspore/ops/operations/_inner_ops.py +350 -17
- mindspore/ops/operations/_quant_ops.py +4 -8
- mindspore/ops/operations/_sequence_ops.py +42 -0
- mindspore/ops/operations/array_ops.py +68 -282
- mindspore/ops/operations/comm_ops.py +107 -59
- mindspore/ops/operations/custom_ops.py +94 -70
- mindspore/ops/operations/debug_ops.py +8 -4
- mindspore/ops/operations/image_ops.py +18 -12
- mindspore/ops/operations/inner_ops.py +26 -3
- mindspore/ops/operations/math_ops.py +192 -144
- mindspore/ops/operations/nn_ops.py +857 -489
- mindspore/ops/operations/other_ops.py +0 -22
- mindspore/ops/operations/random_ops.py +53 -111
- mindspore/ops/operations/sparse_ops.py +3 -1
- mindspore/ops/primitive.py +24 -18
- mindspore/parallel/_auto_parallel_context.py +68 -8
- mindspore/parallel/_cost_model_context.py +2 -2
- mindspore/parallel/_offload_context.py +17 -3
- mindspore/parallel/_parallel_serialization.py +12 -5
- mindspore/parallel/_ps_context.py +12 -0
- mindspore/parallel/_tensor.py +18 -13
- mindspore/parallel/_transformer/layers.py +5 -3
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +2 -2
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +23 -3
- mindspore/parallel/_utils.py +11 -7
- mindspore/parallel/algo_parameter_config.py +85 -5
- mindspore/parallel/checkpoint_transform.py +19 -12
- mindspore/parallel/shard.py +21 -14
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +4 -2
- mindspore/profiler/envprofiling.py +1 -1
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +2 -2
- mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
- mindspore/profiler/parser/ascend_hccl_generator.py +249 -12
- mindspore/profiler/parser/ascend_msprof_exporter.py +150 -255
- mindspore/profiler/parser/ascend_msprof_generator.py +204 -17
- mindspore/profiler/parser/ascend_op_generator.py +6 -6
- mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
- mindspore/profiler/parser/ascend_timeline_generator.py +14 -187
- mindspore/profiler/parser/base_timeline_generator.py +10 -8
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +16 -12
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +38 -22
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +2 -2
- mindspore/profiler/parser/minddata_analyzer.py +12 -14
- mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +8 -4
- mindspore/profiler/parser/op_intermediate_parser.py +5 -2
- mindspore/profiler/parser/optime_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +21 -2
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +179 -89
- mindspore/rewrite/api/node.py +102 -19
- mindspore/rewrite/api/node_type.py +5 -1
- mindspore/rewrite/api/pattern_engine.py +1 -1
- mindspore/rewrite/api/scoped_value.py +9 -17
- mindspore/rewrite/api/symbol_tree.py +131 -47
- mindspore/rewrite/ast_helpers/__init__.py +2 -1
- mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +33 -24
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
- mindspore/rewrite/node/call_function.py +79 -0
- mindspore/rewrite/node/cell_container.py +135 -0
- mindspore/rewrite/node/control_flow.py +88 -0
- mindspore/rewrite/{node.py → node/node.py} +273 -234
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +216 -221
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +174 -113
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +42 -21
- mindspore/rewrite/parsers/function_def_parser.py +24 -16
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +196 -25
- mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
- mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
- mindspore/rewrite/parsers/return_parser.py +6 -6
- mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree.py +523 -578
- mindspore/rewrite/symbol_tree_builder.py +9 -193
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +6 -4
- mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
- mindspore/safeguard/rewrite_obfuscation.py +541 -0
- mindspore/scipy/linalg.py +1 -1
- mindspore/scipy/ops.py +55 -5
- mindspore/scipy/optimize/__init__.py +3 -2
- mindspore/scipy/optimize/linear_sum_assignment.py +38 -33
- mindspore/scipy/optimize/minimize.py +7 -3
- mindspore/train/_utils.py +7 -3
- mindspore/train/amp.py +323 -123
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/_backup_and_restore.py +2 -12
- mindspore/train/callback/_callback.py +29 -4
- mindspore/train/callback/_checkpoint.py +23 -8
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
- mindspore/train/callback/_summary_collector.py +15 -8
- mindspore/train/callback/_time_monitor.py +58 -5
- mindspore/train/data_sink.py +5 -11
- mindspore/train/dataset_helper.py +84 -57
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/__init__.py +3 -3
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +3 -2
- mindspore/train/metrics/mean_surface_distance.py +3 -2
- mindspore/train/metrics/metric.py +39 -19
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
- mindspore/train/mind_ir_pb2.py +85 -36
- mindspore/train/model.py +187 -47
- mindspore/train/serialization.py +487 -161
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/_writer_pool.py +3 -2
- mindspore/train/summary/summary_record.py +37 -17
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/train/train_thor/dataset_helper.py +1 -1
- mindspore/version.py +1 -1
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/METADATA +8 -8
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/RECORD +488 -539
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/entry_points.txt +0 -1
- mindspore/_akg/akg/tvm/contrib/debugger/__init__.py +0 -16
- mindspore/_akg/akg/tvm/contrib/debugger/debug_result.py +0 -274
- mindspore/_akg/akg/tvm/contrib/debugger/debug_runtime.py +0 -259
- mindspore/_akg/akg/tvm/contrib/peak.py +0 -341
- mindspore/_akg/akg/tvm/contrib/rpc.py +0 -25
- mindspore/_akg/akg/tvm/contrib/xcode.py +0 -257
- mindspore/_akg/akg/tvm/exec/__init__.py +0 -17
- mindspore/_akg/akg/tvm/exec/autotvm_log_editor.py +0 -60
- mindspore/_akg/akg/tvm/exec/measure_peak.py +0 -48
- mindspore/_akg/akg/tvm/exec/query_rpc_tracker.py +0 -48
- mindspore/_akg/akg/tvm/exec/rpc_proxy.py +0 -98
- mindspore/_akg/akg/tvm/exec/rpc_server.py +0 -88
- mindspore/_akg/akg/tvm/exec/rpc_tracker.py +0 -62
- mindspore/_akg/akg/tvm/rpc/__init__.py +0 -29
- mindspore/_akg/akg/tvm/rpc/base.py +0 -182
- mindspore/_akg/akg/tvm/rpc/client.py +0 -436
- mindspore/_akg/akg/tvm/rpc/proxy.py +0 -595
- mindspore/_akg/akg/tvm/rpc/server.py +0 -413
- mindspore/_akg/akg/tvm/rpc/tornado_util.py +0 -121
- mindspore/_akg/akg/tvm/rpc/tracker.py +0 -431
- mindspore/_extends/graph_kernel/expander.py +0 -80
- mindspore/_extends/graph_kernel/expanders/__init__.py +0 -54
- mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
- mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
- mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
- mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
- mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
- mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
- mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
- mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
- mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
- mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
- mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
- mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
- mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
- mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
- mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
- mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
- mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
- mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
- mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
- mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
- mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
- mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
- mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
- mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
- mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
- mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
- mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
- mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
- mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
- mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
- mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
- mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
- mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
- mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
- mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
- mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
- mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
- mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
- mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
- mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/dataset/datapreprocess/__init__.py +0 -20
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/include/api/net.h +0 -142
- mindspore/nn/lr_scheduler.py +0 -262
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +0 -350
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +0 -409
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +0 -578
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +0 -199
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +0 -446
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/__init__.py +0 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/sparse_tiling.py +0 -45
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +0 -67
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +0 -62
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- /mindspore/{ops/_op_impl/_custom_op/flash_attention → _akg/akg/utils/ascend_profilier}/__init__.py +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.11.dist-info}/top_level.txt +0 -0
mindspore/.commit_id
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__commit_id__ = '[sha1]:
|
|
1
|
+
__commit_id__ = '[sha1]:8c390933,[branch]:(HEAD,origin/r2.2,r2.2)'
|
mindspore/__init__.py
CHANGED
|
@@ -20,7 +20,7 @@ from mindspore import common, dataset, mindrecord, train, log, amp
|
|
|
20
20
|
from mindspore import profiler, communication, numpy, parallel
|
|
21
21
|
from mindspore.common import *
|
|
22
22
|
from mindspore.mindrecord import *
|
|
23
|
-
from mindspore.ops import _op_impl, grad, value_and_grad, vjp, jvp, jacfwd, jacrev, vmap, get_grad
|
|
23
|
+
from mindspore.ops import _op_impl, grad, value_and_grad, vjp, jvp, jacfwd, jacrev, vmap, get_grad, constexpr
|
|
24
24
|
from mindspore.train import *
|
|
25
25
|
from mindspore.log import *
|
|
26
26
|
from mindspore.context import GRAPH_MODE, PYNATIVE_MODE, set_context, get_context, set_auto_parallel_context, \
|
|
@@ -31,8 +31,10 @@ from mindspore.profiler import Profiler, EnvProfiler
|
|
|
31
31
|
from mindspore.parallel import set_algo_parameters, get_algo_parameters, reset_algo_parameters, \
|
|
32
32
|
rank_list_for_transform, transform_checkpoint_by_rank, transform_checkpoints, merge_pipeline_strategys, shard
|
|
33
33
|
from mindspore.rewrite import SymbolTree, ScopedValue, Node, NodeType, TreeNodeHelper
|
|
34
|
+
from mindspore.safeguard import obfuscate_ckpt, load_obf_params_into_net
|
|
34
35
|
from mindspore._check_jit_forbidden_api import get_obj_module_and_name_info, is_jit_forbidden_module, \
|
|
35
36
|
is_invalid_or_jit_forbidden_method
|
|
37
|
+
from mindspore import _install_custom
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
__all__ = ["run_check"]
|
|
@@ -43,4 +45,5 @@ __all__.extend(log.__all__)
|
|
|
43
45
|
__all__.extend(context.__all__)
|
|
44
46
|
__all__.extend(parallel.__all__)
|
|
45
47
|
__all__.extend(rewrite.__all__)
|
|
48
|
+
__all__.extend(safeguard.__all__)
|
|
46
49
|
__all__.append("Profiler")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# coding: utf-8
|
|
3
|
-
# Copyright 2019 Huawei Technologies Co., Ltd
|
|
3
|
+
# Copyright 2019-2023 Huawei Technologies Co., Ltd
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
|
@@ -28,7 +28,6 @@ from akg.tvm import _api_internal
|
|
|
28
28
|
from akg.tvm import schedule
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
tuning_spaces = None
|
|
32
31
|
help_tiling_level = {
|
|
33
32
|
"None": 0, "General": 1, "Candidates": 2, "Tuning": 3
|
|
34
33
|
}
|
|
@@ -36,7 +35,7 @@ EMPTY_CODE = 0
|
|
|
36
35
|
L0_DEFAULT_TILING = 1
|
|
37
36
|
|
|
38
37
|
|
|
39
|
-
def dump_tiling_info(level):
|
|
38
|
+
def dump_tiling_info(level, tuning_spaces = None):
|
|
40
39
|
"""Dump tiling info."""
|
|
41
40
|
if tuning_spaces is None:
|
|
42
41
|
return
|
|
@@ -107,7 +106,8 @@ def lower(sch, args, shape_params=None, name="default_function", binds=None, att
|
|
|
107
106
|
ret = _api_internal._Lower(sch, args, shape_params, name,
|
|
108
107
|
tmp_binds, tmp_attrs, simple_mode,
|
|
109
108
|
polyhedral, tuning, target, cfg)
|
|
110
|
-
|
|
109
|
+
if tmp_attrs is None:
|
|
110
|
+
tmp_attrs = {}
|
|
111
111
|
level = tmp_attrs.get("help_tiling")
|
|
112
112
|
if attrs.get("use_new_space", False):
|
|
113
113
|
# new space: constraints format
|
|
@@ -118,7 +118,6 @@ def lower(sch, args, shape_params=None, name="default_function", binds=None, att
|
|
|
118
118
|
return space
|
|
119
119
|
elif tuning or (level is not None and level > help_tiling_level['None']):
|
|
120
120
|
level = help_tiling_level['Tuning'] if tuning else level
|
|
121
|
-
global tuning_spaces
|
|
122
121
|
tuning_spaces = {}
|
|
123
122
|
tuning_spaces["index"] = ret.index_table.asnumpy().tolist()
|
|
124
123
|
tuning_spaces["c1_range"] = ret.c1_tile_range_table.asnumpy().tolist()
|
|
@@ -132,7 +131,7 @@ def lower(sch, args, shape_params=None, name="default_function", binds=None, att
|
|
|
132
131
|
if level >= help_tiling_level["Candidates"]:
|
|
133
132
|
tuning_spaces["tuning_space"] = ret.tiling_candidate.asnumpy().tolist()
|
|
134
133
|
if not tuning:
|
|
135
|
-
dump_tiling_info(level)
|
|
134
|
+
dump_tiling_info(level, tuning_spaces)
|
|
136
135
|
return ret
|
|
137
136
|
|
|
138
137
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# coding: utf-8
|
|
3
|
-
# Copyright 2020-
|
|
3
|
+
# Copyright 2020-2023 Huawei Technologies Co., Ltd
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
# you may not use this file except in compliance with the License.
|
|
@@ -19,19 +19,17 @@ import os
|
|
|
19
19
|
import json
|
|
20
20
|
from collections.abc import Iterable
|
|
21
21
|
import akg
|
|
22
|
+
import math
|
|
22
23
|
from akg import tvm
|
|
23
24
|
from tvm.autotvm.env import AutotvmGlobalScope
|
|
25
|
+
from akg.utils.util import parse_workspace_map
|
|
26
|
+
from akg.utils.tbe_codegen_utils import build_tbe_codegen
|
|
24
27
|
from akg.utils.kernel_exec import ReturnType, is_symbolic_tiling
|
|
25
28
|
from .split_stitch import split_stitch_attr
|
|
26
|
-
from .construct_args import get_construct_args, get_tune_construct_args, \
|
|
27
|
-
should_enable_attr, get_stmt_for_tune, add_attrs_in_segment_infos, \
|
|
28
|
-
update_attrs
|
|
29
29
|
from .construct_args import ConstructType, ConstructKey
|
|
30
30
|
from .construct_args import get_construct_args, get_tune_construct_args, \
|
|
31
31
|
should_enable_attr, get_stmt_for_tune, add_attrs_in_segment_infos
|
|
32
|
-
from .
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
from utils.util import get_ascend_type
|
|
35
33
|
def generate_trait(desc):
|
|
36
34
|
"""
|
|
37
35
|
generate trait of kernel description
|
|
@@ -317,12 +315,12 @@ def merge_attrs(attrs_a, attrs_b):
|
|
|
317
315
|
return attrs
|
|
318
316
|
|
|
319
317
|
|
|
320
|
-
def read_repo_file(repo_file):
|
|
318
|
+
def read_repo_file(repo_file, is_json_load=True):
|
|
321
319
|
if not os.path.exists(repo_file):
|
|
322
320
|
return {}
|
|
323
321
|
with open(repo_file, 'r') as f:
|
|
324
|
-
repo =
|
|
325
|
-
return repo
|
|
322
|
+
repo = f.read()
|
|
323
|
+
return json.loads(repo) if is_json_load else repo
|
|
326
324
|
|
|
327
325
|
|
|
328
326
|
def _get_default_repository_file(process):
|
|
@@ -407,6 +405,18 @@ def _update_attrs_ascend(all_ops, attr):
|
|
|
407
405
|
attr["multicore_loop_switch_hoist"] = "UnsortedSegmentSum" not in all_ops
|
|
408
406
|
return attr
|
|
409
407
|
|
|
408
|
+
def _cpp_build(attrs, process, poly, segment_tree, segment_infos):
|
|
409
|
+
if attrs.get("is_tbe_codegen"):
|
|
410
|
+
func = tvm.get_global_func("lower_composite")
|
|
411
|
+
else:
|
|
412
|
+
func = tvm.get_global_func("lower_composite_to_module")
|
|
413
|
+
|
|
414
|
+
if "ret_mode" in attrs:
|
|
415
|
+
return _build_for_tuning(attrs, func, process, segment_tree, segment_infos)
|
|
416
|
+
|
|
417
|
+
res = func(process, poly, segment_tree, segment_infos)
|
|
418
|
+
return res
|
|
419
|
+
|
|
410
420
|
|
|
411
421
|
def _build_to_module(desc_s, desc_d, attrs=None, poly=True):
|
|
412
422
|
"""
|
|
@@ -512,11 +522,7 @@ def _build_to_module(desc_s, desc_d, attrs=None, poly=True):
|
|
|
512
522
|
segment_tree, segment_infos = get_construct_args(desc_s, attrs, post_funcs)
|
|
513
523
|
process = desc_d["process"]
|
|
514
524
|
|
|
515
|
-
|
|
516
|
-
if "ret_mode" in attrs and poly:
|
|
517
|
-
return _build_for_tuning(attrs, func, process, segment_tree, segment_infos)
|
|
518
|
-
return func(process, poly, segment_tree, segment_infos)
|
|
519
|
-
|
|
525
|
+
return _cpp_build(attrs, process, poly, segment_tree, segment_infos)
|
|
520
526
|
|
|
521
527
|
def _build_to_module_ascend(desc_s_in, desc_d_in, attr, use_repo=True):
|
|
522
528
|
"""
|
|
@@ -633,14 +639,125 @@ def _build_to_module_ascend(desc_s_in, desc_d_in, attr, use_repo=True):
|
|
|
633
639
|
ConstructType.STITCH: _stitch_postprocess,
|
|
634
640
|
ConstructType.NORMAL: _normal_postprocess,
|
|
635
641
|
}
|
|
636
|
-
segment_tree, segment_infos = get_construct_args(desc_s_in, attr, post_funcs)
|
|
637
642
|
process = desc_d_in["process"]
|
|
643
|
+
kernel_name = desc_d_in['op']
|
|
644
|
+
ascend_type = get_ascend_type(desc_d_in)
|
|
645
|
+
ascend_type_to_section = {"Ascend910A": "1.6", "Ascend310P3": "1.7",
|
|
646
|
+
"Ascend910B1": "2.1", "Ascend910B2": "2.2", "Ascend910B3": "2.3", "Ascend910B4": "2.4"}
|
|
647
|
+
if ascend_type is not None:
|
|
648
|
+
section = ascend_type_to_section.get(ascend_type, "1.6")
|
|
649
|
+
config_func = akg.tvm.get_global_func("cce.set_product_section")
|
|
650
|
+
config_func(section)
|
|
651
|
+
if section >= "2.1":
|
|
652
|
+
attr["is_tbe_codegen"] = True
|
|
653
|
+
attr["pragma_modshift"] = True
|
|
654
|
+
segment_tree, segment_infos = get_construct_args(desc_s_in, attr, post_funcs)
|
|
638
655
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
return
|
|
642
|
-
|
|
643
|
-
|
|
656
|
+
if desc_d_in.get("enable_cce_lib"):
|
|
657
|
+
attr["enable_cce_lib"] = True
|
|
658
|
+
return _build_to_module_ascend_lib(desc_s_in, kernel_name)
|
|
659
|
+
|
|
660
|
+
poly = True
|
|
661
|
+
res = _cpp_build(attr, process, poly, segment_tree, segment_infos)
|
|
662
|
+
if attr.get("is_tbe_codegen"):
|
|
663
|
+
stmt_json = akg.tvm.save_json(res[0], "0.8.0")
|
|
664
|
+
args_json = []
|
|
665
|
+
for buf in res[1]:
|
|
666
|
+
args_json.append(akg.tvm.save_json(buf, "0.8.0"))
|
|
667
|
+
|
|
668
|
+
workspace_dict = parse_workspace_map(res[2])
|
|
669
|
+
if workspace_dict is not None:
|
|
670
|
+
attr["workspace"] = workspace_dict
|
|
671
|
+
|
|
672
|
+
is_success = build_tbe_codegen(kernel_name, stmt_json, args_json, attr, ascend_type)
|
|
673
|
+
if not is_success:
|
|
674
|
+
raise TypeError("npu_inference codegen failed.")
|
|
675
|
+
return kernel_name
|
|
676
|
+
return res
|
|
677
|
+
|
|
678
|
+
def _build_to_module_ascend_lib(desc_s_in, kernel_name):
|
|
679
|
+
def _get_all_shape(shapes):
|
|
680
|
+
shape_split = shapes.split(".")
|
|
681
|
+
shape_list = []
|
|
682
|
+
for shape in shape_split:
|
|
683
|
+
if "-" in shape:
|
|
684
|
+
tmp_shape = shape.split("-")[0]
|
|
685
|
+
for _ in range(shape.count("-") + 1):
|
|
686
|
+
shape_list.append(tmp_shape)
|
|
687
|
+
else:
|
|
688
|
+
shape_list.append(shape)
|
|
689
|
+
return shape_list
|
|
690
|
+
|
|
691
|
+
def _get_tiling_info(desc_s):
|
|
692
|
+
compute, shape, dtype = generate_trait(desc_s)
|
|
693
|
+
tiling_info = {}
|
|
694
|
+
if "MatMul" in compute:
|
|
695
|
+
trans_a = compute.split("_")[1]
|
|
696
|
+
trans_b = compute.split("_")[-1].split(".")[0]
|
|
697
|
+
|
|
698
|
+
shape_list = _get_all_shape(shape)
|
|
699
|
+
bias_flag = int(len(shape_list) > 3)
|
|
700
|
+
tensor_A = shape_list[0]
|
|
701
|
+
tensor_B = shape_list[1]
|
|
702
|
+
|
|
703
|
+
tensor_A_split = tensor_A.split("_")
|
|
704
|
+
if len(tensor_A_split) > 2:
|
|
705
|
+
batch_size = int(tensor_A.split("_")[0])
|
|
706
|
+
else:
|
|
707
|
+
batch_size = 1
|
|
708
|
+
if trans_a == "1":
|
|
709
|
+
M = int(tensor_A_split[-1])
|
|
710
|
+
K = int(tensor_A_split[-2])
|
|
711
|
+
else:
|
|
712
|
+
M = int(tensor_A_split[-2])
|
|
713
|
+
K = int(tensor_A_split[-1])
|
|
714
|
+
|
|
715
|
+
if trans_b == "1":
|
|
716
|
+
N = int(tensor_B.split("_")[-2])
|
|
717
|
+
else:
|
|
718
|
+
N = int(tensor_B.split("_")[-1])
|
|
719
|
+
tensor_A_type = str(dtype.split("-")[0])
|
|
720
|
+
tiling_info = {"batch_size":batch_size, "M": M, "N": N, "K": K, "trans_a": int(trans_a), "trans_b": int(trans_b),
|
|
721
|
+
"tensor_A_type": tensor_A_type, "bias_flag": bias_flag, "op_type": "MatMul"}
|
|
722
|
+
elif "PagedAttention" in compute or "PagedAttentionMask" in compute:
|
|
723
|
+
shape_list = _get_all_shape(shape)
|
|
724
|
+
query = shape_list[0]
|
|
725
|
+
key_cache = shape_list[1]
|
|
726
|
+
table_shape = shape_list[3]
|
|
727
|
+
|
|
728
|
+
num_tokens = int(query.split("_")[0])
|
|
729
|
+
num_heads = int(query.split("_")[1])
|
|
730
|
+
embedding_size = int(query.split("_")[2])
|
|
731
|
+
num_blocks = int(key_cache.split("_")[0])
|
|
732
|
+
block_size = int(key_cache.split("_")[1])
|
|
733
|
+
kv_heads = int(key_cache.split("_")[2])
|
|
734
|
+
|
|
735
|
+
max_num_blocks_per_query = int(table_shape.split("_")[1])
|
|
736
|
+
tor = float(1.0 / math.sqrt(1.0 * embedding_size))
|
|
737
|
+
|
|
738
|
+
tiling_info = {"num_tokens": num_tokens, "num_heads": num_heads, "embedding_size": embedding_size,
|
|
739
|
+
"num_blocks": num_blocks, "block_size": block_size, "max_num_blocks_per_query": max_num_blocks_per_query,
|
|
740
|
+
"tor": tor, "kv_heads": kv_heads, "op_type": "PagedAttention"}
|
|
741
|
+
if "PagedAttentionMask" in compute:
|
|
742
|
+
mask_shape = shape_list[5]
|
|
743
|
+
tiling_info["mask"] = list(map(int, mask_shape.split("_")))
|
|
744
|
+
tiling_info["op_type"] = "PagedAttentionMask"
|
|
745
|
+
elif "ReshapeAndCache" in compute:
|
|
746
|
+
shape_list = _get_all_shape(shape)
|
|
747
|
+
kv = shape_list[0]
|
|
748
|
+
|
|
749
|
+
num_tokens = int(kv.split("_")[0])
|
|
750
|
+
num_heads = int(kv.split("_")[1])
|
|
751
|
+
head_size = int(kv.split("_")[2])
|
|
752
|
+
|
|
753
|
+
tiling_info = {"num_tokens": num_tokens, "num_heads": num_heads, "head_size": head_size,
|
|
754
|
+
"op_type": "ReshapeAndCache"}
|
|
755
|
+
return tiling_info
|
|
756
|
+
|
|
757
|
+
func = tvm.get_global_func("build_cce_lib")
|
|
758
|
+
tiling_info = _get_tiling_info(json.loads(desc_s_in))
|
|
759
|
+
func(kernel_name, tiling_info, None)
|
|
760
|
+
return kernel_name
|
|
644
761
|
|
|
645
762
|
def _set_backend(desc_d):
|
|
646
763
|
desc_d_process = desc_d
|
|
@@ -739,4 +856,4 @@ def get_tiling_space(kernel_desc, level=1, attr=None):
|
|
|
739
856
|
spaces['c0_mod'] = ret.c0_tile_mod_table.asnumpy().tolist()
|
|
740
857
|
if level >= 2:
|
|
741
858
|
spaces['tuning_space'] = ret.tiling_candidate.asnumpy().tolist()
|
|
742
|
-
return spaces
|
|
859
|
+
return spaces
|
|
@@ -240,11 +240,10 @@ def parse_merged_json(desc_d, stitch_tensor_name, input_tensor_name, output_tens
|
|
|
240
240
|
return extra_subgraph_output, list(final_output_list), final_output_within_graph
|
|
241
241
|
|
|
242
242
|
|
|
243
|
-
def
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return inplace_assign_map, fake_output_list
|
|
243
|
+
def process_assign(op_info, assign_map, fake_output_list):
|
|
244
|
+
assign_map[op_info['output_desc'][0]['tensor_name']] = op_info['input_desc'][0][0]['tensor_name']
|
|
245
|
+
fake_output_list.append(op_info['output_desc'][0]['tensor_name'])
|
|
246
|
+
return assign_map, fake_output_list
|
|
248
247
|
|
|
249
248
|
|
|
250
249
|
def process_each_subgraph(op_info, req_map, input_tensor_name, output_tensor_name, stitch_node_list, sg):
|
|
@@ -291,16 +290,16 @@ def process_each_subgraph(op_info, req_map, input_tensor_name, output_tensor_nam
|
|
|
291
290
|
|
|
292
291
|
|
|
293
292
|
def collect_subgraph_info(desc_d, sub_stitch_graphs, req_map, input_tensor_name, output_tensor_name, stitch_node_list):
|
|
294
|
-
|
|
293
|
+
assign_map = {}
|
|
295
294
|
fake_output_list = []
|
|
296
295
|
# traversal desc_d by reverse topologically order.
|
|
297
296
|
for i in range(len(desc_d['op_desc']) - 1, -1, -1):
|
|
298
297
|
op_info = desc_d['op_desc'][i]
|
|
299
|
-
if op_info['name'] == "
|
|
300
|
-
|
|
298
|
+
if op_info['name'] == "Assign":
|
|
299
|
+
assign_map, fake_output_list = process_assign(op_info, assign_map, fake_output_list)
|
|
301
300
|
for sg in sub_stitch_graphs:
|
|
302
301
|
process_each_subgraph(op_info, req_map, input_tensor_name, output_tensor_name, stitch_node_list, sg)
|
|
303
|
-
return sub_stitch_graphs,
|
|
302
|
+
return sub_stitch_graphs, assign_map, fake_output_list
|
|
304
303
|
|
|
305
304
|
|
|
306
305
|
def sub_graph_info(sub_graph, desc_d):
|
|
@@ -391,7 +390,7 @@ def stitch_json_split(desc_d):
|
|
|
391
390
|
for i, stitch_op in enumerate(stitch_node):
|
|
392
391
|
sub_stitch_graphs.append(Graph(stitch_op))
|
|
393
392
|
|
|
394
|
-
sub_stitch_graphs,
|
|
393
|
+
sub_stitch_graphs, assign_map, fake_output_list = \
|
|
395
394
|
collect_subgraph_info(desc_d, sub_stitch_graphs, req_map,
|
|
396
395
|
input_tensor_name, complement_output, stitchnode_list)
|
|
397
396
|
# reverse op order to generate topological subgraph
|
|
@@ -418,7 +417,7 @@ def stitch_json_split(desc_d):
|
|
|
418
417
|
else:
|
|
419
418
|
clean_info = reuse_map.get(fake_op)
|
|
420
419
|
reuse_map.pop(fake_op)
|
|
421
|
-
clean_op_map[
|
|
420
|
+
clean_op_map[assign_map.get(fake_op)] = clean_info
|
|
422
421
|
|
|
423
422
|
if not alloc_map:
|
|
424
423
|
alloc_map['EMPTY'] = []
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2022 Huawei Technologies Co., Ltd
|
|
1
|
+
# Copyright 2022-2023 Huawei Technologies Co., Ltd
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -26,11 +26,64 @@ v1(r1.8):
|
|
|
26
26
|
* on cpu, it contains "arch", "system" and "feature" fields.
|
|
27
27
|
* on gpu, it contains "compute_capability" and "sm_count" fields,
|
|
28
28
|
the "compute_capability" already exists from v0.
|
|
29
|
+
|
|
30
|
+
v2(r2.2):
|
|
31
|
+
1. For all the ops, the number of inputs in akg info is equal to the number of
|
|
32
|
+
real inputs, which means that no inputs are converted to attributes in the info.
|
|
33
|
+
AKG needs to handle this process by itself from now on.
|
|
34
|
+
2. For those inputs need to be converted to attributes, a key in "input_desc" of
|
|
35
|
+
this op named "value" is guaranteed, which contains the value of this input.
|
|
29
36
|
"""
|
|
30
37
|
|
|
31
38
|
import logging
|
|
32
39
|
|
|
33
40
|
|
|
41
|
+
def convert_input_to_attr(kernel_info:dict):
|
|
42
|
+
op_info = {
|
|
43
|
+
"Reshape": [(1, "shape")],
|
|
44
|
+
"ReduceMax": [(1, "axis")],
|
|
45
|
+
"ReduceMin": [(1, "axis")],
|
|
46
|
+
"ReduceSum": [(1, "axis")],
|
|
47
|
+
"Transpose": [(1, "perm")],
|
|
48
|
+
"ExpandDims": [(1, "axis")],
|
|
49
|
+
"Tile": [(1, "multiples")],
|
|
50
|
+
"StridedSlice": [(3, "strides"), (2, "end"), (1, "begin")],
|
|
51
|
+
"OneHot": [(1, "depth")],
|
|
52
|
+
"Gather": [(2, "axis")],
|
|
53
|
+
"UnsortedSegmentSum": [(2, "num_segments")],
|
|
54
|
+
"CumSum": [(1, "axis")],
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
int_input_required_ops = {
|
|
58
|
+
"OneHot",
|
|
59
|
+
"UnsortedSegmentSum",
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
ops = kernel_info["op_desc"]
|
|
63
|
+
for op in ops:
|
|
64
|
+
op_name = op["name"]
|
|
65
|
+
if op_name in op_info:
|
|
66
|
+
attr = []
|
|
67
|
+
if op["attr"]:
|
|
68
|
+
attr = op["attr"]
|
|
69
|
+
for input_info in op_info[op_name]:
|
|
70
|
+
input_index = input_info[0]
|
|
71
|
+
input_name = input_info[1]
|
|
72
|
+
if input_index >= len(op["input_desc"]):
|
|
73
|
+
continue
|
|
74
|
+
input_desc_i = op["input_desc"].pop(input_index)
|
|
75
|
+
input_value = input_desc_i[0]["value"]
|
|
76
|
+
input_dtype = "listInt"
|
|
77
|
+
if op_name not in int_input_required_ops and isinstance(input_value, int):
|
|
78
|
+
input_value = [input_value]
|
|
79
|
+
if isinstance(input_value, int):
|
|
80
|
+
input_dtype = "int"
|
|
81
|
+
attr.append(
|
|
82
|
+
{"name": input_name, "dtype": input_dtype, "value": input_value}
|
|
83
|
+
)
|
|
84
|
+
op["attr"] = attr
|
|
85
|
+
|
|
86
|
+
|
|
34
87
|
def _adapt_version_0(kernel_info: dict):
|
|
35
88
|
if "compute_capability" in kernel_info:
|
|
36
89
|
# move the "compute_capability" into "target_info" field.
|
|
@@ -39,8 +92,21 @@ def _adapt_version_0(kernel_info: dict):
|
|
|
39
92
|
kernel_info.pop("compute_capability")
|
|
40
93
|
|
|
41
94
|
|
|
95
|
+
def _adapt_version_1(kernel_info:dict):
|
|
96
|
+
pass
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _adapt_version_2(kernel_info:dict):
|
|
100
|
+
if kernel_info.get("version", 0) < 2:
|
|
101
|
+
return
|
|
102
|
+
else:
|
|
103
|
+
convert_input_to_attr(kernel_info)
|
|
104
|
+
|
|
105
|
+
|
|
42
106
|
_adapt_func_list = [
|
|
43
107
|
_adapt_version_0,
|
|
108
|
+
_adapt_version_1,
|
|
109
|
+
_adapt_version_2,
|
|
44
110
|
]
|
|
45
111
|
|
|
46
112
|
|
mindspore/_akg/akg/tvm/api.py
CHANGED
|
@@ -155,21 +155,22 @@ def load_json(json_str):
|
|
|
155
155
|
return _api_internal._load_json(json_str)
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
def save_json(node):
|
|
158
|
+
def save_json(node, version="0.6.0"):
|
|
159
159
|
"""Save tvm object as json string.
|
|
160
160
|
|
|
161
161
|
Parameters
|
|
162
162
|
----------
|
|
163
163
|
node : Node
|
|
164
164
|
A TVM Node object to be saved.
|
|
165
|
+
version : str
|
|
166
|
+
A TVM version string, only support "0.6.0", "0.8.0" for now.
|
|
165
167
|
|
|
166
168
|
Returns
|
|
167
169
|
-------
|
|
168
170
|
json_str : str
|
|
169
171
|
Saved json string.
|
|
170
172
|
"""
|
|
171
|
-
return _api_internal._save_json(node)
|
|
172
|
-
|
|
173
|
+
return _api_internal._save_json(node, version)
|
|
173
174
|
|
|
174
175
|
def var(name="tindex", dtype=int32):
|
|
175
176
|
"""Create a new variable with specified name and dtype
|
|
@@ -42,8 +42,7 @@ from . import env
|
|
|
42
42
|
#from . import tophub
|
|
43
43
|
|
|
44
44
|
# some shortcuts
|
|
45
|
-
from .measure import measure_option, MeasureInput, MeasureResult, MeasureErrorNo,
|
|
46
|
-
LocalBuilder, LocalRunner, RPCRunner
|
|
45
|
+
from .measure import measure_option, MeasureInput, MeasureResult, MeasureErrorNo, LocalBuilder
|
|
47
46
|
from .tuner import callback
|
|
48
47
|
from .task import template, get_config, create, ConfigSpace, ConfigEntity, \
|
|
49
48
|
register_topi_compute, register_topi_schedule, \
|
|
@@ -441,11 +441,7 @@ class BaseGraphTuner(object):
|
|
|
441
441
|
builder = autotvm.LocalBuilder(n_parallel=n_parallel, build_func=build_func)
|
|
442
442
|
runner = autotvm.LocalRunner(number=min_exec_num, repeat=1, timeout=timeout)
|
|
443
443
|
if use_rpc:
|
|
444
|
-
|
|
445
|
-
raise RuntimeError("device_key need to be set to use rpc tracker mode.")
|
|
446
|
-
runner = autotvm.measure.RPCRunner(device_key, host, port, n_parallel=n_parallel,
|
|
447
|
-
number=min_exec_num, repeat=1,
|
|
448
|
-
timeout=timeout)
|
|
444
|
+
raise RuntimeError("rpc is not supported.")
|
|
449
445
|
measure_option = autotvm.measure_option(builder=builder, runner=runner)
|
|
450
446
|
for args in args_list:
|
|
451
447
|
data, in_layout, out_layout = args
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
from .measure import MeasureInput, MeasureResult, MeasureErrorNo, measure_option, \
|
|
20
20
|
create_measure_batch
|
|
21
|
-
from .measure_methods import LocalBuilder
|
|
21
|
+
from .measure_methods import LocalBuilder
|
|
22
22
|
from .executor import Executor
|
|
23
23
|
from .local_executor import LocalExecutor
|
|
@@ -46,7 +46,7 @@ class MeasureResult(namedtuple("MeasureResult", ["costs", "error_no", "all_cost"
|
|
|
46
46
|
error_no: int
|
|
47
47
|
Denote error type, defined by MeasureErrorNo
|
|
48
48
|
all_cost: float
|
|
49
|
-
All cost of this measure, including
|
|
49
|
+
All cost of this measure, including compilation, test runs
|
|
50
50
|
timestamp: float
|
|
51
51
|
The absolute time stamp when we finish measurement.
|
|
52
52
|
"""
|
|
@@ -191,15 +191,6 @@ def measure_option(builder, runner):
|
|
|
191
191
|
>>> timeout=5)
|
|
192
192
|
>>> )
|
|
193
193
|
|
|
194
|
-
# example setting for using remote devices
|
|
195
|
-
>>> measure_option = autotvm.measure_option(
|
|
196
|
-
>>> builder=autotvm.LocalBuilder(), # use all local cpu cores for compilation
|
|
197
|
-
>>> runner=autotvm.RPCRunner(
|
|
198
|
-
>>> 'rasp3b', 'locahost', 9190, # device key, host and port of the rpc tracker
|
|
199
|
-
>>> number=4,
|
|
200
|
-
>>> timeout=4) # timeout of a run on the device. RPC request waiting time is excluded.
|
|
201
|
-
>>>)
|
|
202
|
-
|
|
203
194
|
Note
|
|
204
195
|
----
|
|
205
196
|
To make measurement results accurate, you should pick the correct value for the argument
|