mindspore 2.0.0rc1__cp38-cp38-manylinux1_x86_64.whl → 2.2.0__cp38-cp38-manylinux1_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/Third_Party_Open_Source_Software_Notice +2 -2
- mindspore/__init__.py +5 -2
- mindspore/_akg/akg/build_module.py +5 -6
- mindspore/_akg/akg/composite/build_module.py +49 -16
- mindspore/_akg/akg/composite/split_stitch.py +10 -11
- mindspore/_akg/akg/config/repository.json +195 -0
- mindspore/_akg/akg/global_configs.py +5 -1
- 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/composite_op_helper.py +9 -10
- mindspore/_akg/akg/utils/kernel_exec.py +58 -260
- mindspore/_akg/akg/utils/op_dsl.py +17 -1
- mindspore/_akg/akg/utils/result_analysis.py +4 -24
- mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
- mindspore/_c_dataengine.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +5 -1
- mindspore/_checkparam.py +79 -62
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- mindspore/_extends/graph_kernel/model/graph_split.py +2 -0
- mindspore/_extends/graph_kernel/model/model_builder.py +9 -50
- mindspore/_extends/graph_kernel/splitter.py +1 -9
- mindspore/_extends/parallel_compile/akg_compiler/akg_process.py +128 -21
- mindspore/_extends/parallel_compile/akg_compiler/build_tbe_kernel.py +2 -2
- mindspore/_extends/parallel_compile/akg_compiler/tbe_topi.py +4 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_adapter.py +18 -13
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +13 -9
- 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 +19 -17
- mindspore/_extends/parse/namespace.py +7 -36
- mindspore/_extends/parse/parser.py +375 -189
- mindspore/_extends/parse/resources.py +36 -41
- mindspore/_extends/parse/standard_method.py +350 -245
- mindspore/_extends/parse/trope.py +2 -12
- mindspore/_extends/remote/kernel_build_server.py +24 -7
- mindspore/_extends/remote/kernel_build_server_akg_v2.py +55 -0
- mindspore/_install_custom.py +43 -0
- mindspore/_mindspore_offline_debug.cpython-38-x86_64-linux-gnu.so +0 -0
- mindspore/amp.py +85 -19
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/base.py +2 -2
- mindspore/boost/boost.py +27 -32
- mindspore/boost/boost_cell_wrapper.py +37 -13
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/grad_freeze.py +34 -6
- mindspore/boost/group_loss_scale_manager.py +15 -14
- mindspore/boost/less_batch_normalization.py +28 -3
- mindspore/common/__init__.py +15 -11
- mindspore/common/_auto_dynamic.py +68 -0
- mindspore/common/_jit_fallback_utils.py +111 -0
- mindspore/common/_register_for_adapter.py +17 -5
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +18 -15
- mindspore/common/_utils.py +31 -7
- mindspore/common/api.py +269 -101
- mindspore/common/auto_dynamic_shape.py +498 -0
- mindspore/common/dtype.py +61 -21
- mindspore/common/dump.py +9 -7
- mindspore/common/initializer.py +106 -76
- mindspore/common/jit_config.py +35 -14
- mindspore/common/lazy_inline.py +187 -0
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/mutable.py +10 -13
- mindspore/common/parameter.py +246 -55
- mindspore/common/seed.py +13 -7
- mindspore/common/sparse_tensor.py +29 -33
- mindspore/common/tensor.py +907 -251
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +84 -4
- mindspore/communication/management.py +160 -88
- mindspore/config/op_info.config +99 -75
- mindspore/config/super_bar_config.json +36 -4
- mindspore/context.py +526 -219
- mindspore/dataset/__init__.py +9 -46
- mindspore/dataset/audio/__init__.py +4 -19
- mindspore/dataset/audio/transforms.py +545 -233
- mindspore/dataset/audio/utils.py +21 -18
- mindspore/dataset/callback/ds_callback.py +42 -13
- mindspore/dataset/core/config.py +158 -100
- mindspore/dataset/core/validator_helpers.py +1 -63
- mindspore/dataset/debug/debug_hook.py +45 -13
- mindspore/dataset/debug/pre_defined_hook.py +5 -5
- mindspore/dataset/engine/__init__.py +0 -5
- mindspore/dataset/engine/cache_client.py +38 -15
- mindspore/dataset/engine/datasets.py +615 -278
- mindspore/dataset/engine/datasets_audio.py +154 -283
- mindspore/dataset/engine/datasets_standard_format.py +104 -116
- mindspore/dataset/engine/datasets_text.py +443 -326
- mindspore/dataset/engine/datasets_user_defined.py +251 -164
- mindspore/dataset/engine/datasets_vision.py +839 -1443
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +7 -3
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/offload.py +6 -6
- mindspore/dataset/engine/queue.py +15 -14
- mindspore/dataset/engine/samplers.py +39 -23
- mindspore/dataset/engine/serializer_deserializer.py +22 -6
- mindspore/dataset/engine/validators.py +21 -331
- mindspore/dataset/text/__init__.py +5 -33
- mindspore/dataset/text/transforms.py +334 -165
- mindspore/dataset/text/utils.py +215 -145
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/c_transforms.py +3 -2
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +174 -71
- mindspore/dataset/utils/browse_dataset.py +25 -17
- mindspore/dataset/utils/line_reader.py +24 -21
- mindspore/dataset/vision/__init__.py +5 -26
- mindspore/dataset/vision/c_transforms.py +177 -165
- mindspore/dataset/vision/py_transforms.py +114 -119
- mindspore/dataset/vision/py_transforms_util.py +54 -51
- mindspore/dataset/vision/transforms.py +1127 -381
- mindspore/dataset/vision/utils.py +54 -38
- mindspore/dataset/vision/validators.py +12 -2
- mindspore/experimental/map_parameter.py +38 -4
- mindspore/{dataset/datapreprocess → experimental/optim}/__init__.py +14 -4
- mindspore/experimental/optim/adam.py +192 -0
- mindspore/experimental/optim/adamw.py +181 -0
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/experimental/optim/optimizer.py +252 -0
- mindspore/experimental/optim/sgd.py +147 -0
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +1 -2
- mindspore/include/api/context.h +21 -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 +29 -42
- mindspore/include/api/model_group.h +14 -3
- mindspore/include/api/model_parallel_runner.h +18 -2
- mindspore/include/api/serialization.h +26 -0
- mindspore/include/api/status.h +1 -0
- mindspore/include/api/types.h +38 -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/c_api/status_c.h +3 -0
- mindspore/include/dataset/constants.h +6 -12
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +25 -31
- 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/format.h +0 -1
- mindspore/include/mindapi/base/type_id.h +2 -1
- mindspore/include/mindapi/base/types.h +5 -1
- 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/libmpi_adapter.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_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 +9000 -0
- mindspore/lib/plugin/ascend/custom_aicpu_ops/op_proto/libcust_op_proto.so +0 -0
- mindspore/lib/plugin/ascend/libakg.so +0 -0
- mindspore/lib/plugin/ascend/libascend_collective.so +0 -0
- mindspore/lib/plugin/ascend/libdvpp_utils.so +0 -0
- mindspore/lib/plugin/ascend/libhccl_plugin.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_aicpu_kernels.so +0 -0
- mindspore/lib/plugin/ascend/libmindspore_cpu_kernels.so +0 -0
- mindspore/lib/plugin/cpu/libakg.so +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.10 +0 -0
- mindspore/lib/plugin/gpu/libcuda_ops.so.11 +0 -0
- mindspore/lib/plugin/gpu10.1/libakg.so +0 -0
- mindspore/lib/plugin/gpu10.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu10.1/libnvidia_collective.so +0 -0
- mindspore/lib/plugin/gpu11.1/libakg.so +0 -0
- mindspore/lib/plugin/gpu11.1/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.1/libnvidia_collective.so +0 -0
- mindspore/lib/plugin/gpu11.6/libakg.so +0 -0
- mindspore/lib/plugin/gpu11.6/libnccl.so.2 +0 -0
- mindspore/lib/plugin/gpu11.6/libnvidia_collective.so +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.10.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.1 +0 -0
- mindspore/lib/plugin/libmindspore_gpu.so.11.6 +0 -0
- mindspore/log.py +9 -6
- mindspore/mindrecord/filereader.py +33 -4
- mindspore/mindrecord/filewriter.py +70 -35
- mindspore/mindrecord/mindpage.py +40 -34
- mindspore/mindrecord/shardreader.py +1 -1
- mindspore/mindrecord/shardsegment.py +1 -1
- mindspore/mindrecord/tools/cifar100_to_mr.py +25 -18
- mindspore/mindrecord/tools/cifar10_to_mr.py +25 -18
- mindspore/mindrecord/tools/csv_to_mr.py +29 -13
- mindspore/mindrecord/tools/imagenet_to_mr.py +24 -10
- mindspore/mindrecord/tools/mnist_to_mr.py +24 -11
- mindspore/mindrecord/tools/tfrecord_to_mr.py +31 -26
- mindspore/nn/cell.py +463 -169
- mindspore/nn/dynamic_lr.py +47 -43
- mindspore/nn/layer/activation.py +225 -82
- mindspore/nn/layer/basic.py +121 -79
- mindspore/nn/layer/channel_shuffle.py +21 -21
- mindspore/nn/layer/combined.py +33 -26
- mindspore/nn/layer/container.py +277 -22
- mindspore/nn/layer/conv.py +441 -304
- mindspore/nn/layer/dense.py +19 -13
- mindspore/nn/layer/embedding.py +62 -49
- mindspore/nn/layer/flash_attention.py +264 -0
- mindspore/nn/layer/image.py +50 -39
- mindspore/nn/layer/math.py +62 -51
- mindspore/nn/layer/normalization.py +219 -167
- mindspore/nn/layer/padding.py +58 -70
- mindspore/nn/layer/pooling.py +334 -287
- mindspore/nn/layer/rnn_cells.py +53 -38
- mindspore/nn/layer/rnns.py +59 -56
- mindspore/nn/layer/thor_layer.py +52 -44
- mindspore/nn/layer/timedistributed.py +6 -4
- mindspore/nn/layer/transformer.py +284 -164
- mindspore/nn/learning_rate_schedule.py +34 -25
- mindspore/nn/loss/__init__.py +3 -2
- mindspore/nn/loss/loss.py +554 -311
- mindspore/nn/optim/ada_grad.py +12 -9
- mindspore/nn/optim/adadelta.py +14 -11
- mindspore/nn/optim/adafactor.py +19 -16
- mindspore/nn/optim/adam.py +62 -47
- mindspore/nn/optim/adamax.py +13 -10
- mindspore/nn/optim/adasum.py +12 -8
- mindspore/nn/optim/asgd.py +10 -9
- mindspore/nn/optim/ftrl.py +20 -17
- mindspore/nn/optim/lamb.py +16 -12
- mindspore/nn/optim/lars.py +8 -6
- mindspore/nn/optim/lazyadam.py +25 -20
- mindspore/nn/optim/momentum.py +10 -7
- mindspore/nn/optim/optimizer.py +61 -9
- mindspore/nn/optim/proximal_ada_grad.py +14 -13
- mindspore/nn/optim/rmsprop.py +17 -13
- mindspore/nn/optim/rprop.py +30 -17
- mindspore/nn/optim/sgd.py +40 -23
- mindspore/nn/optim/thor.py +24 -26
- mindspore/nn/probability/bijector/bijector.py +11 -11
- mindspore/nn/probability/bijector/exp.py +1 -1
- mindspore/nn/probability/bijector/gumbel_cdf.py +3 -3
- mindspore/nn/probability/bijector/invert.py +1 -1
- mindspore/nn/probability/bijector/power_transform.py +29 -29
- mindspore/nn/probability/bijector/scalar_affine.py +3 -3
- mindspore/nn/probability/bijector/softplus.py +5 -5
- mindspore/nn/probability/bnn_layers/bnn_cell_wrapper.py +4 -2
- mindspore/nn/probability/bnn_layers/conv_variational.py +13 -13
- mindspore/nn/probability/bnn_layers/dense_variational.py +12 -12
- mindspore/nn/probability/bnn_layers/layer_distribution.py +9 -8
- mindspore/nn/probability/distribution/_utils/custom_ops.py +19 -3
- mindspore/nn/probability/distribution/_utils/utils.py +1 -1
- mindspore/nn/probability/distribution/bernoulli.py +9 -9
- mindspore/nn/probability/distribution/beta.py +8 -8
- mindspore/nn/probability/distribution/categorical.py +23 -15
- mindspore/nn/probability/distribution/cauchy.py +5 -6
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/exponential.py +4 -4
- mindspore/nn/probability/distribution/gamma.py +10 -10
- mindspore/nn/probability/distribution/geometric.py +8 -8
- mindspore/nn/probability/distribution/gumbel.py +8 -9
- mindspore/nn/probability/distribution/half_normal.py +5 -5
- mindspore/nn/probability/distribution/laplace.py +5 -5
- mindspore/nn/probability/distribution/log_normal.py +12 -11
- mindspore/nn/probability/distribution/logistic.py +8 -8
- mindspore/nn/probability/distribution/normal.py +6 -5
- mindspore/nn/probability/distribution/poisson.py +10 -11
- mindspore/nn/probability/distribution/student_t.py +8 -9
- mindspore/nn/probability/distribution/transformed_distribution.py +5 -5
- mindspore/nn/probability/distribution/uniform.py +11 -11
- mindspore/nn/reinforcement/tensor_array.py +2 -2
- mindspore/nn/sparse/sparse.py +9 -9
- mindspore/nn/wrap/cell_wrapper.py +188 -63
- mindspore/nn/wrap/grad_reducer.py +21 -12
- mindspore/nn/wrap/loss_scale.py +136 -49
- mindspore/numpy/__init__.py +4 -4
- mindspore/numpy/array_creations.py +55 -56
- mindspore/numpy/array_ops.py +134 -35
- mindspore/numpy/logic_ops.py +66 -20
- mindspore/numpy/math_ops.py +142 -139
- mindspore/numpy/utils_const.py +2 -2
- mindspore/offline_debug/convert_async.py +2 -2
- mindspore/ops/_grad_experimental/__init__.py +7 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +231 -348
- mindspore/ops/{_grad → _grad_experimental}/grad_base.py +1 -33
- mindspore/ops/{_grad → _grad_experimental}/grad_comm_ops.py +25 -13
- mindspore/ops/{_grad/__init__.py → _grad_experimental/grad_debug_ops.py} +15 -7
- mindspore/ops/{_grad → _grad_experimental}/grad_implementations.py +17 -11
- mindspore/ops/_grad_experimental/grad_inner_ops.py +33 -52
- mindspore/ops/_grad_experimental/grad_math_ops.py +151 -1224
- mindspore/ops/_grad_experimental/grad_nn_ops.py +141 -414
- mindspore/ops/{_grad → _grad_experimental}/grad_quant_ops.py +10 -6
- mindspore/ops/_grad_experimental/grad_sparse.py +317 -2
- mindspore/ops/_grad_experimental/grad_sparse_ops.py +3 -13
- mindspore/ops/{_grad → _grad_experimental}/taylor_rule.py +1 -1
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/flash_attention/__init__.py +0 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +406 -0
- mindspore/{_extends/graph_kernel/expanders/complex/__init__.py → ops/_op_impl/_custom_op/flash_attention/constants.py} +27 -8
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +467 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +563 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +193 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +435 -0
- 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 +45 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/strategy.py +67 -0
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +62 -0
- mindspore/ops/_op_impl/_custom_op/matmul_cube_dense_left_impl.py +2 -2
- mindspore/ops/_op_impl/aicpu/__init__.py +41 -1
- mindspore/ops/_op_impl/aicpu/adaptive_max_pool_2d.py +37 -0
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/cast.py +52 -0
- mindspore/ops/_op_impl/aicpu/coalesce.py +2 -0
- mindspore/ops/_op_impl/aicpu/col2im.py +3 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/aicpu/dropout_genmask.py +6 -0
- mindspore/ops/_op_impl/aicpu/eps.py +32 -0
- mindspore/ops/_op_impl/aicpu/eye.py +4 -4
- mindspore/ops/_op_impl/aicpu/fft_with_size.py +6 -0
- mindspore/ops/_op_impl/aicpu/fill_diagonal.py +5 -0
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/im2col.py +3 -5
- mindspore/ops/_op_impl/aicpu/lgamma.py +1 -0
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu.py +39 -0
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/masked_scatter.py +1 -0
- mindspore/ops/_op_impl/aicpu/masked_select_grad.py +3 -0
- mindspore/ops/_op_impl/aicpu/matrix_band_part.py +59 -0
- mindspore/ops/_op_impl/aicpu/matrix_power.py +6 -1
- mindspore/ops/_op_impl/aicpu/median.py +1 -0
- mindspore/ops/_op_impl/aicpu/multinomial.py +9 -9
- mindspore/ops/_op_impl/aicpu/not_equal.py +0 -5
- mindspore/ops/_op_impl/aicpu/pad_v3.py +3 -1
- mindspore/ops/_op_impl/aicpu/pad_v3_grad.py +2 -0
- 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/resize_bilinear_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2.py +0 -6
- mindspore/ops/_op_impl/aicpu/resize_nearest_neighbor_v2_grad.py +0 -7
- mindspore/ops/_op_impl/aicpu/scatter_nd.py +2 -0
- mindspore/ops/_op_impl/aicpu/sequence_concat.py +40 -0
- mindspore/ops/_op_impl/aicpu/sequence_stack.py +40 -0
- 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 -4
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -4
- 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/aicpu/upsample_nearest_3d.py +14 -6
- mindspore/ops/_op_impl/aicpu/upsample_nearest_3d_grad.py +22 -8
- mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d.py +11 -6
- mindspore/ops/_op_impl/aicpu/upsample_trilinear_3d_grad.py +21 -10
- mindspore/ops/_op_impl/tbe/__init__.py +6 -4
- mindspore/ops/_op_impl/tbe/atomic_addr_clean.py +1 -1
- mindspore/ops/_op_impl/tbe/avg_pool.py +2 -2
- mindspore/ops/_op_impl/tbe/avg_pool_3d.py +3 -3
- mindspore/ops/_op_impl/tbe/avg_pool_3d_grad.py +4 -4
- mindspore/ops/_op_impl/tbe/avg_pool_ds.py +2 -2
- mindspore/ops/_op_impl/tbe/avg_pool_grad.py +3 -3
- mindspore/ops/_op_impl/tbe/avg_pool_grad_vm.py +3 -3
- mindspore/ops/_op_impl/tbe/batch_to_space.py +1 -1
- mindspore/ops/_op_impl/tbe/batch_to_space_nd.py +2 -2
- mindspore/ops/_op_impl/tbe/bn_infer.py +2 -2
- mindspore/ops/_op_impl/tbe/bn_infer_ds.py +3 -2
- mindspore/ops/_op_impl/tbe/broadcast_to.py +1 -1
- mindspore/ops/_op_impl/tbe/depthwise_conv2d.py +3 -3
- mindspore/ops/_op_impl/tbe/expand_dims.py +1 -1
- mindspore/ops/_op_impl/tbe/gather_v2.py +56 -0
- mindspore/ops/_op_impl/tbe/im2col.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/mem_set.py +38 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_add.py +3 -0
- mindspore/ops/_op_impl/tbe/scatter_nd_d.py +1 -1
- mindspore/ops/_op_impl/tbe/space_to_batch.py +1 -1
- mindspore/ops/_op_impl/tbe/space_to_batch_nd.py +2 -2
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +241 -0
- mindspore/ops/_utils/utils.py +10 -2
- mindspore/ops/_vmap/vmap_array_ops.py +5 -3
- mindspore/ops/_vmap/vmap_base.py +5 -4
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_grad_nn_ops.py +11 -6
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +135 -11
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/__init__.py +7 -5
- mindspore/ops/composite/base.py +78 -34
- mindspore/ops/composite/math_ops.py +5 -695
- mindspore/ops/composite/multitype_ops/_compile_utils.py +403 -97
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +28 -22
- mindspore/ops/composite/multitype_ops/add_impl.py +69 -7
- mindspore/ops/composite/multitype_ops/bitwise_and_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_or_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/bitwise_xor_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/div_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/floordiv_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/getitem_impl.py +48 -10
- mindspore/ops/composite/multitype_ops/greater_equal_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/greater_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/left_shift_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/less_equal_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/less_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/logic_not_impl.py +2 -2
- mindspore/ops/composite/multitype_ops/mod_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/mul_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/negative_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/not_in_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/pow_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/right_shift_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +10 -7
- mindspore/ops/composite/multitype_ops/sub_impl.py +1 -0
- mindspore/ops/composite/multitype_ops/uadd_impl.py +2 -0
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +41 -4
- mindspore/ops/function/array_func.py +1108 -467
- mindspore/ops/function/clip_func.py +94 -27
- mindspore/ops/function/debug_func.py +3 -1
- mindspore/ops/function/grad/grad_func.py +82 -73
- mindspore/ops/function/image_func.py +28 -12
- mindspore/ops/function/linalg_func.py +135 -39
- mindspore/ops/function/math_func.py +3779 -894
- mindspore/ops/function/nn_func.py +1584 -657
- mindspore/ops/function/parameter_func.py +13 -3
- mindspore/ops/function/random_func.py +247 -153
- mindspore/ops/function/sparse_func.py +14 -11
- mindspore/ops/function/sparse_unary_func.py +173 -47
- mindspore/ops/function/spectral_func.py +8 -4
- mindspore/ops/function/vmap_func.py +8 -7
- mindspore/ops/functional.py +47 -16
- mindspore/ops/op_info_register.py +346 -86
- mindspore/ops/operations/__init__.py +38 -22
- mindspore/ops/operations/_grad_ops.py +145 -149
- mindspore/ops/operations/_inner_ops.py +298 -56
- mindspore/ops/operations/_ms_kernel.py +3 -3
- mindspore/ops/operations/_quant_ops.py +24 -28
- mindspore/ops/operations/_rl_inner_ops.py +9 -7
- mindspore/ops/operations/_scalar_ops.py +115 -0
- mindspore/ops/operations/_sequence_ops.py +148 -10
- mindspore/ops/operations/_tensor_array.py +1 -1
- mindspore/ops/operations/_thor_ops.py +2 -2
- mindspore/ops/operations/array_ops.py +1239 -561
- mindspore/ops/operations/comm_ops.py +166 -90
- mindspore/ops/operations/control_ops.py +3 -3
- mindspore/ops/operations/custom_ops.py +124 -102
- mindspore/ops/operations/debug_ops.py +24 -11
- mindspore/ops/operations/image_ops.py +86 -71
- mindspore/ops/operations/inner_ops.py +18 -13
- mindspore/ops/operations/linalg_ops.py +30 -11
- mindspore/ops/operations/math_ops.py +1730 -435
- mindspore/ops/operations/nn_ops.py +1953 -943
- mindspore/ops/operations/other_ops.py +65 -43
- mindspore/ops/operations/random_ops.py +258 -98
- mindspore/ops/operations/rl_ops.py +4 -36
- mindspore/ops/operations/sparse_ops.py +38 -33
- mindspore/ops/operations/spectral_ops.py +8 -4
- mindspore/ops/primitive.py +66 -44
- mindspore/ops/signature.py +5 -5
- mindspore/parallel/_auto_parallel_context.py +80 -19
- mindspore/parallel/_cost_model_context.py +42 -0
- mindspore/parallel/_offload_context.py +162 -72
- mindspore/parallel/_parallel_serialization.py +2 -2
- mindspore/parallel/_ps_context.py +16 -4
- mindspore/parallel/_recovery_context.py +2 -1
- mindspore/parallel/_tensor.py +15 -13
- mindspore/parallel/_transformer/layers.py +8 -6
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +7 -7
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +34 -14
- mindspore/parallel/_utils.py +36 -14
- mindspore/parallel/algo_parameter_config.py +114 -20
- mindspore/parallel/checkpoint_transform.py +16 -18
- mindspore/parallel/shard.py +16 -13
- mindspore/profiler/__init__.py +1 -1
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +3 -2
- mindspore/profiler/envprofiling.py +11 -4
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +94 -0
- mindspore/profiler/parser/ascend_fpbp_generator.py +76 -0
- mindspore/profiler/parser/ascend_hccl_generator.py +288 -0
- mindspore/profiler/parser/ascend_msprof_exporter.py +213 -0
- mindspore/profiler/parser/ascend_msprof_generator.py +199 -0
- mindspore/profiler/parser/ascend_op_generator.py +276 -0
- mindspore/profiler/parser/ascend_steptrace_generator.py +94 -0
- mindspore/profiler/parser/ascend_timeline_generator.py +110 -54
- mindspore/profiler/parser/base_timeline_generator.py +11 -7
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +45 -46
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +92 -73
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +36 -11
- 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 +4 -5
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +678 -377
- mindspore/rewrite/api/node.py +211 -54
- mindspore/rewrite/api/node_type.py +5 -0
- mindspore/rewrite/api/pattern_engine.py +22 -23
- mindspore/rewrite/api/scoped_value.py +20 -17
- mindspore/rewrite/api/symbol_tree.py +252 -106
- mindspore/rewrite/api/tree_node_helper.py +3 -0
- 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 +97 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +51 -51
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{ops/bprop_mindir → rewrite/node}/__init__.py +9 -4
- 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} +313 -247
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/node/node_topological_manager.py +243 -0
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +225 -239
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +179 -218
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +36 -15
- mindspore/rewrite/parsers/function_def_parser.py +23 -20
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +202 -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/sparsify.py +4 -1
- mindspore/rewrite/sparsify/utils.py +11 -5
- mindspore/rewrite/symbol_tree.py +577 -732
- mindspore/rewrite/symbol_tree_builder.py +9 -175
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +46 -39
- mindspore/run_check/run_check.py +3 -2
- mindspore/{scipy/sparse → safeguard}/__init__.py +4 -5
- mindspore/safeguard/rewrite_obfuscation.py +517 -0
- mindspore/scipy/__init__.py +1 -1
- mindspore/scipy/linalg.py +67 -61
- mindspore/scipy/ops.py +5 -41
- mindspore/scipy/ops_grad.py +3 -2
- mindspore/scipy/ops_wrapper.py +5 -5
- mindspore/scipy/optimize/line_search.py +8 -8
- mindspore/scipy/optimize/linear_sum_assignment.py +4 -4
- mindspore/scipy/optimize/minimize.py +16 -12
- mindspore/scipy/utils.py +1 -52
- mindspore/scipy/utils_const.py +4 -4
- mindspore/train/__init__.py +4 -4
- mindspore/train/_utils.py +13 -5
- mindspore/train/amp.py +410 -148
- mindspore/train/anf_ir_pb2.py +16 -4
- mindspore/train/callback/_backup_and_restore.py +8 -11
- mindspore/train/callback/_callback.py +80 -3
- mindspore/train/callback/_checkpoint.py +82 -51
- mindspore/train/callback/_early_stop.py +12 -15
- mindspore/train/callback/_history.py +1 -1
- mindspore/train/callback/_lambda_callback.py +13 -13
- mindspore/train/callback/_landscape.py +21 -17
- mindspore/train/callback/_loss_monitor.py +9 -10
- mindspore/train/callback/_on_request_exit.py +16 -33
- mindspore/train/callback/_reduce_lr_on_plateau.py +21 -24
- mindspore/train/callback/_summary_collector.py +44 -30
- mindspore/train/callback/_time_monitor.py +62 -12
- mindspore/train/data_sink.py +10 -16
- mindspore/train/dataset_helper.py +154 -86
- mindspore/train/loss_scale_manager.py +14 -9
- mindspore/train/metrics/__init__.py +10 -2
- mindspore/train/metrics/accuracy.py +1 -1
- mindspore/train/metrics/auc.py +1 -1
- mindspore/train/metrics/bleu_score.py +2 -2
- mindspore/train/metrics/confusion_matrix.py +14 -14
- mindspore/train/metrics/cosine_similarity.py +3 -3
- mindspore/train/metrics/dice.py +1 -1
- mindspore/train/metrics/fbeta.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +8 -6
- mindspore/train/metrics/mean_surface_distance.py +5 -4
- mindspore/train/metrics/metric.py +49 -17
- mindspore/train/metrics/occlusion_sensitivity.py +4 -4
- mindspore/train/metrics/perplexity.py +1 -1
- mindspore/train/metrics/precision.py +2 -2
- mindspore/train/metrics/recall.py +2 -3
- mindspore/train/metrics/roc.py +7 -7
- mindspore/train/metrics/root_mean_square_surface_distance.py +5 -4
- mindspore/train/metrics/topk.py +7 -4
- mindspore/train/mind_ir_pb2.py +193 -48
- mindspore/train/model.py +377 -133
- mindspore/train/serialization.py +697 -245
- mindspore/train/summary/_summary_adapter.py +5 -2
- mindspore/train/summary/_writer_pool.py +4 -3
- mindspore/train/summary/summary_record.py +25 -23
- mindspore/train/train_thor/convert_utils.py +39 -23
- mindspore/train/train_thor/dataset_helper.py +4 -3
- mindspore/train/train_thor/model_thor.py +8 -8
- mindspore/version.py +1 -1
- {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/METADATA +7 -8
- {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/RECORD +647 -818
- {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.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 -57
- 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/bias_add_grad.py +0 -49
- 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/gather.py +0 -43
- 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/expanders/tile.py +0 -54
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/_extends/parse/jit_fallback_modules.py +0 -51
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/dataset/engine/graphdata.py +0 -1586
- mindspore/include/api/net.h +0 -142
- mindspore/ops/_grad/grad_array_ops.py +0 -1347
- mindspore/ops/_grad/grad_clip_ops.py +0 -84
- mindspore/ops/_grad/grad_debug_ops.py +0 -68
- mindspore/ops/_grad/grad_inner_ops.py +0 -235
- mindspore/ops/_grad/grad_math_ops.py +0 -1684
- mindspore/ops/_grad/grad_nn_ops.py +0 -1529
- mindspore/ops/_grad/grad_other_ops.py +0 -89
- mindspore/ops/_grad/grad_sequence_ops.py +0 -296
- mindspore/ops/_grad/grad_sparse.py +0 -323
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -249
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -195
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/bprop_mindir/AdaptiveAvgPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/AdaptiveMaxPool2D_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ApproximateEqual_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/Argmax_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/Argmin_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/AssignSub_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/Assign_bprop.mindir +0 -17
- mindspore/ops/bprop_mindir/AvgPool3D_bprop.mindir +0 -150
- mindspore/ops/bprop_mindir/AvgPool_bprop.mindir +0 -66
- mindspore/ops/bprop_mindir/BCEWithLogitsLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/BatchNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BatchToSpaceND_bprop.mindir +0 -28
- mindspore/ops/bprop_mindir/BiasAddGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/BinaryCrossEntropy_bprop.mindir +0 -33
- mindspore/ops/bprop_mindir/BroadcastTo_bprop.mindir +0 -306
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -13
- mindspore/ops/bprop_mindir/CTCLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Concat_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Conv2DBackpropFilter_bprop.mindir +0 -240
- mindspore/ops/bprop_mindir/Conv2DBackpropInput_bprop.mindir +0 -247
- mindspore/ops/bprop_mindir/Conv2DTranspose_bprop.mindir +0 -247
- mindspore/ops/bprop_mindir/Conv3DTranspose_bprop.mindir +0 -315
- mindspore/ops/bprop_mindir/Conv3D_bprop.mindir +0 -278
- mindspore/ops/bprop_mindir/DType_bprop.mindir +0 -14
- mindspore/ops/bprop_mindir/DeformableOffsets_bprop.mindir +0 -58
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -13
- mindspore/ops/bprop_mindir/DepthToSpace_bprop.mindir +0 -23
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/DiagPart_bprop.mindir +0 -15
- 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 +0 -25
- mindspore/ops/bprop_mindir/DropoutGenMask_bprop.mindir +0 -18
- mindspore/ops/bprop_mindir/DropoutGrad_bprop.mindir +0 -27
- 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/DynamicShape_bprop.mindir +0 -14
- mindspore/ops/bprop_mindir/Elu_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Equal_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/ExpandDims_bprop.mindir +0 -58
- mindspore/ops/bprop_mindir/FastGeLU_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/Flatten_bprop.mindir +0 -54
- mindspore/ops/bprop_mindir/FloorDiv_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/GatherD_bprop.mindir +0 -26
- mindspore/ops/bprop_mindir/GatherNd_bprop.mindir +0 -57
- mindspore/ops/bprop_mindir/Gather_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/GreaterEqual_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/Greater_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/HSigmoid_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/HSwish_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/IOU_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/InstanceNorm_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/IsFinite_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/IsInf_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/IsNan_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/KLDivLoss_bprop.mindir +0 -126
- mindspore/ops/bprop_mindir/L2Loss_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/L2Normalize_bprop.mindir +0 -30
- mindspore/ops/bprop_mindir/LRN_bprop.mindir +0 -43
- mindspore/ops/bprop_mindir/LayerNormGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/LessEqual_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/Less_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/LinSpace_bprop.mindir +0 -23
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -13
- mindspore/ops/bprop_mindir/LogSoftmax_bprop.mindir +0 -23
- mindspore/ops/bprop_mindir/LogicalAnd_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/LogicalNot_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/MaskedSelect_bprop.mindir +0 -21
- mindspore/ops/bprop_mindir/MaxPool3DGradGrad_bprop.mindir +0 -74
- mindspore/ops/bprop_mindir/MaxPool3DGrad_bprop.mindir +0 -74
- mindspore/ops/bprop_mindir/MaxPool3D_bprop.mindir +0 -75
- mindspore/ops/bprop_mindir/MaxPoolGradGrad_bprop.mindir +0 -65
- mindspore/ops/bprop_mindir/MaxPoolWithArgmax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Maximum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Minimum_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/MirrorPad_bprop.mindir +0 -27
- mindspore/ops/bprop_mindir/Mish_bprop.mindir +0 -35
- mindspore/ops/bprop_mindir/MulNoNan_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NLLLoss_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/NonZero_bprop.mindir +0 -14
- mindspore/ops/bprop_mindir/NotEqual_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/OneHot_bprop.mindir +0 -26
- mindspore/ops/bprop_mindir/OnesLike_bprop.mindir +0 -14
- 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 +0 -29
- mindspore/ops/bprop_mindir/ROIAlign_bprop.mindir +0 -82
- mindspore/ops/bprop_mindir/Range_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/Rank_bprop.mindir +0 -14
- mindspore/ops/bprop_mindir/ReLU6_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/ReLUV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ReduceAll_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/ReduceAny_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/ReluGrad_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/Reshape_bprop.mindir +0 -60
- mindspore/ops/bprop_mindir/ResizeBilinear_bprop.mindir +0 -29
- mindspore/ops/bprop_mindir/ResizeNearestNeighbor_bprop.mindir +0 -89
- mindspore/ops/bprop_mindir/ReverseSequence_bprop.mindir +0 -52
- mindspore/ops/bprop_mindir/ReverseV2_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/Round_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/ScatterMax_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterMin_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNdUpdate_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/ScatterNd_bprop.mindir +0 -24
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/ScatterUpdate_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SeLU_bprop.mindir +0 -21
- mindspore/ops/bprop_mindir/Select_bprop.mindir +0 -31
- mindspore/ops/bprop_mindir/Shape_bprop.mindir +0 -14
- mindspore/ops/bprop_mindir/SigmoidCrossEntropyWithLogits_bprop.mindir +0 -21
- mindspore/ops/bprop_mindir/SigmoidGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Sigmoid_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/Sign_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/Slice_bprop.mindir +0 -26
- mindspore/ops/bprop_mindir/SmoothL1Loss_bprop.mindir +0 -36
- mindspore/ops/bprop_mindir/SoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Softplus_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/Softsign_bprop.mindir +0 -33
- mindspore/ops/bprop_mindir/Sort_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SpaceToBatchND_bprop.mindir +0 -28
- mindspore/ops/bprop_mindir/SpaceToDepth_bprop.mindir +0 -23
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Split_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/Squeeze_bprop.mindir +0 -54
- mindspore/ops/bprop_mindir/StridedSliceGrad_bprop.mindir +0 -95
- mindspore/ops/bprop_mindir/StridedSlice_bprop.mindir +0 -98
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -29
- mindspore/ops/bprop_mindir/TanhGrad_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Tanh_bprop.mindir +0 -66
- mindspore/ops/bprop_mindir/TensorScatterAdd_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/TensorScatterUpdate_bprop.mindir +0 -29
- mindspore/ops/bprop_mindir/TensorShape_bprop.mindir +0 -14
- mindspore/ops/bprop_mindir/Tile_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TopK_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -23
- mindspore/ops/bprop_mindir/TruncateDiv_bprop.mindir +0 -19
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -20
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -16
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -22
- mindspore/ops/bprop_mindir/UpsampleNearest3D_bprop.mindir +0 -32
- mindspore/ops/bprop_mindir/UpsampleTrilinear3D_bprop.mindir +0 -38
- mindspore/ops/bprop_mindir/ZerosLike_bprop.mindir +0 -15
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- mindspore/rewrite/topological_manager.py +0 -203
- mindspore/scipy/sparse/linalg.py +0 -192
- {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
- {mindspore-2.0.0rc1.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
|
@@ -24,7 +24,8 @@ import re
|
|
|
24
24
|
import hashlib
|
|
25
25
|
import inspect
|
|
26
26
|
import types
|
|
27
|
-
import
|
|
27
|
+
from collections import namedtuple
|
|
28
|
+
from typing import NamedTuple
|
|
28
29
|
from textwrap import dedent
|
|
29
30
|
import numpy
|
|
30
31
|
|
|
@@ -42,16 +43,12 @@ from mindspore.common.parameter import Parameter
|
|
|
42
43
|
from mindspore.common import mutable
|
|
43
44
|
from mindspore.common._register_for_adapter import ms_adapter_registry
|
|
44
45
|
from mindspore._checkparam import is_stub_tensor
|
|
45
|
-
from .
|
|
46
|
+
from mindspore.ops._tracefunc import _PackSourceBuilder
|
|
47
|
+
from .namespace import Namespace, CellNamespace, ClosureNamespace, ClassMemberNamespace
|
|
46
48
|
from .resources import parse_object_map, ops_symbol_map, convert_object_map, convert_class_to_function_map, trope_ns
|
|
47
49
|
from .resources import SYMBOL_UNDEFINE
|
|
48
|
-
from .jit_fallback_modules import jit_fallback_third_party_modules_whitelist
|
|
49
50
|
from ...common.api import _convert_python_data
|
|
50
51
|
|
|
51
|
-
# Define return value
|
|
52
|
-
RET_SUCCESS = 0
|
|
53
|
-
RET_FAILURE = 0xFF
|
|
54
|
-
|
|
55
52
|
# Define resolve type
|
|
56
53
|
RESOLVE_TYPE_NONE = 0 # Resolve None.
|
|
57
54
|
RESOLVE_TYPE_FUNCTION = 1 # Resolve function.
|
|
@@ -61,7 +58,9 @@ RESOLVE_TYPE_CLASS_INSTANCE = 4 # Resolve the class instance of common c
|
|
|
61
58
|
RESOLVE_TYPE_NAMESPACE_INSTANCE = 5 # Resolve the namespace instance.
|
|
62
59
|
RESOLVE_TYPE_NUMPY_INT_NUMBER = 6 # Resolve numpy int number.
|
|
63
60
|
RESOLVE_TYPE_NUMPY_FLOAT_NUMBER = 7 # Resolve numpy float number.
|
|
64
|
-
RESOLVE_TYPE_NUMPY_BOOL_NUMBER = 8
|
|
61
|
+
RESOLVE_TYPE_NUMPY_BOOL_NUMBER = 8 # Resolve numpy bool number.
|
|
62
|
+
RESOLVE_TYPE_TUPLE = 9 # Resolve builtin tuple type.
|
|
63
|
+
RESOLVE_TYPE_LIST = 10 # Resolve builtin list type.
|
|
65
64
|
RESOLVE_TYPE_INVALID = 0xFF # Resolve invalid.
|
|
66
65
|
|
|
67
66
|
# Define the class instance detail type
|
|
@@ -82,9 +81,10 @@ AST_SUB_TYPE_AND = 3 # ast.And
|
|
|
82
81
|
AST_SUB_TYPE_OR = 4 # ast.Or
|
|
83
82
|
AST_SUB_TYPE_NAME = 5 # ast.Name
|
|
84
83
|
AST_SUB_TYPE_TUPLE = 6 # ast.Tuple
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
AST_SUB_TYPE_LIST = 7 # ast.List
|
|
85
|
+
AST_SUB_TYPE_SUBSCRIPT = 8 # ast.Subscript
|
|
86
|
+
AST_SUB_TYPE_STARRED = 9 # ast.Starred
|
|
87
|
+
AST_SUB_TYPE_ATTRIBUTE = 10 # ast.Attribute
|
|
88
88
|
AST_SUB_TYPE_UNKNOWN = 0xFF # unknown
|
|
89
89
|
|
|
90
90
|
# Syntax support
|
|
@@ -94,6 +94,11 @@ SYNTAX_UNSUPPORTED_EXTERNAL_TYPE = 2 # Unsupported external type
|
|
|
94
94
|
SYNTAX_HYBRID_TYPE = 3 # Hybrid type
|
|
95
95
|
SYNTAX_UNSUPPORTED_NAMESPACE = 4 # Unsupported namespace
|
|
96
96
|
|
|
97
|
+
# Module source location
|
|
98
|
+
MODULE_FROM_MINDSPORE = 0
|
|
99
|
+
MODULE_FROM_THIRDPARTY = 1
|
|
100
|
+
MODULE_FROM_USER_WORKSPACE = 2
|
|
101
|
+
|
|
97
102
|
|
|
98
103
|
# Process expr statement white list
|
|
99
104
|
# Add as needed, eg: "clear", "extend", "insert", "remove", "reverse"
|
|
@@ -118,16 +123,18 @@ _hybrid_type = (
|
|
|
118
123
|
|
|
119
124
|
# Unsupported python builtin type in JIT Fallback.
|
|
120
125
|
_fallback_unsupported_python_builtin_type = (
|
|
121
|
-
compile, eval, exec
|
|
122
|
-
memoryview, property,
|
|
126
|
+
compile, eval, exec
|
|
123
127
|
)
|
|
124
128
|
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
_modules_from_mindspore = (
|
|
130
|
+
"mindspore", "msadapter", "mindocr", "mindyolo", "mindnlp", "mindcv", "mindspore_rec", "mindaudio", "mindone",
|
|
131
|
+
"mindspore_rl", "mindformers", "mindpet", "mindpose", "mindface", "mindsearch", "mindinsight", "mindelec",
|
|
132
|
+
"mindflow", "mindsponge", "mindearth", "sciai", "mindquantum", "mindarmour", "mindpandas", "mindvision",
|
|
133
|
+
"mindspore_gl", "mindspore_federated", "mindspore_gs", "mindspore_serving", "mindspore_xai", "mindspore_hub",
|
|
134
|
+
"ringmo_framework", "troubleshooter", "mindtorch",
|
|
127
135
|
)
|
|
128
136
|
|
|
129
137
|
_global_params = {}
|
|
130
|
-
_local_value_nodes = {}
|
|
131
138
|
|
|
132
139
|
|
|
133
140
|
def _convert_map():
|
|
@@ -146,6 +153,23 @@ def parse_cb(func, parse_method=None):
|
|
|
146
153
|
return Parser(func, parse_method)
|
|
147
154
|
|
|
148
155
|
|
|
156
|
+
def get_attr_from_object(obj, attr_name=None):
|
|
157
|
+
"""
|
|
158
|
+
Get attr from object.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
obj(Object): Instance of class or module.
|
|
162
|
+
attr_name(str): Attribute name to check.
|
|
163
|
+
|
|
164
|
+
Returns:
|
|
165
|
+
Object, obj's attr.
|
|
166
|
+
"""
|
|
167
|
+
|
|
168
|
+
if obj is not None and attr_name is not None and hasattr(obj, attr_name):
|
|
169
|
+
return getattr(obj, attr_name)
|
|
170
|
+
return None
|
|
171
|
+
|
|
172
|
+
|
|
149
173
|
def get_parse_method_of_class(obj, parse_method=None):
|
|
150
174
|
"""
|
|
151
175
|
Get parse method of class.
|
|
@@ -157,7 +181,7 @@ def get_parse_method_of_class(obj, parse_method=None):
|
|
|
157
181
|
Returns:
|
|
158
182
|
Function, obj's method.
|
|
159
183
|
"""
|
|
160
|
-
|
|
184
|
+
|
|
161
185
|
method_name = None
|
|
162
186
|
if parse_method is not None:
|
|
163
187
|
method_name = parse_method
|
|
@@ -166,10 +190,8 @@ def get_parse_method_of_class(obj, parse_method=None):
|
|
|
166
190
|
method_name = "_backward_hook_construct"
|
|
167
191
|
else:
|
|
168
192
|
method_name = "construct"
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
method = getattr(obj, method_name)
|
|
172
|
-
return method
|
|
193
|
+
|
|
194
|
+
return get_attr_from_object(obj, method_name)
|
|
173
195
|
|
|
174
196
|
|
|
175
197
|
def get_bprop_method_of_class(obj, parse_method=None):
|
|
@@ -183,42 +205,11 @@ def get_bprop_method_of_class(obj, parse_method=None):
|
|
|
183
205
|
Returns:
|
|
184
206
|
Function, obj's method.
|
|
185
207
|
"""
|
|
186
|
-
|
|
208
|
+
|
|
187
209
|
if isinstance(obj, nn.Cell):
|
|
188
210
|
method_name = "bprop"
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
return method
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
def get_env_support_modules():
|
|
195
|
-
"""Get support modules from environment variable."""
|
|
196
|
-
support_modules = os.getenv('MS_DEV_SUPPORT_MODULES')
|
|
197
|
-
if support_modules is None:
|
|
198
|
-
return []
|
|
199
|
-
env_support_modules = []
|
|
200
|
-
modules = support_modules.split(',')
|
|
201
|
-
for module in modules:
|
|
202
|
-
try:
|
|
203
|
-
module_spec = importlib.util.find_spec(module)
|
|
204
|
-
except (ModuleNotFoundError, ValueError):
|
|
205
|
-
module = module[0:module.rfind('.')]
|
|
206
|
-
module_spec = importlib.util.find_spec(module)
|
|
207
|
-
finally:
|
|
208
|
-
pass
|
|
209
|
-
if module_spec is None:
|
|
210
|
-
raise ModuleNotFoundError(f"Cannot find module: {module}. " \
|
|
211
|
-
f"Please check if {module} is installed, or if MS_DEV_SUPPORT_MODULES is set correctly.")
|
|
212
|
-
# Add the outermost module.
|
|
213
|
-
env_support_modules.append(module.split('.')[0])
|
|
214
|
-
logger.debug(f"Get support modules from env: {env_support_modules}")
|
|
215
|
-
return env_support_modules
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
# The fallback feature is enabled in default.
|
|
219
|
-
# Not support change the flag during the process is alive.
|
|
220
|
-
support_fallback_ = os.getenv('MS_DEV_ENABLE_FALLBACK')
|
|
221
|
-
support_modules_ = get_env_support_modules()
|
|
211
|
+
return get_attr_from_object(obj, method_name)
|
|
212
|
+
return None
|
|
222
213
|
|
|
223
214
|
|
|
224
215
|
def resolve_symbol(namespace, symbol):
|
|
@@ -245,14 +236,6 @@ def resolve_symbol(namespace, symbol):
|
|
|
245
236
|
if getattr(resolve_, "__hash__") is None:
|
|
246
237
|
return resolve_
|
|
247
238
|
|
|
248
|
-
# Raise a proper error if not using JIT Fallback feature.
|
|
249
|
-
if support_fallback_ == '0':
|
|
250
|
-
# Raise NotImplementedError when parsing the numpy methods, but not the numpy constant.
|
|
251
|
-
if namespace.name == "numpy" and \
|
|
252
|
-
isinstance(resolve_, (types.FunctionType, types.MethodType, types.ModuleType)):
|
|
253
|
-
raise NotImplementedError("Mindspore does not support to use the numpy methods " \
|
|
254
|
-
"within the construct() or @jit decorated function in graph mode.")
|
|
255
|
-
|
|
256
239
|
# If need trope the obj
|
|
257
240
|
convert_map = _convert_map()
|
|
258
241
|
if resolve_ in convert_map:
|
|
@@ -315,7 +298,7 @@ def get_object_key(obj):
|
|
|
315
298
|
return obj_id, obj_key
|
|
316
299
|
|
|
317
300
|
|
|
318
|
-
def
|
|
301
|
+
def is_class_member_of_self(node):
|
|
319
302
|
"""Check the attr is class member variable."""
|
|
320
303
|
type_ = node.__class__.__name__
|
|
321
304
|
if type_ == "Attribute":
|
|
@@ -360,6 +343,10 @@ def get_obj_type(obj):
|
|
|
360
343
|
obj_type = RESOLVE_TYPE_CLASS_TYPE
|
|
361
344
|
elif isinstance(obj, Namespace):
|
|
362
345
|
obj_type = RESOLVE_TYPE_NAMESPACE_INSTANCE
|
|
346
|
+
elif isinstance(obj, tuple):
|
|
347
|
+
obj_type = RESOLVE_TYPE_TUPLE
|
|
348
|
+
elif isinstance(obj, list):
|
|
349
|
+
obj_type = RESOLVE_TYPE_LIST
|
|
363
350
|
elif _is_class_instance(obj):
|
|
364
351
|
obj_type = RESOLVE_TYPE_CLASS_INSTANCE
|
|
365
352
|
elif _is_numpy_int_number(obj):
|
|
@@ -369,14 +356,7 @@ def get_obj_type(obj):
|
|
|
369
356
|
elif _is_numpy_bool_number(obj):
|
|
370
357
|
obj_type = RESOLVE_TYPE_NUMPY_BOOL_NUMBER
|
|
371
358
|
else:
|
|
372
|
-
|
|
373
|
-
if support_fallback_ != '0':
|
|
374
|
-
obj_type = RESOLVE_TYPE_INVALID
|
|
375
|
-
else:
|
|
376
|
-
# Here for ndarray, just print its shape (in case of the array to large and print many data in screen)
|
|
377
|
-
is_ndarray = type(obj).__name__ == 'ndarray' and hasattr(obj, 'shape')
|
|
378
|
-
raise TypeError(f"Not support for this object with type '{type(obj)}' and "
|
|
379
|
-
f"{'shape' if is_ndarray else 'value'} '{obj.shape if is_ndarray else obj}'.")
|
|
359
|
+
obj_type = RESOLVE_TYPE_INVALID
|
|
380
360
|
return obj_type
|
|
381
361
|
|
|
382
362
|
|
|
@@ -469,8 +449,14 @@ def create_instance(cls_type, params=None):
|
|
|
469
449
|
return obj
|
|
470
450
|
|
|
471
451
|
|
|
472
|
-
def convert_class_to_function(cls_str):
|
|
452
|
+
def convert_class_to_function(cls_str, cls_obj):
|
|
473
453
|
"""Convert class to function."""
|
|
454
|
+
if issubclass(cls_obj, (Parameter, ops.MultitypeFuncGraph)):
|
|
455
|
+
raise ValueError(f"Failed to compile in GRAPH_MODE because creating {cls_str} instances is not "
|
|
456
|
+
f"supported in 'construct' or @jit decorated function. Try to create {cls_str} "
|
|
457
|
+
f"instances external such as initialized in the method '__init__' before assigning. "
|
|
458
|
+
f"For more details, please refer to "
|
|
459
|
+
f"https://www.mindspore.cn/docs/zh-CN/r2.2/design/dynamic_graph_and_static_graph.html \n")
|
|
474
460
|
return convert_class_to_function_map.get(cls_str)
|
|
475
461
|
|
|
476
462
|
|
|
@@ -491,8 +477,8 @@ def ms_isinstance(x, cmp_type):
|
|
|
491
477
|
list: mstype.List,
|
|
492
478
|
tuple: mstype.Tuple,
|
|
493
479
|
dict: mstype.Dict,
|
|
494
|
-
Tensor: mstype.
|
|
495
|
-
Parameter: mstype.
|
|
480
|
+
Tensor: mstype.TensorType,
|
|
481
|
+
Parameter: mstype.RefType,
|
|
496
482
|
slice: mstype.Slice,
|
|
497
483
|
}
|
|
498
484
|
if cmp_type not in pytype_to_mstype:
|
|
@@ -536,14 +522,6 @@ def get_module_namespace(obj):
|
|
|
536
522
|
return mod_namespace
|
|
537
523
|
|
|
538
524
|
|
|
539
|
-
def get_class_attr_namespace_symbol(obj):
|
|
540
|
-
"""Get class namespace."""
|
|
541
|
-
logger.debug("get class namespace, object: %r", obj)
|
|
542
|
-
class_namespace = ClassAttrNamespace(obj)
|
|
543
|
-
logger.debug("class namespace: %r", class_namespace)
|
|
544
|
-
return class_namespace
|
|
545
|
-
|
|
546
|
-
|
|
547
525
|
def get_class_member_namespace_symbol(obj):
|
|
548
526
|
"""Get obj class member type."""
|
|
549
527
|
logger.debug("get class instance namespace, object: %r", obj)
|
|
@@ -574,6 +552,7 @@ def get_obj_defined_from_obj_type(obj_type):
|
|
|
574
552
|
"List": list,
|
|
575
553
|
"Tuple": tuple,
|
|
576
554
|
"Dictionary": dict,
|
|
555
|
+
"NamedTuple": NamedTuple,
|
|
577
556
|
}
|
|
578
557
|
|
|
579
558
|
return obj_type_defined_map.get(obj_type)
|
|
@@ -596,6 +575,16 @@ def get_adapter_tensor_attr(name):
|
|
|
596
575
|
return None, False
|
|
597
576
|
|
|
598
577
|
|
|
578
|
+
def is_adapter_tensor_class(cls):
|
|
579
|
+
"""Check if cls is adapter tensor type."""
|
|
580
|
+
return cls in (Tensor, ms_adapter_registry.tensor)
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
def is_adapter_parameter_class(cls):
|
|
584
|
+
"""Check if cls is adapter parameter type."""
|
|
585
|
+
return cls in (Parameter, ms_adapter_registry.parameter)
|
|
586
|
+
|
|
587
|
+
|
|
599
588
|
def get_ms_class_name(cls):
|
|
600
589
|
"""Get the name of the class instance decorated with jit_class."""
|
|
601
590
|
if isinstance(cls, type):
|
|
@@ -618,6 +607,12 @@ def convert_to_ms_cootensor(data):
|
|
|
618
607
|
return COOTensor(coo_tensor=data)
|
|
619
608
|
|
|
620
609
|
|
|
610
|
+
def convert_to_namedtuple(type_name, key_sequeue, value_sequeue):
|
|
611
|
+
"""Convert C++ namedtuple to python object namedtuple."""
|
|
612
|
+
logger.debug(f"type_name: {type_name}, key_sequeue: {key_sequeue}, value_sequeue: {value_sequeue}")
|
|
613
|
+
return namedtuple(type_name, [*key_sequeue])(*value_sequeue)
|
|
614
|
+
|
|
615
|
+
|
|
621
616
|
def get_object_description(obj, fname, fline):
|
|
622
617
|
"""Return method or funcition description for error report, include location, class name, etc."""
|
|
623
618
|
if isinstance(obj, types.MethodType):
|
|
@@ -693,6 +688,8 @@ def get_ast_type(node):
|
|
|
693
688
|
ast_type = AST_SUB_TYPE_NAME
|
|
694
689
|
elif isinstance(node, ast.Tuple):
|
|
695
690
|
ast_type = AST_SUB_TYPE_TUPLE
|
|
691
|
+
elif isinstance(node, ast.List):
|
|
692
|
+
ast_type = AST_SUB_TYPE_LIST
|
|
696
693
|
elif isinstance(node, ast.Subscript):
|
|
697
694
|
ast_type = AST_SUB_TYPE_SUBSCRIPT
|
|
698
695
|
elif isinstance(node, ast.Starred):
|
|
@@ -767,51 +764,29 @@ def get_args(node):
|
|
|
767
764
|
return args
|
|
768
765
|
|
|
769
766
|
|
|
770
|
-
def _in_sys_path(file_path):
|
|
771
|
-
"""To check if file_path is under system path."""
|
|
772
|
-
for path in list(sys.path):
|
|
773
|
-
if file_path.startswith(path):
|
|
774
|
-
return True
|
|
775
|
-
return False
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
def is_third_party_module(value):
|
|
779
|
-
"""To check if value is a third-party module."""
|
|
780
|
-
# Check if value is a module or package, check if module file is under the sys path.
|
|
781
|
-
if not inspect.ismodule(value) or not hasattr(value, '__file__') or not _in_sys_path(value.__file__):
|
|
782
|
-
return False
|
|
783
|
-
|
|
784
|
-
# Get module leftmost name.
|
|
785
|
-
if not hasattr(value, '__name__'):
|
|
786
|
-
return False
|
|
787
|
-
module_name = value.__name__
|
|
788
|
-
module_leftmost_name = module_name.split('.')[0]
|
|
789
|
-
# Ignore mindspore package.
|
|
790
|
-
if module_leftmost_name == "mindspore":
|
|
791
|
-
return False
|
|
792
|
-
# Check if module is in whitelist.
|
|
793
|
-
if module_leftmost_name in support_modules_:
|
|
794
|
-
logger.debug(f"Found support modules from env: {module_name}")
|
|
795
|
-
return True
|
|
796
|
-
if module_leftmost_name in jit_fallback_third_party_modules_whitelist:
|
|
797
|
-
logger.debug(f"Found third-party module: {module_name}")
|
|
798
|
-
return True
|
|
799
|
-
return False
|
|
800
|
-
|
|
801
|
-
|
|
802
767
|
def _convert_stub_tensor(data):
|
|
803
768
|
"""Convert stub tensor output to tensor"""
|
|
804
769
|
if is_stub_tensor(data):
|
|
805
770
|
return data.stub_sync()
|
|
806
771
|
if isinstance(data, tuple):
|
|
772
|
+
# Handle namedtuple since its type is tuple.
|
|
773
|
+
if hasattr(data, "_fields"):
|
|
774
|
+
type_name = data.__class__.__name__
|
|
775
|
+
data_dict = data._asdict()
|
|
776
|
+
fields = data_dict.keys()
|
|
777
|
+
return namedtuple(type_name, fields)(**_convert_stub_tensor(data_dict))
|
|
807
778
|
return tuple(_convert_stub_tensor(x) for x in data)
|
|
808
779
|
if isinstance(data, list):
|
|
809
780
|
# Keep the list object not change.
|
|
810
|
-
for
|
|
811
|
-
|
|
781
|
+
for i in range(len(data)):
|
|
782
|
+
data[i] = _convert_stub_tensor(data[i])
|
|
812
783
|
return data
|
|
813
784
|
if isinstance(data, dict):
|
|
814
|
-
|
|
785
|
+
# Keep the dict object not change.
|
|
786
|
+
keys = tuple(data.keys())
|
|
787
|
+
for key in keys:
|
|
788
|
+
data[_convert_stub_tensor(key)] = _convert_stub_tensor(data.pop(key))
|
|
789
|
+
return data
|
|
815
790
|
return data
|
|
816
791
|
|
|
817
792
|
|
|
@@ -825,53 +800,188 @@ def eval_script(exp_str, params):
|
|
|
825
800
|
# Eval function parses the expression argument and evaluates it as a python expression.
|
|
826
801
|
global_params = params[0]
|
|
827
802
|
local_params = params[1]
|
|
828
|
-
logger.debug(f"exp_str: '{exp_str}', params: '{params}'")
|
|
829
803
|
try:
|
|
830
804
|
local_params = _convert_python_data(local_params)
|
|
831
805
|
res = eval(exp_str, global_params, local_params)
|
|
832
806
|
res = _convert_stub_tensor(res)
|
|
833
|
-
logger.debug(f"eval res: '{res}'")
|
|
834
807
|
except Exception as e:
|
|
835
|
-
error_info = f"When eval '{exp_str}' by using JIT Fallback feature, an error occurred: " + str(e)
|
|
836
|
-
". You can try to turn off JIT Fallback feature by 'export MS_DEV_ENABLE_FALLBACK=0'."
|
|
808
|
+
error_info = f"When eval '{exp_str}' by using JIT Fallback feature, an error occurred: " + str(e)
|
|
837
809
|
logger.debug(error_info)
|
|
838
810
|
raise e
|
|
839
811
|
|
|
840
|
-
# Convert set to tuple.
|
|
841
|
-
if isinstance(res, set):
|
|
842
|
-
return tuple(res)
|
|
843
812
|
return res
|
|
844
813
|
|
|
845
814
|
|
|
846
|
-
def
|
|
815
|
+
def get_script_id_attrs(script):
|
|
847
816
|
"""Get the ids for the ast of script"""
|
|
848
817
|
ast_tokens = asttokens.ASTTokens(script, parse=True)
|
|
849
818
|
ast_tree = ast_tokens.tree
|
|
850
819
|
ast_str = astunparse.dump(ast_tree)
|
|
851
820
|
ids = re.findall(r"id='(.+?)'", ast_str)
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
821
|
+
id_sets = set(ids)
|
|
822
|
+
pattern = r"Attribute\(\s*value.*?id='(.*?)'.*?attr='(.*?)'.*?\)"
|
|
823
|
+
matches = re.findall(pattern, ast_str, re.DOTALL)
|
|
824
|
+
id_attrs = ["{}.{}".format(match[0], match[1]) for match in matches]
|
|
825
|
+
logger.debug(f'id_attrs: {id_attrs}')
|
|
826
|
+
id_attrs_set = set(id_attrs)
|
|
827
|
+
logger.debug(f'id_attrs_set: {id_attrs_set}')
|
|
828
|
+
res = id_sets.union(id_attrs_set)
|
|
829
|
+
logger.debug(f'res: {res}')
|
|
830
|
+
return res
|
|
859
831
|
|
|
860
832
|
|
|
861
833
|
def get_global_params():
|
|
862
834
|
"""Get the global parameter."""
|
|
863
|
-
logger.debug(f
|
|
835
|
+
logger.debug(f"get global_dict: {_global_params}")
|
|
864
836
|
return _global_params
|
|
865
837
|
|
|
866
838
|
|
|
867
|
-
def
|
|
868
|
-
"""
|
|
869
|
-
|
|
839
|
+
def get_dtype(name: str):
|
|
840
|
+
"""get mstype from name"""
|
|
841
|
+
return get_attr_from_object(mstype, name)
|
|
842
|
+
|
|
870
843
|
|
|
844
|
+
class ThirdPartyLibraryChecker:
|
|
845
|
+
"""
|
|
846
|
+
Check if a module or function is from third-party libraries.
|
|
871
847
|
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
848
|
+
Rules for detecting third-party libraries:
|
|
849
|
+
|
|
850
|
+
1. The mindspore module and its suite are not third-party libraries.
|
|
851
|
+
|
|
852
|
+
2. Python built-in modules and python standard libraries are third-party libraries.
|
|
853
|
+
|
|
854
|
+
3. Modules with module names provided by MS_JIT_IGNORE_MODULES are treated as third-party
|
|
855
|
+
libraries, but those provided by MS_JIT_MODULES are not.
|
|
856
|
+
|
|
857
|
+
4. Third-party libraries have 'site-packages' in their installation path.
|
|
858
|
+
"""
|
|
859
|
+
def __init__(self):
|
|
860
|
+
self.user_workspace_dir = self.get_top_level_module_path(os.getcwd())
|
|
861
|
+
self.python_builtin_dir = os.path.abspath(os.path.dirname(os.__file__))
|
|
862
|
+
|
|
863
|
+
@staticmethod
|
|
864
|
+
def get_jit_modules():
|
|
865
|
+
"""Modules in jit_modules require jit."""
|
|
866
|
+
jit_modules = []
|
|
867
|
+
# Get jit modules from environment variable.
|
|
868
|
+
env_modules = os.getenv('MS_JIT_MODULES')
|
|
869
|
+
if env_modules is not None:
|
|
870
|
+
jit_modules = env_modules.split(',')
|
|
871
|
+
return jit_modules
|
|
872
|
+
|
|
873
|
+
@staticmethod
|
|
874
|
+
def get_jit_ignore_modules():
|
|
875
|
+
"""Modules in jit_ignore_modules do not need jit."""
|
|
876
|
+
jit_ignore_modules = []
|
|
877
|
+
# Get jit ignore modules from environment variable.
|
|
878
|
+
env_modules = os.getenv('MS_JIT_IGNORE_MODULES')
|
|
879
|
+
if env_modules is not None:
|
|
880
|
+
jit_ignore_modules = env_modules.split(',')
|
|
881
|
+
# sys.builtin_module_names do not need jit.
|
|
882
|
+
jit_ignore_modules.extend(sys.builtin_module_names)
|
|
883
|
+
return jit_ignore_modules
|
|
884
|
+
|
|
885
|
+
@staticmethod
|
|
886
|
+
def is_mindspore_related_module(module):
|
|
887
|
+
"""Check if module is mindspore module or its suite."""
|
|
888
|
+
module_leftmost_name = module.__name__.split('.')[0]
|
|
889
|
+
return module_leftmost_name in _modules_from_mindspore
|
|
890
|
+
|
|
891
|
+
def get_top_level_module_path(self, module_path):
|
|
892
|
+
"""Get the path of the top level package of the current working directory."""
|
|
893
|
+
module_abspath = os.path.abspath(module_path)
|
|
894
|
+
upper_path = os.path.abspath(os.path.dirname(module_abspath))
|
|
895
|
+
if module_abspath == upper_path:
|
|
896
|
+
return module_abspath
|
|
897
|
+
# Check whether __init__.py exists in the upper directory.
|
|
898
|
+
init_path = os.path.join(upper_path, '__init__.py')
|
|
899
|
+
# If the path does not exist or is accessed without permission, os.path.isfile returns false.
|
|
900
|
+
if os.path.isfile(init_path):
|
|
901
|
+
module_abspath = self.get_top_level_module_path(upper_path)
|
|
902
|
+
return module_abspath
|
|
903
|
+
|
|
904
|
+
def is_third_party_module(self, module):
|
|
905
|
+
"""Check if module is a third-party library."""
|
|
906
|
+
module_leftmost_name = module.__name__.split('.')[0]
|
|
907
|
+
# Modules in jit_ignore_modules are treated as third-party libraries, such as sys.builtin_module_names.
|
|
908
|
+
jit_ignore_modules = self.get_jit_ignore_modules()
|
|
909
|
+
if module_leftmost_name in jit_ignore_modules:
|
|
910
|
+
logger.debug(f"Found third-party module '{module_leftmost_name}' in jit_ignore_modules.")
|
|
911
|
+
return True
|
|
912
|
+
# Modules in jit_modules require jit and they are considered to be in user workspace.
|
|
913
|
+
jit_modules = self.get_jit_modules()
|
|
914
|
+
if module_leftmost_name in jit_modules:
|
|
915
|
+
logger.debug(f"Found user-defined module '{module_leftmost_name}' in jit_modules.")
|
|
916
|
+
return False
|
|
917
|
+
# A modules without __file__ attribute is considered to be in user workspace.
|
|
918
|
+
if not hasattr(module, '__file__'):
|
|
919
|
+
return False
|
|
920
|
+
module_path = os.path.abspath(module.__file__)
|
|
921
|
+
# Python builtin modules are treated as third-party libraries.
|
|
922
|
+
if module_path.startswith(self.python_builtin_dir):
|
|
923
|
+
logger.debug(f"Found python builtin module '{module.__name__}', which is a third-party module.")
|
|
924
|
+
return True
|
|
925
|
+
# Check if module is under user workspace directory.
|
|
926
|
+
if module_path.startswith(self.user_workspace_dir):
|
|
927
|
+
logger.debug(f"Found module '{module.__name__}' in user_workspace_dir: {self.user_workspace_dir}")
|
|
928
|
+
return False
|
|
929
|
+
# Third-party modules are under site-packages.
|
|
930
|
+
split_path = module_path.split(os.path.sep)
|
|
931
|
+
result = "site-packages" in split_path
|
|
932
|
+
if result:
|
|
933
|
+
logger.debug(f"Found third-party module '{module.__name__}' in path '{module_path}'")
|
|
934
|
+
return result
|
|
935
|
+
|
|
936
|
+
def get_module_source_location(self, module):
|
|
937
|
+
"""Get the source location of the module."""
|
|
938
|
+
if self.is_mindspore_related_module(module):
|
|
939
|
+
return MODULE_FROM_MINDSPORE
|
|
940
|
+
if self.is_third_party_module(module):
|
|
941
|
+
return MODULE_FROM_THIRDPARTY
|
|
942
|
+
return MODULE_FROM_USER_WORKSPACE
|
|
943
|
+
|
|
944
|
+
def is_third_party_module_or_function(self, value):
|
|
945
|
+
"""Check if value is from a third-party library."""
|
|
946
|
+
if inspect.ismodule(value):
|
|
947
|
+
module = value
|
|
948
|
+
elif (isinstance(value, types.FunctionType) and not hasattr(value, "__jit_function__")) or \
|
|
949
|
+
(isinstance(value, types.MethodType) and not hasattr(value.__func__, "__jit_function__")):
|
|
950
|
+
if value in _convert_map():
|
|
951
|
+
return False
|
|
952
|
+
module = inspect.getmodule(value)
|
|
953
|
+
if module is None:
|
|
954
|
+
return False
|
|
955
|
+
else:
|
|
956
|
+
return False
|
|
957
|
+
return self.get_module_source_location(module) == MODULE_FROM_THIRDPARTY
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
third_party_checker = ThirdPartyLibraryChecker()
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
def is_from_third_party_library(value):
|
|
964
|
+
"""Check if value is from a third-party library."""
|
|
965
|
+
return third_party_checker.is_third_party_module_or_function(value)
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
def get_const_abs(obj):
|
|
969
|
+
"""Get absolute value of const object."""
|
|
970
|
+
return abs(obj)
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
def get_const_round(obj):
|
|
974
|
+
"""Get round value of const object."""
|
|
975
|
+
if isinstance(obj, tuple):
|
|
976
|
+
val = obj[0]
|
|
977
|
+
point_num = obj[1]
|
|
978
|
+
return round(val, point_num)
|
|
979
|
+
return round(obj)
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
def get_const_len(obj):
|
|
983
|
+
"""Get the length of const object."""
|
|
984
|
+
return len(obj)
|
|
875
985
|
|
|
876
986
|
|
|
877
987
|
class Parser:
|
|
@@ -887,6 +997,7 @@ class Parser:
|
|
|
887
997
|
|
|
888
998
|
def __init__(self, fn: (types.FunctionType, types.MethodType), parse_method=None) -> None:
|
|
889
999
|
self.fn = inspect.unwrap(fn.__func__ if isinstance(fn, types.MethodType) else fn)
|
|
1000
|
+
self.pack_builder = _PackSourceBuilder(fn) if hasattr(fn, "pack_fn") else None
|
|
890
1001
|
self.parse_method = parse_method
|
|
891
1002
|
self.line_offset = 0
|
|
892
1003
|
self.filename: str = self.fn.__code__.co_filename
|
|
@@ -923,9 +1034,10 @@ class Parser:
|
|
|
923
1034
|
if value == item:
|
|
924
1035
|
logger.debug(f"Found unsupported internal type: '{value}'.")
|
|
925
1036
|
return True
|
|
1037
|
+
if ms_adapter_registry.is_registered and value == ms_adapter_registry.tensor:
|
|
1038
|
+
return True
|
|
926
1039
|
return False
|
|
927
1040
|
|
|
928
|
-
|
|
929
1041
|
@staticmethod
|
|
930
1042
|
def is_hybrid_type(value):
|
|
931
1043
|
"""To check if hybrid type, such as print"""
|
|
@@ -936,15 +1048,29 @@ class Parser:
|
|
|
936
1048
|
return False
|
|
937
1049
|
|
|
938
1050
|
@staticmethod
|
|
939
|
-
def
|
|
940
|
-
"""Check whether the value don't support to be converted in C++."""
|
|
941
|
-
return value in _unsupported_convert_data_type
|
|
942
|
-
|
|
943
|
-
def get_convert_object_for_unsupported_type(self, value):
|
|
1051
|
+
def get_convert_object_for_mutable(value):
|
|
944
1052
|
"""Get the convert object for value which don't support to be converted in C++."""
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
1053
|
+
# The value may not be supported to do ConvertData such as api 'mutable',
|
|
1054
|
+
# and we get its converted object from python.
|
|
1055
|
+
if inspect.isfunction(value) and value in (mutable,):
|
|
1056
|
+
return _convert_map().get(value)
|
|
1057
|
+
return value
|
|
1058
|
+
|
|
1059
|
+
def get_syntax_support_type(self, value):
|
|
1060
|
+
"""Get syntax support type."""
|
|
1061
|
+
if is_from_third_party_library(value):
|
|
1062
|
+
logger.debug(f"value: '{value}' is from third party library.")
|
|
1063
|
+
return SYNTAX_UNSUPPORTED_NAMESPACE
|
|
1064
|
+
if inspect.isclass(value) or isinstance(value, _builtin_function_or_method_type):
|
|
1065
|
+
if self.is_unsupported_internal_type(value):
|
|
1066
|
+
return SYNTAX_UNSUPPORTED_INTERNAL_TYPE
|
|
1067
|
+
if self.is_unsupported_namespace(value):
|
|
1068
|
+
return SYNTAX_UNSUPPORTED_NAMESPACE
|
|
1069
|
+
if self.is_unsupported_python_builtin_type(value):
|
|
1070
|
+
return SYNTAX_UNSUPPORTED_EXTERNAL_TYPE
|
|
1071
|
+
if self.is_hybrid_type(value):
|
|
1072
|
+
return SYNTAX_HYBRID_TYPE
|
|
1073
|
+
return SYNTAX_SUPPORTED
|
|
948
1074
|
|
|
949
1075
|
def parse(self):
|
|
950
1076
|
"""Parse the function or method."""
|
|
@@ -953,26 +1079,26 @@ class Parser:
|
|
|
953
1079
|
type(self.fn).__name__ == 'cython_function_or_method':
|
|
954
1080
|
attr = 'source'
|
|
955
1081
|
try:
|
|
956
|
-
|
|
1082
|
+
source_lines = inspect.getsourcelines(self.fn)
|
|
957
1083
|
if context.get_context('support_binary') and \
|
|
958
1084
|
'/mindspore/' not in self.filename and '\\mindspore\\' not in self.filename and \
|
|
959
|
-
(not hasattr(self.fn, attr) or getattr(self.fn, attr) !=
|
|
1085
|
+
(not hasattr(self.fn, attr) or getattr(self.fn, attr) != source_lines):
|
|
960
1086
|
if not os.access(self.filename, os.W_OK):
|
|
961
1087
|
raise PermissionError(f"Don't have the write permission on the file {self.filename}.")
|
|
962
1088
|
with open(self.filename, 'a') as f:
|
|
963
1089
|
f.write(f"\n# Set source attribute for function {self.function_name} "
|
|
964
1090
|
f"to support run so or pyc file in Graph Mode."
|
|
965
|
-
f"\nsetattr({self.function_name}, '{attr}', {
|
|
966
|
-
setattr(self.fn, attr,
|
|
1091
|
+
f"\nsetattr({self.function_name}, '{attr}', {source_lines})\n")
|
|
1092
|
+
setattr(self.fn, attr, source_lines)
|
|
967
1093
|
except (OSError, TypeError) as e:
|
|
968
1094
|
if hasattr(self.fn, attr):
|
|
969
|
-
|
|
1095
|
+
source_lines = getattr(self.fn, attr)
|
|
970
1096
|
else:
|
|
971
1097
|
if e.__str__() == "could not get source code":
|
|
972
1098
|
raise OSError(f"Mindspore can not compile temporary source code in terminal. "
|
|
973
1099
|
f"Please write source code to a python file and run the file.")
|
|
974
1100
|
raise e
|
|
975
|
-
self.lines, self.line_offset =
|
|
1101
|
+
self.lines, self.line_offset = source_lines
|
|
976
1102
|
original_src = ''.join(self.lines)
|
|
977
1103
|
hexstr = hashlib.sha256(original_src.encode()).hexdigest()
|
|
978
1104
|
ast_tokens_cache = Parser.ast_cache.get(hexstr)
|
|
@@ -982,6 +1108,8 @@ class Parser:
|
|
|
982
1108
|
len(original_src.split('\n')[0]) - len(src.split('\n')[0])
|
|
983
1109
|
logger.debug("Get source: %s", src)
|
|
984
1110
|
try:
|
|
1111
|
+
if self.pack_builder:
|
|
1112
|
+
src = self.pack_builder.get_code_source()
|
|
985
1113
|
ast_tokens = asttokens.ASTTokens(src, parse=True)
|
|
986
1114
|
except IndentationError as idt_err:
|
|
987
1115
|
idt_err.filename = self.filename
|
|
@@ -998,58 +1126,79 @@ class Parser:
|
|
|
998
1126
|
logger.error("Fn type is invalid")
|
|
999
1127
|
return None, None
|
|
1000
1128
|
|
|
1001
|
-
def
|
|
1129
|
+
def is_jit_supported_attribute(self, var, attr):
|
|
1002
1130
|
"""Check whether the value is a constant."""
|
|
1003
1131
|
if var in self.global_namespace:
|
|
1004
1132
|
module = self.global_namespace[var]
|
|
1005
1133
|
if hasattr(module, attr):
|
|
1006
1134
|
value = getattr(module, attr)
|
|
1007
1135
|
# Check if value is constant.
|
|
1008
|
-
|
|
1136
|
+
if isinstance(value, (int, float, bool)):
|
|
1137
|
+
return True
|
|
1138
|
+
# Check if value in convert_map.
|
|
1139
|
+
if isinstance(value, (tuple, list, dict)) or getattr(value, "__hash__") is None:
|
|
1140
|
+
return False
|
|
1141
|
+
if inspect.ismodule(module) and value in _convert_map():
|
|
1142
|
+
return True
|
|
1009
1143
|
return False
|
|
1010
1144
|
|
|
1011
1145
|
def get_namespace_symbol(self, var: str):
|
|
1012
|
-
"""Get symbol type and namespace and symbol."""
|
|
1013
|
-
if var in self.closure_namespace:
|
|
1014
|
-
logger.debug(f"Found '{var}' in closure_namespace {self.closure_namespace.__str__()}")
|
|
1015
|
-
return self.closure_namespace, var
|
|
1016
|
-
if var in self.global_namespace:
|
|
1017
|
-
logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}")
|
|
1018
|
-
value = self.global_namespace[var]
|
|
1019
|
-
if self.is_unsupported_namespace(value):
|
|
1020
|
-
error_info = f"The builtin function '{var}' of python is not supported in graph mode."
|
|
1021
|
-
return None, error_info
|
|
1022
|
-
return self.global_namespace, var
|
|
1023
|
-
|
|
1024
|
-
error_info = f"The name '{var}' is not defined in function '{self.function_name}'."
|
|
1025
|
-
return None, error_info
|
|
1026
|
-
|
|
1027
|
-
def get_builtin_namespace_symbol(self, var: str):
|
|
1028
1146
|
"""Get mindspore builtin namespace and symbol."""
|
|
1029
1147
|
if var in self.closure_namespace:
|
|
1030
1148
|
logger.debug(f"Found '{var}' in closure_namespace {self.closure_namespace.__str__()}.")
|
|
1031
|
-
|
|
1149
|
+
try:
|
|
1150
|
+
value = self.closure_namespace[var]
|
|
1151
|
+
return self.closure_namespace, var, value
|
|
1152
|
+
except UnboundLocalError:
|
|
1153
|
+
return self.closure_namespace, var, None
|
|
1032
1154
|
if var in self.global_namespace:
|
|
1033
1155
|
logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
|
|
1034
1156
|
value = self.global_namespace[var]
|
|
1035
1157
|
value_str = value.__name__ if hasattr(value, '__name__') else str(value)
|
|
1036
1158
|
logger.debug(f"value: {type(value)}, '{value_str}', hasattr(__name__): {hasattr(value, '__name__')}.")
|
|
1037
1159
|
# To check if allowed to support.
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
support_info = self.global_namespace, var, value, SYNTAX_UNSUPPORTED_EXTERNAL_TYPE
|
|
1042
|
-
elif self.is_unsupported_namespace(value) or is_third_party_module(value):
|
|
1043
|
-
support_info = self.global_namespace, var, value, SYNTAX_UNSUPPORTED_NAMESPACE
|
|
1044
|
-
elif self.is_hybrid_type(value):
|
|
1045
|
-
support_info = self.global_namespace, var, value, SYNTAX_HYBRID_TYPE
|
|
1046
|
-
else:
|
|
1047
|
-
support_info = self.global_namespace, var, value, SYNTAX_SUPPORTED
|
|
1160
|
+
value = self.get_convert_object_for_mutable(value)
|
|
1161
|
+
support_type = self.get_syntax_support_type(value)
|
|
1162
|
+
support_info = self.global_namespace, var, value, support_type
|
|
1048
1163
|
return support_info
|
|
1049
1164
|
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1165
|
+
logger.debug(f"The name '{var}' is an undefined symbol.")
|
|
1166
|
+
return None, None, None
|
|
1167
|
+
|
|
1168
|
+
def check_third_party_library_side_effect(self, var, attr):
|
|
1169
|
+
"""Check if value is from a third-party library."""
|
|
1170
|
+
logger.debug(f"var '{var}'.")
|
|
1171
|
+
logger.debug(f"attr '{attr}'.")
|
|
1172
|
+
side_effect_attrs = {
|
|
1173
|
+
"numpy": {"load", "save", "savez", "savez_compressed", "loadtxt", "savetxt", "genfromtxt", "fromregex",
|
|
1174
|
+
"fromstring", "tofile", "memmap", "open_memmap", "open", "exists", "abspath", "DataSource",
|
|
1175
|
+
"format"},
|
|
1176
|
+
"pandas": {"read_csv", "to_csv", "read_excel", "to_excel", "read_json", "to_json", "read_html", "to_html",
|
|
1177
|
+
"read_sql", "to_sql", "read_feather", "to_feather", "read_parquet", "to_parquet", "read_pickle",
|
|
1178
|
+
"to_pickle"},
|
|
1179
|
+
"scipy": {"loadmat", "savemat"},
|
|
1180
|
+
"csv": {"reader", "writer"},
|
|
1181
|
+
"json": {"load", "loads", "dump", "dumps"},
|
|
1182
|
+
"pickle": {"load", "loads", "dump", "dumps"},
|
|
1183
|
+
"h5py": {"File", "Group", "Dataset"},
|
|
1184
|
+
"os": {"listdir", "isfile", "exists", "isdir", "mkdir", "remove", "rmdir", "symlink", "rename"},
|
|
1185
|
+
"shutil": {"copy", "copy2", "copytree", "move", "rmtree"},
|
|
1186
|
+
"pathlib": {"Path", "mkdir", "rmdir", "unlink", "rename", "symlink_to"},
|
|
1187
|
+
"glob": {"glob", "iglob"},
|
|
1188
|
+
"zipfile": {"zipfile", "ZipFile", "write", "extractall"},
|
|
1189
|
+
"troubleshooter": {"save", "load"}}
|
|
1190
|
+
if var in self.global_namespace:
|
|
1191
|
+
logger.debug(f"Found '{var}' in global_namespace {self.global_namespace.__str__()}.")
|
|
1192
|
+
value = self.global_namespace[var]
|
|
1193
|
+
value_str = value.__name__ if hasattr(value, '__name__') else str(value)
|
|
1194
|
+
logger.debug(f"value: {type(value)}, '{value_str}', hasattr(__name__): {hasattr(value, '__name__')}.")
|
|
1195
|
+
value = self.get_convert_object_for_mutable(value)
|
|
1196
|
+
if is_from_third_party_library(value):
|
|
1197
|
+
logger.debug(f"value: '{value}' is from third party library.")
|
|
1198
|
+
# pylint: disable=get-dict-value-exception
|
|
1199
|
+
if value_str in side_effect_attrs and attr in side_effect_attrs[value_str]:
|
|
1200
|
+
return True
|
|
1201
|
+
return False
|
|
1053
1202
|
|
|
1054
1203
|
def analyze_super(self, class_type_node, subclass_instance):
|
|
1055
1204
|
"""Analyze super and return a class instance."""
|
|
@@ -1074,6 +1223,41 @@ class Parser:
|
|
|
1074
1223
|
f"but got {subclass_instance}.")
|
|
1075
1224
|
return super(target_father_class, subclass_instance)
|
|
1076
1225
|
|
|
1226
|
+
def get_jit_comments(self, start_lineno, end_lineno):
|
|
1227
|
+
"""
|
|
1228
|
+
Get the comments at the location, starting with '# @jit'.
|
|
1229
|
+
|
|
1230
|
+
Args:
|
|
1231
|
+
start_lineno: The start line no.
|
|
1232
|
+
end_lineno: The end line no.
|
|
1233
|
+
|
|
1234
|
+
Returns:
|
|
1235
|
+
list[str], the comment strings.
|
|
1236
|
+
"""
|
|
1237
|
+
comments = []
|
|
1238
|
+
# Ignore if to fetch the whole lines's comments.
|
|
1239
|
+
if start_lineno == 1 and end_lineno == len(self.lines):
|
|
1240
|
+
return comments
|
|
1241
|
+
|
|
1242
|
+
# Add previous line comment.
|
|
1243
|
+
if start_lineno > 1:
|
|
1244
|
+
previous_lineno = start_lineno - 1
|
|
1245
|
+
previous_line = self.lines[previous_lineno - 1]
|
|
1246
|
+
striped_previous_line = previous_line.strip(' \t')
|
|
1247
|
+
result = re.search(r'^#\s*@jit[^\'\"]*?(?=\n|$)', striped_previous_line)
|
|
1248
|
+
if result:
|
|
1249
|
+
comments.append(result.group())
|
|
1250
|
+
|
|
1251
|
+
# Add line ending comments.
|
|
1252
|
+
if start_lineno >= 1:
|
|
1253
|
+
while start_lineno <= end_lineno:
|
|
1254
|
+
line = self.lines[start_lineno - 1]
|
|
1255
|
+
result = re.search(r'#\s*@jit[^\'\"]*?(?=\n|$)', line)
|
|
1256
|
+
if result:
|
|
1257
|
+
comments.append(result.group())
|
|
1258
|
+
start_lineno += 1
|
|
1259
|
+
return comments
|
|
1260
|
+
|
|
1077
1261
|
def get_source_code(self, start_lineno, start_colno, end_lineno, end_colno):
|
|
1078
1262
|
"""
|
|
1079
1263
|
Get the script source at the location.
|
|
@@ -1087,6 +1271,7 @@ class Parser:
|
|
|
1087
1271
|
Returns:
|
|
1088
1272
|
str, the source string.
|
|
1089
1273
|
"""
|
|
1274
|
+
|
|
1090
1275
|
if start_lineno == 0:
|
|
1091
1276
|
logger.critical('start_lineno should not be 0')
|
|
1092
1277
|
|
|
@@ -1133,11 +1318,12 @@ class Parser:
|
|
|
1133
1318
|
start_lineno, start_colno = start_node.first_token.start
|
|
1134
1319
|
end_lineno, end_colno = end_node.last_token.end
|
|
1135
1320
|
expr_src = self.get_source_code(start_lineno, start_colno, end_lineno, end_colno)
|
|
1321
|
+
comments = self.get_jit_comments(start_lineno, end_lineno)
|
|
1136
1322
|
start_lineno += self.line_offset - 1
|
|
1137
1323
|
start_colno += self.col_offset
|
|
1138
1324
|
end_lineno += self.line_offset - 1
|
|
1139
1325
|
end_colno += self.col_offset
|
|
1140
|
-
res = res + [start_lineno, start_colno, end_lineno, end_colno, expr_src]
|
|
1326
|
+
res = res + [start_lineno, start_colno, end_lineno, end_colno, expr_src, comments]
|
|
1141
1327
|
else:
|
|
1142
|
-
res = res + [0, 0, 0, 0, '']
|
|
1328
|
+
res = res + [0, 0, 0, 0, '', []]
|
|
1143
1329
|
return res
|