From 69af7da7c5944917836632c14bc4b3dfa9243c2f Mon Sep 17 00:00:00 2001 From: zhaozhixuan Date: Mon, 7 Jun 2021 14:56:29 +0800 Subject: [PATCH] Do not run other optimizer when exec on host. --- ge/graph/optimize/graph_optimize.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ge/graph/optimize/graph_optimize.cc b/ge/graph/optimize/graph_optimize.cc index 4dbecc53..835e257b 100644 --- a/ge/graph/optimize/graph_optimize.cc +++ b/ge/graph/optimize/graph_optimize.cc @@ -26,6 +26,7 @@ namespace { const char *const kVectorCore = "VectorCore"; const char *const kVectorEngine = "VectorEngine"; const char *const kAicoreEngine = "AIcoreEngine"; +const char *const kHostCpuEngine = "DNN_VM_HOST_CPU"; } // namespace namespace ge { @@ -166,6 +167,10 @@ Status GraphOptimize::OptimizeOriginalGraph(ComputeGraphPtr &compute_graph) { if (iter->first == exclude_core_Type) { continue; } + if (GetContext().GetHostExecFlag() && iter->first != kHostCpuEngine) { + // graph exec on host, no need OptimizeOriginalGraph for other engine. + continue; + } ret = (iter->second)->OptimizeOriginalGraph(*compute_graph); if (ret != SUCCESS) { REPORT_INNER_ERROR("E19999", "Call OptimizeOriginalGraph failed, ret:%d, engine_name:%s, " @@ -204,6 +209,10 @@ Status GraphOptimize::OptimizeOriginalGraphJudgeInsert(ComputeGraphPtr &compute_ GELOGI("[OptimizeOriginalGraphJudgeInsert]: engine type will exclude: %s", exclude_core_Type.c_str()); continue; } + if (GetContext().GetHostExecFlag() && iter->first != kHostCpuEngine) { + // graph exec on host, no need OptimizeOriginalGraphJudgeInsert for other engine. + continue; + } GELOGI("Begin to refine running format by engine %s", iter->first.c_str()); ret = (iter->second)->OptimizeOriginalGraphJudgeInsert(*compute_graph); if (ret != SUCCESS) {