From c84c73ada5f84c3513fa436025163117487e7440 Mon Sep 17 00:00:00 2001 From: baker Date: Wed, 25 Nov 2020 10:16:41 +0800 Subject: [PATCH 1/3] save and get compile failed msg --- ge/graph/manager/graph_manager.cc | 8 +++++--- ge/graph/manager/graph_manager.h | 3 ++- ge/graph/optimize/graph_optimize.cc | 7 ++++++- ge/graph/optimize/graph_optimize.h | 3 ++- ge/ir_build/ge_ir_build.cc | 7 +++++++ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/ge/graph/manager/graph_manager.cc b/ge/graph/manager/graph_manager.cc index 654bea16..86df5d5b 100755 --- a/ge/graph/manager/graph_manager.cc +++ b/ge/graph/manager/graph_manager.cc @@ -552,7 +552,7 @@ Status GraphManager::OptimizeSubGraphWithMultiThreads(ComputeGraphPtr compute_gr (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); } std::future f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, - compute_graph->GetGraphID(), subgraph, session_id, GetThreadLocalContext()); + compute_graph->GetGraphID(), subgraph, compute_graph, session_id, GetThreadLocalContext()); if (!f.valid()) { GELOGE(FAILED, "Future is invalid"); return FAILED; @@ -567,7 +567,7 @@ Status GraphManager::OptimizeSubGraphWithMultiThreads(ComputeGraphPtr compute_gr (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); } std::future f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, - compute_graph->GetGraphID(), subgraph, session_id, + compute_graph->GetGraphID(), subgraph, compute_graph, session_id, GetThreadLocalContext()); if (!f.valid()) { GELOGE(FAILED, "Future is invalid"); @@ -2510,7 +2510,8 @@ Status GraphManager::CheckAndReleaseMemory(const GeModelPtr &ge_model, const Gra } Status GraphManager::ProcessSubGraphWithMultiThreads(GraphManager *graph_manager, GraphId root_graph_id, - const SubGraphInfoPtr &sub_graph_info_ptr, uint64_t session_id, + const SubGraphInfoPtr &sub_graph_info_ptr, + const ComputeGraphPtr &compute_graph, uint64_t session_id, const GEThreadLocalContext &ge_context) { if (sub_graph_info_ptr != nullptr && graph_manager != nullptr) { GetContext().SetSessionId(session_id); @@ -2526,6 +2527,7 @@ Status GraphManager::ProcessSubGraphWithMultiThreads(GraphManager *graph_manager GE_CHECK_NOTNULL(compute_graph_tmp); compute_graph_tmp->SetSessionID(session_id); Status ret = graph_manager->GetCompilerStages(root_graph_id).optimizer.OptimizeSubGraph(compute_graph_tmp, + compute_graph, engine_name); if (ret != SUCCESS) { GELOGE(ret, "SubGraph optimize Failed %s", engine_name.c_str()); diff --git a/ge/graph/manager/graph_manager.h b/ge/graph/manager/graph_manager.h index b0dde0c0..83aebeb6 100644 --- a/ge/graph/manager/graph_manager.h +++ b/ge/graph/manager/graph_manager.h @@ -218,7 +218,8 @@ class GraphManager { std::shared_ptr GetModelListener() const { return graph_run_listener_; } static Status ProcessSubGraphWithMultiThreads(GraphManager *graph_manager, GraphId root_graph_id, - const SubGraphInfoPtr &sub_graph_info_ptr, uint64_t session_id, + const SubGraphInfoPtr &sub_graph_info_ptr, + const ComputeGraphPtr &compute_graph, uint64_t session_id, const GEThreadLocalContext &ge_context); Status ParseInputsDims(const std::vector &input_tensor); Status DistinguishGetNextAndData(ComputeGraphPtr &graph, vector &data_nodes, diff --git a/ge/graph/optimize/graph_optimize.cc b/ge/graph/optimize/graph_optimize.cc index 931d529b..c6ba0b06 100644 --- a/ge/graph/optimize/graph_optimize.cc +++ b/ge/graph/optimize/graph_optimize.cc @@ -77,7 +77,8 @@ void AddNodeInputProperty(ComputeGraphPtr &compute_graph) { } } -Status GraphOptimize::OptimizeSubGraph(ComputeGraphPtr &compute_graph, const std::string &engine_name) { +Status GraphOptimize::OptimizeSubGraph(ComputeGraphPtr &compute_graph, const ComputeGraphPtr &parent_graph, + const std::string &engine_name) { if (compute_graph == nullptr) { GELOGE(GE_GRAPH_OPTIMIZE_COMPUTE_GRAPH_NULL, "[OptimizeSubGraph]: compute_graph is nullptr."); return GE_GRAPH_OPTIMIZE_COMPUTE_GRAPH_NULL; @@ -106,6 +107,10 @@ Status GraphOptimize::OptimizeSubGraph(ComputeGraphPtr &compute_graph, const std for (auto iter = graph_optimizer.begin(); iter != graph_optimizer.end(); ++iter) { Status ret = (*iter)->OptimizeFusedGraphAfterGraphSlice(*(compute_graph)); if (ret != SUCCESS) { + auto root_graph = ge::GraphUtils::FindRootGraph(parent_graph); + if (root_graph != nullptr) { + ErrorManager.GetInstance().SaveMstuneCompileFailedMsg(root_graph->GetName()); + } GELOGE(ret, "[OptimizeSubGraph][OptimizeFusedGraphAfterGraphSlice]: graph optimize failed, ret:%d", ret); return ret; } diff --git a/ge/graph/optimize/graph_optimize.h b/ge/graph/optimize/graph_optimize.h index 78d580b7..969b4720 100755 --- a/ge/graph/optimize/graph_optimize.h +++ b/ge/graph/optimize/graph_optimize.h @@ -42,7 +42,8 @@ class GraphOptimize { ~GraphOptimize() = default; // subgraph optimize - Status OptimizeSubGraph(ComputeGraphPtr &compute_graph, const std::string &engine_name); + Status OptimizeSubGraph(ComputeGraphPtr &compute_graph, const ComputeGraphPtr &parent_graph, + const std::string &engine_name); // original graph optimize Status OptimizeOriginalGraph(ComputeGraphPtr &compute_graph); diff --git a/ge/ir_build/ge_ir_build.cc b/ge/ir_build/ge_ir_build.cc index 242b38a0..6fc3b7b7 100644 --- a/ge/ir_build/ge_ir_build.cc +++ b/ge/ir_build/ge_ir_build.cc @@ -164,6 +164,13 @@ graphStatus aclgrphBuildInitializeImpl(std::map &globa } } GELOGW("gelib has been initialized!"); + + std::string path_base = ge::GELib::GetPath(); + int ret = ErrorManager::GetInstance().Init(path_base); + if (ret != 0) { + DOMI_LOGE("ErrorManager init fail !"); + return GRAPH_FAILED; + } return GRAPH_SUCCESS; } From 0f6a645f5e06429cb728567f81df967d624e11d7 Mon Sep 17 00:00:00 2001 From: baker Date: Wed, 25 Nov 2020 11:14:36 +0800 Subject: [PATCH 2/3] fix not flag --- inc/external/ge/ge_api_types.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inc/external/ge/ge_api_types.h b/inc/external/ge/ge_api_types.h index c439a8bf..cb2fbdef 100644 --- a/inc/external/ge/ge_api_types.h +++ b/inc/external/ge/ge_api_types.h @@ -364,8 +364,8 @@ static const char *const OPTYPELIST_FOR_IMPLMODE = ge::OPTYPELIST_FOR_IMPLMODE.c static const char *const DEBUG_DIR = ge::DEBUG_DIR; static const char *const OP_COMPILER_CACHE_DIR = ge::OP_COMPILER_CACHE_DIR; static const char *const OP_COMPILER_CACHE_MODE = ge::OP_COMPILER_CACHE_MODE; -static const char *const MDL_BANK_PATH_FLAG = ge::MDL_BANK_PATH_FLAG.c_str(); -static const char *const OP_BANK_PATH_FLAG = ge::OP_BANK_PATH_FLAG.c_str(); +static const char *const MDL_BANK_PATH = ge::MDL_BANK_PATH_FLAG.c_str(); +static const char *const OP_BANK_PATH = ge::OP_BANK_PATH_FLAG.c_str(); static const char *const OP_DEBUG_LEVEL = ge::OP_DEBUG_LEVEL.c_str(); // for interface: aclgrphBuildModel @@ -387,8 +387,8 @@ const std::set ir_builder_suppported_options = {INPUT_FORMAT, DEBUG_DIR, OP_COMPILER_CACHE_DIR, OP_COMPILER_CACHE_MODE, - MDL_BANK_PATH_FLAG, - OP_BANK_PATH_FLAG}; + MDL_BANK_PATH, + OP_BANK_PATH}; // for interface: aclgrphParse const std::set ir_parser_suppported_options = {INPUT_FORMAT, From 7c94c444b4b7e182f591e1475b15e598ac75bcc4 Mon Sep 17 00:00:00 2001 From: baker Date: Fri, 27 Nov 2020 17:11:02 +0800 Subject: [PATCH 3/3] save and get compile failed msg --- ge/graph/optimize/graph_optimize.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/graph/optimize/graph_optimize.cc b/ge/graph/optimize/graph_optimize.cc index c6ba0b06..5ea462a5 100644 --- a/ge/graph/optimize/graph_optimize.cc +++ b/ge/graph/optimize/graph_optimize.cc @@ -109,7 +109,7 @@ Status GraphOptimize::OptimizeSubGraph(ComputeGraphPtr &compute_graph, const Com if (ret != SUCCESS) { auto root_graph = ge::GraphUtils::FindRootGraph(parent_graph); if (root_graph != nullptr) { - ErrorManager.GetInstance().SaveMstuneCompileFailedMsg(root_graph->GetName()); + ErrorManager::GetInstance().SaveMstuneCompileFailedMsg(root_graph->GetName()); } GELOGE(ret, "[OptimizeSubGraph][OptimizeFusedGraphAfterGraphSlice]: graph optimize failed, ret:%d", ret); return ret;