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
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
-
# or more contributor license agreements. See the NOTICE file
|
|
3
|
-
# distributed with this work for additional information
|
|
4
|
-
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
-
# to you under the Apache License, Version 2.0 (the
|
|
6
|
-
# "License"); you may not use this file except in compliance
|
|
7
|
-
# with the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing,
|
|
12
|
-
# software distributed under the License is distributed on an
|
|
13
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
# KIND, either express or implied. See the License for the
|
|
15
|
-
# specific language governing permissions and limitations
|
|
16
|
-
# under the License.
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
-
# or more contributor license agreements. See the NOTICE file
|
|
3
|
-
# distributed with this work for additional information
|
|
4
|
-
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
-
# to you under the Apache License, Version 2.0 (the
|
|
6
|
-
# "License"); you may not use this file except in compliance
|
|
7
|
-
# with the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing,
|
|
12
|
-
# software distributed under the License is distributed on an
|
|
13
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
# KIND, either express or implied. See the License for the
|
|
15
|
-
# specific language governing permissions and limitations
|
|
16
|
-
# under the License.
|
|
17
|
-
"""Graph debug results dumping class."""
|
|
18
|
-
import collections
|
|
19
|
-
import json
|
|
20
|
-
import os
|
|
21
|
-
import numpy as np
|
|
22
|
-
import tvm
|
|
23
|
-
|
|
24
|
-
GRAPH_DUMP_FILE_NAME = '_tvmdbg_graph_dump.json'
|
|
25
|
-
CHROME_TRACE_FILE_NAME = "_tvmdbg_execution_trace.json"
|
|
26
|
-
|
|
27
|
-
ChromeTraceEvent = collections.namedtuple(
|
|
28
|
-
'ChromeTraceEvent',
|
|
29
|
-
['ts', 'tid', 'pid', 'name', 'ph']
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class DebugResult(object):
|
|
34
|
-
"""Graph debug data module.
|
|
35
|
-
|
|
36
|
-
Data dump module manage all the debug data formatting.
|
|
37
|
-
Output data and input graphs are formatted and dumped to file.
|
|
38
|
-
Frontend read these data and graph for visualization.
|
|
39
|
-
|
|
40
|
-
Parameters
|
|
41
|
-
----------
|
|
42
|
-
graph_json : str
|
|
43
|
-
The graph to be deployed in json format output by nnvm graph. Each operator (tvm_op)
|
|
44
|
-
in the graph will have a one to one mapping with the symbol in libmod which is used
|
|
45
|
-
to construct a "PackedFunc" .
|
|
46
|
-
|
|
47
|
-
dump_path : str
|
|
48
|
-
Output data path is read/provided from frontend
|
|
49
|
-
"""
|
|
50
|
-
|
|
51
|
-
def __init__(self, graph_json, dump_path):
|
|
52
|
-
self._dump_path = dump_path
|
|
53
|
-
self._output_tensor_list = []
|
|
54
|
-
self._time_list = []
|
|
55
|
-
self._parse_graph(graph_json)
|
|
56
|
-
# dump the json information
|
|
57
|
-
self.dump_graph_json(graph_json)
|
|
58
|
-
|
|
59
|
-
def _parse_graph(self, graph_json):
|
|
60
|
-
"""Parse and extract the NNVM graph and update the nodes, shapes and dltype.
|
|
61
|
-
|
|
62
|
-
Parameters
|
|
63
|
-
----------
|
|
64
|
-
graph_json : str or graph class
|
|
65
|
-
The graph to be deployed in json format output by nnvm graph.
|
|
66
|
-
"""
|
|
67
|
-
json_obj = json.loads(graph_json)
|
|
68
|
-
self._nodes_list = json_obj['nodes']
|
|
69
|
-
self._shapes_list = json_obj['attrs']['shape']
|
|
70
|
-
self._dtype_list = json_obj['attrs']['dltype']
|
|
71
|
-
self._update_graph_json()
|
|
72
|
-
|
|
73
|
-
def _update_graph_json(self):
|
|
74
|
-
"""update the nodes_list with name, shape and data type,
|
|
75
|
-
for temporarily storing the output.
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
nodes_len = len(self._nodes_list)
|
|
79
|
-
for i in range(nodes_len):
|
|
80
|
-
node = self._nodes_list[i]
|
|
81
|
-
input_list = []
|
|
82
|
-
for input_node in node['inputs']:
|
|
83
|
-
input_list.append(self._nodes_list[input_node[0]]['name'])
|
|
84
|
-
node['inputs'] = input_list
|
|
85
|
-
dtype = str("type: " + self._dtype_list[1][i])
|
|
86
|
-
if 'attrs' not in node:
|
|
87
|
-
node['attrs'] = {}
|
|
88
|
-
node['op'] = "param"
|
|
89
|
-
else:
|
|
90
|
-
node['op'] = node['attrs']['func_name']
|
|
91
|
-
node['attrs'].update({"T": dtype})
|
|
92
|
-
node['shape'] = self._shapes_list[1][i]
|
|
93
|
-
|
|
94
|
-
def _cleanup_tensors(self):
|
|
95
|
-
"""Remove the tensor dump file (graph wont be removed)
|
|
96
|
-
"""
|
|
97
|
-
for filename in os.listdir(self._dump_path):
|
|
98
|
-
if os.path.isfile(filename) and not filename.endswith(".json"):
|
|
99
|
-
os.remove(filename)
|
|
100
|
-
|
|
101
|
-
def get_graph_nodes(self):
|
|
102
|
-
"""Return the nodes list
|
|
103
|
-
"""
|
|
104
|
-
return self._nodes_list
|
|
105
|
-
|
|
106
|
-
def get_graph_node_shapes(self):
|
|
107
|
-
"""Return the nodes shapes list
|
|
108
|
-
"""
|
|
109
|
-
return self._shapes_list
|
|
110
|
-
|
|
111
|
-
def get_graph_node_output_num(self, node):
|
|
112
|
-
"""Return the number of outputs of a node
|
|
113
|
-
"""
|
|
114
|
-
return 1 if node['op'] == 'param' else int(node['attrs']['num_outputs'])
|
|
115
|
-
|
|
116
|
-
def get_graph_node_dtypes(self):
|
|
117
|
-
"""Return the nodes dtype list
|
|
118
|
-
"""
|
|
119
|
-
return self._dtype_list
|
|
120
|
-
|
|
121
|
-
def get_output_tensors(self):
|
|
122
|
-
"""Dump the outputs to a temporary folder, the tensors are in numpy format
|
|
123
|
-
"""
|
|
124
|
-
eid = 0
|
|
125
|
-
order = 0
|
|
126
|
-
output_tensors = {}
|
|
127
|
-
for node, time in zip(self._nodes_list, self._time_list):
|
|
128
|
-
num_outputs = self.get_graph_node_output_num(node)
|
|
129
|
-
for j in range(num_outputs):
|
|
130
|
-
order += time[0]
|
|
131
|
-
key = node['name'] + "_" + str(j)
|
|
132
|
-
output_tensors[key] = self._output_tensor_list[eid]
|
|
133
|
-
eid += 1
|
|
134
|
-
return output_tensors
|
|
135
|
-
|
|
136
|
-
def dump_output_tensor(self):
|
|
137
|
-
"""Dump the outputs to a temporary folder, the tensors are in numpy format
|
|
138
|
-
"""
|
|
139
|
-
#cleanup existing tensors before dumping
|
|
140
|
-
self._cleanup_tensors()
|
|
141
|
-
eid = 0
|
|
142
|
-
order = 0
|
|
143
|
-
output_tensors = {}
|
|
144
|
-
for node, time in zip(self._nodes_list, self._time_list):
|
|
145
|
-
num_outputs = self.get_graph_node_output_num(node)
|
|
146
|
-
for j in range(num_outputs):
|
|
147
|
-
order += time[0]
|
|
148
|
-
key = node['name'] + "_" + str(j) + "__" + str(order)
|
|
149
|
-
output_tensors[key] = self._output_tensor_list[eid]
|
|
150
|
-
eid += 1
|
|
151
|
-
|
|
152
|
-
with open(os.path.join(self._dump_path, "output_tensors.params"), "wb") as param_f:
|
|
153
|
-
param_f.write(save_tensors(output_tensors))
|
|
154
|
-
|
|
155
|
-
def dump_chrome_trace(self):
|
|
156
|
-
"""Dump the trace to the Chrome trace.json format.
|
|
157
|
-
"""
|
|
158
|
-
def s_to_us(t):
|
|
159
|
-
return t * 10 ** 6
|
|
160
|
-
|
|
161
|
-
starting_times = np.zeros(len(self._time_list) + 1)
|
|
162
|
-
starting_times[1:] = np.cumsum([times[0] for times in self._time_list])
|
|
163
|
-
|
|
164
|
-
def node_to_events(node, times, starting_time):
|
|
165
|
-
return [
|
|
166
|
-
ChromeTraceEvent(
|
|
167
|
-
ts=s_to_us(starting_time),
|
|
168
|
-
tid=1,
|
|
169
|
-
pid=1,
|
|
170
|
-
ph='B',
|
|
171
|
-
name=node['name'],
|
|
172
|
-
),
|
|
173
|
-
ChromeTraceEvent(
|
|
174
|
-
# Use start + duration instead of end to ensure precise timings.
|
|
175
|
-
ts=s_to_us(times[0] + starting_time),
|
|
176
|
-
tid=1,
|
|
177
|
-
pid=1,
|
|
178
|
-
ph='E',
|
|
179
|
-
name=node['name'],
|
|
180
|
-
),
|
|
181
|
-
]
|
|
182
|
-
events = [
|
|
183
|
-
e for (node, times, starting_time) in zip(
|
|
184
|
-
self._nodes_list, self._time_list, starting_times)
|
|
185
|
-
for e in node_to_events(node, times, starting_time)]
|
|
186
|
-
result = dict(
|
|
187
|
-
displayTimeUnit='ns',
|
|
188
|
-
traceEvents=[e._asdict() for e in events]
|
|
189
|
-
)
|
|
190
|
-
|
|
191
|
-
with open(os.path.join(self._dump_path, CHROME_TRACE_FILE_NAME), "w") as trace_f:
|
|
192
|
-
json.dump(result, trace_f)
|
|
193
|
-
|
|
194
|
-
def dump_graph_json(self, graph):
|
|
195
|
-
"""Dump json formatted graph.
|
|
196
|
-
|
|
197
|
-
Parameters
|
|
198
|
-
----------
|
|
199
|
-
graph : json format
|
|
200
|
-
json formatted NNVM graph contain list of each node's
|
|
201
|
-
name, shape and type.
|
|
202
|
-
"""
|
|
203
|
-
graph_dump_file_name = GRAPH_DUMP_FILE_NAME
|
|
204
|
-
with open(os.path.join(self._dump_path, graph_dump_file_name), 'w') as outfile:
|
|
205
|
-
json.dump(graph, outfile, indent=4, sort_keys=False)
|
|
206
|
-
|
|
207
|
-
def display_debug_result(self, sort_by_time=True):
|
|
208
|
-
"""Displays the debugger result"
|
|
209
|
-
"""
|
|
210
|
-
header = ["Node Name", "Ops", "Time(us)", "Time(%)", "Shape", "Inputs", "Outputs"]
|
|
211
|
-
lines = ["---------", "---", "--------", "-------", "-----", "------", "-------"]
|
|
212
|
-
eid = 0
|
|
213
|
-
data = []
|
|
214
|
-
total_time = sum(time[0] for time in self._time_list)
|
|
215
|
-
for node, time in zip(self._nodes_list, self._time_list):
|
|
216
|
-
num_outputs = self.get_graph_node_output_num(node)
|
|
217
|
-
for j in range(num_outputs):
|
|
218
|
-
op = node['op']
|
|
219
|
-
if node['op'] == 'param':
|
|
220
|
-
eid += 1
|
|
221
|
-
continue
|
|
222
|
-
name = node['name']
|
|
223
|
-
shape = str(self._output_tensor_list[eid].shape)
|
|
224
|
-
time_us = round(time[0] * 1000000, 3)
|
|
225
|
-
time_percent = round(((time[0] / total_time) * 100), 3)
|
|
226
|
-
inputs = str(node['attrs']['num_inputs'])
|
|
227
|
-
outputs = str(node['attrs']['num_outputs'])
|
|
228
|
-
node_data = [name, op, time_us, time_percent, shape, inputs, outputs]
|
|
229
|
-
data.append(node_data)
|
|
230
|
-
eid += 1
|
|
231
|
-
|
|
232
|
-
if sort_by_time:
|
|
233
|
-
# Sort on the basis of execution time. Prints the most expensive ops in the start.
|
|
234
|
-
data = sorted(data, key=lambda x: x[2], reverse=True)
|
|
235
|
-
# Insert a row for total time at the end.
|
|
236
|
-
rounded_total_time = round(total_time * 1000000, 3)
|
|
237
|
-
data.append(["Total_time", "-", rounded_total_time, "-", "-", "-", "-", "-"])
|
|
238
|
-
|
|
239
|
-
fmt = ""
|
|
240
|
-
for i, _ in enumerate(header):
|
|
241
|
-
max_len = len(header[i])
|
|
242
|
-
for j, _ in enumerate(data):
|
|
243
|
-
item_len = len(str(data[j][i]))
|
|
244
|
-
if item_len > max_len:
|
|
245
|
-
max_len = item_len
|
|
246
|
-
fmt = fmt + "{:<" + str(max_len + 2) + "}"
|
|
247
|
-
print(fmt.format(*header))
|
|
248
|
-
print(fmt.format(*lines))
|
|
249
|
-
for row in data:
|
|
250
|
-
print(fmt.format(*row))
|
|
251
|
-
|
|
252
|
-
def save_tensors(params):
|
|
253
|
-
"""Save parameter dictionary to binary bytes.
|
|
254
|
-
|
|
255
|
-
The result binary bytes can be loaded by the
|
|
256
|
-
GraphModule with API "load_params".
|
|
257
|
-
|
|
258
|
-
Parameters
|
|
259
|
-
----------
|
|
260
|
-
params : dict of str to NDArray
|
|
261
|
-
The parameter dictionary.
|
|
262
|
-
|
|
263
|
-
Returns
|
|
264
|
-
-------
|
|
265
|
-
param_bytes: bytearray
|
|
266
|
-
Serialized parameters.
|
|
267
|
-
"""
|
|
268
|
-
_save_tensors = tvm.get_global_func("_save_param_dict")
|
|
269
|
-
|
|
270
|
-
args = []
|
|
271
|
-
for k, v in params.items():
|
|
272
|
-
args.append(k)
|
|
273
|
-
args.append(tvm.nd.array(v))
|
|
274
|
-
return _save_tensors(*args)
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
-
# or more contributor license agreements. See the NOTICE file
|
|
3
|
-
# distributed with this work for additional information
|
|
4
|
-
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
-
# to you under the Apache License, Version 2.0 (the
|
|
6
|
-
# "License"); you may not use this file except in compliance
|
|
7
|
-
# with the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing,
|
|
12
|
-
# software distributed under the License is distributed on an
|
|
13
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
# KIND, either express or implied. See the License for the
|
|
15
|
-
# specific language governing permissions and limitations
|
|
16
|
-
# under the License.
|
|
17
|
-
"""Graph debug runtime executes TVM debug packed functions."""
|
|
18
|
-
|
|
19
|
-
import os
|
|
20
|
-
import tempfile
|
|
21
|
-
import shutil
|
|
22
|
-
from tvm._ffi.base import string_types
|
|
23
|
-
from tvm._ffi.function import get_global_func
|
|
24
|
-
from tvm.contrib import graph_runtime
|
|
25
|
-
from tvm.ndarray import array
|
|
26
|
-
from tvm.rpc import base as rpc_base
|
|
27
|
-
from . import debug_result
|
|
28
|
-
|
|
29
|
-
_DUMP_ROOT_PREFIX = "tvmdbg_"
|
|
30
|
-
_DUMP_PATH_PREFIX = "_tvmdbg_"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def create(graph_json_str, libmod, ctx, dump_root=None):
|
|
34
|
-
"""Create a runtime executor module given a graph and module.
|
|
35
|
-
|
|
36
|
-
Parameters
|
|
37
|
-
----------
|
|
38
|
-
graph_json_str : str or graph class
|
|
39
|
-
The graph to be deployed in json format output by nnvm graph.
|
|
40
|
-
The graph can only contain one operator(tvm_op) that
|
|
41
|
-
points to the name of PackedFunc in the libmod.
|
|
42
|
-
|
|
43
|
-
libmod : tvm.Module
|
|
44
|
-
The module of the corresponding function.
|
|
45
|
-
|
|
46
|
-
ctx : TVMContext
|
|
47
|
-
The context to deploy the module, can be local or remote.
|
|
48
|
-
|
|
49
|
-
dump_root : str
|
|
50
|
-
To select which folder the outputs should be kept.
|
|
51
|
-
None will make a temp folder in /tmp/tvmdbg<rand_string> and does the dumping
|
|
52
|
-
Returns
|
|
53
|
-
-------
|
|
54
|
-
graph_module : GraphModuleDebug
|
|
55
|
-
Debug Runtime graph module that can be used to execute the graph.
|
|
56
|
-
"""
|
|
57
|
-
if not isinstance(graph_json_str, string_types):
|
|
58
|
-
try:
|
|
59
|
-
graph_json_str = graph_json_str._tvm_graph_json()
|
|
60
|
-
except AttributeError:
|
|
61
|
-
raise ValueError("Type %s is not supported" % type(graph_json_str))
|
|
62
|
-
try:
|
|
63
|
-
fcreate = get_global_func("tvm.graph_runtime_debug.create")
|
|
64
|
-
except ValueError:
|
|
65
|
-
raise ValueError(
|
|
66
|
-
"Please set '(USE_GRAPH_RUNTIME_DEBUG ON)' in "
|
|
67
|
-
"config.cmake and rebuild TVM to enable debug mode"
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
ctx, num_rpc_ctx, device_type_id = graph_runtime.get_device_ctx(libmod, ctx)
|
|
71
|
-
if num_rpc_ctx == len(ctx):
|
|
72
|
-
libmod = rpc_base._ModuleHandle(libmod)
|
|
73
|
-
try:
|
|
74
|
-
fcreate = ctx[0]._rpc_sess.get_function(
|
|
75
|
-
"tvm.graph_runtime_debug.remote_create"
|
|
76
|
-
)
|
|
77
|
-
except ValueError:
|
|
78
|
-
raise ValueError(
|
|
79
|
-
"Please set '(USE_GRAPH_RUNTIME_DEBUG ON)' in "
|
|
80
|
-
"config.cmake and rebuild TVM to enable debug mode"
|
|
81
|
-
)
|
|
82
|
-
func_obj = fcreate(graph_json_str, libmod, *device_type_id)
|
|
83
|
-
return GraphModuleDebug(func_obj, ctx, graph_json_str, dump_root)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
class GraphModuleDebug(graph_runtime.GraphModule):
|
|
87
|
-
"""Graph debug runtime module.
|
|
88
|
-
|
|
89
|
-
This is a debug wrapper over the TVM runtime.
|
|
90
|
-
Runtime interfaces are wrapped with debug functionalities.
|
|
91
|
-
Manage the debug framework to format the debug data and
|
|
92
|
-
trigger the user interfaces.
|
|
93
|
-
|
|
94
|
-
Parameters
|
|
95
|
-
----------
|
|
96
|
-
module : Module
|
|
97
|
-
The interal tvm module that holds the actual graph functions.
|
|
98
|
-
|
|
99
|
-
ctx : TVMContext
|
|
100
|
-
The context this module is under.
|
|
101
|
-
|
|
102
|
-
graph_json_str : str or graph class
|
|
103
|
-
Content of graph json file in string format
|
|
104
|
-
|
|
105
|
-
dump_root : str
|
|
106
|
-
To select which folder the outputs should be kept.
|
|
107
|
-
None will make a temp folder in /tmp/tvmdbg<rand_string> and does the dumping
|
|
108
|
-
"""
|
|
109
|
-
|
|
110
|
-
def __init__(self, module, ctx, graph_json_str, dump_root):
|
|
111
|
-
self._dump_root = dump_root
|
|
112
|
-
self._dump_path = None
|
|
113
|
-
self._get_output_by_layer = module["get_output_by_layer"]
|
|
114
|
-
self._run_individual = module["run_individual"]
|
|
115
|
-
graph_runtime.GraphModule.__init__(self, module)
|
|
116
|
-
self._create_debug_env(graph_json_str, ctx)
|
|
117
|
-
|
|
118
|
-
def _format_context(self, ctx):
|
|
119
|
-
return str(ctx[0]).upper().replace("(", ":").replace(")", "")
|
|
120
|
-
|
|
121
|
-
def _ensure_dir(self, directory):
|
|
122
|
-
"""Create a directory if not exists
|
|
123
|
-
|
|
124
|
-
Parameters
|
|
125
|
-
----------
|
|
126
|
-
|
|
127
|
-
directory : str
|
|
128
|
-
File path to create
|
|
129
|
-
"""
|
|
130
|
-
if not os.path.exists(directory):
|
|
131
|
-
os.makedirs(directory, 0o700)
|
|
132
|
-
|
|
133
|
-
def _get_dump_path(self, ctx):
|
|
134
|
-
"""Make the graph and tensor dump folder and return the path.
|
|
135
|
-
|
|
136
|
-
Parameters
|
|
137
|
-
----------
|
|
138
|
-
ctx : TVMContext
|
|
139
|
-
The context this module is under.
|
|
140
|
-
|
|
141
|
-
Returns
|
|
142
|
-
-------
|
|
143
|
-
path : str
|
|
144
|
-
Directory path where the graph and node outputs will be stored.
|
|
145
|
-
"""
|
|
146
|
-
# save to file
|
|
147
|
-
folder_name = _DUMP_PATH_PREFIX + "ctx_"
|
|
148
|
-
folder_name = folder_name + ctx.replace(":", "_")
|
|
149
|
-
path = os.path.join(self._dump_root, folder_name)
|
|
150
|
-
self._ensure_dir(path)
|
|
151
|
-
return path
|
|
152
|
-
|
|
153
|
-
def _remove_dump_root(self):
|
|
154
|
-
if os.path.isdir(self._dump_root):
|
|
155
|
-
shutil.rmtree(self._dump_root)
|
|
156
|
-
|
|
157
|
-
def _create_debug_env(self, graph_json, ctx):
|
|
158
|
-
"""Create UI wrapper framework to handle multiple UI frontends for tvmdbg
|
|
159
|
-
|
|
160
|
-
Parameters
|
|
161
|
-
----------
|
|
162
|
-
graph_json : json format
|
|
163
|
-
json formatted NNVM graph contain list of each node's name, shape and type.
|
|
164
|
-
|
|
165
|
-
nodes_list : list
|
|
166
|
-
List of all the nodes presented in the graph
|
|
167
|
-
|
|
168
|
-
ctx : TVMContext
|
|
169
|
-
The context this module is under.
|
|
170
|
-
"""
|
|
171
|
-
# make the dump folder if not given
|
|
172
|
-
if not self._dump_root:
|
|
173
|
-
self._dump_root = tempfile.mkdtemp(prefix=_DUMP_ROOT_PREFIX)
|
|
174
|
-
|
|
175
|
-
# format the context
|
|
176
|
-
ctx = self._format_context(ctx)
|
|
177
|
-
|
|
178
|
-
# updates the dumping directories
|
|
179
|
-
self._dump_path = self._get_dump_path(ctx)
|
|
180
|
-
|
|
181
|
-
# init the debug dumping environment
|
|
182
|
-
self.debug_datum = debug_result.DebugResult(graph_json, self._dump_path)
|
|
183
|
-
|
|
184
|
-
def _run_debug(self):
|
|
185
|
-
"""Execute the node specified with index will be executed.
|
|
186
|
-
Each debug output will be copied to the buffer
|
|
187
|
-
Time consumed for each execution will be set as debug output.
|
|
188
|
-
|
|
189
|
-
"""
|
|
190
|
-
self.debug_datum._time_list = [
|
|
191
|
-
[float(t) * 1e-6] for t in self.run_individual(10, 1, 1)
|
|
192
|
-
]
|
|
193
|
-
for i, node in enumerate(self.debug_datum.get_graph_nodes()):
|
|
194
|
-
num_outputs = self.debug_datum.get_graph_node_output_num(node)
|
|
195
|
-
for j in range(num_outputs):
|
|
196
|
-
out_tensor = self._get_output_by_layer(i, j)
|
|
197
|
-
out_tensor = array(out_tensor)
|
|
198
|
-
self.debug_datum._output_tensor_list.append(out_tensor)
|
|
199
|
-
|
|
200
|
-
def debug_get_output(self, node, out):
|
|
201
|
-
"""Run graph up to node and get the output to out
|
|
202
|
-
|
|
203
|
-
Parameters
|
|
204
|
-
----------
|
|
205
|
-
node : int / str
|
|
206
|
-
The node index or name
|
|
207
|
-
|
|
208
|
-
out : NDArray
|
|
209
|
-
The output array container
|
|
210
|
-
"""
|
|
211
|
-
ret = None
|
|
212
|
-
if isinstance(node, str):
|
|
213
|
-
output_tensors = self.debug_datum.get_output_tensors()
|
|
214
|
-
try:
|
|
215
|
-
ret = output_tensors[node]
|
|
216
|
-
except:
|
|
217
|
-
node_list = output_tensors.keys()
|
|
218
|
-
raise RuntimeError(
|
|
219
|
-
"Node "
|
|
220
|
-
+ node
|
|
221
|
-
+ " not found, available nodes are: "
|
|
222
|
-
+ str(node_list)
|
|
223
|
-
+ "."
|
|
224
|
-
)
|
|
225
|
-
elif isinstance(node, int):
|
|
226
|
-
output_tensors = self.debug_datum._output_tensor_list
|
|
227
|
-
ret = output_tensors[node]
|
|
228
|
-
else:
|
|
229
|
-
raise RuntimeError("Require node index or name only.")
|
|
230
|
-
return ret
|
|
231
|
-
|
|
232
|
-
def run(self, **input_dict):
|
|
233
|
-
"""Run forward execution of the graph with debug
|
|
234
|
-
|
|
235
|
-
Parameters
|
|
236
|
-
----------
|
|
237
|
-
input_dict : dict of str to NDArray
|
|
238
|
-
List of input values to be feed to
|
|
239
|
-
"""
|
|
240
|
-
if input_dict:
|
|
241
|
-
self.set_input(**input_dict)
|
|
242
|
-
|
|
243
|
-
# Step 1. Execute the graph
|
|
244
|
-
self._run_debug()
|
|
245
|
-
# Step 2. Dump the output tensors to the dump folder
|
|
246
|
-
self.debug_datum.dump_output_tensor()
|
|
247
|
-
# Step 3. Dump the Chrome trace to the dump folder
|
|
248
|
-
self.debug_datum.dump_chrome_trace()
|
|
249
|
-
# Step 4. Display the collected information
|
|
250
|
-
self.debug_datum.display_debug_result()
|
|
251
|
-
|
|
252
|
-
def run_individual(self, number, repeat=1, min_repeat_ms=0):
|
|
253
|
-
ret = self._run_individual(number, repeat, min_repeat_ms)
|
|
254
|
-
return ret.strip(",").split(",") if ret else []
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
def exit(self):
|
|
258
|
-
"""Exits the dump folder and all its contents"""
|
|
259
|
-
self._remove_dump_root()
|