mindspore 2.0.0a0__cp37-none-any.whl → 2.0.0rc1__cp37-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Third_Party_Open_Source_Software_Notice +9064 -0
- mindspore/__init__.py +4 -2
- mindspore/_akg/akg/composite/build_module.py +11 -0
- mindspore/_akg/akg/config/repository_cuda.json +11 -0
- mindspore/_akg/akg/tvm/contrib/nvcc.py +4 -3
- mindspore/_c_dataengine.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +102 -0
- mindspore/_checkparam.py +1066 -1001
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +4 -3
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +50 -48
- mindspore/_extends/parallel_compile/akg_compiler/util.py +9 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +4 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +9 -4
- mindspore/_extends/parse/__init__.py +5 -3
- mindspore/_extends/parse/namespace.py +16 -1
- mindspore/_extends/parse/parser.py +107 -22
- mindspore/_extends/parse/resources.py +0 -7
- mindspore/_extends/parse/standard_method.py +885 -413
- mindspore/_mindspore_offline_debug.cpython-37m-aarch64-linux-gnu.so +0 -0
- mindspore/amp.py +52 -57
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/boost.py +2 -2
- mindspore/boost/boost_cell_wrapper.py +38 -20
- mindspore/boost/dim_reduce.py +3 -3
- mindspore/boost/group_loss_scale_manager.py +1 -1
- mindspore/common/__init__.py +4 -6
- mindspore/common/_decorator.py +2 -0
- mindspore/common/_register_for_adapter.py +55 -0
- mindspore/common/_stub_tensor.py +201 -0
- mindspore/common/_utils.py +41 -7
- mindspore/common/api.py +215 -141
- mindspore/common/dtype.py +8 -1
- mindspore/common/dump.py +2 -2
- mindspore/common/initializer.py +4 -2
- mindspore/common/jit_config.py +17 -13
- mindspore/common/mutable.py +33 -13
- mindspore/common/parameter.py +23 -21
- mindspore/common/seed.py +8 -24
- mindspore/common/sparse_tensor.py +62 -41
- mindspore/common/tensor.py +852 -1154
- mindspore/communication/__init__.py +2 -2
- mindspore/communication/_comm_helper.py +11 -4
- mindspore/communication/management.py +22 -21
- mindspore/config/op_info.config +501 -1008
- mindspore/config/super_bar_config.json +512 -0
- mindspore/context.py +201 -23
- mindspore/dataset/__init__.py +6 -6
- mindspore/dataset/audio/__init__.py +7 -7
- mindspore/dataset/audio/transforms.py +670 -30
- mindspore/dataset/audio/utils.py +47 -4
- mindspore/dataset/audio/validators.py +223 -1
- mindspore/dataset/callback/ds_callback.py +2 -2
- mindspore/dataset/core/config.py +210 -14
- mindspore/dataset/core/validator_helpers.py +2 -2
- mindspore/{parallel/nn/layers.py → dataset/debug/__init__.py} +7 -8
- mindspore/dataset/debug/debug_hook.py +65 -0
- mindspore/dataset/debug/pre_defined_hook.py +67 -0
- mindspore/dataset/engine/__init__.py +7 -3
- mindspore/dataset/engine/cache_client.py +1 -1
- mindspore/dataset/engine/datasets.py +322 -66
- mindspore/dataset/engine/datasets_audio.py +80 -76
- mindspore/dataset/engine/datasets_standard_format.py +51 -38
- mindspore/dataset/engine/datasets_text.py +232 -118
- mindspore/dataset/engine/datasets_user_defined.py +41 -17
- mindspore/dataset/engine/datasets_vision.py +746 -225
- mindspore/dataset/engine/graphdata.py +75 -10
- mindspore/dataset/engine/iterators.py +45 -5
- mindspore/dataset/engine/offload.py +48 -28
- mindspore/dataset/engine/validators.py +117 -8
- mindspore/dataset/text/__init__.py +6 -5
- mindspore/dataset/text/transforms.py +86 -3
- mindspore/dataset/text/utils.py +6 -4
- mindspore/dataset/text/validators.py +25 -0
- mindspore/dataset/transforms/__init__.py +3 -2
- mindspore/dataset/transforms/c_transforms.py +1 -1
- mindspore/dataset/transforms/transforms.py +2 -2
- mindspore/dataset/utils/__init__.py +2 -1
- mindspore/dataset/utils/line_reader.py +121 -0
- mindspore/dataset/vision/__init__.py +2 -3
- mindspore/dataset/vision/c_transforms.py +9 -9
- mindspore/dataset/vision/py_transforms.py +5 -5
- mindspore/dataset/vision/py_transforms_util.py +2 -0
- mindspore/dataset/vision/transforms.py +160 -161
- mindspore/dataset/vision/utils.py +3 -3
- mindspore/experimental/map_parameter.py +38 -26
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/callback/callback.h +9 -13
- mindspore/include/api/callback/ckpt_saver.h +2 -2
- mindspore/include/api/callback/loss_monitor.h +2 -2
- mindspore/include/api/callback/lr_scheduler.h +5 -5
- mindspore/include/api/callback/time_monitor.h +2 -2
- mindspore/include/api/callback/train_accuracy.h +4 -6
- mindspore/include/api/cfg.h +19 -6
- mindspore/include/api/context.h +44 -9
- mindspore/include/api/delegate.h +1 -1
- mindspore/include/api/metrics/accuracy.h +2 -2
- mindspore/include/api/metrics/metrics.h +4 -3
- mindspore/include/api/model.h +9 -4
- mindspore/include/api/model_parallel_runner.h +2 -2
- mindspore/include/api/net.h +12 -11
- mindspore/include/api/serialization.h +19 -3
- mindspore/include/api/types.h +3 -3
- mindspore/include/dataset/constants.h +7 -0
- mindspore/include/dataset/text.h +59 -0
- mindspore/include/mindapi/base/type_id.h +1 -0
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libicudata.so.69 +0 -0
- mindspore/lib/libicui18n.so.69 +0 -0
- mindspore/lib/libicuuc.so.69 +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/libmpi_adapter.so +0 -0
- mindspore/lib/libmpi_collective.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/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 → libmindspore_ascend.so.2} +0 -0
- mindspore/log.py +1 -1
- mindspore/mindrecord/filereader.py +18 -0
- mindspore/mindrecord/filewriter.py +197 -34
- mindspore/mindrecord/shardreader.py +9 -0
- mindspore/mindrecord/shardwriter.py +1 -1
- mindspore/mindrecord/tools/cifar100_to_mr.py +3 -3
- mindspore/mindrecord/tools/cifar10_to_mr.py +3 -3
- mindspore/mindrecord/tools/csv_to_mr.py +3 -3
- mindspore/mindrecord/tools/imagenet_to_mr.py +16 -11
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- mindspore/mindrecord/tools/tfrecord_to_mr.py +6 -6
- mindspore/nn/__init__.py +0 -4
- mindspore/nn/cell.py +204 -132
- mindspore/nn/dynamic_lr.py +1 -1
- mindspore/nn/grad/cell_grad.py +7 -6
- mindspore/nn/layer/__init__.py +5 -4
- mindspore/nn/layer/activation.py +40 -89
- mindspore/nn/layer/basic.py +255 -624
- mindspore/nn/layer/channel_shuffle.py +7 -6
- mindspore/nn/layer/combined.py +1 -1
- mindspore/nn/layer/container.py +41 -4
- mindspore/nn/layer/conv.py +64 -28
- mindspore/nn/layer/dense.py +9 -8
- mindspore/nn/layer/embedding.py +27 -25
- mindspore/nn/layer/image.py +53 -46
- mindspore/nn/layer/math.py +97 -105
- mindspore/nn/layer/normalization.py +117 -86
- mindspore/nn/layer/padding.py +185 -95
- mindspore/nn/layer/pooling.py +817 -414
- mindspore/nn/layer/rnn_cells.py +10 -15
- mindspore/nn/layer/rnns.py +37 -38
- mindspore/nn/layer/thor_layer.py +11 -12
- mindspore/nn/layer/timedistributed.py +5 -5
- mindspore/nn/layer/transformer.py +701 -0
- mindspore/nn/learning_rate_schedule.py +8 -8
- mindspore/nn/loss/__init__.py +5 -4
- mindspore/nn/loss/loss.py +334 -199
- mindspore/nn/optim/ada_grad.py +6 -6
- mindspore/nn/optim/adadelta.py +2 -3
- mindspore/nn/optim/adafactor.py +4 -5
- mindspore/nn/optim/adam.py +126 -62
- mindspore/nn/optim/adamax.py +3 -4
- mindspore/nn/optim/adasum.py +6 -6
- mindspore/nn/optim/asgd.py +2 -2
- mindspore/nn/optim/ftrl.py +67 -38
- mindspore/nn/optim/lamb.py +4 -5
- mindspore/nn/optim/lars.py +2 -2
- mindspore/nn/optim/lazyadam.py +43 -4
- mindspore/nn/optim/momentum.py +6 -5
- mindspore/nn/optim/optimizer.py +3 -1
- mindspore/nn/optim/proximal_ada_grad.py +2 -2
- mindspore/nn/optim/rmsprop.py +1 -1
- mindspore/nn/optim/rprop.py +8 -9
- mindspore/nn/optim/sgd.py +19 -13
- mindspore/nn/optim/thor.py +10 -15
- mindspore/nn/probability/__init__.py +0 -2
- mindspore/nn/probability/bijector/bijector.py +4 -4
- mindspore/nn/probability/bijector/invert.py +1 -1
- mindspore/nn/probability/bijector/softplus.py +2 -2
- mindspore/nn/probability/bnn_layers/dense_variational.py +1 -1
- mindspore/nn/probability/bnn_layers/layer_distribution.py +2 -2
- mindspore/nn/probability/distribution/_utils/utils.py +9 -15
- mindspore/nn/probability/distribution/bernoulli.py +3 -3
- mindspore/nn/probability/distribution/beta.py +1 -1
- mindspore/nn/probability/distribution/categorical.py +5 -7
- mindspore/nn/probability/distribution/cauchy.py +3 -3
- mindspore/nn/probability/distribution/distribution.py +2 -2
- mindspore/nn/probability/distribution/exponential.py +2 -2
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +1 -1
- mindspore/nn/probability/distribution/gumbel.py +3 -3
- mindspore/nn/probability/distribution/half_normal.py +15 -11
- mindspore/nn/probability/distribution/laplace.py +16 -13
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/normal.py +1 -1
- mindspore/nn/probability/distribution/poisson.py +1 -1
- mindspore/nn/probability/distribution/student_t.py +20 -15
- mindspore/nn/probability/distribution/transformed_distribution.py +4 -4
- mindspore/nn/probability/distribution/uniform.py +2 -2
- mindspore/nn/reinforcement/_tensors_queue.py +3 -3
- mindspore/nn/reinforcement/tensor_array.py +2 -2
- mindspore/nn/sparse/sparse.py +2 -2
- mindspore/nn/wrap/cell_wrapper.py +27 -10
- mindspore/nn/wrap/grad_reducer.py +2 -2
- mindspore/nn/wrap/loss_scale.py +40 -24
- mindspore/numpy/array_creations.py +33 -22
- mindspore/numpy/array_ops.py +35 -30
- mindspore/numpy/logic_ops.py +6 -27
- mindspore/numpy/math_ops.py +22 -19
- mindspore/numpy/utils.py +1 -1
- mindspore/numpy/utils_const.py +108 -58
- mindspore/ops/_constants.py +0 -6
- mindspore/ops/_grad/__init__.py +2 -1
- mindspore/ops/_grad/grad_array_ops.py +86 -117
- mindspore/ops/_grad/grad_base.py +23 -1
- mindspore/ops/_grad/grad_clip_ops.py +2 -3
- mindspore/ops/_grad/grad_comm_ops.py +34 -24
- mindspore/ops/_grad/grad_implementations.py +9 -45
- mindspore/ops/_grad/grad_inner_ops.py +47 -4
- mindspore/ops/_grad/grad_math_ops.py +142 -117
- mindspore/ops/_grad/grad_nn_ops.py +71 -165
- mindspore/ops/_grad/grad_sequence_ops.py +296 -0
- mindspore/ops/_grad/grad_sparse.py +7 -6
- mindspore/ops/_grad_experimental/__init__.py +1 -0
- mindspore/ops/_grad_experimental/grad_array_ops.py +150 -15
- mindspore/ops/_grad_experimental/grad_image_ops.py +16 -7
- mindspore/ops/_grad_experimental/grad_inner_ops.py +1 -22
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +4 -11
- mindspore/ops/_grad_experimental/grad_math_ops.py +210 -89
- mindspore/ops/_grad_experimental/grad_nn_ops.py +26 -22
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +112 -0
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +49 -8
- mindspore/ops/_op_impl/_custom_op/batch_matmul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold2_grad_reduce.py +4 -4
- mindspore/ops/_op_impl/_custom_op/batchnorm_fold_grad.py +3 -3
- mindspore/ops/_op_impl/_custom_op/cholesky_trsm_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/correction_mul.py +2 -2
- mindspore/ops/_op_impl/_custom_op/correction_mul_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -5
- mindspore/ops/_op_impl/_custom_op/dsd_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perchannel_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_learned_scale_quant_perlayer_grad_reduce.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perchannel_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fake_quant_perlayer_grad.py +2 -2
- mindspore/ops/_op_impl/_custom_op/fused_abs_max1_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/img2col_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_right_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_left_cast_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_fracz_right_mul_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/matmul_cube_impl.py +2 -2
- mindspore/ops/_op_impl/_custom_op/matmul_dds_impl.py +0 -4
- mindspore/ops/_op_impl/_custom_op/matrix_combine_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/minmax_update_perchannel.py +2 -2
- mindspore/ops/_op_impl/_custom_op/minmax_update_perlayer.py +2 -2
- mindspore/ops/_op_impl/_custom_op/transpose02314_impl.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +236 -4
- mindspore/ops/_op_impl/aicpu/abs.py +36 -0
- mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_v1.py → adaptive_avg_pool_2d.py} +6 -5
- mindspore/ops/_op_impl/aicpu/adaptive_avg_pool_2d_grad.py +34 -0
- mindspore/ops/_op_impl/aicpu/add.py +43 -0
- mindspore/ops/_op_impl/aicpu/addcdiv.py +0 -32
- mindspore/ops/_op_impl/aicpu/addcmul.py +0 -84
- mindspore/ops/_op_impl/aicpu/affine_grid_grad.py +35 -0
- mindspore/ops/_op_impl/aicpu/batch_matmul.py +43 -43
- mindspore/ops/_op_impl/aicpu/bernoulli.py +48 -0
- mindspore/{compression/common/__init__.py → ops/_op_impl/aicpu/bessel_i0.py} +15 -8
- mindspore/ops/_op_impl/aicpu/channel_shuffle.py +40 -0
- mindspore/ops/_op_impl/aicpu/conj.py +11 -0
- mindspore/ops/_op_impl/aicpu/cumulative_logsumexp.py +0 -3
- mindspore/ops/_op_impl/aicpu/deformable_offsets.py +38 -0
- mindspore/ops/_op_impl/aicpu/deformable_offsets_grad.py +43 -0
- mindspore/ops/_op_impl/aicpu/{adaptive_avg_pool_2d_grad_v1.py → digamma.py} +7 -9
- mindspore/ops/_op_impl/aicpu/flatten.py +1 -0
- mindspore/ops/_op_impl/aicpu/fmax.py +36 -0
- mindspore/ops/_op_impl/aicpu/fmin.py +37 -0
- mindspore/ops/_op_impl/aicpu/fractional_max_pool3d_with_fixed_ksize.py +1 -1
- mindspore/ops/_op_impl/aicpu/fse_decode.py +43 -0
- mindspore/ops/_op_impl/aicpu/greater.py +41 -0
- mindspore/ops/_op_impl/aicpu/greater_equal.py +41 -0
- mindspore/ops/_op_impl/aicpu/index_put.py +50 -0
- mindspore/ops/_op_impl/aicpu/less.py +41 -0
- mindspore/{nn/probability/infer/variational/__init__.py → ops/_op_impl/aicpu/lgamma.py} +16 -10
- mindspore/ops/_op_impl/aicpu/mirror_pad.py +0 -4
- mindspore/ops/_op_impl/aicpu/mirror_pad_grad.py +0 -4
- mindspore/ops/_op_impl/aicpu/mul.py +3 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +14 -6
- mindspore/ops/_op_impl/aicpu/nllloss.py +38 -0
- mindspore/ops/_op_impl/aicpu/nllloss_grad.py +39 -0
- mindspore/ops/_op_impl/aicpu/ones_like.py +0 -2
- mindspore/ops/_op_impl/aicpu/polar.py +32 -0
- mindspore/ops/_op_impl/aicpu/polygamma.py +34 -0
- mindspore/ops/_op_impl/aicpu/quant_dtype_cast.py +40 -0
- mindspore/ops/_op_impl/aicpu/quantile.py +35 -0
- mindspore/ops/_op_impl/aicpu/ragged_tensor_to_sparse.py +73 -0
- mindspore/ops/_op_impl/aicpu/randperm_v2.py +41 -0
- mindspore/ops/_op_impl/aicpu/resize_bicubic.py +2 -8
- mindspore/ops/_op_impl/aicpu/resize_bicubic_grad.py +1 -1
- mindspore/ops/_op_impl/aicpu/resize_v2.py +68 -0
- mindspore/ops/_op_impl/aicpu/resize_v2_grad.py +68 -0
- mindspore/ops/_op_impl/aicpu/scatter_elements.py +4 -0
- mindspore/ops/_op_impl/aicpu/scatter_nd_update.py +2 -0
- mindspore/ops/_op_impl/aicpu/sequence_add.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_add_offset.py +34 -0
- mindspore/ops/_op_impl/aicpu/sequence_addn.py +38 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss.py +35 -0
- mindspore/ops/_op_impl/aicpu/smooth_l1_loss_grad.py +37 -0
- mindspore/ops/_op_impl/aicpu/sparse_apply_adagrad_da.py +0 -24
- mindspore/ops/_op_impl/aicpu/sparse_cross.py +42 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice.py +4 -0
- mindspore/ops/_op_impl/aicpu/sparse_slice_grad.py +6 -0
- mindspore/ops/_op_impl/aicpu/tensor_scatter_update.py +59 -0
- mindspore/ops/_op_impl/aicpu/trans_data.py +1 -0
- mindspore/ops/_op_impl/aicpu/tril_indices.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform.py +34 -0
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +1 -0
- mindspore/ops/_op_impl/aicpu/unique_consecutive.py +10 -2
- mindspore/ops/_op_impl/cpu/dynamic_shape.py +5 -1
- mindspore/ops/_op_impl/cpu/sparse_slice.py +4 -0
- mindspore/ops/_op_impl/cpu/sparse_slice_grad.py +6 -0
- mindspore/ops/_op_impl/cpu/tensor_shape.py +5 -1
- mindspore/ops/_op_impl/tbe/__init__.py +27 -611
- mindspore/ops/_op_impl/tbe/assign_add_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_matmul_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/bn_infer_grad.py +4 -2
- mindspore/ops/_op_impl/tbe/bn_training_update.py +0 -1
- mindspore/ops/_op_impl/tbe/bn_training_update_ds.py +0 -1
- mindspore/ops/_op_impl/tbe/broadcast_to_ds.py +6 -4
- mindspore/ops/_op_impl/tbe/cast.py +0 -2
- mindspore/ops/_op_impl/tbe/cast_ds.py +3 -3
- mindspore/ops/_op_impl/tbe/data_format_dim_map_ds.py +1 -0
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +2 -2
- mindspore/ops/_op_impl/tbe/dynamic_atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/gather_nd.py +1 -0
- mindspore/ops/_op_impl/tbe/{index_add.py → inplace_index_add.py} +3 -6
- mindspore/ops/_op_impl/tbe/matmul_ds.py +2 -0
- mindspore/ops/_op_impl/tbe/npu_clear_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/npu_get_float_status_v2.py +35 -0
- mindspore/ops/_op_impl/tbe/scatter_mul.py +2 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +0 -2
- mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +1 -1
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +15 -5
- mindspore/ops/_register_for_op.py +1 -0
- mindspore/ops/_utils/__init__.py +1 -2
- mindspore/ops/_utils/utils.py +19 -40
- mindspore/ops/_vmap/vmap_array_ops.py +116 -38
- mindspore/ops/_vmap/vmap_base.py +16 -9
- mindspore/ops/_vmap/vmap_convolution_ops.py +7 -10
- mindspore/ops/_vmap/vmap_grad_math_ops.py +4 -4
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +7 -5
- mindspore/ops/_vmap/vmap_image_ops.py +12 -5
- mindspore/ops/_vmap/vmap_math_ops.py +46 -5
- mindspore/ops/_vmap/vmap_nn_ops.py +15 -21
- mindspore/ops/_vmap/vmap_random_ops.py +1 -1
- mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +150 -0
- mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +220 -106
- mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +240 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +247 -0
- mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +315 -0
- mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +278 -0
- mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +58 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +138 -0
- mindspore/ops/bprop_mindir/Dropout2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Dropout3D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DropoutDoMask_bprop.mindir +22 -23
- mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +16 -17
- mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Dropout_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicGRUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DynamicRNN_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Elu_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +39 -41
- mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Flatten_bprop.mindir +41 -43
- mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +51 -57
- mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/HSwish_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +126 -0
- mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +15 -0
- mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +30 -0
- mindspore/ops/bprop_mindir/LRN_bprop.mindir +43 -0
- mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +23 -0
- mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +74 -0
- mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +75 -0
- mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +65 -0
- mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +27 -0
- mindspore/ops/bprop_mindir/Mish_bprop.mindir +35 -0
- mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/OneHot_bprop.mindir +24 -25
- mindspore/ops/bprop_mindir/PReLU_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Pad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Padding_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/RNNTLoss_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +82 -0
- mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +18 -19
- mindspore/ops/bprop_mindir/Reshape_bprop.mindir +53 -53
- mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +29 -0
- mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +77 -85
- mindspore/ops/bprop_mindir/SeLU_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +21 -0
- mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +36 -0
- mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Softplus_bprop.mindir +16 -0
- mindspore/ops/bprop_mindir/Softsign_bprop.mindir +33 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +37 -39
- mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +70 -72
- mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Tanh_bprop.mindir +66 -0
- mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +17 -17
- mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +32 -0
- mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +38 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +2 -0
- mindspore/ops/composite/__init__.py +7 -8
- mindspore/ops/composite/base.py +101 -47
- mindspore/ops/composite/math_ops.py +188 -158
- mindspore/ops/composite/multitype_ops/_compile_utils.py +415 -170
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +142 -87
- mindspore/ops/composite/multitype_ops/add_impl.py +6 -1
- mindspore/ops/composite/multitype_ops/div_impl.py +2 -3
- mindspore/ops/composite/multitype_ops/getitem_impl.py +31 -3
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/in_impl.py +9 -0
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/less_impl.py +31 -0
- mindspore/ops/composite/multitype_ops/mul_impl.py +21 -5
- mindspore/ops/composite/multitype_ops/not_in_impl.py +9 -0
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +2 -4
- mindspore/ops/composite/multitype_ops/setitem_impl.py +21 -3
- mindspore/ops/composite/multitype_ops/sub_impl.py +1 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +35 -4
- mindspore/ops/function/__init__.py +152 -8
- mindspore/ops/function/array_func.py +2555 -674
- mindspore/ops/function/clip_func.py +209 -13
- mindspore/ops/function/debug_func.py +2 -2
- mindspore/ops/function/grad/__init__.py +2 -1
- mindspore/ops/function/grad/grad_func.py +147 -62
- mindspore/ops/function/image_func.py +54 -38
- mindspore/ops/function/linalg_func.py +167 -16
- mindspore/ops/function/math_func.py +4849 -1492
- mindspore/ops/function/nn_func.py +2573 -988
- mindspore/ops/function/other_func.py +115 -0
- mindspore/ops/function/parameter_func.py +3 -3
- mindspore/ops/function/random_func.py +790 -73
- mindspore/ops/function/sparse_func.py +98 -78
- mindspore/ops/function/sparse_unary_func.py +54 -53
- mindspore/ops/function/spectral_func.py +27 -24
- mindspore/ops/function/vmap_func.py +22 -2
- mindspore/ops/functional.py +97 -37
- mindspore/ops/op_info_register.py +70 -28
- mindspore/ops/operations/__init__.py +47 -14
- mindspore/ops/operations/_csr_ops.py +7 -7
- mindspore/ops/operations/_embedding_cache_ops.py +5 -5
- mindspore/ops/operations/_grad_ops.py +276 -187
- mindspore/ops/operations/_inner_ops.py +319 -113
- mindspore/ops/operations/_ms_kernel.py +10 -8
- mindspore/ops/operations/_ocr_ops.py +9 -9
- mindspore/ops/operations/_opaque_predicate_registry.py +4 -0
- mindspore/ops/operations/_quant_ops.py +137 -102
- mindspore/ops/operations/_rl_inner_ops.py +121 -60
- mindspore/ops/operations/_scalar_ops.py +466 -0
- mindspore/ops/operations/_sequence_ops.py +1004 -2
- mindspore/ops/operations/_tensor_array.py +10 -11
- mindspore/ops/operations/_thor_ops.py +1 -1
- mindspore/ops/operations/array_ops.py +801 -466
- mindspore/ops/operations/comm_ops.py +51 -49
- mindspore/ops/operations/control_ops.py +2 -2
- mindspore/ops/operations/custom_ops.py +123 -44
- mindspore/ops/operations/debug_ops.py +24 -24
- mindspore/ops/operations/image_ops.py +240 -153
- mindspore/ops/operations/inner_ops.py +34 -50
- mindspore/ops/operations/linalg_ops.py +31 -9
- mindspore/ops/operations/math_ops.py +988 -757
- mindspore/ops/operations/nn_ops.py +965 -819
- mindspore/ops/operations/other_ops.py +51 -40
- mindspore/ops/operations/random_ops.py +204 -122
- mindspore/ops/operations/rl_ops.py +8 -9
- mindspore/ops/operations/sparse_ops.py +254 -93
- mindspore/ops/operations/spectral_ops.py +35 -3
- mindspore/ops/primitive.py +111 -9
- mindspore/parallel/_auto_parallel_context.py +189 -83
- mindspore/parallel/_offload_context.py +185 -0
- mindspore/parallel/_parallel_serialization.py +99 -7
- mindspore/parallel/_ps_context.py +9 -5
- mindspore/parallel/_recovery_context.py +1 -1
- mindspore/parallel/_tensor.py +7 -1
- mindspore/{nn/transformer → parallel/_transformer}/__init__.py +6 -6
- mindspore/{nn/transformer → parallel/_transformer}/layers.py +6 -37
- mindspore/{nn/transformer → parallel/_transformer}/loss.py +4 -7
- mindspore/{nn/transformer → parallel/_transformer}/moe.py +20 -16
- mindspore/{nn/transformer → parallel/_transformer}/op_parallel_config.py +3 -3
- mindspore/{nn/transformer → parallel/_transformer}/transformer.py +48 -111
- mindspore/parallel/_utils.py +1 -2
- mindspore/parallel/algo_parameter_config.py +1 -1
- mindspore/parallel/checkpoint_transform.py +37 -34
- mindspore/parallel/shard.py +17 -18
- mindspore/profiler/common/validator/validate_path.py +2 -2
- mindspore/profiler/envprofiling.py +69 -47
- mindspore/profiler/parser/ascend_timeline_generator.py +49 -42
- mindspore/profiler/parser/base_timeline_generator.py +49 -56
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +98 -78
- mindspore/profiler/parser/hwts_log_parser.py +1 -1
- mindspore/profiler/parser/integrator.py +15 -14
- mindspore/profiler/parser/minddata_analyzer.py +2 -2
- mindspore/profiler/parser/msadvisor_analyzer.py +12 -25
- mindspore/profiler/parser/msadvisor_parser.py +2 -4
- mindspore/profiler/parser/optime_parser.py +17 -18
- mindspore/profiler/parser/profiler_info.py +2 -1
- mindspore/profiler/profiling.py +218 -186
- mindspore/rewrite/__init__.py +3 -1
- mindspore/rewrite/api/node.py +1 -114
- mindspore/rewrite/api/node_type.py +3 -0
- mindspore/rewrite/api/pattern_engine.py +31 -1
- mindspore/rewrite/api/scoped_value.py +4 -4
- mindspore/rewrite/api/symbol_tree.py +3 -78
- mindspore/rewrite/api/tree_node_helper.py +1 -1
- mindspore/rewrite/ast_creator_register.py +1 -0
- mindspore/rewrite/ast_helpers/__init__.py +2 -2
- mindspore/rewrite/ast_helpers/ast_creator.py +1 -2
- mindspore/rewrite/ast_helpers/ast_finder.py +65 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +11 -3
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +18 -2
- mindspore/rewrite/namespace.py +0 -2
- mindspore/rewrite/node.py +157 -11
- mindspore/rewrite/parsers/assign_parser.py +231 -53
- mindspore/rewrite/parsers/class_def_parser.py +187 -109
- mindspore/rewrite/parsers/for_parser.py +24 -14
- mindspore/rewrite/parsers/function_def_parser.py +21 -4
- mindspore/rewrite/parsers/if_parser.py +6 -2
- mindspore/rewrite/sparsify/__init__.py +0 -0
- mindspore/rewrite/sparsify/sparse_transformer.py +448 -0
- mindspore/rewrite/sparsify/sparsify.py +109 -0
- mindspore/rewrite/sparsify/utils.py +173 -0
- mindspore/rewrite/symbol_tree.py +256 -133
- mindspore/rewrite/symbol_tree_builder.py +38 -1
- mindspore/run_check/_check_version.py +69 -63
- mindspore/run_check/run_check.py +2 -1
- mindspore/scipy/linalg.py +10 -114
- mindspore/scipy/ops.py +2 -2
- mindspore/scipy/ops_wrapper.py +1 -1
- mindspore/scipy/optimize/_bfgs.py +1 -1
- mindspore/scipy/optimize/_lagrange.py +200 -0
- mindspore/scipy/optimize/line_search.py +3 -2
- mindspore/scipy/optimize/minimize.py +41 -2
- mindspore/scipy/sparse/__init__.py +2 -2
- mindspore/scipy/sparse/linalg.py +4 -464
- mindspore/scipy/utils.py +1 -1
- mindspore/scipy/utils_const.py +7 -1
- mindspore/train/__init__.py +1 -1
- mindspore/train/_utils.py +28 -5
- mindspore/train/amp.py +273 -102
- mindspore/train/callback/_backup_and_restore.py +5 -5
- mindspore/train/callback/_callback.py +2 -2
- mindspore/train/callback/_checkpoint.py +3 -3
- mindspore/train/callback/_early_stop.py +3 -3
- mindspore/train/callback/_lambda_callback.py +2 -2
- mindspore/train/callback/_landscape.py +29 -31
- mindspore/train/callback/_loss_monitor.py +3 -3
- mindspore/train/callback/_on_request_exit.py +3 -3
- mindspore/train/callback/_reduce_lr_on_plateau.py +4 -4
- mindspore/train/callback/_summary_collector.py +23 -16
- mindspore/train/callback/_time_monitor.py +3 -3
- mindspore/train/checkpoint_pb2.py +68 -8
- mindspore/train/data_sink.py +15 -3
- mindspore/train/dataset_helper.py +10 -15
- mindspore/train/loss_scale_manager.py +8 -11
- mindspore/train/metrics/__init__.py +1 -1
- mindspore/train/metrics/bleu_score.py +1 -1
- mindspore/train/metrics/confusion_matrix.py +1 -1
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/dice.py +2 -2
- mindspore/train/metrics/fbeta.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +4 -3
- mindspore/train/metrics/mean_surface_distance.py +2 -2
- mindspore/train/metrics/occlusion_sensitivity.py +1 -1
- mindspore/train/metrics/perplexity.py +1 -1
- mindspore/train/metrics/precision.py +1 -1
- mindspore/train/metrics/recall.py +1 -1
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +2 -2
- mindspore/train/mind_ir_pb2.py +116 -37
- mindspore/train/model.py +45 -28
- mindspore/train/serialization.py +295 -188
- mindspore/train/summary/_summary_adapter.py +1 -1
- mindspore/train/summary/summary_record.py +43 -13
- mindspore/train/train_thor/convert_utils.py +2 -2
- mindspore/train/train_thor/dataset_helper.py +3 -3
- mindspore/version.py +1 -1
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/METADATA +3 -2
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/RECORD +648 -574
- mindspore/compression/__init__.py +0 -19
- mindspore/compression/common/constant.py +0 -124
- mindspore/compression/export/__init__.py +0 -19
- mindspore/compression/export/quant_export.py +0 -515
- mindspore/compression/quant/__init__.py +0 -28
- mindspore/compression/quant/qat.py +0 -634
- mindspore/compression/quant/quant_utils.py +0 -462
- mindspore/compression/quant/quantizer.py +0 -68
- mindspore/nn/layer/quant.py +0 -1868
- mindspore/nn/layer/rnn_utils.py +0 -90
- mindspore/nn/probability/dpn/__init__.py +0 -22
- mindspore/nn/probability/dpn/vae/__init__.py +0 -25
- mindspore/nn/probability/dpn/vae/cvae.py +0 -140
- mindspore/nn/probability/dpn/vae/vae.py +0 -124
- mindspore/nn/probability/infer/__init__.py +0 -22
- mindspore/nn/probability/infer/variational/elbo.py +0 -70
- mindspore/nn/probability/infer/variational/svi.py +0 -84
- mindspore/nn/probability/toolbox/__init__.py +0 -22
- mindspore/nn/probability/toolbox/anomaly_detection.py +0 -99
- mindspore/nn/probability/toolbox/uncertainty_evaluation.py +0 -364
- mindspore/nn/probability/transforms/__init__.py +0 -22
- mindspore/nn/probability/transforms/transform_bnn.py +0 -262
- mindspore/nn/probability/zhusuan/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/framework/bn.py +0 -95
- mindspore/nn/probability/zhusuan/variational/__init__.py +0 -18
- mindspore/nn/probability/zhusuan/variational/elbo.py +0 -46
- mindspore/ops/_op_impl/aicpu/parallel_concat.py +0 -42
- mindspore/ops/_op_impl/tbe/gather_v2.py +0 -56
- mindspore/ops/bprop_mindir/AssignAdd_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/Cast_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/LogicalOr_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/MatMul_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReLU_bprop.mindir +0 -17
- mindspore/ops/bprop_mindir/Transpose_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/UpdateState_bprop.mindir +0 -15
- mindspore/ops/composite/array_ops.py +0 -241
- mindspore/ops/composite/clip_ops.py +0 -134
- mindspore/ops/composite/random_ops.py +0 -426
- mindspore/ops/composite/vmap_ops.py +0 -38
- mindspore/parallel/nn/__init__.py +0 -42
- mindspore/parallel/nn/loss.py +0 -22
- mindspore/parallel/nn/moe.py +0 -21
- mindspore/parallel/nn/op_parallel_config.py +0 -22
- mindspore/parallel/nn/transformer.py +0 -31
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/WHEEL +0 -0
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/entry_points.txt +0 -0
- {mindspore-2.0.0a0.dist-info → mindspore-2.0.0rc1.dist-info}/top_level.txt +0 -0
mindspore/profiler/profiling.py
CHANGED
|
@@ -18,6 +18,8 @@ import stat
|
|
|
18
18
|
import time
|
|
19
19
|
import json
|
|
20
20
|
import glob
|
|
21
|
+
import subprocess
|
|
22
|
+
from enum import Enum
|
|
21
23
|
|
|
22
24
|
from mindspore import log as logger, context
|
|
23
25
|
from mindspore.communication.management import GlobalComm, get_rank, get_group_size
|
|
@@ -48,6 +50,7 @@ from mindspore.profiler.parser.hccl_parser import HcclParser
|
|
|
48
50
|
from mindspore.profiler.parser.op_intermediate_parser import OPIntermediateParser
|
|
49
51
|
from mindspore.profiler.parser.msadvisor_analyzer import Msadvisor
|
|
50
52
|
from mindspore.profiler.parser.profiler_info import ProfilerInfo
|
|
53
|
+
from mindspore.common.api import _pynative_executor
|
|
51
54
|
|
|
52
55
|
INIT_OP_NAME = 'Default/InitDataSetQueue'
|
|
53
56
|
|
|
@@ -62,6 +65,18 @@ AICORE_METRICS_DICT = {
|
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
|
|
68
|
+
class DeviceSupportParam(Enum):
|
|
69
|
+
"""The device target enum."""
|
|
70
|
+
CPU = ['start', 'start_profile', 'output_path', 'timeline_limit']
|
|
71
|
+
GPU = ['start', 'start_profile', 'output_path', 'data_process', 'timeline_limit', 'sync_enable', 'op_time']
|
|
72
|
+
ASCEND = ['start', 'start_profile', 'output_path', 'data_process', 'timeline_limit', 'profile_memory',
|
|
73
|
+
'parallel_strategy', 'profile_communication', 'aicore_metrics', 'l2_cache', 'op_time', 'ascend_job_id']
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
ALWAYS_VALID_PARAM = ['start', 'start_profile', 'output_path', 'data_process', 'parallel_strategy', 'l2_cache',
|
|
77
|
+
'ascend_job_id', 'op_time']
|
|
78
|
+
|
|
79
|
+
|
|
65
80
|
def _environment_check():
|
|
66
81
|
if c_expression.security.enable_security():
|
|
67
82
|
raise RuntimeError("Profiler is not supported when MindSpore is compiled with \'-s on\'.")
|
|
@@ -78,15 +93,19 @@ class Profiler:
|
|
|
78
93
|
|
|
79
94
|
Args:
|
|
80
95
|
output_path (str, optional): Output data path. Default: "./data".
|
|
96
|
+
op_time (bool, optional): (Ascend/GPU) Whether to collect operators performance data. Default value: True.
|
|
81
97
|
profile_communication (bool, optional): (Ascend only) Whether to collect communication performance data in
|
|
82
98
|
a multi devices training,collect when True. Setting this parameter has no effect during single device
|
|
83
|
-
training. Default: False.
|
|
99
|
+
training. When using this parameter, `op_time` must be set to True. Default: False.
|
|
84
100
|
profile_memory (bool, optional): (Ascend only) Whether to collect tensor memory data, collect when True.
|
|
85
|
-
Default: False.
|
|
101
|
+
When using this parameter, `op_time` must be set to True. Default: False.
|
|
102
|
+
parallel_strategy (bool, optional): (Ascend only) Whether to collect parallel policy performance data.
|
|
103
|
+
Default value: true.
|
|
86
104
|
start_profile (bool, optional): The start_profile parameter controls whether to enable or disable performance
|
|
87
105
|
data collection based on conditions. Default: True.
|
|
88
|
-
aicore_metrics (int, optional): (Ascend only) Types of AICORE performance data collected
|
|
89
|
-
[-1, 0, 1, 2, 3, 4, 5], Default: 0, the
|
|
106
|
+
aicore_metrics (int, optional): (Ascend only) Types of AICORE performance data collected, when using this
|
|
107
|
+
parameter, `op_time` must be set to True, and the value must be in [-1, 0, 1, 2, 3, 4, 5], Default: 0, the
|
|
108
|
+
data items contained in each metric are as follows:
|
|
90
109
|
|
|
91
110
|
- -1: Does not collect AICORE data.
|
|
92
111
|
- 0: ArithmeticUtilization contains mac_fp16/int8_ratio, vec_fp32/fp16/int32_ratio, vec_misc_ratio etc.
|
|
@@ -105,7 +124,11 @@ class Profiler:
|
|
|
105
124
|
Then the operator is returned to the CPU after execution, and the end timestamp is recorded,
|
|
106
125
|
The duration of the operator is the difference between the two timestamps.
|
|
107
126
|
- False: The asynchronous way. The duration of the operator is that of sending from the CPU to the GPU.
|
|
108
|
-
This method can reduce the impact of adding profiler on training time.
|
|
127
|
+
This method can reduce the impact of adding profiler on overall training time.
|
|
128
|
+
data_process (bool, optional): (Ascend/GPU) Whether to collect data to prepare performance data.
|
|
129
|
+
Default value: True.
|
|
130
|
+
timeline_limit (int, optional): Set the maximum storage size of the timeline file (unit M). When using this
|
|
131
|
+
parameter, `op_time` must be set to True. Default value: 500.
|
|
109
132
|
|
|
110
133
|
Raises:
|
|
111
134
|
RuntimeError: When the version of CANN does not match the version of MindSpore,
|
|
@@ -165,16 +188,6 @@ class Profiler:
|
|
|
165
188
|
_ascend_job_id = ""
|
|
166
189
|
|
|
167
190
|
def __init__(self, **kwargs):
|
|
168
|
-
self._msprof_enable = os.getenv("PROFILER_SAMPLECONFIG")
|
|
169
|
-
if self._msprof_enable:
|
|
170
|
-
return
|
|
171
|
-
if kwargs.get("env_enable"):
|
|
172
|
-
self._profiler_init(kwargs)
|
|
173
|
-
return
|
|
174
|
-
if Profiler._has_initialized:
|
|
175
|
-
msg = "Do not init twice in the profiler."
|
|
176
|
-
raise RuntimeError(msg)
|
|
177
|
-
Profiler._has_initialized = True
|
|
178
191
|
self._dev_id = None
|
|
179
192
|
self._cpu_profiler = None
|
|
180
193
|
self._gpu_profiler = None
|
|
@@ -187,7 +200,7 @@ class Profiler:
|
|
|
187
200
|
self._job_id_env = None
|
|
188
201
|
self._filt_optype_names = ''
|
|
189
202
|
self._output_path = ''
|
|
190
|
-
self._rank_size =
|
|
203
|
+
self._rank_size = 1
|
|
191
204
|
self._rank_id = 0
|
|
192
205
|
self._ascend_profiler = None
|
|
193
206
|
self._timeline_size_limit_byte = 500 * 1024 * 1024 # 500MB
|
|
@@ -197,10 +210,7 @@ class Profiler:
|
|
|
197
210
|
self._aicore_metrics_id = 0
|
|
198
211
|
self._l2_cache = "off"
|
|
199
212
|
self._data_process = True
|
|
200
|
-
self.
|
|
201
|
-
# get device_id and device_target
|
|
202
|
-
self._get_devid_rankid_and_devtarget()
|
|
203
|
-
self._get_output_path(kwargs)
|
|
213
|
+
self._op_time = True
|
|
204
214
|
self._profile_communication = False
|
|
205
215
|
self._has_started = False
|
|
206
216
|
self._has_started_twice = False
|
|
@@ -209,6 +219,20 @@ class Profiler:
|
|
|
209
219
|
self._sync_enable = True
|
|
210
220
|
self._stop_time = 0
|
|
211
221
|
self._dynamic_status = False
|
|
222
|
+
self._msprof_enable = os.getenv("PROFILER_SAMPLECONFIG")
|
|
223
|
+
if self._msprof_enable:
|
|
224
|
+
return
|
|
225
|
+
if kwargs.get("env_enable"):
|
|
226
|
+
self._profiler_init(kwargs)
|
|
227
|
+
return
|
|
228
|
+
if Profiler._has_initialized:
|
|
229
|
+
msg = "Do not init twice in the profiler."
|
|
230
|
+
raise RuntimeError(msg)
|
|
231
|
+
Profiler._has_initialized = True
|
|
232
|
+
# get device_id and device_target
|
|
233
|
+
self._get_devid_rankid_and_devtarget()
|
|
234
|
+
self._parser_kwargs(kwargs)
|
|
235
|
+
self._get_output_path(kwargs)
|
|
212
236
|
self._decide_device_target(kwargs)
|
|
213
237
|
if self.start_profile:
|
|
214
238
|
self.start()
|
|
@@ -227,7 +251,7 @@ class Profiler:
|
|
|
227
251
|
return output_path
|
|
228
252
|
|
|
229
253
|
@staticmethod
|
|
230
|
-
def
|
|
254
|
+
def _parse_start_log(input_file):
|
|
231
255
|
"""
|
|
232
256
|
Parse host start log file, get the start time of the job.
|
|
233
257
|
|
|
@@ -238,12 +262,9 @@ class Profiler:
|
|
|
238
262
|
str, job start time.
|
|
239
263
|
"""
|
|
240
264
|
|
|
241
|
-
job_start_time =
|
|
265
|
+
job_start_time = 0
|
|
242
266
|
with open(input_file) as f:
|
|
243
|
-
|
|
244
|
-
if "clock_realtime" in line:
|
|
245
|
-
# 16 means the first digit of the timestamp, len(line)-3 means the last.
|
|
246
|
-
job_start_time = line[16:len(line) - 3]
|
|
267
|
+
job_start_time = json.load(f).get("collectionTimeBegin")
|
|
247
268
|
|
|
248
269
|
return job_start_time
|
|
249
270
|
|
|
@@ -260,7 +281,7 @@ class Profiler:
|
|
|
260
281
|
Raises:
|
|
261
282
|
TypeError: If the op_name parameter type is incorrect.
|
|
262
283
|
TypeError: If the device_id parameter type is incorrect.
|
|
263
|
-
|
|
284
|
+
RuntimeError: If MindSpore runs on Ascend, this interface cannot be used.
|
|
264
285
|
|
|
265
286
|
Supported Platforms:
|
|
266
287
|
``GPU`` ``CPU``
|
|
@@ -317,6 +338,10 @@ class Profiler:
|
|
|
317
338
|
"""
|
|
318
339
|
if self._msprof_enable:
|
|
319
340
|
return
|
|
341
|
+
|
|
342
|
+
# Stop data collection after all operators are executed.
|
|
343
|
+
_pynative_executor.sync()
|
|
344
|
+
|
|
320
345
|
Profiler._has_initialized = False
|
|
321
346
|
self._dynamic_status = self._profiler_manager.dynamic_status()
|
|
322
347
|
_environment_check()
|
|
@@ -327,7 +352,6 @@ class Profiler:
|
|
|
327
352
|
if self._device_target and self._device_target != DeviceTarget.CPU.value and cpu_op_file:
|
|
328
353
|
self._is_heterogeneous = True
|
|
329
354
|
ProfilerInfo.set_analyse_start_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
|
|
330
|
-
self._init_profiler_info()
|
|
331
355
|
if self._device_target and self._device_target == DeviceTarget.CPU.value:
|
|
332
356
|
self._cpu_analyse()
|
|
333
357
|
|
|
@@ -337,6 +361,7 @@ class Profiler:
|
|
|
337
361
|
elif self._device_target and self._device_target == DeviceTarget.ASCEND.value:
|
|
338
362
|
self._ascend_analyse()
|
|
339
363
|
logger.info("Profiling: all the data have been analyzed.")
|
|
364
|
+
self._init_profiler_info()
|
|
340
365
|
ProfilerInfo.set_analyse_end_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
|
|
341
366
|
ProfilerInfo.set_rank_size(self._rank_size)
|
|
342
367
|
ProfilerInfo.set_heterogeneous(self._is_heterogeneous)
|
|
@@ -376,10 +401,8 @@ class Profiler:
|
|
|
376
401
|
"""
|
|
377
402
|
if self._msprof_enable:
|
|
378
403
|
return
|
|
379
|
-
if not self.start_profile and context.get_context("mode") == context.PYNATIVE_MODE:
|
|
380
|
-
raise RuntimeError("Pynative mode does not support conditional collection of performance data.")
|
|
381
404
|
|
|
382
|
-
self._start_time = int(time.time() *
|
|
405
|
+
self._start_time = int(time.time() * 1000000)
|
|
383
406
|
logger.info("Profiling: start time: %d", self._start_time)
|
|
384
407
|
|
|
385
408
|
if not self._has_started:
|
|
@@ -402,7 +425,9 @@ class Profiler:
|
|
|
402
425
|
if self._device_target and self._device_target == DeviceTarget.GPU.value:
|
|
403
426
|
if self._data_process:
|
|
404
427
|
self._md_profiler.start()
|
|
405
|
-
|
|
428
|
+
self._gpu_profiler.data_process_enable(True)
|
|
429
|
+
if self._op_time:
|
|
430
|
+
self._gpu_profiler.step_profiling_enable(True)
|
|
406
431
|
elif self._device_target and self._device_target == DeviceTarget.ASCEND.value:
|
|
407
432
|
if self._data_process:
|
|
408
433
|
self._md_profiler.start()
|
|
@@ -441,6 +466,7 @@ class Profiler:
|
|
|
441
466
|
"""
|
|
442
467
|
if self._msprof_enable:
|
|
443
468
|
return
|
|
469
|
+
|
|
444
470
|
if self._has_started:
|
|
445
471
|
self._has_started = False
|
|
446
472
|
else:
|
|
@@ -450,6 +476,10 @@ class Profiler:
|
|
|
450
476
|
# No need to stop anything if parse profiling data offline
|
|
451
477
|
if self._is_offline_parser():
|
|
452
478
|
return
|
|
479
|
+
|
|
480
|
+
# Stop data collection after all operators are executed.
|
|
481
|
+
_pynative_executor.sync()
|
|
482
|
+
|
|
453
483
|
if self._data_process:
|
|
454
484
|
self._md_profiler.stop()
|
|
455
485
|
self._md_profiler.save(self._output_path)
|
|
@@ -466,18 +496,15 @@ class Profiler:
|
|
|
466
496
|
def _profiler_init(self, kwargs):
|
|
467
497
|
"""Initialize variables when profiler is enabled by environment variables."""
|
|
468
498
|
options = kwargs.get("env_enable")
|
|
469
|
-
self._filt_optype_names = ''
|
|
470
499
|
self._has_started = True
|
|
471
|
-
self._stop_time = 0
|
|
472
|
-
self._is_heterogeneous = False
|
|
473
|
-
self._rank_size = 1
|
|
474
500
|
self._start_time = options.get("start_time")
|
|
475
501
|
self._output_path = options.get('file_output_path')
|
|
476
502
|
self._profile_memory = options.get('profile_memory')
|
|
477
503
|
self._parallel_strategy = options.get('parallel_strategy')
|
|
478
|
-
self._timeline_size_limit_byte = options.get('timeline_limit')
|
|
504
|
+
self._timeline_size_limit_byte = options.get('timeline_limit') * 1024 * 1024
|
|
479
505
|
self._data_process = options.get('data_process')
|
|
480
506
|
self._profile_communication = options.get('profile_communication')
|
|
507
|
+
self._op_time = options.get('op_time')
|
|
481
508
|
self._device_target = context.get_context("device_target").lower()
|
|
482
509
|
self._profiler_manager = c_expression.ProfilerManager.get_instance()
|
|
483
510
|
self._cpu_profiler = c_expression.Profiler.get_instance("CPU")
|
|
@@ -495,7 +522,8 @@ class Profiler:
|
|
|
495
522
|
mode = "graph"
|
|
496
523
|
if context.get_context("mode") == context.PYNATIVE_MODE:
|
|
497
524
|
mode = "pynative"
|
|
498
|
-
|
|
525
|
+
store_id = self._dev_id if self._device_target == DeviceTarget.GPU.value else self._rank_id
|
|
526
|
+
ProfilerInfo.init_info(mode, store_id)
|
|
499
527
|
|
|
500
528
|
def _decide_device_target(self, kwargs):
|
|
501
529
|
"""Complete Profiler initialization according to device_target"""
|
|
@@ -522,14 +550,6 @@ class Profiler:
|
|
|
522
550
|
raise TypeError(f"For '{self.__class__.__name__}', the parameter start_profile must be bool, "
|
|
523
551
|
f"but got type {type(self.start_profile)}")
|
|
524
552
|
|
|
525
|
-
self._profile_communication = kwargs.pop("profile_communication", False)
|
|
526
|
-
if self._profile_communication:
|
|
527
|
-
logger.warning(f"The parameter profile_communication is not supported on CPU currently.")
|
|
528
|
-
|
|
529
|
-
self._profile_memory = kwargs.pop("profile_memory", False)
|
|
530
|
-
if self._profile_memory:
|
|
531
|
-
logger.warning(f"The parameter profile_memory is not supported on CPU currently.")
|
|
532
|
-
|
|
533
553
|
def _gpu_profiler_init(self, kwargs):
|
|
534
554
|
"""Gpu profiler init."""
|
|
535
555
|
# Setup and start MindData Profiling
|
|
@@ -579,13 +599,6 @@ class Profiler:
|
|
|
579
599
|
"""
|
|
580
600
|
Construct profiling options to determine which profiling data should be collected.
|
|
581
601
|
"""
|
|
582
|
-
profile_memory = "off"
|
|
583
|
-
if self._profile_memory:
|
|
584
|
-
profile_memory = "on"
|
|
585
|
-
profiler_communication = "off"
|
|
586
|
-
if self._profile_communication:
|
|
587
|
-
profiler_communication = "on"
|
|
588
|
-
|
|
589
602
|
fp_point = os.environ.get("PROFILING_FP_START", "")
|
|
590
603
|
bp_point = os.environ.get("PROFILING_BP_END", "")
|
|
591
604
|
|
|
@@ -593,37 +606,30 @@ class Profiler:
|
|
|
593
606
|
"output": self._output_path,
|
|
594
607
|
"fp_point": fp_point,
|
|
595
608
|
"bp_point": bp_point,
|
|
596
|
-
"training_trace": "on",
|
|
597
|
-
"task_trace": "on",
|
|
609
|
+
"training_trace": "on" if self._op_time else "off",
|
|
610
|
+
"task_trace": "on" if self._op_time else "off",
|
|
598
611
|
"aic_metrics": AICORE_METRICS_DICT.get(self._aicore_metrics_id, "ArithmeticUtilization"),
|
|
599
|
-
"aicpu": "on",
|
|
600
|
-
"profile_memory":
|
|
601
|
-
"hccl":
|
|
612
|
+
"aicpu": "on" if self._data_process or self._op_time else "off",
|
|
613
|
+
"profile_memory": "on" if self._op_time and self._profile_memory else "off",
|
|
614
|
+
"hccl": "on" if self._op_time and self._profile_communication else "off",
|
|
602
615
|
"l2_cache": self._l2_cache,
|
|
603
616
|
"parallel_strategy": "on" if self._parallel_strategy else "off",
|
|
617
|
+
"op_time": "on" if self._op_time else "off"
|
|
604
618
|
}
|
|
605
619
|
|
|
606
620
|
return profiling_options
|
|
607
621
|
|
|
608
622
|
def _parse_parameter_for_gpu(self, kwargs):
|
|
609
623
|
"""Parse parameter in Proflier when the device target is GPU."""
|
|
610
|
-
|
|
611
624
|
self.start_profile = kwargs.pop("start_profile", True)
|
|
612
625
|
if not isinstance(self.start_profile, bool):
|
|
613
626
|
raise TypeError(f"For '{self.__class__.__name__}', the parameter start_profile must be bool, "
|
|
614
627
|
f"but got type {type(self.start_profile)}")
|
|
615
628
|
|
|
616
|
-
self._profile_communication = kwargs.pop("profile_communication", False)
|
|
617
|
-
if self._profile_communication:
|
|
618
|
-
logger.warning(f"The parameter profile_communication is not supported on GPU currently.")
|
|
619
|
-
|
|
620
|
-
self._profile_memory = kwargs.pop("profile_memory", False)
|
|
621
|
-
if self._profile_memory:
|
|
622
|
-
logger.warning(f"The parameter profile_memory is not supported on GPU currently.")
|
|
623
|
-
|
|
624
629
|
self._sync_enable = kwargs.pop("sync_enable", True)
|
|
625
630
|
if not isinstance(self._sync_enable, bool):
|
|
626
631
|
logger.warning("The parameter sync_enable is an invalid value, it will be set to True.")
|
|
632
|
+
self._sync_enable = True
|
|
627
633
|
|
|
628
634
|
def _parse_parameter_for_ascend(self, kwargs):
|
|
629
635
|
"""Parse parameter in Proflier when the device target is Ascend."""
|
|
@@ -636,8 +642,9 @@ class Profiler:
|
|
|
636
642
|
|
|
637
643
|
self._profile_communication = kwargs.pop("profile_communication", False)
|
|
638
644
|
if not isinstance(self._profile_communication, bool):
|
|
639
|
-
|
|
640
|
-
|
|
645
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter profile_communication must be bool, "
|
|
646
|
+
f"but got type {type(self._profile_communication)}, it will be set to False.")
|
|
647
|
+
self._profile_communication = False
|
|
641
648
|
|
|
642
649
|
if self._profile_communication:
|
|
643
650
|
hccl_option = {"output": self._output_path, "task_trace": "on"}
|
|
@@ -648,21 +655,26 @@ class Profiler:
|
|
|
648
655
|
|
|
649
656
|
self._profile_memory = kwargs.pop("profile_memory", False)
|
|
650
657
|
if not isinstance(self._profile_memory, bool):
|
|
651
|
-
|
|
652
|
-
|
|
658
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter profile_memory must be bool, "
|
|
659
|
+
f"but got type {type(self._profile_memory)}, it will be set to False.")
|
|
660
|
+
self._profile_memory = False
|
|
653
661
|
|
|
654
662
|
self._aicore_metrics_id = kwargs.pop("aicore_metrics", 0)
|
|
655
663
|
if not isinstance(self._aicore_metrics_id, int):
|
|
656
|
-
|
|
657
|
-
|
|
664
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter aicore_metrics must be int, "
|
|
665
|
+
f"but got type {type(self._aicore_metrics_id)}, it will be set to 0.")
|
|
666
|
+
self._aicore_metrics_id = 0
|
|
667
|
+
|
|
658
668
|
if self._aicore_metrics_id not in AICORE_METRICS_DICT:
|
|
659
|
-
|
|
660
|
-
|
|
669
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter aicore_metrics must be in "
|
|
670
|
+
f"[-1, 0, 1, 2, 3, 4, 5], but got {self._aicore_metrics_id}, it will be set to 0.")
|
|
671
|
+
self._aicore_metrics_id = 0
|
|
661
672
|
|
|
662
673
|
l2_cache_enable = kwargs.pop("l2_cache", False)
|
|
663
674
|
if not isinstance(l2_cache_enable, bool):
|
|
664
|
-
|
|
665
|
-
|
|
675
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter l2_cache must be bool, "
|
|
676
|
+
f"but got type {type(l2_cache_enable)}, it will be set to False.")
|
|
677
|
+
l2_cache_enable = False
|
|
666
678
|
if l2_cache_enable:
|
|
667
679
|
self._l2_cache = "on"
|
|
668
680
|
else:
|
|
@@ -670,15 +682,9 @@ class Profiler:
|
|
|
670
682
|
|
|
671
683
|
self._parallel_strategy = kwargs.pop("parallel_strategy", True)
|
|
672
684
|
if not isinstance(self._parallel_strategy, bool):
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
self._sync_enable = kwargs.pop("sync_enable", False)
|
|
677
|
-
if self._sync_enable:
|
|
678
|
-
logger.warning(f"The parameter sync_enable is not supported on Ascend currently.")
|
|
679
|
-
|
|
680
|
-
if kwargs:
|
|
681
|
-
logger.warning("%s are invalid params which don't work.", kwargs)
|
|
685
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter parallel_strategy must be bool, "
|
|
686
|
+
f"but got type {type(self._parallel_strategy)}, it will be set to True.")
|
|
687
|
+
self._parallel_strategy = True
|
|
682
688
|
|
|
683
689
|
task_sink = os.getenv("GRAPH_OP_RUN")
|
|
684
690
|
if task_sink and task_sink == "1":
|
|
@@ -742,18 +748,45 @@ class Profiler:
|
|
|
742
748
|
logger.info("No need to stop profiler because profiler has been stopped.")
|
|
743
749
|
self._ascend_graph_analyse()
|
|
744
750
|
|
|
745
|
-
|
|
751
|
+
def _ascend_timeline_analyse(self, aicpu_data_parser, optime_parser, source_path):
|
|
752
|
+
"""Analyse timeline info."""
|
|
746
753
|
try:
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
754
|
+
self._analyse_timeline(aicpu_data_parser, optime_parser, source_path)
|
|
755
|
+
except (ProfilerIOException, ProfilerFileNotFoundException, RuntimeError) as err:
|
|
756
|
+
logger.warning('Fail to write timeline data: %s', err)
|
|
757
|
+
finally:
|
|
758
|
+
pass
|
|
759
|
+
|
|
760
|
+
def _ascend_step_trace_analyse(self, source_path, framework_parser):
|
|
761
|
+
"""Analyse step trace info."""
|
|
762
|
+
points, is_training_mode_flag = None, False
|
|
763
|
+
try:
|
|
764
|
+
if self._is_support_step_info_collect() and not self._dynamic_status:
|
|
765
|
+
points, is_training_mode_flag = self._analyse_step_trace(source_path, framework_parser)
|
|
766
|
+
except ProfilerException as err:
|
|
767
|
+
logger.warning(err.message)
|
|
755
768
|
finally:
|
|
756
769
|
pass
|
|
770
|
+
return points, is_training_mode_flag
|
|
771
|
+
|
|
772
|
+
def _ascend_dynamic_net_analyse(self):
|
|
773
|
+
"""Analyse dynamic shape network info."""
|
|
774
|
+
if self._profile_communication:
|
|
775
|
+
logger.warning(
|
|
776
|
+
"The profile_communication parameter cannot be set on the dynamic shape network.")
|
|
777
|
+
if self._profile_memory:
|
|
778
|
+
logger.warning("The profile_memory parameter cannot be set on the dynamic shape network.")
|
|
779
|
+
logger.warning(
|
|
780
|
+
"[Profiler]Dynamic Shape network does not support collecting step trace performance data currently.")
|
|
781
|
+
dynamic_parser = DynamicFrameWorkParser(self._output_path, self._rank_id)
|
|
782
|
+
dynamic_parser.write_dynamic_shape_data()
|
|
783
|
+
|
|
784
|
+
def _ascend_flops_analyse(self, source_path, op_task_dict, is_training_mode_flag):
|
|
785
|
+
"""Get op FLOPs from aicore.data.x.slice.0 file, and compute FLOPS, write output_op_flops_x.txt."""
|
|
786
|
+
flops_parser = FlopsParser(source_path, self._output_path, op_task_dict, self._dev_id, self._rank_id,
|
|
787
|
+
is_training_mode_flag)
|
|
788
|
+
logger.info("Profiling: analyzing the operation FLOPs.")
|
|
789
|
+
flops_parser.execute()
|
|
757
790
|
|
|
758
791
|
def _ascend_graph_memory_analyse(self, points):
|
|
759
792
|
"""Analyse memory usage info."""
|
|
@@ -785,6 +818,26 @@ class Profiler:
|
|
|
785
818
|
finally:
|
|
786
819
|
pass
|
|
787
820
|
|
|
821
|
+
def _ascend_graph_msadvisor_analyse(self, job_id):
|
|
822
|
+
"""Call MSAdvisor function."""
|
|
823
|
+
logger.info("MSAdvisor starts running.")
|
|
824
|
+
msadvisor = Msadvisor(job_id, self._rank_id, self._output_path)
|
|
825
|
+
try:
|
|
826
|
+
msadvisor.analyse()
|
|
827
|
+
except FileNotFoundError as err:
|
|
828
|
+
logger.warning("MSAdvisor: command not found,"
|
|
829
|
+
"please check if installed ascend-toolkit and set environment path correctly. %s", err)
|
|
830
|
+
except OSError as err:
|
|
831
|
+
logger.warning("Cannot execute binary file: Exec format error. %s", err)
|
|
832
|
+
except subprocess.CalledProcessError:
|
|
833
|
+
logger.warning("MSAdvisor running failed, please check MSAdvisor running log.")
|
|
834
|
+
except (ValueError, ProfilerFileNotFoundException) as err:
|
|
835
|
+
logger.warning("MSAdvisor running failed. %s", err)
|
|
836
|
+
finally:
|
|
837
|
+
pass
|
|
838
|
+
if context.get_context("mode") == context.PYNATIVE_MODE:
|
|
839
|
+
logger.warning("Pynative mode does not support MSAdvisor analyzer currently.")
|
|
840
|
+
|
|
788
841
|
def _ascend_graph_op_analyse(self, source_path):
|
|
789
842
|
"""
|
|
790
843
|
Ascend graph model hwts analyse.
|
|
@@ -828,29 +881,37 @@ class Profiler:
|
|
|
828
881
|
logger.info("Profiling: analyzing the data preprocess data.")
|
|
829
882
|
aicpu_data_parser.execute()
|
|
830
883
|
|
|
884
|
+
# analyse op compute time info
|
|
885
|
+
try:
|
|
886
|
+
self._analyser_op_info()
|
|
887
|
+
except ProfilerException as err:
|
|
888
|
+
logger.warning(err.message)
|
|
889
|
+
finally:
|
|
890
|
+
pass
|
|
831
891
|
return [framework_parser, aicpu_data_parser, optime_parser, op_task_dict]
|
|
832
892
|
|
|
833
|
-
def
|
|
893
|
+
def _minddata_analyse(self, source_path):
|
|
834
894
|
"""Analyse mindadata for ascend graph model."""
|
|
895
|
+
if not self._data_process:
|
|
896
|
+
return
|
|
897
|
+
store_id = self._rank_id if self._device_target == DeviceTarget.ASCEND.value else self._dev_id
|
|
835
898
|
# Parsing minddata AICPU profiling
|
|
836
|
-
|
|
837
|
-
|
|
899
|
+
if self._device_target == DeviceTarget.ASCEND.value:
|
|
900
|
+
logger.info("Profiling: analyzing the minddata AICPU data.")
|
|
901
|
+
MinddataParser.execute(source_path, self._output_path, store_id)
|
|
838
902
|
|
|
839
903
|
# parse minddata pipeline operator and queue
|
|
840
904
|
try:
|
|
841
|
-
|
|
842
|
-
logger.info("Profiling: analyzing the minddata pipeline operator and queue.")
|
|
843
|
-
pipeline_parser.parse()
|
|
905
|
+
MinddataPipelineParser(self._output_path, store_id, self._output_path).parse()
|
|
844
906
|
except ProfilerException as err:
|
|
845
907
|
logger.warning(err.message)
|
|
846
908
|
finally:
|
|
847
909
|
pass
|
|
848
910
|
|
|
849
911
|
# Analyze minddata information
|
|
912
|
+
logger.info("Profiling: analyzing the minddata information.")
|
|
850
913
|
try:
|
|
851
|
-
|
|
852
|
-
logger.info("Profiling: analyzing the minddata information.")
|
|
853
|
-
md_analyzer.analyze()
|
|
914
|
+
MinddataProfilingAnalyzer(self._output_path, store_id, self._output_path).analyze()
|
|
854
915
|
except ProfilerException as err:
|
|
855
916
|
logger.warning(err.message)
|
|
856
917
|
finally:
|
|
@@ -865,59 +926,18 @@ class Profiler:
|
|
|
865
926
|
|
|
866
927
|
self._check_output_path(output_path=self._output_path)
|
|
867
928
|
source_path = os.path.join(self._output_path, job_id)
|
|
868
|
-
|
|
869
|
-
self.
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
self.
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
if self._dynamic_status and self._profile_communication:
|
|
881
|
-
raise RuntimeError("The profile_communication parameter cannot be set on the dynamic shape network.")
|
|
882
|
-
if self._dynamic_status and self._profile_memory:
|
|
883
|
-
raise RuntimeError("The profile_memory parameter cannot be set on the dynamic shape network.")
|
|
884
|
-
if self._dynamic_status:
|
|
885
|
-
logger.warning(
|
|
886
|
-
"[Profiler]Dynamic Shape network does not support collecting step trace performance data currently.")
|
|
887
|
-
|
|
888
|
-
# analyse step trace info
|
|
889
|
-
points = None
|
|
890
|
-
is_training_mode_flag = False
|
|
891
|
-
|
|
892
|
-
try:
|
|
893
|
-
if self._is_support_step_info_collect() and not self._dynamic_status:
|
|
894
|
-
points, is_training_mode_flag = self._analyse_step_trace(source_path, framework_parser)
|
|
895
|
-
except ProfilerException as err:
|
|
896
|
-
logger.warning(err.message)
|
|
897
|
-
finally:
|
|
898
|
-
pass
|
|
899
|
-
|
|
900
|
-
# analyse timeline info
|
|
901
|
-
try:
|
|
902
|
-
logger.info("Profiling: analyzing the timeline data.")
|
|
903
|
-
self._analyse_timeline(aicpu_data_parser, optime_parser, source_path)
|
|
904
|
-
except (ProfilerIOException, ProfilerFileNotFoundException, RuntimeError) as err:
|
|
905
|
-
logger.warning('Fail to write timeline data: %s', err)
|
|
906
|
-
finally:
|
|
907
|
-
pass
|
|
908
|
-
|
|
909
|
-
if self._dynamic_status:
|
|
910
|
-
dynamic_parser = DynamicFrameWorkParser(self._output_path, self._rank_id)
|
|
911
|
-
dynamic_parser.write_dynamic_shape_data()
|
|
912
|
-
|
|
913
|
-
# Get op FLOPs from aicore.data.x.slice.0 file, and compute FLOPS, write output_op_flops_x.txt
|
|
914
|
-
flops_parser = FlopsParser(source_path, self._output_path, op_task_dict, self._dev_id, self._rank_id,
|
|
915
|
-
is_training_mode_flag)
|
|
916
|
-
logger.info("Profiling: analyzing the operation FLOPs.")
|
|
917
|
-
flops_parser.execute()
|
|
918
|
-
|
|
919
|
-
self._ascend_graph_memory_analyse(points)
|
|
920
|
-
self._ascend_graph_hccl_analyse()
|
|
929
|
+
self._minddata_analyse(source_path)
|
|
930
|
+
if self._op_time:
|
|
931
|
+
framework_parser, aicpu_data_parser, optime_parser, op_task_dict = self._ascend_graph_op_analyse(
|
|
932
|
+
source_path)
|
|
933
|
+
points, is_training_mode_flag = self._ascend_step_trace_analyse(source_path, framework_parser)
|
|
934
|
+
self._ascend_timeline_analyse(aicpu_data_parser, optime_parser, source_path)
|
|
935
|
+
if self._dynamic_status:
|
|
936
|
+
self._ascend_dynamic_net_analyse()
|
|
937
|
+
self._ascend_flops_analyse(source_path, op_task_dict, is_training_mode_flag)
|
|
938
|
+
self._ascend_graph_memory_analyse(points)
|
|
939
|
+
self._ascend_graph_hccl_analyse()
|
|
940
|
+
self._ascend_graph_msadvisor_analyse(job_id)
|
|
921
941
|
|
|
922
942
|
def _ascend_graph_start(self):
|
|
923
943
|
"""Ascend graph mode start profiling."""
|
|
@@ -940,27 +960,10 @@ class Profiler:
|
|
|
940
960
|
else:
|
|
941
961
|
logger.info("No need to stop profiler because profiler has been stopped.")
|
|
942
962
|
|
|
943
|
-
|
|
944
|
-
timeline_generator = self._generate_timeline(reduce_op_type)
|
|
945
|
-
|
|
946
|
-
# parse minddata pipeline operator and queue for GPU
|
|
947
|
-
try:
|
|
948
|
-
pipeline_parser = MinddataPipelineParser(self._output_path, self._dev_id, self._output_path)
|
|
949
|
-
logger.info("Profiling: analyzing the minddata pipeline operator and queue for GPU.")
|
|
950
|
-
pipeline_parser.parse()
|
|
951
|
-
except ProfilerException as err:
|
|
952
|
-
logger.warning(err.message)
|
|
963
|
+
self._minddata_analyse(self._output_path)
|
|
953
964
|
|
|
954
|
-
# Analyze minddata information
|
|
955
965
|
try:
|
|
956
|
-
|
|
957
|
-
logger.info("Profiling: analyzing the minddata information.")
|
|
958
|
-
md_analyzer.analyze()
|
|
959
|
-
except ProfilerException as err:
|
|
960
|
-
logger.warning(err.message)
|
|
961
|
-
|
|
962
|
-
try:
|
|
963
|
-
self._analyse_step_relation_info(timeline_generator)
|
|
966
|
+
self._analyse_step_relation_info()
|
|
964
967
|
except ProfilerException as err:
|
|
965
968
|
logger.warning(err.message)
|
|
966
969
|
finally:
|
|
@@ -985,8 +988,12 @@ class Profiler:
|
|
|
985
988
|
"scenarios currently.")
|
|
986
989
|
return analyse_step_trace
|
|
987
990
|
|
|
988
|
-
def _analyse_step_relation_info(self
|
|
991
|
+
def _analyse_step_relation_info(self):
|
|
989
992
|
"""Parse iteration related information."""
|
|
993
|
+
if not self._op_time:
|
|
994
|
+
return
|
|
995
|
+
reduce_op_type = self._get_step_reduce_op_type()
|
|
996
|
+
timeline_generator = self._generate_timeline(reduce_op_type)
|
|
990
997
|
parser = GpuFrameWorkParser(self._output_path, self._dev_id)
|
|
991
998
|
graph_ids = parser.get_graph_ids()
|
|
992
999
|
ProfilerInfo.set_graph_ids(graph_ids)
|
|
@@ -1091,6 +1098,7 @@ class Profiler:
|
|
|
1091
1098
|
optime_parser (OPComputeTimeParserParser): The parser instance for AI Core
|
|
1092
1099
|
operator execution time calculation.
|
|
1093
1100
|
"""
|
|
1101
|
+
logger.info("Profiling: analyzing the timeline data.")
|
|
1094
1102
|
timeline_analyser = AscendTimelineGenerator(self._output_path, self._dev_id, self._rank_id,
|
|
1095
1103
|
self._rank_size, context.get_context("mode"))
|
|
1096
1104
|
# Get framework info
|
|
@@ -1171,13 +1179,13 @@ class Profiler:
|
|
|
1171
1179
|
else:
|
|
1172
1180
|
job_dir = os.path.join(self._output_path, dir_name)
|
|
1173
1181
|
|
|
1174
|
-
|
|
1175
|
-
if
|
|
1182
|
+
start_file_path = get_file_path(job_dir, "start_info")
|
|
1183
|
+
if start_file_path is None:
|
|
1176
1184
|
logger.warning("Find profiling job path %s, but host_start.log not exist, "
|
|
1177
1185
|
"profiler will ignore this job dir.", job_dir)
|
|
1178
1186
|
continue
|
|
1179
1187
|
|
|
1180
|
-
training_device_id =
|
|
1188
|
+
training_device_id = start_file_path.split('.')[-1]
|
|
1181
1189
|
if self._dev_id != training_device_id:
|
|
1182
1190
|
logger.debug("Find profiling find job path %s, but not current training device id. "
|
|
1183
1191
|
"Current training device id %s, but job path device id: %s, "
|
|
@@ -1187,7 +1195,7 @@ class Profiler:
|
|
|
1187
1195
|
if not os.listdir(os.path.join(job_dir, 'data')):
|
|
1188
1196
|
continue
|
|
1189
1197
|
|
|
1190
|
-
job_start_time = self.
|
|
1198
|
+
job_start_time = self._parse_start_log(start_file_path)
|
|
1191
1199
|
if not job_start_time:
|
|
1192
1200
|
logger.warning("Find profiling job path %s, but fail to get job start info, "
|
|
1193
1201
|
"profiler will ignore this job dir.", job_start_time)
|
|
@@ -1216,6 +1224,7 @@ class Profiler:
|
|
|
1216
1224
|
|
|
1217
1225
|
def _analyser_op_info(self):
|
|
1218
1226
|
"""Analyse the operator information."""
|
|
1227
|
+
logger.info("Profiling: analyzing the operation compute time.")
|
|
1219
1228
|
integrator = Integrator(self._output_path, self._rank_id)
|
|
1220
1229
|
integrator.integrate()
|
|
1221
1230
|
|
|
@@ -1335,15 +1344,38 @@ class Profiler:
|
|
|
1335
1344
|
|
|
1336
1345
|
def _parser_kwargs(self, kwargs):
|
|
1337
1346
|
"""Parse kwargs vale."""
|
|
1347
|
+
self._op_time = kwargs.get("op_time", True)
|
|
1348
|
+
|
|
1349
|
+
env_run_config = json.loads(os.getenv("MS_PROFILER_RUN_CONFIG", "{}"))
|
|
1350
|
+
params = list(kwargs.keys())
|
|
1351
|
+
if not env_run_config.get("start"):
|
|
1352
|
+
for param in params:
|
|
1353
|
+
if param not in DeviceSupportParam.__getattr__(f'{self._device_target}'.upper()).value:
|
|
1354
|
+
logger.warning("%s is an invalid param which doesn't work.", param)
|
|
1355
|
+
kwargs.pop(param)
|
|
1356
|
+
elif not self._op_time and param not in ALWAYS_VALID_PARAM:
|
|
1357
|
+
logger.warning(f"When op_time is set to False, the parameter '{param}' setting is invalid.")
|
|
1358
|
+
|
|
1359
|
+
if not isinstance(self._op_time, bool):
|
|
1360
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter op_time must be bool, "
|
|
1361
|
+
f"but got type {type(self._op_time)}, it will be set to True.")
|
|
1362
|
+
self._op_time = True
|
|
1363
|
+
|
|
1338
1364
|
self._data_process = kwargs.pop("data_process", True)
|
|
1339
1365
|
if not isinstance(self._data_process, bool):
|
|
1340
|
-
|
|
1341
|
-
|
|
1366
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter data_process must be bool, "
|
|
1367
|
+
f"but got type {type(self._data_process)}, it will be set to True.")
|
|
1368
|
+
self._data_process = True
|
|
1342
1369
|
|
|
1343
1370
|
timeline_limit = kwargs.pop("timeline_limit", 500)
|
|
1344
|
-
if not isinstance(timeline_limit, int):
|
|
1345
|
-
|
|
1346
|
-
|
|
1371
|
+
if isinstance(timeline_limit, bool) or not isinstance(timeline_limit, int):
|
|
1372
|
+
logger.warning(f"For '{self.__class__.__name__}', the parameter timeline_limit must be int, "
|
|
1373
|
+
f"but got type {type(timeline_limit)}, it will be set to 500.")
|
|
1374
|
+
timeline_limit = 500
|
|
1375
|
+
if timeline_limit <= 0:
|
|
1376
|
+
logger.warning(
|
|
1377
|
+
"[Profiler]The 'timeline_limit' parameter must be greater than 0, it will be set to 500.")
|
|
1378
|
+
timeline_limit = 500
|
|
1347
1379
|
self._timeline_size_limit_byte = timeline_limit * 1024 * 1024
|
|
1348
1380
|
|
|
1349
1381
|
def _analyse_hccl_info(self):
|