mindspore 2.1.0__cp38-none-any.whl → 2.2.0__cp38-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindspore might be problematic. Click here for more details.
- mindspore/.commit_id +1 -1
- mindspore/__init__.py +4 -1
- mindspore/_akg/akg/build_module.py +5 -6
- mindspore/_akg/akg/composite/build_module.py +49 -16
- mindspore/_akg/akg/composite/split_stitch.py +10 -11
- mindspore/_akg/akg/ms/info_version_adapt.py +67 -1
- mindspore/_akg/akg/tvm/api.py +4 -3
- mindspore/_akg/akg/tvm/autotvm/__init__.py +1 -2
- mindspore/_akg/akg/tvm/autotvm/graph_tuner/base_graph_tuner.py +1 -5
- mindspore/_akg/akg/tvm/autotvm/measure/__init__.py +1 -1
- mindspore/_akg/akg/tvm/autotvm/measure/measure.py +1 -10
- mindspore/_akg/akg/tvm/autotvm/measure/measure_methods.py +1 -372
- mindspore/_akg/akg/tvm/build_module.py +16 -1
- mindspore/_akg/akg/tvm/contrib/graph_runtime.py +0 -53
- mindspore/_akg/akg/tvm/hybrid/parser.py +7 -6
- mindspore/_akg/akg/tvm/ir_builder.py +1 -1
- mindspore/_akg/akg/tvm/module.py +1 -2
- mindspore/_akg/akg/tvm/stmt.py +2 -2
- mindspore/_akg/akg/utils/composite_op_helper.py +9 -10
- mindspore/_akg/akg/utils/kernel_exec.py +58 -260
- mindspore/_akg/akg/utils/result_analysis.py +4 -24
- mindspore/_akg/akg/utils/tbe_codegen_utils.py +198 -0
- mindspore/_c_dataengine.cpython-38-aarch64-linux-gnu.so +0 -0
- mindspore/_c_expression.cpython-38-aarch64-linux-gnu.so +0 -0
- mindspore/_c_mindrecord.cpython-38-aarch64-linux-gnu.so +0 -0
- mindspore/_check_jit_forbidden_api.py +3 -1
- mindspore/_checkparam.py +26 -32
- mindspore/_extends/graph_kernel/__init__.py +0 -1
- 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 +122 -15
- 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 +2 -2
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_helper.py +4 -4
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job.py +1 -1
- mindspore/_extends/parallel_compile/tbe_compiler/tbe_job_manager.py +1 -1
- mindspore/_extends/parse/__init__.py +12 -15
- mindspore/_extends/parse/namespace.py +7 -33
- mindspore/_extends/parse/parser.py +61 -71
- mindspore/_extends/parse/resources.py +1 -1
- mindspore/_extends/parse/standard_method.py +72 -95
- mindspore/_extends/parse/trope.py +1 -1
- 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-aarch64-linux-gnu.so +0 -0
- mindspore/amp.py +47 -11
- mindspore/bin/cache_admin +0 -0
- mindspore/bin/cache_server +0 -0
- mindspore/boost/boost.py +1 -8
- mindspore/boost/boost_cell_wrapper.py +3 -2
- mindspore/boost/grad_accumulation.py +1 -1
- mindspore/boost/group_loss_scale_manager.py +8 -7
- mindspore/common/__init__.py +5 -3
- mindspore/common/_jit_fallback_utils.py +6 -0
- mindspore/common/_register_for_adapter.py +2 -0
- mindspore/common/_register_for_tensor.py +2 -2
- mindspore/common/_stub_tensor.py +13 -0
- mindspore/common/_utils.py +13 -0
- mindspore/common/api.py +173 -258
- mindspore/common/auto_dynamic_shape.py +498 -0
- mindspore/common/dtype.py +18 -11
- mindspore/common/dump.py +6 -4
- mindspore/common/initializer.py +14 -14
- mindspore/common/jit_config.py +33 -15
- mindspore/common/lazy_inline.py +126 -7
- mindspore/common/mindir_util.py +101 -0
- mindspore/common/parameter.py +51 -41
- mindspore/common/seed.py +4 -4
- mindspore/common/sparse_tensor.py +13 -14
- mindspore/common/tensor.py +240 -145
- mindspore/communication/__init__.py +7 -4
- mindspore/communication/_comm_helper.py +83 -4
- mindspore/communication/management.py +152 -84
- mindspore/config/op_info.config +13 -2
- mindspore/config/super_bar_config.json +4 -2
- mindspore/context.py +143 -59
- mindspore/dataset/__init__.py +5 -5
- mindspore/dataset/audio/__init__.py +2 -2
- mindspore/dataset/audio/transforms.py +52 -52
- mindspore/dataset/callback/ds_callback.py +16 -2
- mindspore/dataset/core/config.py +68 -51
- mindspore/dataset/engine/cache_client.py +28 -5
- mindspore/dataset/engine/datasets.py +250 -112
- mindspore/dataset/engine/datasets_audio.py +43 -211
- mindspore/dataset/engine/datasets_standard_format.py +11 -35
- mindspore/dataset/engine/datasets_text.py +43 -67
- mindspore/dataset/engine/datasets_user_defined.py +86 -100
- mindspore/dataset/engine/datasets_vision.py +219 -1029
- mindspore/dataset/engine/iterators.py +11 -4
- mindspore/dataset/engine/obs/obs_mindrecord_dataset.py +4 -0
- mindspore/dataset/engine/obs/util.py +3 -0
- mindspore/dataset/engine/samplers.py +1 -1
- mindspore/dataset/engine/validators.py +19 -5
- mindspore/dataset/text/__init__.py +3 -3
- mindspore/dataset/text/transforms.py +101 -127
- mindspore/dataset/text/utils.py +205 -138
- mindspore/dataset/transforms/__init__.py +1 -1
- mindspore/dataset/transforms/py_transforms_util.py +40 -12
- mindspore/dataset/transforms/transforms.py +95 -40
- mindspore/dataset/utils/browse_dataset.py +8 -2
- mindspore/dataset/utils/line_reader.py +17 -19
- mindspore/dataset/vision/__init__.py +3 -3
- mindspore/dataset/vision/c_transforms.py +6 -3
- mindspore/dataset/vision/transforms.py +409 -287
- mindspore/dataset/vision/utils.py +13 -14
- mindspore/dataset/vision/validators.py +11 -1
- mindspore/experimental/map_parameter.py +14 -0
- mindspore/{nn/optim_ex → experimental/optim}/__init__.py +30 -29
- mindspore/{nn/optim_ex → experimental/optim}/adam.py +59 -66
- mindspore/{nn/optim_ex → experimental/optim}/adamw.py +181 -203
- mindspore/experimental/optim/lr_scheduler.py +1427 -0
- mindspore/{nn/optim_ex → experimental/optim}/optimizer.py +252 -259
- mindspore/{nn/optim_ex → experimental/optim}/sgd.py +147 -152
- mindspore/gen_ops.py +273 -0
- mindspore/include/OWNERS +0 -1
- mindspore/include/api/data_type.h +2 -1
- mindspore/include/api/graph.h +0 -15
- mindspore/include/api/kernel.h +2 -0
- mindspore/include/api/kernel_api.h +37 -12
- mindspore/include/api/model.h +0 -14
- mindspore/include/api/types.h +37 -4
- mindspore/include/c_api/ms/abstract.h +67 -0
- mindspore/include/c_api/ms/attribute.h +197 -0
- mindspore/include/c_api/ms/base/handle_types.h +43 -0
- mindspore/include/c_api/ms/base/macros.h +32 -0
- mindspore/include/c_api/ms/base/status.h +33 -0
- mindspore/include/c_api/ms/base/types.h +282 -0
- mindspore/include/c_api/ms/context.h +102 -0
- mindspore/include/c_api/ms/graph.h +160 -0
- mindspore/include/c_api/ms/node.h +606 -0
- mindspore/include/c_api/ms/tensor.h +161 -0
- mindspore/include/c_api/ms/value.h +84 -0
- mindspore/include/dataset/constants.h +6 -5
- mindspore/include/dataset/execute.h +23 -13
- mindspore/include/dataset/text.h +26 -26
- mindspore/include/dataset/transforms.h +13 -13
- mindspore/include/dataset/vision.h +60 -60
- mindspore/include/dataset/vision_ascend.h +5 -6
- mindspore/include/dataset/vision_lite.h +17 -17
- mindspore/include/mindapi/base/type_id.h +1 -0
- mindspore/include/mindapi/base/types.h +1 -0
- mindspore/lib/libdnnl.so.2 +0 -0
- mindspore/lib/libjemalloc.so.2 +0 -0
- mindspore/lib/libmindspore.so +0 -0
- mindspore/lib/libmindspore_backend.so +0 -0
- mindspore/lib/libmindspore_common.so +0 -0
- mindspore/lib/libmindspore_core.so +0 -0
- mindspore/lib/libmindspore_glog.so.0 +0 -0
- mindspore/lib/libmindspore_gpr.so.15 +0 -0
- mindspore/lib/libmindspore_grpc++.so.1 +0 -0
- mindspore/lib/libmindspore_grpc.so.15 +0 -0
- mindspore/lib/libmindspore_shared_lib.so +0 -0
- mindspore/lib/libnnacl.so +0 -0
- mindspore/lib/libopencv_core.so.4.5 +0 -0
- mindspore/lib/libopencv_imgcodecs.so.4.5 +0 -0
- mindspore/lib/libopencv_imgproc.so.4.5 +0 -0
- mindspore/lib/libps_cache.so +0 -0
- mindspore/lib/plugin/ascend/custom_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/libmindspore_ascend.so.1 +0 -0
- mindspore/lib/plugin/libmindspore_ascend.so.2 +0 -0
- mindspore/mindrecord/tools/imagenet_to_mr.py +1 -1
- mindspore/mindrecord/tools/mnist_to_mr.py +2 -2
- mindspore/nn/__init__.py +0 -2
- mindspore/nn/cell.py +316 -74
- mindspore/nn/dynamic_lr.py +21 -21
- mindspore/nn/layer/activation.py +21 -28
- mindspore/nn/layer/basic.py +15 -13
- mindspore/nn/layer/channel_shuffle.py +1 -1
- mindspore/nn/layer/container.py +271 -9
- mindspore/nn/layer/conv.py +310 -207
- mindspore/nn/layer/dense.py +8 -5
- mindspore/nn/layer/embedding.py +33 -27
- mindspore/nn/layer/flash_attention.py +82 -41
- mindspore/nn/layer/image.py +8 -6
- mindspore/nn/layer/math.py +13 -18
- mindspore/nn/layer/normalization.py +107 -66
- mindspore/nn/layer/padding.py +1 -1
- mindspore/nn/layer/pooling.py +131 -109
- mindspore/nn/layer/rnn_cells.py +22 -17
- mindspore/nn/layer/rnns.py +13 -16
- mindspore/nn/layer/thor_layer.py +1 -1
- mindspore/nn/layer/transformer.py +221 -154
- mindspore/nn/learning_rate_schedule.py +9 -1
- mindspore/nn/loss/loss.py +235 -174
- mindspore/nn/optim/ada_grad.py +2 -1
- mindspore/nn/optim/adadelta.py +1 -0
- mindspore/nn/optim/adafactor.py +2 -1
- mindspore/nn/optim/adam.py +7 -4
- mindspore/nn/optim/adamax.py +3 -2
- mindspore/nn/optim/adasum.py +2 -2
- mindspore/nn/optim/asgd.py +2 -3
- mindspore/nn/optim/ftrl.py +6 -5
- mindspore/nn/optim/lamb.py +7 -4
- mindspore/nn/optim/lars.py +1 -1
- mindspore/nn/optim/lazyadam.py +5 -3
- mindspore/nn/optim/momentum.py +2 -1
- mindspore/nn/optim/optimizer.py +53 -4
- mindspore/nn/optim/proximal_ada_grad.py +3 -4
- mindspore/nn/optim/rmsprop.py +4 -3
- mindspore/nn/optim/rprop.py +23 -12
- mindspore/nn/optim/sgd.py +26 -11
- mindspore/nn/optim/thor.py +9 -7
- mindspore/nn/probability/bijector/bijector.py +5 -5
- mindspore/nn/probability/bijector/power_transform.py +27 -27
- mindspore/nn/probability/bijector/softplus.py +3 -3
- mindspore/nn/probability/distribution/_utils/custom_ops.py +3 -3
- mindspore/nn/probability/distribution/bernoulli.py +5 -5
- mindspore/nn/probability/distribution/beta.py +3 -3
- mindspore/nn/probability/distribution/categorical.py +7 -7
- mindspore/nn/probability/distribution/cauchy.py +0 -1
- mindspore/nn/probability/distribution/distribution.py +3 -3
- mindspore/nn/probability/distribution/gamma.py +3 -3
- mindspore/nn/probability/distribution/geometric.py +4 -4
- mindspore/nn/probability/distribution/gumbel.py +4 -4
- mindspore/nn/probability/distribution/log_normal.py +2 -2
- mindspore/nn/probability/distribution/logistic.py +2 -2
- mindspore/nn/probability/distribution/poisson.py +4 -4
- mindspore/nn/probability/distribution/transformed_distribution.py +3 -3
- mindspore/nn/probability/distribution/uniform.py +6 -6
- mindspore/nn/wrap/cell_wrapper.py +78 -34
- mindspore/nn/wrap/grad_reducer.py +8 -5
- mindspore/nn/wrap/loss_scale.py +105 -42
- mindspore/numpy/array_creations.py +1 -2
- mindspore/numpy/array_ops.py +3 -2
- mindspore/offline_debug/convert_async.py +2 -2
- mindspore/ops/_grad_experimental/__init__.py +0 -5
- mindspore/ops/_grad_experimental/grad_array_ops.py +1 -2
- mindspore/ops/_grad_experimental/grad_comm_ops.py +15 -2
- mindspore/ops/_grad_experimental/grad_debug_ops.py +0 -37
- mindspore/ops/_grad_experimental/grad_implementations.py +10 -0
- mindspore/ops/_grad_experimental/grad_inner_ops.py +2 -216
- mindspore/ops/_grad_experimental/grad_math_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_sparse.py +15 -0
- mindspore/ops/_op_impl/_custom_op/dsd_back_impl.py +1 -1
- mindspore/ops/_op_impl/_custom_op/flash_attention/attention.py +165 -109
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_bwd.py +144 -86
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_fwd.py +172 -187
- mindspore/ops/_op_impl/_custom_op/flash_attention/flash_attention_impl.py +51 -57
- mindspore/ops/_op_impl/_custom_op/flash_attention/tik_ops_utils.py +6 -17
- mindspore/ops/_op_impl/_custom_op/flash_attention/tiling_strategy/wukong_tiling.py +1 -1
- mindspore/ops/_op_impl/aicpu/__init__.py +14 -2
- mindspore/ops/_op_impl/aicpu/bias_add_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/count_nonzero.py +43 -0
- mindspore/ops/_op_impl/aicpu/eps.py +32 -0
- mindspore/ops/_op_impl/aicpu/gamma.py +2 -2
- mindspore/ops/_op_impl/aicpu/log_uniform_candidate_sampler.py +6 -3
- mindspore/ops/_op_impl/aicpu/lu_unpack_grad.py +0 -1
- mindspore/ops/_op_impl/aicpu/multinomial.py +3 -3
- mindspore/ops/_op_impl/aicpu/parameterized_truncated_normal.py +15 -7
- mindspore/ops/_op_impl/aicpu/random_categorical.py +39 -19
- mindspore/ops/_op_impl/aicpu/random_choice_with_mask.py +5 -2
- mindspore/ops/_op_impl/aicpu/random_poisson.py +103 -52
- mindspore/ops/_op_impl/aicpu/random_shuffle.py +17 -15
- mindspore/ops/_op_impl/aicpu/{sparseaddmm.py → sparse_addmm.py} +2 -2
- mindspore/ops/_op_impl/aicpu/{sparsesparsemaximum.py → sparse_sparse_maximum.py} +4 -4
- mindspore/ops/_op_impl/aicpu/standard_laplace.py +5 -5
- mindspore/ops/_op_impl/aicpu/standard_normal.py +5 -5
- mindspore/ops/_op_impl/aicpu/truncated_normal.py +9 -7
- mindspore/ops/_op_impl/aicpu/uniform.py +5 -3
- mindspore/ops/_op_impl/aicpu/uniform_candidate_sampler.py +8 -4
- mindspore/ops/_op_impl/aicpu/uniform_int.py +5 -5
- mindspore/ops/_op_impl/aicpu/uniform_real.py +4 -4
- mindspore/ops/_op_impl/tbe/__init__.py +4 -4
- mindspore/ops/_op_impl/tbe/inplace_index_add.py +7 -3
- mindspore/ops/_op_impl/tbe/trans_data_ds.py +2 -0
- mindspore/ops/_primitive_cache.py +1 -1
- mindspore/ops/_tracefunc.py +45 -13
- mindspore/ops/_utils/utils.py +4 -1
- mindspore/ops/_vmap/vmap_array_ops.py +3 -3
- mindspore/ops/_vmap/vmap_base.py +3 -3
- mindspore/ops/_vmap/vmap_convolution_ops.py +1 -1
- mindspore/ops/_vmap/vmap_grad_math_ops.py +6 -4
- mindspore/ops/_vmap/vmap_math_ops.py +5 -2
- mindspore/ops/_vmap/vmap_nn_ops.py +61 -7
- mindspore/ops/arg_dtype_cast.py +54 -0
- mindspore/ops/composite/base.py +37 -10
- mindspore/ops/composite/math_ops.py +5 -4
- mindspore/ops/composite/multitype_ops/_compile_utils.py +273 -72
- mindspore/ops/composite/multitype_ops/_constexpr_utils.py +16 -9
- mindspore/ops/composite/multitype_ops/add_impl.py +43 -4
- mindspore/ops/composite/multitype_ops/getitem_impl.py +40 -2
- mindspore/ops/composite/multitype_ops/ones_like_impl.py +6 -0
- mindspore/ops/composite/multitype_ops/setitem_impl.py +2 -1
- mindspore/ops/composite/multitype_ops/zeros_like_impl.py +9 -0
- mindspore/ops/deprecated.py +304 -0
- mindspore/ops/function/__init__.py +4 -1
- mindspore/ops/function/array_func.py +167 -189
- mindspore/ops/function/clip_func.py +81 -13
- mindspore/ops/function/debug_func.py +1 -1
- mindspore/ops/function/grad/grad_func.py +18 -8
- mindspore/ops/function/image_func.py +10 -4
- mindspore/ops/function/linalg_func.py +5 -5
- mindspore/ops/function/math_func.py +575 -386
- mindspore/ops/function/nn_func.py +470 -251
- mindspore/ops/function/random_func.py +86 -56
- mindspore/ops/function/sparse_func.py +1 -1
- mindspore/ops/function/sparse_unary_func.py +14 -12
- mindspore/ops/function/vmap_func.py +6 -5
- mindspore/ops/functional.py +15 -10
- mindspore/ops/op_info_register.py +235 -19
- mindspore/ops/operations/__init__.py +25 -17
- mindspore/ops/operations/_grad_ops.py +52 -7
- mindspore/ops/operations/_inner_ops.py +213 -12
- mindspore/ops/operations/_quant_ops.py +4 -8
- mindspore/ops/operations/_sequence_ops.py +42 -0
- mindspore/ops/operations/array_ops.py +64 -280
- mindspore/ops/operations/comm_ops.py +105 -57
- mindspore/ops/operations/custom_ops.py +10 -3
- mindspore/ops/operations/debug_ops.py +8 -4
- mindspore/ops/operations/image_ops.py +18 -12
- mindspore/ops/operations/math_ops.py +185 -138
- mindspore/ops/operations/nn_ops.py +716 -492
- mindspore/ops/operations/other_ops.py +0 -22
- mindspore/ops/operations/random_ops.py +53 -111
- mindspore/ops/operations/sparse_ops.py +3 -1
- mindspore/ops/primitive.py +24 -18
- mindspore/parallel/_auto_parallel_context.py +68 -8
- mindspore/parallel/_cost_model_context.py +2 -2
- mindspore/parallel/_offload_context.py +17 -3
- mindspore/parallel/_parallel_serialization.py +2 -2
- mindspore/parallel/_ps_context.py +12 -0
- mindspore/parallel/_tensor.py +14 -12
- mindspore/parallel/_transformer/layers.py +5 -3
- mindspore/parallel/_transformer/loss.py +1 -0
- mindspore/parallel/_transformer/moe.py +2 -2
- mindspore/parallel/_transformer/op_parallel_config.py +12 -1
- mindspore/parallel/_transformer/transformer.py +23 -3
- mindspore/parallel/_utils.py +11 -7
- mindspore/parallel/algo_parameter_config.py +85 -5
- mindspore/parallel/checkpoint_transform.py +6 -10
- mindspore/parallel/shard.py +4 -4
- mindspore/profiler/common/struct_type.py +3 -3
- mindspore/profiler/common/util.py +3 -2
- mindspore/profiler/envprofiling.py +1 -1
- mindspore/profiler/parser/aicpu_data_parser.py +5 -3
- mindspore/profiler/parser/ascend_flops_generator.py +2 -2
- mindspore/profiler/parser/ascend_fpbp_generator.py +1 -1
- mindspore/profiler/parser/ascend_hccl_generator.py +17 -12
- mindspore/profiler/parser/ascend_msprof_exporter.py +104 -252
- mindspore/profiler/parser/ascend_msprof_generator.py +8 -8
- mindspore/profiler/parser/ascend_op_generator.py +5 -5
- mindspore/profiler/parser/ascend_steptrace_generator.py +6 -4
- mindspore/profiler/parser/ascend_timeline_generator.py +9 -6
- mindspore/profiler/parser/base_timeline_generator.py +9 -7
- mindspore/profiler/parser/cpu_gpu_timeline_generator.py +14 -10
- mindspore/profiler/parser/flops_parser.py +15 -11
- mindspore/profiler/parser/framework_parser.py +37 -21
- mindspore/profiler/parser/hccl_parser.py +16 -12
- mindspore/profiler/parser/integrator.py +22 -11
- mindspore/profiler/parser/memory_usage_parser.py +2 -2
- mindspore/profiler/parser/minddata_analyzer.py +12 -14
- mindspore/profiler/parser/minddata_pipeline_parser.py +1 -1
- mindspore/profiler/parser/msadvisor_parser.py +8 -4
- mindspore/profiler/parser/op_intermediate_parser.py +5 -2
- mindspore/profiler/parser/optime_parser.py +1 -1
- mindspore/profiler/parser/profiler_info.py +2 -2
- mindspore/profiler/parser/step_trace_parser.py +11 -14
- mindspore/profiler/profiling.py +139 -71
- mindspore/rewrite/api/node.py +102 -19
- mindspore/rewrite/api/node_type.py +5 -1
- mindspore/rewrite/api/scoped_value.py +9 -17
- mindspore/rewrite/api/symbol_tree.py +131 -47
- mindspore/rewrite/ast_helpers/__init__.py +2 -1
- mindspore/rewrite/ast_helpers/ast_finder.py +129 -0
- mindspore/rewrite/ast_helpers/ast_modifier.py +116 -104
- mindspore/rewrite/ast_transformers/flatten_recursive_stmt.py +93 -46
- mindspore/rewrite/common/rewrite_elog.py +5 -1
- mindspore/rewrite/namer.py +33 -24
- mindspore/rewrite/namespace.py +14 -5
- mindspore/{_extends/graph_kernel/expanders/complex → rewrite/node}/__init__.py +9 -9
- mindspore/rewrite/node/call_function.py +79 -0
- mindspore/rewrite/node/cell_container.py +135 -0
- mindspore/rewrite/node/control_flow.py +88 -0
- mindspore/rewrite/{node.py → node/node.py} +273 -234
- mindspore/rewrite/node/node_manager.py +254 -0
- mindspore/rewrite/{topological_manager.py → node/node_topological_manager.py} +13 -46
- mindspore/rewrite/parsers/arguments_parser.py +22 -21
- mindspore/rewrite/parsers/assign_parser.py +216 -221
- mindspore/rewrite/parsers/attribute_parser.py +9 -7
- mindspore/rewrite/parsers/class_def_parser.py +174 -113
- mindspore/rewrite/parsers/constant_parser.py +9 -6
- mindspore/rewrite/parsers/container_parser.py +9 -7
- mindspore/rewrite/parsers/for_parser.py +36 -15
- mindspore/rewrite/parsers/function_def_parser.py +24 -16
- mindspore/rewrite/parsers/if_parser.py +28 -24
- mindspore/rewrite/parsers/module_parser.py +196 -25
- mindspore/rewrite/{parser.py → parsers/parser.py} +4 -2
- mindspore/rewrite/{parser_register.py → parsers/parser_register.py} +1 -1
- mindspore/rewrite/parsers/return_parser.py +6 -6
- mindspore/rewrite/sparsify/sparse_transformer.py +12 -3
- mindspore/rewrite/sparsify/utils.py +1 -1
- mindspore/rewrite/symbol_tree.py +525 -577
- mindspore/rewrite/symbol_tree_builder.py +9 -193
- mindspore/rewrite/symbol_tree_dumper.py +2 -2
- mindspore/run_check/_check_version.py +2 -2
- mindspore/{ops/bprop_mindir → safeguard}/__init__.py +4 -3
- mindspore/safeguard/rewrite_obfuscation.py +517 -0
- mindspore/scipy/linalg.py +1 -1
- mindspore/scipy/optimize/minimize.py +7 -3
- mindspore/train/_utils.py +7 -3
- mindspore/train/amp.py +323 -123
- mindspore/train/anf_ir_pb2.py +14 -2
- mindspore/train/callback/_backup_and_restore.py +2 -12
- mindspore/train/callback/_callback.py +29 -4
- mindspore/train/callback/_checkpoint.py +23 -8
- mindspore/train/callback/_early_stop.py +2 -2
- mindspore/train/callback/_landscape.py +4 -4
- mindspore/train/callback/_loss_monitor.py +2 -2
- mindspore/train/callback/_on_request_exit.py +2 -2
- mindspore/train/callback/_reduce_lr_on_plateau.py +3 -4
- mindspore/train/callback/_summary_collector.py +14 -7
- mindspore/train/callback/_time_monitor.py +58 -5
- mindspore/train/data_sink.py +5 -11
- mindspore/train/dataset_helper.py +83 -57
- mindspore/train/loss_scale_manager.py +2 -2
- mindspore/train/metrics/__init__.py +3 -3
- mindspore/train/metrics/cosine_similarity.py +1 -1
- mindspore/train/metrics/hausdorff_distance.py +3 -2
- mindspore/train/metrics/mean_surface_distance.py +3 -2
- mindspore/train/metrics/metric.py +39 -19
- mindspore/train/metrics/roc.py +2 -2
- mindspore/train/metrics/root_mean_square_surface_distance.py +4 -3
- mindspore/train/mind_ir_pb2.py +85 -36
- mindspore/train/model.py +185 -45
- mindspore/train/serialization.py +390 -150
- mindspore/train/summary/_writer_pool.py +3 -2
- mindspore/train/summary/summary_record.py +14 -10
- mindspore/train/train_thor/convert_utils.py +3 -3
- mindspore/train/train_thor/dataset_helper.py +1 -1
- mindspore/version.py +1 -1
- {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/METADATA +6 -7
- {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/RECORD +447 -507
- {mindspore-2.1.0.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 -54
- mindspore/_extends/graph_kernel/expanders/_utils.py +0 -269
- mindspore/_extends/graph_kernel/expanders/addn.py +0 -33
- mindspore/_extends/graph_kernel/expanders/batchnorm.py +0 -152
- mindspore/_extends/graph_kernel/expanders/batchnorm_grad.py +0 -105
- mindspore/_extends/graph_kernel/expanders/clip_by_norm_no_div_sum.py +0 -33
- mindspore/_extends/graph_kernel/expanders/complex/abs.py +0 -30
- mindspore/_extends/graph_kernel/expanders/complex/add.py +0 -44
- mindspore/_extends/graph_kernel/expanders/complex/div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/mul.py +0 -52
- mindspore/_extends/graph_kernel/expanders/complex/real_div.py +0 -62
- mindspore/_extends/graph_kernel/expanders/complex/sub.py +0 -45
- mindspore/_extends/graph_kernel/expanders/conv2d.py +0 -200
- mindspore/_extends/graph_kernel/expanders/dropout_grad.py +0 -30
- mindspore/_extends/graph_kernel/expanders/equal_count.py +0 -50
- mindspore/_extends/graph_kernel/expanders/erfc.py +0 -35
- mindspore/_extends/graph_kernel/expanders/expand_dims.py +0 -50
- mindspore/_extends/graph_kernel/expanders/fused_adam.py +0 -44
- mindspore/_extends/graph_kernel/expanders/fused_adam_weight_decay.py +0 -47
- mindspore/_extends/graph_kernel/expanders/fused_mul_add.py +0 -28
- mindspore/_extends/graph_kernel/expanders/gelu_grad.py +0 -70
- mindspore/_extends/graph_kernel/expanders/gkdropout.py +0 -40
- mindspore/_extends/graph_kernel/expanders/identity.py +0 -25
- mindspore/_extends/graph_kernel/expanders/layernorm.py +0 -93
- mindspore/_extends/graph_kernel/expanders/layernorm_grad.py +0 -113
- mindspore/_extends/graph_kernel/expanders/logsoftmax.py +0 -46
- mindspore/_extends/graph_kernel/expanders/logsoftmax_grad.py +0 -36
- mindspore/_extends/graph_kernel/expanders/matmul.py +0 -80
- mindspore/_extends/graph_kernel/expanders/maximum_grad.py +0 -59
- mindspore/_extends/graph_kernel/expanders/minimum_grad.py +0 -80
- mindspore/_extends/graph_kernel/expanders/oneslike.py +0 -26
- mindspore/_extends/graph_kernel/expanders/reduce_mean.py +0 -43
- mindspore/_extends/graph_kernel/expanders/relu_grad.py +0 -32
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits.py +0 -41
- mindspore/_extends/graph_kernel/expanders/sigmoid_cross_entropy_with_logits_grad.py +0 -35
- mindspore/_extends/graph_kernel/expanders/sigmoid_grad.py +0 -31
- mindspore/_extends/graph_kernel/expanders/slice.py +0 -35
- mindspore/_extends/graph_kernel/expanders/softmax_cross_entropy_with_logits.py +0 -42
- mindspore/_extends/graph_kernel/expanders/softmax_grad_ext.py +0 -41
- mindspore/_extends/graph_kernel/expanders/softsign.py +0 -28
- mindspore/_extends/graph_kernel/expanders/sqrt_grad.py +0 -29
- mindspore/_extends/graph_kernel/expanders/square_sum_all.py +0 -44
- mindspore/_extends/graph_kernel/expanders/square_sum_v1.py +0 -37
- mindspore/_extends/graph_kernel/expanders/squared_difference.py +0 -43
- mindspore/_extends/graph_kernel/expanders/tanh_grad.py +0 -31
- mindspore/_extends/graph_kernel/model/op_infer.py +0 -506
- mindspore/dataset/datapreprocess/__init__.py +0 -20
- mindspore/dataset/datapreprocess/preprocess_imagenet_validate_dataset.py +0 -54
- mindspore/include/api/net.h +0 -142
- mindspore/nn/lr_scheduler.py +0 -262
- mindspore/ops/_grad_experimental/grad_image_ops.py +0 -248
- mindspore/ops/_grad_experimental/grad_linalg_ops.py +0 -181
- mindspore/ops/_grad_experimental/grad_other_ops.py +0 -72
- mindspore/ops/_grad_experimental/grad_scalar_ops.py +0 -112
- mindspore/ops/_grad_experimental/grad_sequence_ops.py +0 -351
- mindspore/ops/bprop_mindir/BNTrainingReduce_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Broadcast_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Depend_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/DepthwiseConv2dNative_bprop.mindir +0 -138
- mindspore/ops/bprop_mindir/EmbeddingLookup_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Load_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/ScatterNonAliasingAdd_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseGatherV2_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/SparseSoftmaxCrossEntropyWithLogits_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Switch_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TransShape_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/TupleGetItem_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unique_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/Unstack_bprop.mindir +0 -0
- mindspore/ops/bprop_mindir/generate_mindir.py +0 -114
- mindspore/rewrite/node_visitor.py +0 -44
- {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/WHEEL +0 -0
- {mindspore-2.1.0.dist-info → mindspore-2.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,431 +0,0 @@
|
|
|
1
|
-
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
-
# or more contributor license agreements. See the NOTICE file
|
|
3
|
-
# distributed with this work for additional information
|
|
4
|
-
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
-
# to you under the Apache License, Version 2.0 (the
|
|
6
|
-
# "License"); you may not use this file except in compliance
|
|
7
|
-
# with the License. You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing,
|
|
12
|
-
# software distributed under the License is distributed on an
|
|
13
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
-
# KIND, either express or implied. See the License for the
|
|
15
|
-
# specific language governing permissions and limitations
|
|
16
|
-
# under the License.
|
|
17
|
-
"""RPC Tracker, tracks and distributes the TVM RPC resources.
|
|
18
|
-
|
|
19
|
-
This folder implemements the tracker server logic.
|
|
20
|
-
|
|
21
|
-
Note
|
|
22
|
-
----
|
|
23
|
-
Tracker is a TCP based rest api with the following protocol:
|
|
24
|
-
- Initial handshake to the peer
|
|
25
|
-
- RPC_TRACKER_MAGIC
|
|
26
|
-
- Normal message: [size(int32), json-data]
|
|
27
|
-
- Each message is initiated by the client, and the tracker replies with a json.
|
|
28
|
-
|
|
29
|
-
List of available APIs:
|
|
30
|
-
|
|
31
|
-
- PING: check if tracker is alive
|
|
32
|
-
- input: [TrackerCode.PING]
|
|
33
|
-
- return: TrackerCode.SUCCESS
|
|
34
|
-
- PUT: report resource to tracker
|
|
35
|
-
- input: [TrackerCode.PUT, [port, match-key]]
|
|
36
|
-
- return: TrackerCode.SUCCESS
|
|
37
|
-
- note: match-key is a randomly generated identify the resource during connection.
|
|
38
|
-
- REQUEST: request a new resource from tracker
|
|
39
|
-
- input: [TrackerCode.REQUEST, [key, user, priority]]
|
|
40
|
-
- return: [TrackerCode.SUCCESS, [url, port, match-key]]
|
|
41
|
-
"""
|
|
42
|
-
# pylint: disable=invalid-name
|
|
43
|
-
|
|
44
|
-
import heapq
|
|
45
|
-
import time
|
|
46
|
-
import logging
|
|
47
|
-
import socket
|
|
48
|
-
import multiprocessing
|
|
49
|
-
import errno
|
|
50
|
-
import struct
|
|
51
|
-
import json
|
|
52
|
-
|
|
53
|
-
try:
|
|
54
|
-
from tornado import ioloop
|
|
55
|
-
from . import tornado_util
|
|
56
|
-
except ImportError as error_msg:
|
|
57
|
-
raise ImportError(
|
|
58
|
-
"RPCTracker module requires tornado package %s. Try 'pip install tornado'." % error_msg)
|
|
59
|
-
|
|
60
|
-
from .._ffi.base import py_str
|
|
61
|
-
from . import base
|
|
62
|
-
from .base import RPC_TRACKER_MAGIC, TrackerCode
|
|
63
|
-
|
|
64
|
-
logger = logging.getLogger("RPCTracker")
|
|
65
|
-
|
|
66
|
-
class Scheduler(object):
|
|
67
|
-
"""Abstratc interface of scheduler."""
|
|
68
|
-
def put(self, value):
|
|
69
|
-
"""Push a resource into the scheduler.
|
|
70
|
-
|
|
71
|
-
This function can trigger callbacks in the scheduler.
|
|
72
|
-
|
|
73
|
-
Parameters
|
|
74
|
-
----------
|
|
75
|
-
value : object
|
|
76
|
-
The resource to be put in the scheduler.
|
|
77
|
-
"""
|
|
78
|
-
raise NotImplementedError()
|
|
79
|
-
|
|
80
|
-
def request(self, user, priority, callback):
|
|
81
|
-
"""Request a resource.
|
|
82
|
-
|
|
83
|
-
Parameters
|
|
84
|
-
----------
|
|
85
|
-
user : str
|
|
86
|
-
The user who is requesting the resource.
|
|
87
|
-
|
|
88
|
-
priority : int
|
|
89
|
-
The job priority
|
|
90
|
-
|
|
91
|
-
callback : function: value->bool
|
|
92
|
-
Callback function to receive an resource when ready
|
|
93
|
-
returns True if the resource is consumed.
|
|
94
|
-
"""
|
|
95
|
-
raise NotImplementedError()
|
|
96
|
-
|
|
97
|
-
def remove(self, value):
|
|
98
|
-
"""Remove a resource in the scheduler
|
|
99
|
-
|
|
100
|
-
Parameters
|
|
101
|
-
----------
|
|
102
|
-
value: object
|
|
103
|
-
The resource to remove
|
|
104
|
-
"""
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
def summary(self):
|
|
108
|
-
"""Get summary information of the scheduler."""
|
|
109
|
-
raise NotImplementedError()
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
class PriorityScheduler(Scheduler):
|
|
113
|
-
"""Priority based scheduler, FIFO based on time"""
|
|
114
|
-
def __init__(self, key):
|
|
115
|
-
self._key = key
|
|
116
|
-
self._values = []
|
|
117
|
-
self._requests = []
|
|
118
|
-
|
|
119
|
-
def _schedule(self):
|
|
120
|
-
while self._requests and self._values:
|
|
121
|
-
value = self._values.pop(0)
|
|
122
|
-
item = heapq.heappop(self._requests)
|
|
123
|
-
callback = item[-1]
|
|
124
|
-
if callback(value[1:]):
|
|
125
|
-
value[0].pending_matchkeys.remove(value[-1])
|
|
126
|
-
else:
|
|
127
|
-
self._values.append(value)
|
|
128
|
-
|
|
129
|
-
def put(self, value):
|
|
130
|
-
self._values.append(value)
|
|
131
|
-
self._schedule()
|
|
132
|
-
|
|
133
|
-
def request(self, user, priority, callback):
|
|
134
|
-
heapq.heappush(self._requests, (-priority, time.time(), callback))
|
|
135
|
-
self._schedule()
|
|
136
|
-
|
|
137
|
-
def remove(self, value):
|
|
138
|
-
if value in self._values:
|
|
139
|
-
self._values.remove(value)
|
|
140
|
-
self._schedule()
|
|
141
|
-
|
|
142
|
-
def summary(self):
|
|
143
|
-
"""Get summary information of the scheduler."""
|
|
144
|
-
return {"free": len(self._values),
|
|
145
|
-
"pending": len(self._requests)}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
class TCPEventHandler(tornado_util.TCPHandler):
|
|
149
|
-
"""Base asynchronize message handler.
|
|
150
|
-
|
|
151
|
-
The tracker and client follows a simple message protocol.
|
|
152
|
-
The message is in form [nbytes(int32)] [json-str].
|
|
153
|
-
All the information is packed in json-str
|
|
154
|
-
"""
|
|
155
|
-
def __init__(self, tracker, sock, addr):
|
|
156
|
-
super(TCPEventHandler, self).__init__(sock)
|
|
157
|
-
self._data = bytearray()
|
|
158
|
-
self._tracker = tracker
|
|
159
|
-
self._msg_size = 0
|
|
160
|
-
self._addr = addr
|
|
161
|
-
self._init_req_nbytes = 4
|
|
162
|
-
self._info = {"addr": addr}
|
|
163
|
-
# list of pending match keys that has not been used.
|
|
164
|
-
self.pending_matchkeys = set()
|
|
165
|
-
self._tracker._connections.add(self)
|
|
166
|
-
self.put_values = []
|
|
167
|
-
|
|
168
|
-
def name(self):
|
|
169
|
-
"""name of connection"""
|
|
170
|
-
return "TCPSocket: %s" % str(self._addr)
|
|
171
|
-
|
|
172
|
-
def summary(self):
|
|
173
|
-
"""Summary of this connection"""
|
|
174
|
-
return self._info
|
|
175
|
-
|
|
176
|
-
def _init_conn(self, message):
|
|
177
|
-
"""Initialie the connection"""
|
|
178
|
-
if len(message) != 4:
|
|
179
|
-
logger.warning("Invalid connection from %s", self.name())
|
|
180
|
-
self.close()
|
|
181
|
-
magic = struct.unpack('<i', message)[0]
|
|
182
|
-
if magic != RPC_TRACKER_MAGIC:
|
|
183
|
-
logger.warning("Invalid magic from %s", self.name())
|
|
184
|
-
self.close()
|
|
185
|
-
self.write_message(struct.pack('<i', RPC_TRACKER_MAGIC), binary=True)
|
|
186
|
-
self._init_req_nbytes = 0
|
|
187
|
-
|
|
188
|
-
def on_message(self, message):
|
|
189
|
-
"""Callback when a message is received.
|
|
190
|
-
|
|
191
|
-
Parameters
|
|
192
|
-
----------
|
|
193
|
-
message : bytearray
|
|
194
|
-
The bytes received
|
|
195
|
-
"""
|
|
196
|
-
assert isinstance(message, bytes)
|
|
197
|
-
if self._init_req_nbytes:
|
|
198
|
-
self._init_conn(message)
|
|
199
|
-
return
|
|
200
|
-
|
|
201
|
-
self._data += message
|
|
202
|
-
|
|
203
|
-
while True:
|
|
204
|
-
if self._msg_size == 0:
|
|
205
|
-
if len(self._data) >= 4:
|
|
206
|
-
self._msg_size = struct.unpack('<i', self._data[:4])[0]
|
|
207
|
-
else:
|
|
208
|
-
return
|
|
209
|
-
if self._msg_size != 0 and len(self._data) >= self._msg_size + 4:
|
|
210
|
-
msg = py_str(bytes(self._data[4:4 + self._msg_size]))
|
|
211
|
-
del self._data[:4 + self._msg_size]
|
|
212
|
-
self._msg_size = 0
|
|
213
|
-
# pylint: disable=broad-except
|
|
214
|
-
self.call_handler(json.loads(msg))
|
|
215
|
-
else:
|
|
216
|
-
return
|
|
217
|
-
|
|
218
|
-
def ret_value(self, data):
|
|
219
|
-
"""return value to the output"""
|
|
220
|
-
data = json.dumps(data)
|
|
221
|
-
self.write_message(
|
|
222
|
-
struct.pack('<i', len(data)), binary=True)
|
|
223
|
-
self.write_message(data.encode("utf-8"), binary=True)
|
|
224
|
-
|
|
225
|
-
def call_handler(self, args):
|
|
226
|
-
"""Event handler when json request arrives."""
|
|
227
|
-
code = args[0]
|
|
228
|
-
if code == TrackerCode.PUT:
|
|
229
|
-
key = args[1]
|
|
230
|
-
port, matchkey = args[2]
|
|
231
|
-
self.pending_matchkeys.add(matchkey)
|
|
232
|
-
# got custom address (from rpc server)
|
|
233
|
-
if len(args) >= 4 and args[3] is not None:
|
|
234
|
-
value = (self, args[3], port, matchkey)
|
|
235
|
-
else:
|
|
236
|
-
value = (self, self._addr[0], port, matchkey)
|
|
237
|
-
self._tracker.put(key, value)
|
|
238
|
-
self.put_values.append(value)
|
|
239
|
-
self.ret_value(TrackerCode.SUCCESS)
|
|
240
|
-
elif code == TrackerCode.REQUEST:
|
|
241
|
-
key = args[1]
|
|
242
|
-
user = args[2]
|
|
243
|
-
priority = args[3]
|
|
244
|
-
def _cb(value):
|
|
245
|
-
# if the connection is already closed
|
|
246
|
-
if not self._sock:
|
|
247
|
-
return False
|
|
248
|
-
try:
|
|
249
|
-
self.ret_value([TrackerCode.SUCCESS, value])
|
|
250
|
-
except (socket.error, IOError):
|
|
251
|
-
return False
|
|
252
|
-
return True
|
|
253
|
-
self._tracker.request(key, user, priority, _cb)
|
|
254
|
-
elif code == TrackerCode.PING:
|
|
255
|
-
self.ret_value(TrackerCode.SUCCESS)
|
|
256
|
-
elif code == TrackerCode.GET_PENDING_MATCHKEYS:
|
|
257
|
-
self.ret_value(list(self.pending_matchkeys))
|
|
258
|
-
elif code == TrackerCode.STOP:
|
|
259
|
-
# safe stop tracker
|
|
260
|
-
if self._tracker._stop_key == args[1]:
|
|
261
|
-
self.ret_value(TrackerCode.SUCCESS)
|
|
262
|
-
self._tracker.stop()
|
|
263
|
-
else:
|
|
264
|
-
self.ret_value(TrackerCode.FAIL)
|
|
265
|
-
elif code == TrackerCode.UPDATE_INFO:
|
|
266
|
-
self._info.update(args[1])
|
|
267
|
-
self.ret_value(TrackerCode.SUCCESS)
|
|
268
|
-
elif code == TrackerCode.SUMMARY:
|
|
269
|
-
status = self._tracker.summary()
|
|
270
|
-
self.ret_value([TrackerCode.SUCCESS, status])
|
|
271
|
-
else:
|
|
272
|
-
logger.warning("Unknown tracker code %d", code)
|
|
273
|
-
self.close()
|
|
274
|
-
|
|
275
|
-
def on_close(self):
|
|
276
|
-
self._tracker.close(self)
|
|
277
|
-
|
|
278
|
-
def on_error(self, err):
|
|
279
|
-
logger.warning("%s: Error in RPC Tracker: %s", self.name(), err)
|
|
280
|
-
self.close()
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
class TrackerServerHandler(object):
|
|
284
|
-
"""Tracker that tracks the resources."""
|
|
285
|
-
def __init__(self, sock, stop_key):
|
|
286
|
-
self._scheduler_map = {}
|
|
287
|
-
self._sock = sock
|
|
288
|
-
self._sock.setblocking(0)
|
|
289
|
-
self._ioloop = ioloop.IOLoop.current()
|
|
290
|
-
self._stop_key = stop_key
|
|
291
|
-
self._connections = set()
|
|
292
|
-
def _event_handler(_, events):
|
|
293
|
-
self._on_event(events)
|
|
294
|
-
self._ioloop.add_handler(
|
|
295
|
-
self._sock.fileno(), _event_handler, self._ioloop.READ)
|
|
296
|
-
|
|
297
|
-
def _on_event(self, _):
|
|
298
|
-
while True:
|
|
299
|
-
try:
|
|
300
|
-
conn, addr = self._sock.accept()
|
|
301
|
-
TCPEventHandler(self, conn, addr)
|
|
302
|
-
except socket.error as err:
|
|
303
|
-
if err.args[0] in (errno.EAGAIN, errno.EWOULDBLOCK):
|
|
304
|
-
break
|
|
305
|
-
|
|
306
|
-
def create_scheduler(self, key):
|
|
307
|
-
"""Create a new scheduler."""
|
|
308
|
-
return PriorityScheduler(key)
|
|
309
|
-
|
|
310
|
-
def put(self, key, value):
|
|
311
|
-
"""Report a new resource to the tracker."""
|
|
312
|
-
if key not in self._scheduler_map:
|
|
313
|
-
self._scheduler_map[key] = self.create_scheduler(key)
|
|
314
|
-
self._scheduler_map[key].put(value)
|
|
315
|
-
|
|
316
|
-
def request(self, key, user, priority, callback):
|
|
317
|
-
"""Request a new resource."""
|
|
318
|
-
if key not in self._scheduler_map:
|
|
319
|
-
self._scheduler_map[key] = self.create_scheduler(key)
|
|
320
|
-
self._scheduler_map[key].request(user, priority, callback)
|
|
321
|
-
|
|
322
|
-
def close(self, conn):
|
|
323
|
-
self._connections.remove(conn)
|
|
324
|
-
if 'key' in conn._info:
|
|
325
|
-
key = conn._info['key'].split(':')[1] # 'server:rasp3b' -> 'rasp3b'
|
|
326
|
-
for value in conn.put_values:
|
|
327
|
-
self._scheduler_map[key].remove(value)
|
|
328
|
-
|
|
329
|
-
def stop(self):
|
|
330
|
-
"""Safely stop tracker."""
|
|
331
|
-
for conn in list(self._connections):
|
|
332
|
-
conn.close()
|
|
333
|
-
self._sock.close()
|
|
334
|
-
self._ioloop.stop()
|
|
335
|
-
|
|
336
|
-
def summary(self):
|
|
337
|
-
"""Return a dict summarizing current status."""
|
|
338
|
-
qinfo = {}
|
|
339
|
-
for k, v in self._scheduler_map.items():
|
|
340
|
-
qinfo[k] = v.summary()
|
|
341
|
-
cinfo = []
|
|
342
|
-
# ignore client connections without key
|
|
343
|
-
for conn in self._connections:
|
|
344
|
-
res = conn.summary()
|
|
345
|
-
if res.get("key", "").startswith("server"):
|
|
346
|
-
cinfo.append(res)
|
|
347
|
-
return {"queue_info": qinfo, "server_info": cinfo}
|
|
348
|
-
|
|
349
|
-
def run(self):
|
|
350
|
-
"""Run the tracker server"""
|
|
351
|
-
self._ioloop.start()
|
|
352
|
-
|
|
353
|
-
def _tracker_server(listen_sock, stop_key):
|
|
354
|
-
handler = TrackerServerHandler(listen_sock, stop_key)
|
|
355
|
-
handler.run()
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
class Tracker(object):
|
|
359
|
-
"""Start RPC tracker on a seperate process.
|
|
360
|
-
|
|
361
|
-
Python implementation based on multi-processing.
|
|
362
|
-
|
|
363
|
-
Parameters
|
|
364
|
-
----------
|
|
365
|
-
host : str
|
|
366
|
-
The host url of the server.
|
|
367
|
-
|
|
368
|
-
port : int
|
|
369
|
-
The TCP port to be bind to
|
|
370
|
-
|
|
371
|
-
port_end : int, optional
|
|
372
|
-
The end TCP port to search
|
|
373
|
-
|
|
374
|
-
silent: bool, optional
|
|
375
|
-
Whether run in silent mode
|
|
376
|
-
"""
|
|
377
|
-
def __init__(self,
|
|
378
|
-
host,
|
|
379
|
-
port=9190,
|
|
380
|
-
port_end=9199,
|
|
381
|
-
silent=False):
|
|
382
|
-
if silent:
|
|
383
|
-
logger.setLevel(logging.WARN)
|
|
384
|
-
|
|
385
|
-
sock = socket.socket(base.get_addr_family((host, port)), socket.SOCK_STREAM)
|
|
386
|
-
self.port = None
|
|
387
|
-
self.stop_key = base.random_key("tracker")
|
|
388
|
-
for my_port in range(port, port_end):
|
|
389
|
-
try:
|
|
390
|
-
sock.bind((host, my_port))
|
|
391
|
-
self.port = my_port
|
|
392
|
-
break
|
|
393
|
-
except socket.error as sock_err:
|
|
394
|
-
if sock_err.errno in [98, 48]:
|
|
395
|
-
continue
|
|
396
|
-
else:
|
|
397
|
-
raise sock_err
|
|
398
|
-
if not self.port:
|
|
399
|
-
raise ValueError("cannot bind to any port in [%d, %d)" % (port, port_end))
|
|
400
|
-
logger.info("bind to %s:%d", host, self.port)
|
|
401
|
-
sock.listen(1)
|
|
402
|
-
self.proc = multiprocessing.Process(
|
|
403
|
-
target=_tracker_server, args=(sock, self.stop_key))
|
|
404
|
-
self.proc.start()
|
|
405
|
-
self.host = host
|
|
406
|
-
# close the socket on this process
|
|
407
|
-
sock.close()
|
|
408
|
-
|
|
409
|
-
def _stop_tracker(self):
|
|
410
|
-
sock = socket.socket(base.get_addr_family((self.host, self.port)), socket.SOCK_STREAM)
|
|
411
|
-
sock.connect((self.host, self.port))
|
|
412
|
-
sock.sendall(struct.pack("<i", base.RPC_TRACKER_MAGIC))
|
|
413
|
-
magic = struct.unpack("<i", base.recvall(sock, 4))[0]
|
|
414
|
-
assert magic == base.RPC_TRACKER_MAGIC
|
|
415
|
-
base.sendjson(sock, [TrackerCode.STOP, self.stop_key])
|
|
416
|
-
assert base.recvjson(sock) == TrackerCode.SUCCESS
|
|
417
|
-
sock.close()
|
|
418
|
-
|
|
419
|
-
def terminate(self):
|
|
420
|
-
"""Terminate the server process"""
|
|
421
|
-
if self.proc:
|
|
422
|
-
if self.proc.is_alive():
|
|
423
|
-
self._stop_tracker()
|
|
424
|
-
self.proc.join(1)
|
|
425
|
-
if self.proc.is_alive():
|
|
426
|
-
logger.info("Terminating Tracker Server...")
|
|
427
|
-
self.proc.terminate()
|
|
428
|
-
self.proc = None
|
|
429
|
-
|
|
430
|
-
def __del__(self):
|
|
431
|
-
self.terminate()
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Copyright 2020-2022 Huawei Technologies Co., Ltd
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ============================================================================
|
|
15
|
-
"""generate json desc for graph kernel ops"""
|
|
16
|
-
import json
|
|
17
|
-
import json.decoder as jd
|
|
18
|
-
import traceback
|
|
19
|
-
from mindspore import log as logger
|
|
20
|
-
import mindspore._extends.graph_kernel.expanders as expanders
|
|
21
|
-
from mindspore._extends.graph_kernel.model.model import GraphKernelUnsupportedException
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def create_expander(expand_info):
|
|
25
|
-
"""Create an expander according to op name"""
|
|
26
|
-
def call_func(func, arg):
|
|
27
|
-
return func(arg)
|
|
28
|
-
op_name = str(expand_info['name'])
|
|
29
|
-
if not hasattr(expanders, op_name):
|
|
30
|
-
raise GraphKernelUnsupportedException("Expander does not support op: {}".format(op_name))
|
|
31
|
-
expander = getattr(expanders, op_name)
|
|
32
|
-
return call_func(expander, expand_info)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def extract_expand_info(kernel_info):
|
|
36
|
-
"""Convert the json into a more friendly format"""
|
|
37
|
-
input_desc = []
|
|
38
|
-
if 'input_desc' in kernel_info and kernel_info['input_desc']:
|
|
39
|
-
for desc in kernel_info['input_desc']:
|
|
40
|
-
input_desc += desc
|
|
41
|
-
attrs = {}
|
|
42
|
-
if 'attr' in kernel_info and kernel_info['attr']:
|
|
43
|
-
for attr in kernel_info["attr"]:
|
|
44
|
-
attrs[attr["name"]] = attr["value"]
|
|
45
|
-
expand_info = {
|
|
46
|
-
"name": kernel_info["name"],
|
|
47
|
-
"input_desc": input_desc,
|
|
48
|
-
"output_desc": kernel_info["output_desc"],
|
|
49
|
-
"attr": attrs,
|
|
50
|
-
"process": kernel_info["process"],
|
|
51
|
-
}
|
|
52
|
-
return expand_info
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def get_op_expander(json_str: str):
|
|
56
|
-
"""get op expander by json info"""
|
|
57
|
-
try:
|
|
58
|
-
kernel_info = json.loads(json_str)
|
|
59
|
-
expand_info = extract_expand_info(kernel_info)
|
|
60
|
-
|
|
61
|
-
expander = create_expander(expand_info)
|
|
62
|
-
graph = expander.run()
|
|
63
|
-
|
|
64
|
-
# dump graph to json desc.
|
|
65
|
-
desc = graph.dump()
|
|
66
|
-
return json.dumps(desc)
|
|
67
|
-
|
|
68
|
-
except jd.JSONDecodeError:
|
|
69
|
-
logger.error("Decode input json str failed in expander, json is: {}".format(json_str))
|
|
70
|
-
logger.error(traceback.format_exc())
|
|
71
|
-
return ""
|
|
72
|
-
except GraphKernelUnsupportedException as e:
|
|
73
|
-
logger.info(e.message)
|
|
74
|
-
return ""
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
def get_expander_op_list():
|
|
78
|
-
"""get supported expander op list"""
|
|
79
|
-
op_list = [name for name in dir(expanders) if name[0].isupper()]
|
|
80
|
-
return ' '.join(op_list)
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Copyright 2020-2022 Huawei Technologies Co., Ltd
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
# ============================================================================
|
|
15
|
-
"""expanders init. Deprecated, please add the new operators in the c++ file"""
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
from .addn import AddN
|
|
19
|
-
from .batchnorm import BatchNorm
|
|
20
|
-
from .batchnorm_grad import BatchNormGrad
|
|
21
|
-
from .clip_by_norm_no_div_sum import ClipByNormNoDivSum
|
|
22
|
-
from .conv2d import Conv2D
|
|
23
|
-
from .complex import CAbs, CAdd, CDiv, CMul, CSub, CRealDiv
|
|
24
|
-
from .dropout_grad import DropoutGrad
|
|
25
|
-
from .equal_count import EqualCount
|
|
26
|
-
from .erfc import Erfc
|
|
27
|
-
from .fused_adam import FusedAdam
|
|
28
|
-
from .fused_adam_weight_decay import FusedAdamWeightDecay
|
|
29
|
-
from .fused_mul_add import FusedMulAdd
|
|
30
|
-
from .gelu_grad import GeLUGrad
|
|
31
|
-
from .gkdropout import GkDropout
|
|
32
|
-
from .identity import Identity
|
|
33
|
-
from .layernorm import LayerNorm
|
|
34
|
-
from .layernorm_grad import LayerNormGrad
|
|
35
|
-
from .logsoftmax import LogSoftmax
|
|
36
|
-
from .logsoftmax_grad import LogSoftmaxGrad
|
|
37
|
-
from .matmul import BatchMatMul, MatMul
|
|
38
|
-
from .maximum_grad import MaximumGrad
|
|
39
|
-
from .minimum_grad import MinimumGrad
|
|
40
|
-
from .oneslike import OnesLike
|
|
41
|
-
from .reduce_mean import ReduceMean
|
|
42
|
-
from .relu_grad import ReluGrad
|
|
43
|
-
from .sigmoid_cross_entropy_with_logits import SigmoidCrossEntropyWithLogits
|
|
44
|
-
from .sigmoid_cross_entropy_with_logits_grad import SigmoidCrossEntropyWithLogitsGrad
|
|
45
|
-
from .sigmoid_grad import SigmoidGrad
|
|
46
|
-
from .slice import Slice
|
|
47
|
-
from .softmax_cross_entropy_with_logits import SoftmaxCrossEntropyWithLogits
|
|
48
|
-
from .softmax_grad_ext import SoftmaxGradExt
|
|
49
|
-
from .sqrt_grad import SqrtGrad
|
|
50
|
-
from .squared_difference import SquaredDifference
|
|
51
|
-
from .square_sum_v1 import SquareSumV1
|
|
52
|
-
from .square_sum_all import SquareSumAll
|
|
53
|
-
from .tanh_grad import TanhGrad
|
|
54
|
-
from .softsign import Softsign
|