diff --git a/ge/graph/manager/graph_manager.cc b/ge/graph/manager/graph_manager.cc index beb7cd42..46aeaebc 100755 --- a/ge/graph/manager/graph_manager.cc +++ b/ge/graph/manager/graph_manager.cc @@ -101,6 +101,7 @@ #include "graph/common/local_context.h" #include "graph/common/omg_util.h" #include "common/formats/utils/formats_trans_utils.h" +#include "external/register/register_pass.h" namespace { const char *const kSummary = "Summary"; @@ -765,10 +766,24 @@ Status GraphManager::SetRtContext(rtContext_t rt_context, rtCtxMode_t mode, uint return SUCCESS; } +Status GraphManager::RunCustomPass(const GraphNodePtr &graph_node) { + ConstGraphPtr const_graph = graph->node->GetGraph(); + auto comp_graph = GraphUtils::GetComputeGraph(*const_graph); + GE_DUMP(compute_graph, "RunCustomPassBegin"); + + GE_TIMESTAMP_START(RunCustomPass); + GraphPtr graph = std::const_pointer_cast(const_graph); + GE_CHK_STATUS_RET(CustomPassHelper::Instance()->Run(graph), "Graph[%s] run custom pass fail.", + comp_graph->GetName().c_str()); + GE_TIMESTAMP_END(RunCustomPass, "GraphBuilder::RunCustomPass"); + return SUCCESS; +} + Status GraphManager::PreRun(const GraphNodePtr &graph_node, const std::vector &inputs, GeRootModelPtr &ge_root_model, uint64_t session_id) { GE_CHECK_NOTNULL(graph_node); GE_CHECK_NOTNULL(graph_node->GetGraph()); + GE_CHK_STATUS_RET_NOLOG(RunCustomPass(graph_node)); auto compute_graph = GraphUtils::GetComputeGraph(*graph_node->GetGraph()); GE_CHECK_NOTNULL(compute_graph); compute_graph->SetSessionID(session_id); diff --git a/ge/graph/manager/graph_manager.h b/ge/graph/manager/graph_manager.h index d2887c4c..32de7eac 100644 --- a/ge/graph/manager/graph_manager.h +++ b/ge/graph/manager/graph_manager.h @@ -226,6 +226,7 @@ class GraphManager { void ParseInputsDimsForData(const std::vector &input_tensor); Status ParseInputsDimsForGetNexNosinkAndData(const vector &dynamic_nodes, const std::vector &input_tensor); + Status RunCustomPass(const GraphNodePtr &graph_node); Status PreRun(const GraphNodePtr &graph_node, const std::vector &inputs, GeRootModelPtr &ge_root_model, uint64_t session_id = INVALID_SESSION_ID); diff --git a/metadef b/metadef index 11c6cf29..37a90f0d 160000 --- a/metadef +++ b/metadef @@ -1 +1 @@ -Subproject commit 11c6cf2921b6a385616a3ebc601b4431b55b07db +Subproject commit 37a90f0dfd797306e99ec32a688be32a9ad835a4 diff --git a/parser b/parser index 99437c39..5b93b050 160000 --- a/parser +++ b/parser @@ -1 +1 @@ -Subproject commit 99437c39d26624a14060307366a96b79b1d439c3 +Subproject commit 5b93b050dd7ca5b77c3001a790031d877fa10956