diff --git a/ge/graph/manager/graph_manager.cc b/ge/graph/manager/graph_manager.cc index 282cd7a6..547aa030 100755 --- a/ge/graph/manager/graph_manager.cc +++ b/ge/graph/manager/graph_manager.cc @@ -29,6 +29,7 @@ #include "common/math/math_util.h" #include "common/thread_pool.h" #include "common/util.h" +#include "common/util/error_manager/error_manager.h" #include "external/graph/types.h" #include "framework/common/debug/ge_log.h" #include "framework/common/ge_inner_error_codes.h" @@ -411,7 +412,8 @@ 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, session_id, + GetThreadLocalContext(), GetInnerErrMsg()); if (!f.valid()) { GELOGE(FAILED, "Future is invalid"); return FAILED; @@ -427,7 +429,7 @@ Status GraphManager::OptimizeSubGraphWithMultiThreads(ComputeGraphPtr compute_gr } std::future f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, compute_graph->GetGraphID(), subgraph, session_id, - GetThreadLocalContext()); + GetThreadLocalContext(), GetInnerErrMsg()); if (!f.valid()) { GELOGE(FAILED, "Future is invalid"); return FAILED; @@ -2344,10 +2346,12 @@ 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 GEThreadLocalContext &ge_context) { + const GEThreadLocalContext &ge_context, + const std::map> &err_ma=sg_map) { if (sub_graph_info_ptr != nullptr && graph_manager != nullptr) { GetContext().SetSessionId(session_id); GetThreadLocalContext() = ge_context; + GetInnerErrMsgMap() = err_msg_map; graph_manager->UpdateLocalOmgContext(root_graph_id); ComputeGraphPtr compute_graph_tmp = sub_graph_info_ptr->GetSubGraph(); diff --git a/ge/graph/manager/graph_manager.h b/ge/graph/manager/graph_manager.h index fc3601af..5cc6e94b 100644 --- a/ge/graph/manager/graph_manager.h +++ b/ge/graph/manager/graph_manager.h @@ -204,7 +204,8 @@ class GraphManager { static Status ProcessSubGraphWithMultiThreads(GraphManager *graph_manager, GraphId root_graph_id, const SubGraphInfoPtr &sub_graph_info_ptr, uint64_t session_id, - const GEThreadLocalContext &ge_context); + const GEThreadLocalContext &ge_context, + const std::map> &err_msg_map); Status PreRun(const GraphNodePtr &graph_node, const std::vector &inputs, GeRootModelPtr &ge_root_model, uint64_t session_id = INVALID_SESSION_ID);