diff --git a/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py b/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py index 79fcf592b5..f935087be2 100644 --- a/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py +++ b/mindspore/_extends/parallel_compile/tbe_compiler/tbe_process.py @@ -19,9 +19,11 @@ import subprocess import sys import os import json +from mindspore import log as logger from .common import check_kernel_info, TBEException from .helper import _op_select_format, _check_supported + def create_tbe_parallel_process(): """ create TBEParallelCompiler object @@ -31,6 +33,7 @@ def create_tbe_parallel_process(): """ return tbe_process + def op_select_format(op_json: str): """ call op's op_select_format to get op supported format @@ -75,6 +78,7 @@ def check_supported(op_json: str): return ret + def run_compiler(op_json): """ run compiler to compile op with subprocess @@ -96,6 +100,7 @@ def run_compiler(op_json): except subprocess.CalledProcessError as e: return "TBEException", "ERROR:\n" + e.stdout + "\n" + e.stderr + "\ninput_args: " + op_json + class TbeProcess: """tbe process""" @@ -106,9 +111,11 @@ class TbeProcess: process_num = os.getenv("MS_BUILD_PROCESS_NUM") if process_num is None: self.max_processes_num = 24 + logger.info(f"Using default compile process num {self.max_processes_num}") elif process_num.isdigit(): if int(process_num) in range(1, 25): self.max_processes_num = int(process_num) + logger.info(f"Using custom compile process num {self.max_processes_num}") else: raise EnvironmentError( f"Env ERROR, [MS_BUILD_PROCESS_NUM] should be in range(1, 25), but: {process_num}") @@ -177,4 +184,5 @@ class TbeProcess: if self.__running_tasks: self.__running_tasks.clear() + tbe_process = TbeProcess() diff --git a/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc b/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc index f6928b3d1e..40f97ab94c 100644 --- a/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc +++ b/mindspore/ccsrc/backend/session/anf_runtime_algorithm.cc @@ -1636,13 +1636,7 @@ void AnfRuntimeAlgorithm::InferShape(const CNodePtr &node) { args_spec_list.emplace_back(real_input->abstract()); } } - auto prim_name = primitive->name(); - if (DynamicShapeConstInputToAttr.find(prim_name) != DynamicShapeConstInputToAttr.end()) { - auto attrs = primitive->attrs(); - auto new_prim_name = "Dynamic" + prim_name; - primitive = std::make_shared(new_prim_name); - primitive->SetAttrs(attrs); - } + auto &prim_eval_implement_map = abstract::GetPrimitiveToEvalImplMap(); auto ret = prim_eval_implement_map.find(primitive); if (ret == prim_eval_implement_map.end()) { diff --git a/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc b/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc index 0bd6299fdb..70eb833fc5 100644 --- a/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc +++ b/mindspore/ccsrc/pipeline/pynative/pynative_execute.cc @@ -771,12 +771,6 @@ void PynativeExecutor::GetOpOutputAbstract(const OpExecInfoPtr &op_exec_info, MS_EXCEPTION_IF_NULL(py_shape); auto py_shape_info = py_shape->ToString(); if (py_shape_info.find("-1") != string::npos) { - if (DynamicShapeConstInputToAttr.find(op_name) != DynamicShapeConstInputToAttr.end()) { - auto new_prim_name = "Dynamic" + op_name; - auto attrs = prim->attrs(); - prim = std::make_shared(new_prim_name, py::object()); - prim->SetAttrs(attrs); - } auto c_abstract = abstract::CppInferShape(prim, args_spec_list); MS_EXCEPTION_IF_NULL(c_abstract); auto c_shape = c_abstract->BuildShape(); diff --git a/mindspore/ccsrc/runtime/device/executor/dynamic_kernel.cc b/mindspore/ccsrc/runtime/device/executor/dynamic_kernel.cc index 5cfa767350..1ed054895f 100644 --- a/mindspore/ccsrc/runtime/device/executor/dynamic_kernel.cc +++ b/mindspore/ccsrc/runtime/device/executor/dynamic_kernel.cc @@ -124,13 +124,6 @@ void DynamicKernel::InferShape() { args_spec_list.emplace_back(real_input->abstract()); } } - auto prim_name = primitive->name(); - if (DynamicShapeConstInputToAttr.find(prim_name) != DynamicShapeConstInputToAttr.end()) { - auto new_prim_name = "Dynamic" + prim_name; - auto attrs = primitive->attrs(); - primitive = std::make_shared(new_prim_name); - primitive->SetAttrs(attrs); - } auto eval_result = abstract::CppInferShape(primitive, args_spec_list); cnode_ptr_->set_abstract(eval_result); diff --git a/mindspore/core/abstract/infer_functions.h b/mindspore/core/abstract/infer_functions.h index 70784437ce..c183b78a38 100644 --- a/mindspore/core/abstract/infer_functions.h +++ b/mindspore/core/abstract/infer_functions.h @@ -251,30 +251,30 @@ AbstractBasePtr InferImplReduceScatter(const AnalysisEnginePtr &, const Primitiv const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplSGD(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); -AbstractBasePtr InferImplDynamicTranspose(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list); -AbstractBasePtr InferImplDynamicReshape(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list); +AbstractBasePtr InferImplTranspose(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list); +AbstractBasePtr InferImplReshape(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplMemCpyAsync(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); -AbstractBasePtr InferImplDynamicEmbeddingLookup(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list); +AbstractBasePtr InferImplEmbeddingLookup(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplSub(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplEqual(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); -AbstractBasePtr InferImplDynamicReduceSum(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list); -AbstractBasePtr InferImplDynamicCast(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list); +AbstractBasePtr InferImplReduceSum(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list); +AbstractBasePtr InferImplCast(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplMinimum(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplDivNoNan(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplLinSpace(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); -AbstractBasePtr InferImplDynamicExpandDims(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list); +AbstractBasePtr InferImplExpandDims(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplGpuConvertToDynamicShape(const AnalysisEnginePtr &, const PrimitivePtr &primitive, const AbstractBasePtrList &args_spec_list); AbstractBasePtr InferImplPad(const AnalysisEnginePtr &, const PrimitivePtr &primitive, diff --git a/mindspore/core/abstract/prim_arrays.cc b/mindspore/core/abstract/prim_arrays.cc index 71c810b015..521868e0e5 100644 --- a/mindspore/core/abstract/prim_arrays.cc +++ b/mindspore/core/abstract/prim_arrays.cc @@ -658,9 +658,9 @@ AbstractBasePtr InferImplDynamicAssign(const AnalysisEnginePtr &, const Primitiv } } -AbstractBasePtr InferImplDynamicEmbeddingLookup(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list) { - const std::string op_name = primitive->name().substr(kDynamic); +AbstractBasePtr InferImplEmbeddingLookup(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list) { + const std::string op_name = primitive->name(); CheckArgsSize(op_name, args_spec_list, 2); auto params = CheckArg(op_name, args_spec_list, 0); auto params_shp = params->shape(); @@ -754,9 +754,9 @@ AbstractBasePtr InferImplZerosLike(const AnalysisEnginePtr &, const PrimitivePtr return std::make_shared(input_x->element(), output_shape); } -AbstractBasePtr InferImplDynamicTranspose(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list) { - const std::string &op_name = primitive->name().substr(kDynamic); +AbstractBasePtr InferImplTranspose(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list) { + const std::string &op_name = primitive->name(); AbstractTensorPtr input = CheckArg(op_name, args_spec_list, 0); auto input_shp = input->shape()->shape(); ValuePtr perm = primitive->GetAttr("perm"); @@ -781,9 +781,9 @@ AbstractBasePtr InferImplDynamicTranspose(const AnalysisEnginePtr &, const Primi return std::make_shared(input->element(), std::make_shared(result_shp, min_shp, max_shp)); } -AbstractBasePtr InferImplDynamicReshape(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list) { - const std::string op_name = primitive->name().substr(kDynamic); +AbstractBasePtr InferImplReshape(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list) { + const std::string op_name = primitive->name(); auto x = CheckArg(op_name, args_spec_list, 0); MS_EXCEPTION_IF_NULL(x); MS_EXCEPTION_IF_NULL(x->shape()); diff --git a/mindspore/core/abstract/prim_maths.cc b/mindspore/core/abstract/prim_maths.cc index fe10bc302b..1ee95a2ea3 100644 --- a/mindspore/core/abstract/prim_maths.cc +++ b/mindspore/core/abstract/prim_maths.cc @@ -121,9 +121,9 @@ AbstractBasePtr InferImplEqual(const AnalysisEnginePtr &, const PrimitivePtr &pr return ret; } -AbstractBasePtr InferImplDynamicReduceSum(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list) { - const std::string op_name = primitive->name().substr(kDynamic); +AbstractBasePtr InferImplReduceSum(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list) { + const std::string op_name = primitive->name(); CheckArgsSize(op_name, args_spec_list, 1); auto input_x = CheckArg(op_name, args_spec_list, 0); MS_EXCEPTION_IF_NULL(input_x); diff --git a/mindspore/core/abstract/prim_others.cc b/mindspore/core/abstract/prim_others.cc index e1286e558a..a201005889 100644 --- a/mindspore/core/abstract/prim_others.cc +++ b/mindspore/core/abstract/prim_others.cc @@ -479,9 +479,9 @@ AbstractBasePtr InferImplMemCpyAsync(const AnalysisEnginePtr &, const PrimitiveP return std::make_shared(x->element(), std::make_shared(x->shape()->shape())); } -AbstractBasePtr InferImplDynamicCast(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list) { - const std::string op_name = primitive->name().substr(kDynamic); +AbstractBasePtr InferImplCast(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list) { + const std::string op_name = primitive->name(); // GPU has 2 inputs while tbe has 1 only. Skip CheckArgsSize. auto input_x = CheckArg(op_name, args_spec_list, 0); MS_EXCEPTION_IF_NULL(input_x); @@ -491,9 +491,9 @@ AbstractBasePtr InferImplDynamicCast(const AnalysisEnginePtr &, const PrimitiveP return ret; } -AbstractBasePtr InferImplDynamicExpandDims(const AnalysisEnginePtr &, const PrimitivePtr &primitive, - const AbstractBasePtrList &args_spec_list) { - const std::string op_name = primitive->name().substr(kDynamic); +AbstractBasePtr InferImplExpandDims(const AnalysisEnginePtr &, const PrimitivePtr &primitive, + const AbstractBasePtrList &args_spec_list) { + const std::string op_name = primitive->name(); CheckArgsSize(op_name, args_spec_list, 1); auto x = CheckArg(op_name, args_spec_list, 0); MS_EXCEPTION_IF_NULL(x); diff --git a/mindspore/core/abstract/primitive_infer_map.cc b/mindspore/core/abstract/primitive_infer_map.cc index 75d5e34935..b739f18eca 100644 --- a/mindspore/core/abstract/primitive_infer_map.cc +++ b/mindspore/core/abstract/primitive_infer_map.cc @@ -44,7 +44,7 @@ PrimitiveEvalImplMap &GetPrimitiveToEvalImplMap() { {prim::kPrimSqrtGrad, {InferImplSqrtGrad, true}}, {prim::kPrimSub, {InferImplSub, true}}, {prim::kPrimEqual, {InferImplEqual, true}}, - {prim::kPrimDynamicReduceSum, {InferImplDynamicReduceSum, true}}, + {prim::kPrimReduceSum, {InferImplReduceSum, true}}, {prim::kPrimMinimum, {InferImplMinimum, true}}, {prim::kPrimDivNoNan, {InferImplDivNoNan, true}}, {prim::kPrimLinSpace, {InferImplLinSpace, true}}, @@ -59,7 +59,7 @@ PrimitiveEvalImplMap &GetPrimitiveToEvalImplMap() { {prim::kPrimUniqueGrad, {InferImplUniqueGrad, true}}, {prim::kPrimGatherV2, {InferImplGatherV2, true}}, {prim::kPrimSparseGatherV2, {InferImplGatherV2, true}}, - {prim::kPrimDynamicEmbeddingLookup, {InferImplDynamicEmbeddingLookup, true}}, + {prim::kPrimEmbeddingLookup, {InferImplEmbeddingLookup, true}}, {prim::kPrimUnsortedSegmentSum, {InferImplUnsortedSegmentSum, true}}, {prim::kPrimUnsortedSegmentMax, {InferImplUnsortedSegmentMax, true}}, {prim::kPrimUnsortedSegmentMin, {InferImplUnsortedSegmentMin, true}}, @@ -76,8 +76,8 @@ PrimitiveEvalImplMap &GetPrimitiveToEvalImplMap() { {prim::kPrimRealDiv, {InferImplRealDiv, true}}, {prim::kPrimShape, {InferImplShape, false}}, {prim::kPrimDynamicShape, {InferImplDynamicShape, true}}, - {prim::kPrimDynamicTranspose, {InferImplDynamicTranspose, true}}, - {prim::kPrimDynamicReshape, {InferImplDynamicReshape, true}}, + {prim::kPrimTranspose, {InferImplTranspose, true}}, + {prim::kPrimReshape, {InferImplReshape, true}}, {prim::kPrimMapUniform, {InferImplMapUniform, true}}, {prim::kPrimSplit, {InferImplSplit, true}}, {prim::kPrimSequenceMask, {InferImplSequenceMask, true}}, @@ -157,8 +157,8 @@ PrimitiveEvalImplMap &GetPrimitiveToEvalImplMap() { {prim::kPrimAllSwap, {InferImplAllSwap, true}}, {prim::kPrimReduceScatter, {InferImplReduceScatter, true}}, {prim::kPrimMemCpyAsync, {InferImplMemCpyAsync, true}}, - {prim::kPrimDynamicCast, {InferImplDynamicCast, true}}, - {prim::kPrimDynamicExpandDims, {InferImplDynamicExpandDims, true}}, + {prim::kPrimCast, {InferImplCast, true}}, + {prim::kPrimExpandDims, {InferImplExpandDims, true}}, }; return prim_eval_implement_map; } diff --git a/mindspore/core/abstract/utils.h b/mindspore/core/abstract/utils.h index da07a1f483..8220294f7e 100644 --- a/mindspore/core/abstract/utils.h +++ b/mindspore/core/abstract/utils.h @@ -29,8 +29,6 @@ #include "utils/shape_utils.h" namespace mindspore { -// length of string "dynamic" -const int kDynamic = 7; namespace abstract { ValuePtr ValueJoin(const ValuePtr &value1, const ValuePtr &value2); TypePtr TypeJoin(const TypePtr &type1, const TypePtr &type2); diff --git a/mindspore/core/base/core_ops.h b/mindspore/core/base/core_ops.h index 6fb42f6c3e..7a27ec8a2f 100644 --- a/mindspore/core/base/core_ops.h +++ b/mindspore/core/base/core_ops.h @@ -80,12 +80,6 @@ inline const PrimitivePtr kPrimBroadcastShape = std::make_shared("bro inline const PrimitivePtr kPrimArrayMap = std::make_shared("array_map"); inline const PrimitivePtr kPrimArrayReduce = std::make_shared("array_reduce"); inline const PrimitivePtr kPrimCast = std::make_shared("Cast"); -inline const PrimitivePtr kPrimDynamicCast = std::make_shared("DynamicCast"); -inline const PrimitivePtr kPrimDynamicReshape = std::make_shared("DynamicReshape"); -inline const PrimitivePtr kPrimDynamicReduceSum = std::make_shared("DynamicReduceSum"); -inline const PrimitivePtr kPrimDynamicTranspose = std::make_shared("DynamicTranspose"); -inline const PrimitivePtr kPrimDynamicExpandDims = std::make_shared("DynamicExpandDims"); -inline const PrimitivePtr kPrimDynamicEmbeddingLookup = std::make_shared("DynamicEmbeddingLookup"); inline const PrimitivePtr kPrimConcat = std::make_shared("Concat"); inline const PrimitivePtr kPrimSqueeze = std::make_shared("Squeeze"); inline const PrimitivePtr kPrimTranspose = std::make_shared("Transpose");