From 74111f223025a8defd0cb3fc3678ef17564a4b01 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 12 Nov 2020 13:33:59 +0800 Subject: [PATCH] Fix dynamic graph check for Label insert. --- ge/graph/build/label_allocator.cc | 7 +------ ge/graph/manager/graph_manager.cc | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/ge/graph/build/label_allocator.cc b/ge/graph/build/label_allocator.cc index fad7d0c2..989fd4ab 100644 --- a/ge/graph/build/label_allocator.cc +++ b/ge/graph/build/label_allocator.cc @@ -32,11 +32,6 @@ Status LabelAllocator::AssignFunctionalLabels() { return INTERNAL_ERROR; } - if (compute_graph_->GetGraphUnknownFlag()) { - GELOGD("Graph[%s] is unknown graph, skip label allocator.", compute_graph_->GetName().c_str()); - return SUCCESS; - } - // Add label task for sub graph. GELOGI("AssignFunctionalLabels start: %s.", compute_graph_->GetName().c_str()); std::set functional_nodes; @@ -62,7 +57,7 @@ Status LabelAllocator::AssignFunctionalLabels() { } (void)AttrUtils::SetInt(*compute_graph_, ATTR_MODEL_LABEL_NUM, label_index); - GELOGI("AssignFunctionalLabels success."); + GELOGI("AssignFunctionalLabels success, Num: %u.", label_index); return SUCCESS; } diff --git a/ge/graph/manager/graph_manager.cc b/ge/graph/manager/graph_manager.cc index 282cd7a6..891271a2 100755 --- a/ge/graph/manager/graph_manager.cc +++ b/ge/graph/manager/graph_manager.cc @@ -2189,17 +2189,21 @@ Status GraphManager::OptimizeStage2(ge::ComputeGraphPtr &compute_graph) { return ret; } - // Assign functional op labels. - GE_TIMESTAMP_START(AssignFunctionalLabels); - LabelAllocator label_allocator(compute_graph); - GE_CHK_STATUS_RET(label_allocator.AssignFunctionalLabels(), "Assign label failed."); - GE_TIMESTAMP_END(AssignFunctionalLabels, "ModelBuilder::AssignFunctionalLabels"); - - // Add memcpy addr asynchronous node. - GE_TIMESTAMP_START(AddMemcpyAddrAsyncNode); - MemcpyAddrAsyncPass memcpy_addr; - GE_CHK_STATUS_RET(memcpy_addr.Run(compute_graph), "Add memcpy_addr_async node failed."); - GE_TIMESTAMP_END(AddMemcpyAddrAsyncNode, "MemcpyAddrAsyncPass::Run."); + bool is_dynamic_shape = false; + (void)AttrUtils::GetBool(compute_graph, ATTR_NAME_DYNAMIC_SHAPE_PARTITIONED, is_dynamic_shape); + if (!is_dynamic_shape) { + // Assign functional op labels. + GE_TIMESTAMP_START(AssignFunctionalLabels); + LabelAllocator label_allocator(compute_graph); + GE_CHK_STATUS_RET(label_allocator.AssignFunctionalLabels(), "Assign label failed."); + GE_TIMESTAMP_END(AssignFunctionalLabels, "ModelBuilder::AssignFunctionalLabels"); + + // Add memcpy addr asynchronous node. + GE_TIMESTAMP_START(AddMemcpyAddrAsyncNode); + MemcpyAddrAsyncPass memcpy_addr; + GE_CHK_STATUS_RET(memcpy_addr.Run(compute_graph), "Add memcpy_addr_async node failed."); + GE_TIMESTAMP_END(AddMemcpyAddrAsyncNode, "MemcpyAddrAsyncPass::Run."); + } // After while sub graph handle, mark all node rw type auto result = GetCompilerStages(compute_graph->GetGraphID()).optimizer.HandleMemoryRWConflict(compute_graph);