From: @chen-hua-baker Reviewed-by: @xchu42,@wqtshg Signed-off-by: @wqtshgtags/v1.1.0
| @@ -548,7 +548,7 @@ Status GraphManager::OptimizeSubGraphWithMultiThreads(ComputeGraphPtr compute_gr | |||||
| (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); | (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); | ||||
| } | } | ||||
| std::future<Status> f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, | std::future<Status> 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()) { | if (!f.valid()) { | ||||
| GELOGE(FAILED, "Future is invalid"); | GELOGE(FAILED, "Future is invalid"); | ||||
| return FAILED; | return FAILED; | ||||
| @@ -563,7 +563,7 @@ Status GraphManager::OptimizeSubGraphWithMultiThreads(ComputeGraphPtr compute_gr | |||||
| (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); | (void) AttrUtils::SetStr(subgraph->GetSubGraph(), ATTR_NAME_OP_COMPILE_STRATEGY, op_compile_strategy); | ||||
| } | } | ||||
| std::future<Status> f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, | std::future<Status> f = executor.commit(GraphManager::ProcessSubGraphWithMultiThreads, this, | ||||
| compute_graph->GetGraphID(), subgraph, session_id, | |||||
| compute_graph->GetGraphID(), subgraph, compute_graph, session_id, | |||||
| GetThreadLocalContext()); | GetThreadLocalContext()); | ||||
| if (!f.valid()) { | if (!f.valid()) { | ||||
| GELOGE(FAILED, "Future is invalid"); | GELOGE(FAILED, "Future is invalid"); | ||||
| @@ -2505,7 +2505,8 @@ Status GraphManager::CheckAndReleaseMemory(const GeModelPtr &ge_model, const Gra | |||||
| } | } | ||||
| Status GraphManager::ProcessSubGraphWithMultiThreads(GraphManager *graph_manager, GraphId root_graph_id, | 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) { | const GEThreadLocalContext &ge_context) { | ||||
| if (sub_graph_info_ptr != nullptr && graph_manager != nullptr) { | if (sub_graph_info_ptr != nullptr && graph_manager != nullptr) { | ||||
| GetContext().SetSessionId(session_id); | GetContext().SetSessionId(session_id); | ||||
| @@ -2521,6 +2522,7 @@ Status GraphManager::ProcessSubGraphWithMultiThreads(GraphManager *graph_manager | |||||
| GE_CHECK_NOTNULL(compute_graph_tmp); | GE_CHECK_NOTNULL(compute_graph_tmp); | ||||
| compute_graph_tmp->SetSessionID(session_id); | compute_graph_tmp->SetSessionID(session_id); | ||||
| Status ret = graph_manager->GetCompilerStages(root_graph_id).optimizer.OptimizeSubGraph(compute_graph_tmp, | Status ret = graph_manager->GetCompilerStages(root_graph_id).optimizer.OptimizeSubGraph(compute_graph_tmp, | ||||
| compute_graph, | |||||
| engine_name); | engine_name); | ||||
| if (ret != SUCCESS) { | if (ret != SUCCESS) { | ||||
| GELOGE(ret, "SubGraph optimize Failed %s", engine_name.c_str()); | GELOGE(ret, "SubGraph optimize Failed %s", engine_name.c_str()); | ||||
| @@ -218,7 +218,8 @@ class GraphManager { | |||||
| std::shared_ptr<GraphModelListener> GetModelListener() const { return graph_run_listener_; } | std::shared_ptr<GraphModelListener> GetModelListener() const { return graph_run_listener_; } | ||||
| static Status ProcessSubGraphWithMultiThreads(GraphManager *graph_manager, GraphId root_graph_id, | 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); | const GEThreadLocalContext &ge_context); | ||||
| Status ParseInputsDims(const std::vector<InputTensorInfo> &input_tensor); | Status ParseInputsDims(const std::vector<InputTensorInfo> &input_tensor); | ||||
| Status DistinguishGetNextAndData(ComputeGraphPtr &graph, vector<NodePtr> &data_nodes, | Status DistinguishGetNextAndData(ComputeGraphPtr &graph, vector<NodePtr> &data_nodes, | ||||
| @@ -76,7 +76,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) { | if (compute_graph == nullptr) { | ||||
| GELOGE(GE_GRAPH_OPTIMIZE_COMPUTE_GRAPH_NULL, "[OptimizeSubGraph]: compute_graph is nullptr."); | GELOGE(GE_GRAPH_OPTIMIZE_COMPUTE_GRAPH_NULL, "[OptimizeSubGraph]: compute_graph is nullptr."); | ||||
| return GE_GRAPH_OPTIMIZE_COMPUTE_GRAPH_NULL; | return GE_GRAPH_OPTIMIZE_COMPUTE_GRAPH_NULL; | ||||
| @@ -105,6 +106,10 @@ Status GraphOptimize::OptimizeSubGraph(ComputeGraphPtr &compute_graph, const std | |||||
| for (auto iter = graph_optimizer.begin(); iter != graph_optimizer.end(); ++iter) { | for (auto iter = graph_optimizer.begin(); iter != graph_optimizer.end(); ++iter) { | ||||
| Status ret = (*iter)->OptimizeFusedGraphAfterGraphSlice(*(compute_graph)); | Status ret = (*iter)->OptimizeFusedGraphAfterGraphSlice(*(compute_graph)); | ||||
| if (ret != SUCCESS) { | 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); | GELOGE(ret, "[OptimizeSubGraph][OptimizeFusedGraphAfterGraphSlice]: graph optimize failed, ret:%d", ret); | ||||
| return ret; | return ret; | ||||
| } | } | ||||
| @@ -42,7 +42,8 @@ class GraphOptimize { | |||||
| ~GraphOptimize() = default; | ~GraphOptimize() = default; | ||||
| // subgraph optimize | // 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 | // original graph optimize | ||||
| Status OptimizeOriginalGraph(ComputeGraphPtr &compute_graph); | Status OptimizeOriginalGraph(ComputeGraphPtr &compute_graph); | ||||
| @@ -164,6 +164,13 @@ graphStatus aclgrphBuildInitializeImpl(std::map<std::string, std::string> &globa | |||||
| } | } | ||||
| } | } | ||||
| GELOGW("gelib has been initialized!"); | 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; | return GRAPH_SUCCESS; | ||||
| } | } | ||||
| @@ -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 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_DIR = ge::OP_COMPILER_CACHE_DIR; | ||||
| static const char *const OP_COMPILER_CACHE_MODE = ge::OP_COMPILER_CACHE_MODE; | 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(); | static const char *const OP_DEBUG_LEVEL = ge::OP_DEBUG_LEVEL.c_str(); | ||||
| // for interface: aclgrphBuildModel | // for interface: aclgrphBuildModel | ||||
| @@ -387,8 +387,8 @@ const std::set<std::string> ir_builder_suppported_options = {INPUT_FORMAT, | |||||
| DEBUG_DIR, | DEBUG_DIR, | ||||
| OP_COMPILER_CACHE_DIR, | OP_COMPILER_CACHE_DIR, | ||||
| OP_COMPILER_CACHE_MODE, | OP_COMPILER_CACHE_MODE, | ||||
| MDL_BANK_PATH_FLAG, | |||||
| OP_BANK_PATH_FLAG}; | |||||
| MDL_BANK_PATH, | |||||
| OP_BANK_PATH}; | |||||
| // for interface: aclgrphParse | // for interface: aclgrphParse | ||||
| const std::set<std::string> ir_parser_suppported_options = {INPUT_FORMAT, | const std::set<std::string> ir_parser_suppported_options = {INPUT_FORMAT, | ||||