|
|
|
@@ -291,6 +291,19 @@ void DumpGraphOutput(const Any &any, size_t recurse_level = 0) { |
|
|
|
(void)tab_str.append(any.ToString()); |
|
|
|
MS_LOG(INFO) << tab_str; |
|
|
|
} |
|
|
|
|
|
|
|
bool ExistSummaryNode(const KernelGraph *graph) { |
|
|
|
auto ret = graph->get_return(); |
|
|
|
MS_EXCEPTION_IF_NULL(ret); |
|
|
|
auto all_nodes = DeepLinkedGraphSearch(ret); |
|
|
|
for (auto &n : all_nodes) { |
|
|
|
if (IsPrimitiveCNode(n, prim::kPrimScalarSummary) || IsPrimitiveCNode(n, prim::kPrimTensorSummary) || |
|
|
|
IsPrimitiveCNode(n, prim::kPrimImageSummary) || IsPrimitiveCNode(n, prim::kPrimHistogramSummary)) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
} // namespace |
|
|
|
|
|
|
|
GraphId SessionBasic::graph_sum_ = 0; |
|
|
|
@@ -537,6 +550,9 @@ KernelGraphPtr SessionBasic::ConstructKernelGraph(const AnfNodePtrList &lst, con |
|
|
|
graph->set_manager(manager); |
|
|
|
} |
|
|
|
graph->SetExecOrderByDefault(); |
|
|
|
if (ExistSummaryNode(graph.get())) { |
|
|
|
graph->set_summary_node_exist(true); |
|
|
|
} |
|
|
|
opt::BackendCommonOptimization(graph); |
|
|
|
return graph; |
|
|
|
} |
|
|
|
@@ -594,6 +610,9 @@ std::shared_ptr<KernelGraph> SessionBasic::ConstructKernelGraph(const FuncGraphP |
|
|
|
graph->set_manager(manager); |
|
|
|
} |
|
|
|
graph->SetExecOrderByDefault(); |
|
|
|
if (ExistSummaryNode(graph.get())) { |
|
|
|
graph->set_summary_node_exist(true); |
|
|
|
} |
|
|
|
return graph; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -716,6 +735,9 @@ void SessionBasic::GetSummaryNodes(const KernelGraph *graph, |
|
|
|
MS_LOG(DEBUG) << "Update summary Start"; |
|
|
|
MS_EXCEPTION_IF_NULL(graph); |
|
|
|
MS_EXCEPTION_IF_NULL(summary); |
|
|
|
if (!graph->summary_node_exist()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
auto apply_list = TopoSort(graph->get_return()); |
|
|
|
for (auto &n : apply_list) { |
|
|
|
MS_EXCEPTION_IF_NULL(n); |
|
|
|
|