From 26723f70b1cc80942eeb5e6a284ff9e264bcc89a Mon Sep 17 00:00:00 2001 From: "gengchao4@huawei.com" Date: Mon, 7 Dec 2020 20:34:46 +0800 Subject: [PATCH] unify normal and non-normal process in subgraph --- ge/graph/manager/graph_manager.cc | 63 ++++--------------------------- 1 file changed, 7 insertions(+), 56 deletions(-) diff --git a/ge/graph/manager/graph_manager.cc b/ge/graph/manager/graph_manager.cc index 5b194c44..9ce68d76 100755 --- a/ge/graph/manager/graph_manager.cc +++ b/ge/graph/manager/graph_manager.cc @@ -651,62 +651,13 @@ Status GraphManager::ReplaceSubgraphWithOriGraph(const ComputeGraphPtr &compute_ Status GraphManager::SetSubgraph(uint64_t session_id, ComputeGraphPtr compute_graph, GraphPartitioner &partitioner) { GE_CHECK_NOTNULL(compute_graph); auto sub_graph_map = partitioner.GetSubGraphMap(); - std::string buffer_optimize; - graphStatus graph_status = ge::GetContext().GetOption(BUFFER_OPTIMIZE, buffer_optimize); - bool need_lx_fusion = (graph_status == GRAPH_SUCCESS) && (buffer_optimize != kOffOptimize); - if (options_.build_mode.empty() && need_lx_fusion) { - GELOGI("Enter normal mode with buffer_optimize:%s.", buffer_optimize.c_str()); - /// 1. Copy subgraph for buffer optimize while lx fusion failed. - /// 2. Set graph with attr "lx_fusion" for fusion optimize. - std::unordered_map copy_graphs; - GE_TIMESTAMP_START(CopySubGraphAndMarkFusion); - Status ret = CopySubGraphAndMarkFusion(compute_graph, sub_graph_map, copy_graphs); - GE_TIMESTAMP_EVENT_END(CopySubGraphAndMarkFusion, "SetSubgraph:CopySubGraphAndMarkFusion"); - if (ret != SUCCESS) { - GELOGE(ret, "CopySubGraphAndMarkFusion failed."); - return ret; - } - - // Multiply optimize subgraph with lx fusion - ret = OptimizeSubGraphWithMultiThreads(compute_graph, sub_graph_map, session_id); - if (ret != SUCCESS) { - GELOGE(ret, "Multiply optimize subgraph with lx fusion failed."); - return ret; - } - - // Check whether all subgraph lx fusion success - GE_TIMESTAMP_START(CheckAllFusionOptimizeSuccess); - if (CheckAllFusionOptimizeSuccess(compute_graph, sub_graph_map)) { - GE_TIMESTAMP_EVENT_END(CheckAllFusionOptimizeSuccess, "SetSubgraph:CheckAllFusionOptimizeSuccess"); - return SUCCESS; - } - - // Replace subgraph with original graph for lx buffer - ret = ReplaceSubgraphWithOriGraph(compute_graph, sub_graph_map, copy_graphs); - if (ret != SUCCESS) { - GELOGE(ret, "Replace subgraph with original graph failed."); - return ret; - } - - // Multiply optimize subgraph with lx buffer - ret = OptimizeSubGraphWithMultiThreads(compute_graph, sub_graph_map, session_id); - if (ret != SUCCESS) { - GELOGE(ret, "Multiply optimize subgraph with lx buffer failed."); - return ret; - } - } else { - /// Multiply optimize subgraph: - /// 1. run lx buffer while build_mode is normal and buffer_optimize is empty or "off_optimize"; - /// 2. run lx fusion or buffer according build_mode and build_step in fe. - GELOGD("Directly optimize subgraph with build mode:%s, and step:%s, buffer_optimize:%s.", - options_.build_mode.c_str(), - options_.build_step.c_str(), - buffer_optimize.c_str()); - Status ret = OptimizeSubGraphWithMultiThreads(compute_graph, sub_graph_map, session_id); - if (ret != SUCCESS) { - GELOGE(ret, "Multiply optimize subgraph with lx buffer"); - return ret; - } + GELOGD("Directly optimize subgraph with build mode:%s, and step:%s.", + options_.build_mode.c_str(), + options_.build_step.c_str()); + Status ret = OptimizeSubGraphWithMultiThreads(compute_graph, sub_graph_map, session_id); + if (ret != SUCCESS) { + GELOGE(ret, "Multiply optimize subgraph failed"); + return ret; } return SUCCESS; }