mindspore 2.1.0__cp39-none-any.whl → 2.2.11__cp39-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- 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-39-aarch64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-39-aarch64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-39-aarch64-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-39-aarch64-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/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +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 +477 -528
- {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
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
# ============================================================================
|
|
15
15
|
"""msprof PROF data export api file"""
|
|
16
16
|
import os
|
|
17
|
+
import shutil
|
|
18
|
+
import json
|
|
19
|
+
from json import JSONDecodeError
|
|
20
|
+
from collections import defaultdict
|
|
17
21
|
from subprocess import CalledProcessError, TimeoutExpired
|
|
18
22
|
from subprocess import Popen, PIPE
|
|
19
|
-
from typing import List, Optional
|
|
20
|
-
import json
|
|
21
|
-
from json.decoder import JSONDecodeError
|
|
22
23
|
import csv
|
|
23
|
-
from mindspore import log as logger
|
|
24
|
-
from mindspore.communication import get_rank
|
|
24
|
+
from mindspore import log as logger
|
|
25
25
|
from mindspore.profiler.common.util import get_file_path
|
|
26
26
|
|
|
27
27
|
|
|
@@ -30,7 +30,7 @@ class AscendMsprofExporter:
|
|
|
30
30
|
msprof exporter. export cann edge profiling data.
|
|
31
31
|
|
|
32
32
|
args:
|
|
33
|
-
|
|
33
|
+
source_path: the root path of PROF_* files
|
|
34
34
|
|
|
35
35
|
files under prof_root_dir is like:
|
|
36
36
|
profiler/PROF_*/device_{id}/data/xxx
|
|
@@ -41,197 +41,104 @@ class AscendMsprofExporter:
|
|
|
41
41
|
>> ms_exporter = AscendMsprofExporter("path/to/profiler/data")
|
|
42
42
|
>> ms_exporter.export(start_time)
|
|
43
43
|
"""
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
_profiling_prefix = "PROF"
|
|
44
|
+
DRV_VERSION = 467473
|
|
45
|
+
_hiai_msprof_tail = "Ascend/latest/tools/profiler/bin"
|
|
46
|
+
_msprof_cmd = "msprof"
|
|
47
|
+
_ascend_mark = "Ascend"
|
|
49
48
|
_summary_dir = "summary"
|
|
49
|
+
_timeline_dir = "timeline"
|
|
50
50
|
_step_trace_mark = "step_trace"
|
|
51
51
|
_op_summary_mark = "op_summary"
|
|
52
52
|
_op_statistic_mark = "op_statistic"
|
|
53
|
-
_device_mark = "device"
|
|
54
|
-
_msprof_cmd = "msprof"
|
|
55
|
-
_info_prefix = "info.json"
|
|
56
|
-
_start_log = "start_info"
|
|
57
|
-
_rank_id_mark = "rank_id"
|
|
58
|
-
_dev_info = "DeviceInfo"
|
|
59
|
-
_dev_index = 0
|
|
60
|
-
_dev_id = "id"
|
|
61
|
-
_ascend_mark = "Ascend"
|
|
62
|
-
_hiai_msprof_tail = "Ascend/latest/tools/profiler/bin"
|
|
63
53
|
|
|
64
|
-
def __init__(self,
|
|
65
|
-
self._prof_root_dir = prof_root_dir
|
|
66
|
-
self._start_time = 0
|
|
67
|
-
self._support_step_trace = True
|
|
68
|
-
self._prof_paths = []
|
|
69
|
-
self._output_path = None
|
|
70
|
-
self._device_path = None
|
|
71
|
-
self._model_ids = []
|
|
72
|
-
self._iter_ids = []
|
|
54
|
+
def __init__(self, source_path, time_out=3600):
|
|
73
55
|
self._time_out = time_out
|
|
56
|
+
self.source_path = source_path
|
|
57
|
+
self.prof_root_dir = os.path.abspath(os.path.join(self.source_path, os.path.pardir)) # PROF*/
|
|
58
|
+
|
|
74
59
|
self._check_msprof_env()
|
|
75
60
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
@staticmethod
|
|
84
|
-
def _parse_start_info(input_file: str):
|
|
85
|
-
"""Get profiler start time from start info file."""
|
|
86
|
-
start_time = -1
|
|
61
|
+
def get_drv_version(self):
|
|
62
|
+
"""Get the drv_version for choosing the export mode."""
|
|
63
|
+
host_dir = os.path.join(self.prof_root_dir, 'host')
|
|
64
|
+
cmd = ['python',
|
|
65
|
+
'/usr/local/Ascend/latest/tools/profiler/profiler_tool/analysis/interface/get_msprof_info.py',
|
|
66
|
+
'-dir', host_dir]
|
|
87
67
|
try:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
68
|
+
outs, _ = self._run_cmd(cmd)
|
|
69
|
+
if not outs:
|
|
70
|
+
logger.warning('Check the drvVersion can`t find the result, use single export mode instead.')
|
|
71
|
+
return False
|
|
72
|
+
result = json.loads(outs)
|
|
73
|
+
logger.info('get drv_version result is : %s', result)
|
|
74
|
+
status = result.get('status', 1)
|
|
75
|
+
if status == 1:
|
|
76
|
+
return False
|
|
77
|
+
drv_version = result.get('data', {}).get('version_info', {}).get('drv_version', 0)
|
|
78
|
+
if drv_version >= self.DRV_VERSION:
|
|
79
|
+
return True
|
|
80
|
+
return False
|
|
81
|
+
except (RuntimeError, JSONDecodeError, AttributeError) as err:
|
|
82
|
+
logger.warning('Get the drvVersion error, use single-export mode instead. detail : %s', err)
|
|
83
|
+
return False
|
|
93
84
|
|
|
94
|
-
def export(self,
|
|
85
|
+
def export(self, model_iteration_dict=None):
|
|
95
86
|
"""start_time is the time to collect PROF data"""
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
87
|
+
|
|
88
|
+
flag = self.get_drv_version()
|
|
89
|
+
if not flag or model_iteration_dict:
|
|
90
|
+
flag = False
|
|
91
|
+
if not model_iteration_dict:
|
|
92
|
+
model_iteration_dict = self._generate_step_trace(self.prof_root_dir, self.source_path)
|
|
93
|
+
|
|
94
|
+
if model_iteration_dict:
|
|
95
|
+
for model_id, value in model_iteration_dict.items():
|
|
96
|
+
for iteration_id in value:
|
|
97
|
+
msprof_export_cmd = self._msprof_command_generator_old(self.prof_root_dir, model_id,
|
|
98
|
+
iteration_id)
|
|
99
|
+
self._run_cmd(msprof_export_cmd)
|
|
100
|
+
|
|
101
|
+
self._check_export_files_old(self.source_path, model_iteration_dict)
|
|
102
|
+
else:
|
|
103
|
+
msprof_export_cmd = self._msprof_command_generator(self.prof_root_dir)
|
|
104
|
+
self._run_cmd(msprof_export_cmd)
|
|
105
|
+
self._check_export_files(self.source_path)
|
|
106
|
+
|
|
107
|
+
return flag
|
|
108
|
+
|
|
109
|
+
def _run_cmd(self, cmd):
|
|
110
|
+
"""run shell command"""
|
|
113
111
|
try:
|
|
114
112
|
proc = Popen(cmd, stdout=PIPE, stderr=PIPE, text=True)
|
|
115
113
|
except (FileNotFoundError, PermissionError, CalledProcessError) as exc:
|
|
116
|
-
raise RuntimeError(exc)
|
|
114
|
+
raise RuntimeError(exc) from exc
|
|
117
115
|
try:
|
|
118
116
|
outs, errs = proc.communicate(timeout=self._time_out)
|
|
119
|
-
except TimeoutExpired:
|
|
117
|
+
except TimeoutExpired as err:
|
|
120
118
|
proc.kill()
|
|
121
119
|
msg = "The possible cause is that too much data is collected " \
|
|
122
|
-
|
|
120
|
+
"and the export time is too long."
|
|
123
121
|
logger.error(msg)
|
|
124
|
-
raise TimeoutError(msg)
|
|
122
|
+
raise TimeoutError(msg) from err
|
|
125
123
|
logger.info(outs)
|
|
126
|
-
|
|
127
|
-
raise RuntimeError(errs)
|
|
128
|
-
return outs
|
|
124
|
+
return outs, errs
|
|
129
125
|
|
|
130
|
-
def
|
|
126
|
+
def _msprof_command_generator_old(self, output, model_id=None, iter_id=None):
|
|
131
127
|
"""msprof export helper"""
|
|
132
128
|
export_cmd = [self._msprof_cmd, "--export=on", "--output={}".format(output)]
|
|
133
|
-
if model_id:
|
|
129
|
+
if isinstance(model_id, int) and model_id >= 0:
|
|
134
130
|
export_cmd.append("--model-id={}".format(model_id))
|
|
135
|
-
if iter_id:
|
|
131
|
+
if isinstance(iter_id, int) and iter_id >= 0:
|
|
136
132
|
export_cmd.append("--iteration-id={}".format(iter_id))
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
def _get_model_iter_ids(self, trace_file: str):
|
|
140
|
-
"""Read the step_trace file and get all the model_ids and iteration_ids"""
|
|
141
|
-
if self._model_ids and self._iter_ids:
|
|
142
|
-
return
|
|
143
|
-
self._check_readable(trace_file)
|
|
144
|
-
with open(trace_file, "r") as f:
|
|
145
|
-
reader = csv.reader(f)
|
|
146
|
-
for idx, row in enumerate(reader):
|
|
147
|
-
if idx == 0:
|
|
148
|
-
model_idx = row.index(self._csv_header_model_id)
|
|
149
|
-
iter_idx = row.index(self._csv_header_iter_id)
|
|
150
|
-
else:
|
|
151
|
-
self._model_ids.append(int(row[model_idx]))
|
|
152
|
-
self._iter_ids.append(int(row[iter_idx]))
|
|
153
|
-
|
|
154
|
-
def _check_export_files(self, device_path: str, trace_file: Optional[str]):
|
|
155
|
-
"""Check the existence of op_summary & op_statistic files."""
|
|
156
|
-
summary_path = os.path.join(device_path, self._summary_dir)
|
|
157
|
-
if not os.path.isdir(summary_path):
|
|
158
|
-
raise RuntimeError("Path {} is not a existing directory.".format(summary_path))
|
|
159
|
-
|
|
160
|
-
sumary_filess = os.listdir(summary_path)
|
|
161
|
-
op_summary = set()
|
|
162
|
-
op_statistic = set()
|
|
163
|
-
|
|
164
|
-
for summary_file in sumary_filess:
|
|
165
|
-
if summary_file.startswith(self._op_summary_mark):
|
|
166
|
-
op_summary.add(summary_file)
|
|
167
|
-
elif summary_file.startswith(self._op_statistic_mark):
|
|
168
|
-
op_statistic.add(summary_file)
|
|
169
|
-
|
|
170
|
-
if not op_summary:
|
|
171
|
-
raise RuntimeError("The op_summary file was not found, " \
|
|
172
|
-
"perhaps the original data was not collected.")
|
|
173
|
-
if not op_statistic:
|
|
174
|
-
raise RuntimeError("The op_statistics file was not found, " \
|
|
175
|
-
"perhaps the original data was not collected.")
|
|
176
|
-
|
|
177
|
-
if not trace_file:
|
|
178
|
-
return
|
|
179
|
-
|
|
180
|
-
dev_id = context.get_context("device_id")
|
|
181
|
-
self._get_model_iter_ids(trace_file)
|
|
182
|
-
|
|
183
|
-
for model_id, iter_id in zip(self._model_ids, self._iter_ids):
|
|
184
|
-
tag = "_{}_{}_{}.csv".format(dev_id, model_id, iter_id)
|
|
185
|
-
op_sum_file = self._op_summary_mark + tag
|
|
186
|
-
op_sta_file = self._op_statistic_mark + tag
|
|
187
|
-
if op_sum_file not in op_summary:
|
|
188
|
-
logger.warning("[Profiler]The file {} was not found, " \
|
|
189
|
-
"perhaps the original data was not collected.".format(op_sum_file))
|
|
190
|
-
if op_sta_file not in op_statistic:
|
|
191
|
-
logger.warning("[Profiler]The file {} was not found, " \
|
|
192
|
-
"perhaps the original data was not collected.".format(op_sta_file))
|
|
193
|
-
|
|
194
|
-
logger.info("Finish checking files.")
|
|
195
|
-
|
|
196
|
-
def _export_whole_prof(self, prof: str, trace_file: str):
|
|
197
|
-
"""export all the data under PROF directory"""
|
|
198
|
-
self._get_model_iter_ids(trace_file)
|
|
199
|
-
|
|
200
|
-
for model_id, iter_id in zip(self._model_ids, self._iter_ids):
|
|
201
|
-
self._export_helper(prof, model_id, iter_id)
|
|
202
|
-
|
|
203
|
-
def _get_device_trace_file(self, prof_path: str, device_path: str):
|
|
204
|
-
"""search the step trace csv file under device directory"""
|
|
205
|
-
|
|
206
|
-
summary_path = os.path.join(device_path, self._summary_dir)
|
|
207
|
-
|
|
208
|
-
if not os.path.exists(summary_path):
|
|
209
|
-
self._export_helper(output=prof_path)
|
|
133
|
+
return export_cmd
|
|
210
134
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
raise FileNotFoundError(msg)
|
|
215
|
-
|
|
216
|
-
step_trace_file = get_file_path(summary_path, self._step_trace_mark)
|
|
217
|
-
|
|
218
|
-
if not step_trace_file and self._support_step_trace:
|
|
219
|
-
msg = "Do not found step trace csv file in {}.".format(self._output_path)
|
|
220
|
-
raise FileNotFoundError(msg)
|
|
221
|
-
|
|
222
|
-
return step_trace_file
|
|
135
|
+
def _msprof_command_generator(self, output):
|
|
136
|
+
"""msprof export helper"""
|
|
137
|
+
return [self._msprof_cmd, "--export=on", "--output={}".format(output)]
|
|
223
138
|
|
|
224
139
|
def _check_msprof_env(self):
|
|
225
140
|
"""Check the existence of msprof binary tool"""
|
|
226
|
-
msprof_cmd = ["which", self._msprof_cmd]
|
|
227
|
-
outs = self._run_cmd(msprof_cmd, raise_error=False)
|
|
228
|
-
if outs != self._null_info:
|
|
229
|
-
return
|
|
230
|
-
logger.warning("[Profiler]The msprof command was not found. Searching from environment variables...")
|
|
231
|
-
self._search_and_add()
|
|
232
141
|
|
|
233
|
-
def _search_and_add(self):
|
|
234
|
-
"""Search msprof and add it to PATH"""
|
|
235
142
|
def _check_msprof(temp_path: str):
|
|
236
143
|
if not os.path.isdir(temp_path):
|
|
237
144
|
return False
|
|
@@ -240,6 +147,12 @@ class AscendMsprofExporter:
|
|
|
240
147
|
return True
|
|
241
148
|
return False
|
|
242
149
|
|
|
150
|
+
msprof_cmd = ["which", self._msprof_cmd]
|
|
151
|
+
outs, _ = self._run_cmd(msprof_cmd)
|
|
152
|
+
if outs != "":
|
|
153
|
+
return
|
|
154
|
+
logger.warning("[Profiler]The msprof command was not found. Searching from environment variables...")
|
|
155
|
+
|
|
243
156
|
msprof_path = None
|
|
244
157
|
envs = os.environ
|
|
245
158
|
if envs.get("ASCEND_TOOLKIT_HOME"):
|
|
@@ -252,8 +165,7 @@ class AscendMsprofExporter:
|
|
|
252
165
|
for path in path_list:
|
|
253
166
|
if self._ascend_mark in path:
|
|
254
167
|
prefix = path.split(self._ascend_mark)[0]
|
|
255
|
-
|
|
256
|
-
temp_path = os.path.join(prefix, tail)
|
|
168
|
+
temp_path = os.path.join(prefix, self._hiai_msprof_tail)
|
|
257
169
|
if _check_msprof(temp_path):
|
|
258
170
|
msprof_path = temp_path
|
|
259
171
|
break
|
|
@@ -264,98 +176,81 @@ class AscendMsprofExporter:
|
|
|
264
176
|
|
|
265
177
|
logger.info("The msprof command has been added to the path!")
|
|
266
178
|
|
|
267
|
-
def
|
|
268
|
-
"""
|
|
269
|
-
self._prof_paths = []
|
|
179
|
+
def _generate_step_trace(self, prof_path, device_path):
|
|
180
|
+
""""generate model_id iteration_id dict"""
|
|
270
181
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
raise RuntimeError(msg)
|
|
182
|
+
summary_path = os.path.join(device_path, self._summary_dir)
|
|
183
|
+
timeline_path = os.path.join(device_path, self._timeline_dir)
|
|
274
184
|
|
|
275
|
-
|
|
276
|
-
for loc_dir in loc_dirs:
|
|
277
|
-
if loc_dir.startswith(self._profiling_prefix):
|
|
278
|
-
self._prof_paths.append(os.path.join(loc_root, loc_dir))
|
|
185
|
+
self._run_cmd(self._msprof_command_generator_old(prof_path))
|
|
279
186
|
|
|
280
|
-
if not
|
|
281
|
-
msg = "
|
|
187
|
+
if not os.path.isdir(summary_path):
|
|
188
|
+
msg = "Path {} is not a existing directory. Make sure there is " \
|
|
189
|
+
"valid profiling data directory!".format(summary_path)
|
|
282
190
|
raise FileNotFoundError(msg)
|
|
283
191
|
|
|
284
|
-
|
|
285
|
-
self._prof_paths.sort() # sort by created time
|
|
286
|
-
|
|
287
|
-
device_path = self._search_by_rank_id(self._prof_paths)
|
|
288
|
-
if device_path:
|
|
289
|
-
dev_par = os.path.join(device_path, os.path.pardir)
|
|
290
|
-
abs_dev_par = os.path.abspath(dev_par)
|
|
291
|
-
self._output_path = abs_dev_par
|
|
292
|
-
self._device_path = device_path
|
|
293
|
-
|
|
294
|
-
def _search_by_rank_id(self, prof_paths: str):
|
|
295
|
-
"""search valid device path through rank_id"""
|
|
296
|
-
device_paths = []
|
|
297
|
-
|
|
298
|
-
for prof_path in prof_paths:
|
|
299
|
-
if not os.path.isdir(prof_path):
|
|
300
|
-
continue
|
|
301
|
-
devices = os.listdir(prof_path)
|
|
302
|
-
for device in devices:
|
|
303
|
-
if not device.startswith(self._device_mark):
|
|
304
|
-
continue
|
|
305
|
-
dev_path = os.path.join(prof_path, device)
|
|
306
|
-
device_paths.append(dev_path)
|
|
307
|
-
|
|
308
|
-
# search by rank id
|
|
309
|
-
find_device_path = None
|
|
310
|
-
rank_id = None
|
|
311
|
-
device_id = context.get_context("device_id")
|
|
192
|
+
step_trace_file = get_file_path(summary_path, self._step_trace_mark)
|
|
312
193
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
dev_id = -1
|
|
343
|
-
info_dict = {}
|
|
344
|
-
try:
|
|
345
|
-
with open(info_file, "r") as f:
|
|
346
|
-
info_dict = json.load(f)
|
|
347
|
-
except (JSONDecodeError, FileNotFoundError, TypeError, PermissionError) as err:
|
|
348
|
-
logger.warning(err)
|
|
349
|
-
if info_dict.get(self._rank_id_mark) is None:
|
|
350
|
-
msg = "[Profiler]There is no rank_id key in file {}".format(info_file)
|
|
351
|
-
logger.warning(msg)
|
|
352
|
-
else:
|
|
353
|
-
rank_id = info_dict.get(self._rank_id_mark)
|
|
194
|
+
if not step_trace_file:
|
|
195
|
+
logger.info("Do not found step trace csv file in {} .".format(summary_path))
|
|
196
|
+
return None
|
|
197
|
+
|
|
198
|
+
step_trace = defaultdict(list)
|
|
199
|
+
with os.fdopen(os.open(step_trace_file, os.O_RDONLY, 0o600), newline='', mode='r') as csvfile:
|
|
200
|
+
reader = csv.reader(csvfile, delimiter=',', quotechar='"')
|
|
201
|
+
for index, value in enumerate(next(reader)):
|
|
202
|
+
if value == 'Model ID':
|
|
203
|
+
model_id = index
|
|
204
|
+
if value == 'Iteration ID':
|
|
205
|
+
iteration_id = index
|
|
206
|
+
for row in reader:
|
|
207
|
+
step_trace[int(row[model_id])].append(int(row[iteration_id]))
|
|
208
|
+
|
|
209
|
+
if os.path.isdir(summary_path):
|
|
210
|
+
shutil.rmtree(summary_path)
|
|
211
|
+
if os.path.isdir(timeline_path):
|
|
212
|
+
shutil.rmtree(timeline_path)
|
|
213
|
+
|
|
214
|
+
return step_trace
|
|
215
|
+
|
|
216
|
+
def _check_export_files_old(self, source_path, step_trace):
|
|
217
|
+
"""Check the existence of op_summary & op_statistic files."""
|
|
218
|
+
summary_path = os.path.join(source_path, self._summary_dir)
|
|
219
|
+
if not os.path.isdir(summary_path):
|
|
220
|
+
raise RuntimeError("Path {} is not a existing directory.".format(summary_path))
|
|
221
|
+
op_summary = set()
|
|
222
|
+
op_statistic = set()
|
|
354
223
|
|
|
355
|
-
|
|
356
|
-
|
|
224
|
+
for summary_file in os.listdir(summary_path):
|
|
225
|
+
if summary_file.startswith(self._op_summary_mark):
|
|
226
|
+
op_summary.add(summary_file)
|
|
227
|
+
elif summary_file.startswith(self._op_statistic_mark):
|
|
228
|
+
op_statistic.add(summary_file)
|
|
357
229
|
|
|
358
|
-
|
|
359
|
-
|
|
230
|
+
if not op_summary:
|
|
231
|
+
raise RuntimeError("The op_summary file was not found, perhaps the original data was not collected.")
|
|
232
|
+
if not op_statistic:
|
|
233
|
+
raise RuntimeError("The op_statistics file was not found, perhaps the original data was not collected.")
|
|
234
|
+
|
|
235
|
+
logger.info("Finish checking files.")
|
|
360
236
|
|
|
361
|
-
|
|
237
|
+
def _check_export_files(self, source_path):
|
|
238
|
+
"""Check the existence of op_summary & op_statistic files."""
|
|
239
|
+
summary_path = os.path.join(source_path, self._summary_dir)
|
|
240
|
+
if not os.path.isdir(summary_path):
|
|
241
|
+
raise RuntimeError("Path {} is not a existing directory.".format(summary_path))
|
|
242
|
+
summary_file_list = os.listdir(summary_path)
|
|
243
|
+
op_summary = set()
|
|
244
|
+
op_statistic = set()
|
|
245
|
+
|
|
246
|
+
for summary_file in summary_file_list:
|
|
247
|
+
if summary_file.startswith(self._op_summary_mark):
|
|
248
|
+
op_summary.add(summary_file)
|
|
249
|
+
elif summary_file.startswith(self._op_statistic_mark):
|
|
250
|
+
op_statistic.add(summary_file)
|
|
251
|
+
|
|
252
|
+
if not op_summary:
|
|
253
|
+
raise RuntimeError("The op_summary file was not found, perhaps the original data was not collected.")
|
|
254
|
+
if not op_statistic:
|
|
255
|
+
raise RuntimeError("The op_statistics file was not found, perhaps the original data was not collected.")
|
|
256
|
+
logger.info("Finish checking files.")
|