mindspore 2.1.0__cp38-cp38-manylinux1_x86_64.whl → 2.2.10__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 +46 -19
- 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/__init__.py +0 -0
- 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 +9 -10
- 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 +38 -0
- 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 +12 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +61 -71
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +74 -104
- 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 +13 -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 +28 -5
- 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 +8928 -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 +141 -88
- 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/cell_wrapper.py +84 -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/_custom_op/flash_attention/attention.py +165 -109
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.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/aicpu/eps.py +32 -0
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -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 +28 -19
- mindspore/ops/operations/_grad_ops.py +72 -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 +189 -141
- mindspore/ops/operations/nn_ops.py +794 -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 +36 -15
- 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/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.10.dist-info}/METADATA +6 -7
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/RECORD +488 -528
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.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/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-2.1.0.dist-info → mindspore-2.2.10.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.10.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
# Copyright 2023 Huawei Technologies Co., Ltd
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# 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, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
import os
|
|
17
|
+
import logging
|
|
18
|
+
from akg.utils.util import write_code
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
logging.getLogger().setLevel(logging.INFO)
|
|
22
|
+
|
|
23
|
+
def create_directory(dir):
|
|
24
|
+
if not os.path.exists(dir):
|
|
25
|
+
os.mkdir(dir)
|
|
26
|
+
|
|
27
|
+
def set_workspace_for_json(json_path, workspace_dict):
|
|
28
|
+
if workspace_dict is None:
|
|
29
|
+
return
|
|
30
|
+
with open(json_path, 'r') as f:
|
|
31
|
+
js_info = json.loads(f.read())
|
|
32
|
+
js_info["workspace"] = workspace_dict
|
|
33
|
+
write_code(js_info, json_path)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def copy_to_akg_kernel_meta(kernel_name, postfixs, workspace_dict=None):
|
|
37
|
+
akg_kernel_mate_str = os.getenv("KERNEL_META_DIR",default="akg_kernel_meta")
|
|
38
|
+
source = os.path.realpath(os.getenv('MS_COMPILER_CACHE_PATH', './'))
|
|
39
|
+
import shutil
|
|
40
|
+
target = source + "/" + akg_kernel_mate_str + "/" + kernel_name
|
|
41
|
+
source = source + "/" + "kernel_meta/" + kernel_name
|
|
42
|
+
if source == target:
|
|
43
|
+
return True
|
|
44
|
+
akg_kernel_mate_str = os.path.abspath(akg_kernel_mate_str)
|
|
45
|
+
create_directory(akg_kernel_mate_str)
|
|
46
|
+
for postfix in postfixs:
|
|
47
|
+
if os.path.exists(source + postfix):
|
|
48
|
+
try:
|
|
49
|
+
shutil.move(source + postfix, target + postfix)
|
|
50
|
+
if postfix == ".json" and workspace_dict is not None:
|
|
51
|
+
set_workspace_for_json(target + postfix, workspace_dict)
|
|
52
|
+
except IOError as e:
|
|
53
|
+
logging.error("Unable to move file. {}".format(e))
|
|
54
|
+
except Exception as e:
|
|
55
|
+
logging.error("Unexpected error:", e)
|
|
56
|
+
else:
|
|
57
|
+
logging.info("Move {} fail, exit.".format(source + postfix))
|
|
58
|
+
return False
|
|
59
|
+
return True
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def clean_env():
|
|
63
|
+
import gc
|
|
64
|
+
import sys
|
|
65
|
+
|
|
66
|
+
imported_modules = set(sys.modules.keys())
|
|
67
|
+
for obj_key in imported_modules:
|
|
68
|
+
if "conda" in obj_key:
|
|
69
|
+
continue
|
|
70
|
+
if "akg" in obj_key or "topi" in obj_key or "tvm" in obj_key:
|
|
71
|
+
del sys.modules[obj_key]
|
|
72
|
+
try:
|
|
73
|
+
del globals()[obj_key]
|
|
74
|
+
except KeyError:
|
|
75
|
+
pass
|
|
76
|
+
try:
|
|
77
|
+
del locals()[obj_key]
|
|
78
|
+
except KeyError:
|
|
79
|
+
pass
|
|
80
|
+
|
|
81
|
+
gc.collect()
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def auto_init_soc(ascend_type):
|
|
85
|
+
from tbe.common.platform import set_current_compile_soc_info
|
|
86
|
+
set_current_compile_soc_info(ascend_type)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def build_npu_for_akg(kernel_name,
|
|
90
|
+
stmt=None,
|
|
91
|
+
arg_list=None,
|
|
92
|
+
is_dynamic=False,
|
|
93
|
+
cfg=None,
|
|
94
|
+
simple_mode=False):
|
|
95
|
+
import tbe
|
|
96
|
+
from tbe.tvm.tir import transform
|
|
97
|
+
from tbe.tvm.driver.cce_build_module import _count_time, generate_cce_code
|
|
98
|
+
from tbe.common.buildcfg import set_current_build_config
|
|
99
|
+
from tbe.common.buildcfg.buildcfg_mapping import dynamic_shape, disable_vectorize, tik, enable_const_fold, \
|
|
100
|
+
dynamic_tik, instrument_bound_checkers, tbe_workspace_size_list_length
|
|
101
|
+
|
|
102
|
+
set_current_build_config(tbe_workspace_size_list_length,
|
|
103
|
+
tbe.tvm.runtime.cce_runtime.tbe_workspace_size_list_length())
|
|
104
|
+
|
|
105
|
+
if stmt is None or arg_list is None:
|
|
106
|
+
raise ValueError("No json, exit.")
|
|
107
|
+
|
|
108
|
+
func = tbe.tvm.tir.PrimFunc(arg_list, stmt)
|
|
109
|
+
mod = tbe.tvm.IRModule({kernel_name : func})
|
|
110
|
+
# _static_lower_phase_0
|
|
111
|
+
mod = transform.InjectSocVersion()(mod)
|
|
112
|
+
mod = transform.DeduceOpPlatform()(mod)
|
|
113
|
+
mod = transform.EmitInsn()(mod)
|
|
114
|
+
|
|
115
|
+
# phase 1 _static_lower_phase_emit_insn
|
|
116
|
+
mod = transform.InjectMultiCoreSync()(mod)
|
|
117
|
+
mod = transform.SplitCoproc()(mod)
|
|
118
|
+
mod = transform.SequenceSprInsn()(mod)
|
|
119
|
+
|
|
120
|
+
# phase 2
|
|
121
|
+
mod = transform.TikDoubleBufferSupport()(mod)
|
|
122
|
+
mod = transform.InjectPipeBuffer()(mod)
|
|
123
|
+
mod = transform.OptimizeDMA()(mod)
|
|
124
|
+
mod = transform.SubstituteInstr()(mod)
|
|
125
|
+
mod = transform.InjectAccessPtrMSG()(mod)
|
|
126
|
+
mod = transform.InjectPipe()(mod)
|
|
127
|
+
mod = transform.DeSequenceSprInsn()(mod)
|
|
128
|
+
mod = transform.CanonicalSimplify()(mod)
|
|
129
|
+
mod = transform.SetSPROptimizer()(mod)
|
|
130
|
+
if cfg[enable_const_fold]:
|
|
131
|
+
mod = transform.ConstantFolding()(mod)
|
|
132
|
+
if not simple_mode:
|
|
133
|
+
mod = transform.LoopPartition()(mod)
|
|
134
|
+
if cfg[disable_vectorize]:
|
|
135
|
+
mod = transform.SkipVectorize()(mod)
|
|
136
|
+
else:
|
|
137
|
+
mod = transform.VectorizeLoop()(mod)
|
|
138
|
+
mod = transform.InjectVirtualThread()(mod)
|
|
139
|
+
|
|
140
|
+
# phase 3 _static_lower_phase_3
|
|
141
|
+
mod = transform.StorageRewriteCCE()(mod)
|
|
142
|
+
mod = transform.ReorderProcess()(mod)
|
|
143
|
+
if cfg[tik] and cfg[dynamic_tik]:
|
|
144
|
+
mod = transform.TikDynamicShapeAllocMem()(mod)
|
|
145
|
+
mod = transform.UnrollLoop()(mod)
|
|
146
|
+
|
|
147
|
+
mod = transform.AutoFuseBuffer()(mod)
|
|
148
|
+
mod = transform.SetCacheMode()(mod)
|
|
149
|
+
mod = transform.Simplify()(mod)
|
|
150
|
+
mod = transform.GMConflictElimination()(mod)
|
|
151
|
+
mod = transform.MarkScalarCoreType()(mod)
|
|
152
|
+
|
|
153
|
+
# phase 4 _static_lower_phase_4
|
|
154
|
+
mod = transform.JumpInstructionElimination()(mod)
|
|
155
|
+
mod = transform.InjectSync()(mod)
|
|
156
|
+
mod = transform.PackIntrinArgConfig()(mod)
|
|
157
|
+
mod = transform.RemoveAccessPtrMSG()(mod)
|
|
158
|
+
mod = transform.Simplify()(mod)
|
|
159
|
+
mod = transform.GmAddrPrompt()(mod)
|
|
160
|
+
mod = transform.InsertCheckInvalidAccessOfDDR()(mod)
|
|
161
|
+
mod = transform.RemoveNoOp()(mod)
|
|
162
|
+
mod = transform.DeviceMark()(mod)
|
|
163
|
+
if cfg[instrument_bound_checkers]:
|
|
164
|
+
mod = transform.InstrumentBoundCheckers()(mod)
|
|
165
|
+
mod = transform.ConvertFloorDivToTruncDiv()(mod)
|
|
166
|
+
mod = transform.BuildVirtualCore()(mod)
|
|
167
|
+
|
|
168
|
+
_count_time(mod)
|
|
169
|
+
mod = transform.SplitCoreCode()(mod)
|
|
170
|
+
generate_cce_code(mod, "cce", None)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def build_tbe_codegen(kernel_name, stmt_json, arg_json, attr, ascend_type=None):
|
|
174
|
+
import sys
|
|
175
|
+
copy_modules = sys.modules.copy()
|
|
176
|
+
clean_env()
|
|
177
|
+
|
|
178
|
+
print("build_cce_for_akg")
|
|
179
|
+
import tbe
|
|
180
|
+
from tbe.common.buildcfg.default_buildcfg import cce_default_static_build_config
|
|
181
|
+
from tbe.common.buildcfg.ascend import AscendPassContext
|
|
182
|
+
from tbe.common.buildcfg.buildcfg_mapping import dump_cce_code, save_temp_cce_file, disable_vectorize, \
|
|
183
|
+
instrument_bound_checkers, partition_const_loop, auto_unroll_max_step, auto_unroll_max_depth, \
|
|
184
|
+
auto_unroll_max_extent, unroll_explicit, dynamic_shape, enable_multicore_sync_with_atomic, \
|
|
185
|
+
kernel_meta_parent_dir
|
|
186
|
+
cfg = cce_default_static_build_config.copy()
|
|
187
|
+
cfg[dump_cce_code] = False
|
|
188
|
+
cfg[save_temp_cce_file] = True
|
|
189
|
+
cfg[disable_vectorize] = False
|
|
190
|
+
cfg[instrument_bound_checkers] = False
|
|
191
|
+
cfg[partition_const_loop] = False
|
|
192
|
+
cfg[auto_unroll_max_step] = 0
|
|
193
|
+
cfg[auto_unroll_max_depth] = 8
|
|
194
|
+
cfg[auto_unroll_max_extent] = 0
|
|
195
|
+
cfg[unroll_explicit] = True
|
|
196
|
+
cfg[dynamic_shape] = False
|
|
197
|
+
cfg[enable_multicore_sync_with_atomic] = True
|
|
198
|
+
cfg[kernel_meta_parent_dir] = os.path.realpath(os.getenv('MS_COMPILER_CACHE_PATH', './'))
|
|
199
|
+
if ascend_type is None:
|
|
200
|
+
ascend_type = "Ascend910"
|
|
201
|
+
auto_init_soc(ascend_type)
|
|
202
|
+
|
|
203
|
+
stmt = tbe.tvm.ir.load_json(stmt_json)
|
|
204
|
+
arg_list = []
|
|
205
|
+
for buff in arg_json:
|
|
206
|
+
arg_list.append(tbe.tvm.ir.load_json(buff))
|
|
207
|
+
|
|
208
|
+
is_dynamic = attr.get("dynamic", False)
|
|
209
|
+
workspace_dict = attr.get("workspace", None)
|
|
210
|
+
with AscendPassContext(config=cfg):
|
|
211
|
+
build_npu_for_akg(kernel_name,
|
|
212
|
+
stmt,
|
|
213
|
+
arg_list,
|
|
214
|
+
is_dynamic=is_dynamic,
|
|
215
|
+
cfg=cfg)
|
|
216
|
+
postfixs = [".o", ".cce", ".json"]
|
|
217
|
+
is_success = copy_to_akg_kernel_meta(kernel_name, postfixs, workspace_dict)
|
|
218
|
+
sys.modules = copy_modules
|
|
219
|
+
return is_success
|
mindspore/_akg/akg/utils/util.py
CHANGED
|
@@ -19,6 +19,7 @@ import os
|
|
|
19
19
|
import json
|
|
20
20
|
import types
|
|
21
21
|
import akg.tvm
|
|
22
|
+
from akg.utils.format_transform import get_shape
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
def parse_int_const(value):
|
|
@@ -29,6 +30,35 @@ def parse_int_const(value):
|
|
|
29
30
|
return None
|
|
30
31
|
|
|
31
32
|
|
|
33
|
+
def parse_workspace_map(attrs):
|
|
34
|
+
if not isinstance(attrs, akg.tvm.container.Map):
|
|
35
|
+
return None
|
|
36
|
+
if "workspace" not in attrs:
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
workspace_map = attrs["workspace"]
|
|
40
|
+
if not isinstance(workspace_map, akg.tvm.container.Map):
|
|
41
|
+
return None
|
|
42
|
+
if "num" not in workspace_map or "size" not in workspace_map:
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
worksapce_num = parse_int_const(workspace_map["num"])
|
|
46
|
+
if not isinstance(workspace_map["size"], akg.tvm.container.Array):
|
|
47
|
+
return None
|
|
48
|
+
|
|
49
|
+
workspace_size = []
|
|
50
|
+
tt = get_shape(workspace_map["size"])
|
|
51
|
+
for item in tt:
|
|
52
|
+
workspace_size.append(parse_int_const(item))
|
|
53
|
+
if len(workspace_size) != worksapce_num:
|
|
54
|
+
return None
|
|
55
|
+
|
|
56
|
+
workspace_dict = {
|
|
57
|
+
"num": worksapce_num,
|
|
58
|
+
"size": workspace_size
|
|
59
|
+
}
|
|
60
|
+
return workspace_dict
|
|
61
|
+
|
|
32
62
|
def parse_workspace(workspace):
|
|
33
63
|
if not isinstance(workspace, akg.tvm.container.Map):
|
|
34
64
|
return None
|
|
@@ -63,3 +93,11 @@ def write_code(js_dict, fname):
|
|
|
63
93
|
with os.fdopen(os.open(fname, os.O_WRONLY | os.O_CREAT, 0o400), 'w') as f:
|
|
64
94
|
json.dump(js_dict, f, sort_keys=True, indent=4, separators=(',', ':'))
|
|
65
95
|
|
|
96
|
+
def get_ascend_type(desc):
|
|
97
|
+
if "target_info" not in desc.keys():
|
|
98
|
+
return None
|
|
99
|
+
|
|
100
|
+
target_info_type = desc["target_info"]
|
|
101
|
+
if target_info_type.get("arch"):
|
|
102
|
+
return target_info_type.get("arch")
|
|
103
|
+
return None
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -96,9 +96,11 @@ def is_invalid_or_jit_forbidden_method(obj, obj_type, attr):
|
|
|
96
96
|
if not hasattr(obj, attr):
|
|
97
97
|
raise AttributeError(f"'{obj_type}' object has no attribute '{attr}'")
|
|
98
98
|
method = getattr(obj, attr)
|
|
99
|
-
if not hasattr(method, "__module__"):
|
|
99
|
+
if not hasattr(method, "__module__") or method.__module__ is None:
|
|
100
100
|
return False
|
|
101
101
|
method_info = method.__module__ + '.' + method.__qualname__
|
|
102
102
|
return method_info in _jit_forbidden_method
|
|
103
103
|
|
|
104
104
|
add_jit_forbidden_module("mindspore.common.initializer")
|
|
105
|
+
add_jit_forbidden_module("mindspore.context")
|
|
106
|
+
add_jit_forbidden_module("mindspore.log")
|
mindspore/_checkparam.py
CHANGED
|
@@ -84,21 +84,21 @@ def _check_inc_rel(val, lower, upper, rel):
|
|
|
84
84
|
def _format_str_one_value(value, rel):
|
|
85
85
|
"""format string"""
|
|
86
86
|
if rel == EQ:
|
|
87
|
-
return "= {}"
|
|
87
|
+
return f"= {value}"
|
|
88
88
|
if rel == NE:
|
|
89
|
-
return "!= {}"
|
|
89
|
+
return f"!= {value}"
|
|
90
90
|
if rel == LT:
|
|
91
|
-
return "< {}"
|
|
91
|
+
return f"< {value}"
|
|
92
92
|
if rel == LE:
|
|
93
|
-
return "<= {}"
|
|
93
|
+
return f"<= {value}"
|
|
94
94
|
if rel == GT:
|
|
95
|
-
return "> {}"
|
|
95
|
+
return f"> {value}"
|
|
96
96
|
if rel == GE:
|
|
97
|
-
return ">= {}"
|
|
97
|
+
return f">= {value}"
|
|
98
98
|
if rel == IN:
|
|
99
|
-
return "in {}"
|
|
99
|
+
return f"in {value}"
|
|
100
100
|
if rel == NOT_IN:
|
|
101
|
-
return "not in {}"
|
|
101
|
+
return f"not in {value}"
|
|
102
102
|
|
|
103
103
|
return ""
|
|
104
104
|
|
|
@@ -106,13 +106,13 @@ def _format_str_one_value(value, rel):
|
|
|
106
106
|
def _format_str_two_value(val1, val2, rel):
|
|
107
107
|
"""format string"""
|
|
108
108
|
if rel == INC_NEITHER:
|
|
109
|
-
return "({}, {})"
|
|
109
|
+
return f"({val1}, {val2})"
|
|
110
110
|
if rel == INC_LEFT:
|
|
111
|
-
return "[{}, {})"
|
|
111
|
+
return f"[{val1}, {val2})"
|
|
112
112
|
if rel == INC_RIGHT:
|
|
113
|
-
return "({}, {}]"
|
|
113
|
+
return f"({val1}, {val2}]"
|
|
114
114
|
if rel == INC_BOTH:
|
|
115
|
-
return "[{}, {}]"
|
|
115
|
+
return f"[{val1}, {val2}]"
|
|
116
116
|
|
|
117
117
|
return ""
|
|
118
118
|
|
|
@@ -556,8 +556,7 @@ def check_str_by_regular(target, reg=None, flag=re.ASCII, prim_name=None):
|
|
|
556
556
|
reg = r"^\w+[0-9a-zA-Z\_\.]*$"
|
|
557
557
|
if re.match(reg, target, flag) is None:
|
|
558
558
|
prim_name = f"For '{prim_name}', the" if prim_name else "The"
|
|
559
|
-
raise ValueError("{} '{}' is illegal, it must be match regular'{}' by flags'{}.'"
|
|
560
|
-
prim_name, target, reg, flag))
|
|
559
|
+
raise ValueError(f"{prim_name} '{target}' is illegal, it must be match regular'{reg}' by flags'{flag}.'")
|
|
561
560
|
return True
|
|
562
561
|
|
|
563
562
|
|
|
@@ -565,11 +564,10 @@ def check_str_by_regular(target, reg=None, flag=re.ASCII, prim_name=None):
|
|
|
565
564
|
def check_str_and_none_by_regular(target, reg=None, flag=re.ASCII, prim_name=None):
|
|
566
565
|
if reg is None:
|
|
567
566
|
# Named string regular expression
|
|
568
|
-
reg = r"^\w*[0-9a-zA-Z\_
|
|
567
|
+
reg = r"^\w*[0-9a-zA-Z\_\.\-]*$"
|
|
569
568
|
if re.match(reg, target, flag) is None:
|
|
570
569
|
prim_name = f"For '{prim_name}', the" if prim_name else "The"
|
|
571
|
-
raise ValueError("{} '{}' is illegal, it must be match regular'{}' by flags'{}.'"
|
|
572
|
-
prim_name, target, reg, flag))
|
|
570
|
+
raise ValueError(f"{prim_name} '{target}' is illegal, it must be match regular'{reg}' by flags'{flag}.'")
|
|
573
571
|
return True
|
|
574
572
|
|
|
575
573
|
|
|
@@ -585,8 +583,7 @@ def check_file_name_by_regular(target, reg=None, prim_name=None):
|
|
|
585
583
|
reg = r"^[0-9a-zA-Z@\_\-\.\:\/\\]+$"
|
|
586
584
|
if re.match(reg, target) is None:
|
|
587
585
|
prim_name = f"For '{prim_name}', the" if prim_name else "The"
|
|
588
|
-
raise ValueError("{} '{}' is illegal, it must be match regular '{}'."
|
|
589
|
-
prim_name, target, reg))
|
|
586
|
+
raise ValueError(f"{prim_name} '{target}' is illegal, it must be match regular '{reg}'.")
|
|
590
587
|
|
|
591
588
|
return True
|
|
592
589
|
|
|
@@ -802,6 +799,9 @@ def check_transpose_axis(axes, ndim):
|
|
|
802
799
|
# if only one argument provided, it must be tuple or list
|
|
803
800
|
if isinstance(perm, list):
|
|
804
801
|
perm = tuple(perm)
|
|
802
|
+
elif isinstance(perm, int):
|
|
803
|
+
perm = (perm,)
|
|
804
|
+
_check_dim()
|
|
805
805
|
else:
|
|
806
806
|
if not isinstance(perm, tuple):
|
|
807
807
|
raise TypeError(f"For Tensor.transpose, the parameter 'axes' must be a tuple/list, " \
|
|
@@ -959,11 +959,6 @@ def is_stub_tensor(tensor):
|
|
|
959
959
|
return hasattr(tensor, "stub")
|
|
960
960
|
|
|
961
961
|
|
|
962
|
-
def is_pack_tensor(tensor):
|
|
963
|
-
"""Whether it is a PackTensor."""
|
|
964
|
-
return hasattr(tensor, "__pack__")
|
|
965
|
-
|
|
966
|
-
|
|
967
962
|
def expanded_shape(ndim, axis_size, axis):
|
|
968
963
|
"""
|
|
969
964
|
Returns a shape with size = 1 for all dimensions
|
|
@@ -984,8 +979,8 @@ def infer_out_shape(*shapes):
|
|
|
984
979
|
def _check(items, max_size, shapes):
|
|
985
980
|
for item in items:
|
|
986
981
|
if item not in (1, max_size):
|
|
987
|
-
raise ValueError(f'For Tensor, the dimension on each axis must be 1 or the max on the axis' \
|
|
988
|
-
f'to support
|
|
982
|
+
raise ValueError(f'For Tensor, the dimension on each axis must be 1 or the max value on the axis' \
|
|
983
|
+
f'to support broadcasting, but got shapes {shapes,}')
|
|
989
984
|
shape_out = ()
|
|
990
985
|
max_len = max([len(it) for it in shapes])
|
|
991
986
|
for i in range(max_len):
|
|
@@ -1269,7 +1264,7 @@ def check_input_data(*data, data_class):
|
|
|
1269
1264
|
if not ret:
|
|
1270
1265
|
data_class_str = tuple(i.__name__ if hasattr(i, '__name__') else i for i in data_class) if isinstance(
|
|
1271
1266
|
data_class, (tuple, list)) else (data_class if data_class is None else data_class.__name__)
|
|
1272
|
-
raise TypeError(f'The
|
|
1267
|
+
raise TypeError(f'The types of input data must be in the Union({data_class_str}, ' \
|
|
1273
1268
|
f'tuple[{data_class_str}], list[{data_class_str}], dict[{data_class_str}]), ' \
|
|
1274
1269
|
f'but got type {item if item is None else type(item).__name__}.')
|
|
1275
1270
|
|
|
@@ -1314,8 +1309,7 @@ def args_type_check(*type_args, **type_kwargs):
|
|
|
1314
1309
|
for name, value in argument_dict.items():
|
|
1315
1310
|
if name in bound_types:
|
|
1316
1311
|
if value is not None and not isinstance(value, bound_types[name]):
|
|
1317
|
-
raise TypeError("The parameter '{}' must be {}, but got {}"
|
|
1318
|
-
.format(name, bound_types[name], type(value)))
|
|
1312
|
+
raise TypeError(f"The parameter '{name}' must be {bound_types[name]}, but got {type(value)}")
|
|
1319
1313
|
return func(*args, **kwargs)
|
|
1320
1314
|
|
|
1321
1315
|
return wrapper
|
|
@@ -14,5 +14,4 @@
|
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""init"""
|
|
16
16
|
from .splitter import split_with_json
|
|
17
|
-
from .expander import get_op_expander, get_expander_op_list
|
|
18
17
|
from .parallel_estimate import estimate_calculation_amount, estimate_ops
|