From aaf496e02ac4623e5356901bd4c2f37895228e06 Mon Sep 17 00:00:00 2001 From: zhangxiaokun Date: Thu, 18 Feb 2021 09:12:01 +0800 Subject: [PATCH 01/14] Delete repeated rtSetDevice --- ge/graph/load/model_manager/model_manager.cc | 37 ++---- ge/graph/load/model_manager/model_manager.h | 2 - ge/graph/manager/graph_manager.cc | 16 +-- ge/graph/manager/graph_manager.h | 2 +- .../ge_graph/ge_format_refiner_unittest.cc | 30 ++--- .../testcase/ge_graph/ge_graph_anchor_unittest.cc | 18 +-- .../ge_graph/ge_model_serialize_unittest.cc | 7 +- tests/ut/ge/CMakeLists.txt | 2 +- tests/ut/ge/graph/load/davinci_model_unittest.cc | 125 +++++++++++---------- ...nager_unittest.cc => model_manager_unittest.cc} | 122 ++++++++++---------- 10 files changed, 166 insertions(+), 195 deletions(-) rename tests/ut/ge/graph/load/{new_model_manager_model_manager_unittest.cc => model_manager_unittest.cc} (74%) diff --git a/ge/graph/load/model_manager/model_manager.cc b/ge/graph/load/model_manager/model_manager.cc index 16a6ac76..512c6e72 100755 --- a/ge/graph/load/model_manager/model_manager.cc +++ b/ge/graph/load/model_manager/model_manager.cc @@ -270,18 +270,6 @@ ModelManager::~ModelManager() { GE_IF_BOOL_EXEC(device_count > 0, GE_CHK_RT(rtDeviceReset(0))); } -/// -/// @ingroup domi_ome -/// @brief set Device. If no device available, return failure -/// @return Status run result -/// @author -/// -Status ModelManager::SetDevice(int32_t deviceId) const { - GE_CHK_RT_RET(rtSetDevice(deviceId)); - - return SUCCESS; -} - ge::Status ModelManager::SetDynamicSize(uint32_t model_id, const std::vector &batch_num, int32_t dynamic_type) { std::shared_ptr davinci_model = GetModel(model_id); @@ -322,8 +310,6 @@ Status ModelManager::LoadModelOnline(uint32_t &model_id, const shared_ptr(GetContext().DeviceId())), "Set device failed, model id:%u.", - model_id); mmTimespec timespec = mmGetTickCount(); std::shared_ptr davinci_model = MakeShared(0, listener); if (davinci_model == nullptr) { @@ -360,8 +346,6 @@ Status ModelManager::LoadModelOnline(uint32_t &model_id, const shared_ptr(GetContext().DeviceId()))); - return ret; } @@ -1055,11 +1039,15 @@ Status ModelManager::LoadModelOffline(uint32_t &model_id, const ModelData &model ACL_ERROR_GE_PARAM_INVALID, "input key file path %s is invalid, %s", model.key.c_str(), strerror(errno)); GenModelId(&model_id); - shared_ptr davinci_model = nullptr; mmTimespec timespec = mmGetTickCount(); ModelHelper model_helper; Status ret = model_helper.LoadRootModel(model); + if (ret != SUCCESS) { + GELOGE(ret, "load model failed."); + return ret; + } + if (model_helper.GetModelType()) { bool is_shape_unknown = false; GE_CHK_STATUS_RET(model_helper.GetGeRootModel()->CheckIsUnknownShape(is_shape_unknown), @@ -1068,21 +1056,13 @@ Status ModelManager::LoadModelOffline(uint32_t &model_id, const ModelData &model return DoLoadHybridModelOnline(model_id, model_helper.GetGeRootModel(), listener); } } - if (ret != SUCCESS) { - GELOGE(ret, "load model failed."); - return ret; - } do { GeModelPtr ge_model = model_helper.GetGeModel(); - try { - davinci_model = std::make_shared(model.priority, listener); - } catch (std::bad_alloc &) { + shared_ptr davinci_model = MakeShared(model.priority, listener); + if (davinci_model == nullptr) { GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Make shared failed"); return ACL_ERROR_GE_MEMORY_ALLOCATION; - } catch (...) { - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Make shared failed since other exception raise"); - return ACL_ERROR_GE_MEMORY_ALLOCATION; } davinci_model->SetProfileTime(MODEL_LOAD_START, (timespec.tv_sec * kTimeSpecNano + timespec.tv_nsec)); // 1000 ^ 3 converts second to nanosecond @@ -1122,9 +1102,8 @@ Status ModelManager::LoadModelOffline(uint32_t &model_id, const ModelData &model InsertModel(model_id, davinci_model); GELOGI("Parse model %u success.", model_id); - + GE_IF_BOOL_EXEC(ret == SUCCESS, device_count++); - return SUCCESS; } while (0); return ret; diff --git a/ge/graph/load/model_manager/model_manager.h b/ge/graph/load/model_manager/model_manager.h index aa0753b1..8aa09418 100755 --- a/ge/graph/load/model_manager/model_manager.h +++ b/ge/graph/load/model_manager/model_manager.h @@ -247,8 +247,6 @@ class FMK_FUNC_HOST_VISIBILITY FMK_FUNC_DEV_VISIBILITY ModelManager { ge::Status GetModelAttr(uint32_t model_id, std::vector &dynamic_output_shape_info); - ge::Status SetDevice(int32_t deviceId) const; - ge::Status SetDynamicSize(uint32_t model_id, const std::vector &batch_num, int32_t dynamic_type); /// diff --git a/ge/graph/manager/graph_manager.cc b/ge/graph/manager/graph_manager.cc index f5102f62..a57f0e61 100755 --- a/ge/graph/manager/graph_manager.cc +++ b/ge/graph/manager/graph_manager.cc @@ -2622,14 +2622,9 @@ Status GraphManager::IncreBuild(const GraphNodePtr &graph_node, GeModelPtr &ge_m return FAILED; } -void GraphManager::ConstructGeInput(std::vector &ge_inputs, PreRunArgs &args) { - for (auto const &input : args.input_tensor) { - std::vector input_dims; - std::transform(input.dims.begin(), input.dims.end(), std::back_inserter(input_dims), - [](int64_t x) -> int64_t { return x; }); - GeShape input_shape(input_dims); - GeTensorDesc input_tensor_desc; - input_tensor_desc.SetShape(input_shape); +void GraphManager::ConstructGeInput(const vector &inputs, vector &ge_inputs) { + for (auto const &input : inputs) { + GeTensorDesc input_tensor_desc(GeShape(input.dims)); input_tensor_desc.SetDataType(static_cast(input.data_type)); ge_inputs.emplace_back(input_tensor_desc); } @@ -2653,9 +2648,6 @@ void GraphManager::PreRunThread(GraphManager *graph_manager) { GetThreadLocalContext() = args.context; graph_manager->UpdateLocalOmgContext(args.graph_id); - std::vector ge_inputs; - ConstructGeInput(ge_inputs, args); - // find graph GraphNodePtr graph_node = nullptr; Status ret = graph_manager->GetGraphNode(args.graph_id, graph_node); @@ -2709,6 +2701,8 @@ void GraphManager::PreRunThread(GraphManager *graph_manager) { // check need incre build. GeModelPtr ge_model = nullptr; if (graph_manager->IncreBuild(graph_node, ge_model) != SUCCESS) { + std::vector ge_inputs; + ConstructGeInput(args.input_tensor, ge_inputs); ret = graph_manager->PreRun(graph_node, ge_inputs, ge_root_model, args.session_id); // release rts generate context RtContextUtil::GetInstance().DestroyRtContexts(args.session_id, graph_node->GetGraphId()); diff --git a/ge/graph/manager/graph_manager.h b/ge/graph/manager/graph_manager.h index 32de7eac..31e8799f 100644 --- a/ge/graph/manager/graph_manager.h +++ b/ge/graph/manager/graph_manager.h @@ -336,7 +336,7 @@ class GraphManager { void RemoveModelCacheHelper(const GraphId &graph_id); ModelCacheHelperPtr FindModelCacheHelper(GraphId graph_id); - static void ConstructGeInput(std::vector &ge_inputs, PreRunArgs &args); + static void ConstructGeInput(const std::vector &inputs, std::vector &ge_inputs); static void PreRunThread(GraphManager *graph_manager); static void RunThread(GraphManager *graph_manager); static void StopQueue(GraphManager *graph_manager); diff --git a/tests/ut/common/graph/testcase/ge_graph/ge_format_refiner_unittest.cc b/tests/ut/common/graph/testcase/ge_graph/ge_format_refiner_unittest.cc index d7112878..d4fc3918 100644 --- a/tests/ut/common/graph/testcase/ge_graph/ge_format_refiner_unittest.cc +++ b/tests/ut/common/graph/testcase/ge_graph/ge_format_refiner_unittest.cc @@ -58,7 +58,7 @@ namespace { /// relu1 /// | /// conv1 -/// / \ +/// / \. /// var1 var2 /// ut::GraphBuilder BuildGraph1() { @@ -95,9 +95,9 @@ ut::GraphBuilder BuildGraph1() { /// relu1 /// | /// bn1 ----------------- -/// | \ \ \ \ +/// | \ \ \ \. /// conv1 var3 var4 var5 var6 -/// | \ +/// | \. /// var1 var2 /// ut::GraphBuilder BuildGraph2() { @@ -142,11 +142,11 @@ ut::GraphBuilder BuildGraph2() { /// netoutput1 /// | /// conv2 -/// | \ +/// | \. /// relu1 var3 /// | /// conv1 -/// / \ +/// / \. /// var1 var2 /// ut::GraphBuilder BuildGraph3() { @@ -197,13 +197,13 @@ ut::GraphBuilder BuildGraph3() { /// netoutput1 /// | /// conv2 -/// | \ +/// | \. /// relu1 var3 /// | /// bn1 /// | /// conv1 -/// / \ +/// / \. /// var1 var2 /// ut::GraphBuilder BuildGraph4() { @@ -256,10 +256,10 @@ ut::GraphBuilder BuildGraph4() { /// netoutput1 /// | /// apply1 -/// / \ -/// relug1 --> bng1 \ -/// \ / | \ \ -/// relu1 | | \ +/// / \. +/// relug1 --> bng1 \. +/// \ / | \ \. +/// relu1 | | \. /// \| | | /// | | | /// bn1 | | @@ -313,9 +313,9 @@ ut::GraphBuilder BuilderGraph5() { /// netoutput1 /// | /// AddN -/// / \ \ +/// / \ \. /// L2Loss GatherV2 Constant -/// / \ +/// / \. /// Data1 Data2 /// ut::GraphBuilder BuildGraph6() { @@ -362,9 +362,9 @@ ut::GraphBuilder BuildGraph6() { /// netoutput1 /// | /// AddN -/// / \ \ +/// / \ \. /// L2Loss GatherV2 Constant -/// / \ +/// / \. /// Data1 Data2 /// ut::GraphBuilder BuildGraph7() { diff --git a/tests/ut/common/graph/testcase/ge_graph/ge_graph_anchor_unittest.cc b/tests/ut/common/graph/testcase/ge_graph/ge_graph_anchor_unittest.cc index 79777641..5cf7569b 100644 --- a/tests/ut/common/graph/testcase/ge_graph/ge_graph_anchor_unittest.cc +++ b/tests/ut/common/graph/testcase/ge_graph/ge_graph_anchor_unittest.cc @@ -30,7 +30,7 @@ using namespace ge; using namespace std; -class UtestGeAnchor : public testing::Test { +class UtestGeAnchor : public testing::Test { protected: void SetUp() {} @@ -294,7 +294,7 @@ TEST_F(UtestGeAnchor, data_anchor_replace_peer) { EXPECT_EQ(node1->GetOutDataAnchor(1)->LinkTo(node2->GetInDataAnchor(1)), GRAPH_SUCCESS); EXPECT_EQ(node1->GetOutDataAnchor(1)->LinkTo(node2->GetInDataAnchor(2)), GRAPH_SUCCESS); - int out_idx = 0; + size_t out_idx = 0; for (; out_idx < out_data_anchor->peer_anchors_.size(); out_idx++) { if (out_data_anchor->peer_anchors_[out_idx].lock() == in_data_anchor) { break; @@ -302,7 +302,7 @@ TEST_F(UtestGeAnchor, data_anchor_replace_peer) { } EXPECT_EQ(out_idx, 1); - int in_idx = 0; + size_t in_idx = 0; for (; in_idx < in_data_anchor->peer_anchors_.size(); in_idx++) { if (in_data_anchor->peer_anchors_[in_idx].lock() == out_data_anchor) { break; @@ -312,7 +312,7 @@ TEST_F(UtestGeAnchor, data_anchor_replace_peer) { out_data_anchor->ReplacePeer(in_data_anchor, node3->GetInDataAnchor(1), node3->GetOutDataAnchor(1)); - int out_idx1 = 0; + size_t out_idx1 = 0; for (; out_idx1 < out_data_anchor->peer_anchors_.size(); out_idx1++) { if (out_data_anchor->peer_anchors_[out_idx1].lock() == node3->GetInDataAnchor(1)) { break; @@ -320,7 +320,7 @@ TEST_F(UtestGeAnchor, data_anchor_replace_peer) { } EXPECT_EQ(out_idx1, out_idx); - int in_idx1 = 0; + size_t in_idx1 = 0; for (; in_idx1 < in_data_anchor->peer_anchors_.size(); in_idx1++) { if (in_data_anchor->peer_anchors_[in_idx1].lock() == node3->GetOutDataAnchor(1)) { break; @@ -350,7 +350,7 @@ TEST_F(UtestGeAnchor, graph_utils_insert_node) { EXPECT_EQ(node1->GetOutDataAnchor(1)->LinkTo(node2->GetInDataAnchor(1)), GRAPH_SUCCESS); EXPECT_EQ(node1->GetOutDataAnchor(1)->LinkTo(node2->GetInDataAnchor(2)), GRAPH_SUCCESS); - int out_idx = 0; + size_t out_idx = 0; for (; out_idx < out_data_anchor->peer_anchors_.size(); out_idx++) { if (out_data_anchor->peer_anchors_[out_idx].lock() == in_data_anchor) { break; @@ -358,7 +358,7 @@ TEST_F(UtestGeAnchor, graph_utils_insert_node) { } EXPECT_EQ(out_idx, 1); - int in_idx = 0; + size_t in_idx = 0; for (; in_idx < in_data_anchor->peer_anchors_.size(); in_idx++) { if (in_data_anchor->peer_anchors_[in_idx].lock() == out_data_anchor) { break; @@ -368,7 +368,7 @@ TEST_F(UtestGeAnchor, graph_utils_insert_node) { GraphUtils::InsertNodeBetweenDataAnchors(out_data_anchor, in_data_anchor, node3); - int out_idx1 = 0; + size_t out_idx1 = 0; for (; out_idx1 < out_data_anchor->peer_anchors_.size(); out_idx1++) { if (out_data_anchor->peer_anchors_[out_idx1].lock() == node3->GetInDataAnchor(0)) { break; @@ -376,7 +376,7 @@ TEST_F(UtestGeAnchor, graph_utils_insert_node) { } EXPECT_EQ(out_idx1, out_idx); - int in_idx1 = 0; + size_t in_idx1 = 0; for (; in_idx1 < in_data_anchor->peer_anchors_.size(); in_idx1++) { if (in_data_anchor->peer_anchors_[in_idx1].lock() == node3->GetOutDataAnchor(0)) { break; diff --git a/tests/ut/common/graph/testcase/ge_graph/ge_model_serialize_unittest.cc b/tests/ut/common/graph/testcase/ge_graph/ge_model_serialize_unittest.cc index e72691b3..0366446c 100644 --- a/tests/ut/common/graph/testcase/ge_graph/ge_model_serialize_unittest.cc +++ b/tests/ut/common/graph/testcase/ge_graph/ge_model_serialize_unittest.cc @@ -59,7 +59,7 @@ NodePtr CreateNode(OpDescPtr op, ComputeGraphPtr owner_graph) { return owner_gra void CompareShape(const vector &shape1, const vector &shape2) { EXPECT_EQ(shape1.size(), shape2.size()); if (shape1.size() == shape2.size()) { - for (int i = 0; i < shape1.size(); i++) { + for (size_t i = 0; i < shape1.size(); i++) { EXPECT_EQ(shape1[i], shape2[i]); } } @@ -69,7 +69,7 @@ template void CompareList(const vector &val1, const vector &val2) { EXPECT_EQ(val1.size(), val2.size()); if (val1.size() == val2.size()) { - for (int i = 0; i < val1.size(); i++) { + for (size_t i = 0; i < val1.size(); i++) { EXPECT_EQ(val1[i], val2[i]); } } @@ -129,6 +129,9 @@ static bool NamedAttrsSimpleCmp(const GeAttrValue &left, const GeAttrValue &righ return false; } } + default: { + return true; + } } } return true; diff --git a/tests/ut/ge/CMakeLists.txt b/tests/ut/ge/CMakeLists.txt index 720edaed..a09d5789 100755 --- a/tests/ut/ge/CMakeLists.txt +++ b/tests/ut/ge/CMakeLists.txt @@ -625,7 +625,7 @@ set(DISTINCT_GRAPH_LOAD_TEST_FILES "graph/load/data_dumper_unittest.cc" #"graph/load/new_model_manager_data_inputer_unittest.cc" #"graph/load/new_model_manager_davinci_model_unittest.cc" - "graph/load/new_model_manager_model_manager_unittest.cc" + "graph/load/model_manager_unittest.cc" #"graph/load/new_model_manager_task_build_unittest.cc" "graph/load/new_model_manager_model_manager_aicpu_unittest.cc" "graph/load/end_graph_task_unittest.cc" diff --git a/tests/ut/ge/graph/load/davinci_model_unittest.cc b/tests/ut/ge/graph/load/davinci_model_unittest.cc index a66aed7e..5f08f425 100644 --- a/tests/ut/ge/graph/load/davinci_model_unittest.cc +++ b/tests/ut/ge/graph/load/davinci_model_unittest.cc @@ -38,7 +38,6 @@ int32_t MsprofReport(uint32_t moduleId, uint32_t type, void *data, uint32_t len) return 0; } -/* TEST_F(UtestDavinciModel, init_success) { DavinciModel model(0, nullptr); ComputeGraphPtr graph = make_shared("default"); @@ -46,7 +45,7 @@ TEST_F(UtestDavinciModel, init_success) { GeModelPtr ge_model = make_shared(); ge_model->SetGraph(GraphUtils::CreateGraphFromComputeGraph(graph)); - AttrUtils::SetInt(ge_model, ATTR_MODEL_MEMORY_SIZE, 5120000); + AttrUtils::SetInt(ge_model, ATTR_MODEL_MEMORY_SIZE, 10240); AttrUtils::SetInt(ge_model, ATTR_MODEL_STREAM_NUM, 1); shared_ptr model_task_def = make_shared(); @@ -54,60 +53,66 @@ TEST_F(UtestDavinciModel, init_success) { GeTensorDesc tensor(GeShape(), FORMAT_NCHW, DT_FLOAT); TensorUtils::SetSize(tensor, 512); + { + OpDescPtr op_desc = CreateOpDesc("data", DATA); + op_desc->AddInputDesc(tensor); + op_desc->AddOutputDesc(tensor); + op_desc->SetInputOffset({1024}); + op_desc->SetOutputOffset({1024}); + NodePtr node = graph->AddNode(op_desc); // op_index = 0 + } - OpDescPtr op_input = CreateOpDesc("data", DATA); - op_input->AddInputDesc(tensor); - op_input->AddOutputDesc(tensor); - op_input->SetInputOffset({1024}); - op_input->SetOutputOffset({1024}); - NodePtr node_input = graph->AddNode(op_input); // op_index = 0 - - OpDescPtr op_kernel = CreateOpDesc("square", "Square"); - op_kernel->AddInputDesc(tensor); - op_kernel->AddOutputDesc(tensor); - op_kernel->SetInputOffset({1024}); - op_kernel->SetOutputOffset({1024}); - NodePtr node_kernel = graph->AddNode(op_kernel); // op_index = 1 - - OpDescPtr op_memcpy = CreateOpDesc("memcpy", MEMCPYASYNC); - op_memcpy->AddInputDesc(tensor); - op_memcpy->AddOutputDesc(tensor); - op_memcpy->SetInputOffset({1024}); - op_memcpy->SetOutputOffset({5120}); - NodePtr node_memcpy = graph->AddNode(op_memcpy); // op_index = 2 - - OpDescPtr op_output = CreateOpDesc("output", NETOUTPUT); - op_output->AddInputDesc(tensor); - op_output->SetInputOffset({5120}); - op_output->SetSrcName( { "memcpy" } ); - op_output->SetSrcIndex( { 0 } ); - NodePtr node_output = graph->AddNode(op_output); // op_index = 3 + { + OpDescPtr op_desc = CreateOpDesc("square", "Square"); + op_desc->AddInputDesc(tensor); + op_desc->AddOutputDesc(tensor); + op_desc->SetInputOffset({1024}); + op_desc->SetOutputOffset({1024}); + NodePtr node = graph->AddNode(op_desc); // op_index = 1 + domi::TaskDef *task_def = model_task_def->add_task(); + task_def->set_stream_id(0); + task_def->set_type(RT_MODEL_TASK_KERNEL); + domi::KernelDef *kernel_def = task_def->mutable_kernel(); + kernel_def->set_stub_func("stub_func"); + kernel_def->set_args_size(64); + string args(64, '1'); + kernel_def->set_args(args.data(), 64); + domi::KernelContext *context = kernel_def->mutable_context(); + context->set_op_index(op_desc->GetId()); + context->set_kernel_type(2); // ccKernelType::TE + uint16_t args_offset[9] = {0}; + context->set_args_offset(args_offset, 9 * sizeof(uint16_t)); + } - domi::TaskDef *task_def1 = model_task_def->add_task(); - task_def1->set_stream_id(0); - task_def1->set_type(RT_MODEL_TASK_KERNEL); - domi::KernelDef *kernel_def = task_def1->mutable_kernel(); - kernel_def->set_stub_func("stub_func"); - kernel_def->set_args_size(64); - string args(64, '1'); - kernel_def->set_args(args.data(), 64); - domi::KernelContext *context = kernel_def->mutable_context(); - context->set_op_index(1); - context->set_kernel_type(2); // ccKernelType::TE - uint16_t args_offset[9] = {0}; - context->set_args_offset(args_offset, 9 * sizeof(uint16_t)); + { + OpDescPtr op_desc = CreateOpDesc("memcpy", MEMCPYASYNC); + op_desc->AddInputDesc(tensor); + op_desc->AddOutputDesc(tensor); + op_desc->SetInputOffset({1024}); + op_desc->SetOutputOffset({5120}); + NodePtr node = graph->AddNode(op_desc); // op_index = 2 + + domi::TaskDef *task_def = model_task_def->add_task(); + task_def->set_stream_id(0); + task_def->set_type(RT_MODEL_TASK_MEMCPY_ASYNC); + domi::MemcpyAsyncDef *memcpy_async = task_def->mutable_memcpy_async(); + memcpy_async->set_src(1024); + memcpy_async->set_dst(5120); + memcpy_async->set_dst_max(512); + memcpy_async->set_count(1); + memcpy_async->set_kind(RT_MEMCPY_DEVICE_TO_DEVICE); + memcpy_async->set_op_index(op_desc->GetId()); + } - domi::TaskDef *task_def2 = model_task_def->add_task(); - task_def2->set_stream_id(0); - task_def2->set_type(RT_MODEL_TASK_MEMCPY_ASYNC); - domi::MemcpyAsyncDef *memcpy_async = task_def2->mutable_memcpy_async(); - memcpy_async->set_src(1024); - memcpy_async->set_dst(5120); - memcpy_async->set_dst_max(512); - memcpy_async->set_count(1); - memcpy_async->set_kind(RT_MEMCPY_DEVICE_TO_DEVICE); - memcpy_async->set_op_index(2); + { + OpDescPtr op_desc = CreateOpDesc("output", NETOUTPUT); + op_desc->AddInputDesc(tensor); + op_desc->SetInputOffset({5120}); + op_desc->SetSrcName( { "memcpy" } ); + op_desc->SetSrcIndex( { 0 } ); + NodePtr node = graph->AddNode(op_desc); // op_index = 3 + } EXPECT_EQ(model.Assign(ge_model), SUCCESS); EXPECT_EQ(model.Init(), SUCCESS); @@ -124,7 +129,6 @@ TEST_F(UtestDavinciModel, init_success) { ProfilingManager::Instance().is_load_profiling_ = false; } -*/ TEST_F(UtestDavinciModel, init_data_op) { DavinciModel model(0, nullptr); @@ -752,7 +756,6 @@ TEST_F(UtestDavinciModel, init_data_aipp_input_dims_normal) { EXPECT_EQ(model.op_list_.size(), 1); } -/* // test label_set_task Init TEST_F(UtestDavinciModel, label_task_success) { DavinciModel model(0, nullptr); @@ -760,7 +763,7 @@ TEST_F(UtestDavinciModel, label_task_success) { GeModelPtr ge_model = make_shared(); ge_model->SetGraph(GraphUtils::CreateGraphFromComputeGraph(graph)); - AttrUtils::SetInt(ge_model, ATTR_MODEL_MEMORY_SIZE, 5120000); + AttrUtils::SetInt(ge_model, ATTR_MODEL_MEMORY_SIZE, 10240); AttrUtils::SetInt(ge_model, ATTR_MODEL_STREAM_NUM, 1); shared_ptr model_task_def = make_shared(); @@ -769,7 +772,6 @@ TEST_F(UtestDavinciModel, label_task_success) { GeTensorDesc tensor(GeShape(), FORMAT_ND, DT_INT32); TensorUtils::SetSize(tensor, 64); - uint32_t op_index = 0; { OpDescPtr op_desc = CreateOpDesc("label_switch", LABELSWITCHBYINDEX); op_desc->AddInputDesc(tensor); @@ -781,7 +783,7 @@ TEST_F(UtestDavinciModel, label_task_success) { task_def1->set_stream_id(0); task_def1->set_type(RT_MODEL_TASK_STREAM_LABEL_SWITCH_BY_INDEX); domi::LabelSwitchByIndexDef *label_task_def = task_def1->mutable_label_switch_by_index(); - label_task_def->set_op_index(op_index++); + label_task_def->set_op_index(op_desc->GetId()); label_task_def->set_label_max(2); } @@ -794,7 +796,7 @@ TEST_F(UtestDavinciModel, label_task_success) { task_def1->set_stream_id(0); task_def1->set_type(RT_MODEL_TASK_LABEL_SET); domi::LabelSetDef *label_task_def = task_def1->mutable_label_set(); - label_task_def->set_op_index(op_index++); + label_task_def->set_op_index(op_desc->GetId()); } { @@ -806,7 +808,7 @@ TEST_F(UtestDavinciModel, label_task_success) { task_def2->set_stream_id(0); task_def2->set_type(RT_MODEL_TASK_STREAM_LABEL_GOTO); domi::LabelGotoExDef *label_task_def = task_def2->mutable_label_goto_ex(); - label_task_def->set_op_index(op_index++); + label_task_def->set_op_index(op_desc->GetId()); } { @@ -818,7 +820,7 @@ TEST_F(UtestDavinciModel, label_task_success) { task_def1->set_stream_id(0); task_def1->set_type(RT_MODEL_TASK_LABEL_SET); domi::LabelSetDef *label_task_def = task_def1->mutable_label_set(); - label_task_def->set_op_index(op_index++); + label_task_def->set_op_index(op_desc->GetId()); } { @@ -830,7 +832,7 @@ TEST_F(UtestDavinciModel, label_task_success) { task_def1->set_stream_id(0); task_def1->set_type(RT_MODEL_TASK_LABEL_SET); domi::LabelSetDef *label_task_def = task_def1->mutable_label_set(); - label_task_def->set_op_index(op_index++); + label_task_def->set_op_index(op_desc->GetId()); } EXPECT_TRUE(AttrUtils::SetInt(ge_model, ATTR_MODEL_LABEL_NUM, 3)); @@ -840,7 +842,6 @@ TEST_F(UtestDavinciModel, label_task_success) { EXPECT_EQ(model.output_addrs_list_.size(), 0); EXPECT_EQ(model.task_list_.size(), 5); } -*/ TEST_F(UtestDavinciModel, LoadWithQueue_fail_with_diff_args) { DavinciModel model(0, nullptr); diff --git a/tests/ut/ge/graph/load/new_model_manager_model_manager_unittest.cc b/tests/ut/ge/graph/load/model_manager_unittest.cc similarity index 74% rename from tests/ut/ge/graph/load/new_model_manager_model_manager_unittest.cc rename to tests/ut/ge/graph/load/model_manager_unittest.cc index 688e73d4..142b5566 100644 --- a/tests/ut/ge/graph/load/new_model_manager_model_manager_unittest.cc +++ b/tests/ut/ge/graph/load/model_manager_unittest.cc @@ -15,20 +15,17 @@ */ #include -#include -#include "common/debug/log.h" -#include "common/types.h" -#include "graph/utils/graph_utils.h" + #define private public #define protected public #include "graph/load/model_manager/model_manager.h" #include "common/helper/om_file_helper.h" +#include "graph/utils/graph_utils.h" +#include "graph/debug/ge_attr_define.h" #include "common/op/ge_op_utils.h" #include "graph/load/graph_loader.h" #include "graph/load/model_manager/davinci_model.h" #include "graph/load/model_manager/davinci_model_parser.h" -#undef private -#undef protected using namespace std; using namespace testing; @@ -39,20 +36,20 @@ const static std::string ENC_KEY = "0123456789abcdef0123456789abcdef0123456789ab class UtestModelManagerModelManager : public testing::Test { protected: - static Status LoadStub(const uint8_t *data, size_t len, ge::Model &model) { + static Status LoadStub(const uint8_t *data, size_t len, Model &model) { InitModelDefault(model); - return ge::SUCCESS; + return SUCCESS; } - static void InitModelDefault(ge::Model &model) { - ge::AttrUtils::SetInt(&model, ge::ATTR_MODEL_MEMORY_SIZE, 0); - ge::AttrUtils::SetInt(&model, ge::ATTR_MODEL_WEIGHT_SIZE, 0); - ge::AttrUtils::SetInt(&model, ge::ATTR_MODEL_STREAM_NUM, 0); - ge::AttrUtils::SetInt(&model, ge::ATTR_MODEL_EVENT_NUM, 0); - ge::AttrUtils::SetStr(&model, ge::ATTR_MODEL_TARGET_TYPE, "MINI"); // domi::MINI + static void InitModelDefault(Model &model) { + AttrUtils::SetInt(&model, ATTR_MODEL_MEMORY_SIZE, 0); + AttrUtils::SetInt(&model, ATTR_MODEL_WEIGHT_SIZE, 0); + AttrUtils::SetInt(&model, ATTR_MODEL_STREAM_NUM, 0); + AttrUtils::SetInt(&model, ATTR_MODEL_EVENT_NUM, 0); + AttrUtils::SetStr(&model, ATTR_MODEL_TARGET_TYPE, "MINI"); // domi::MINI - auto computeGraph = std::make_shared("graph"); - auto graph = ge::GraphUtils::CreateGraphFromComputeGraph(computeGraph); + auto computeGraph = std::make_shared("graph"); + auto graph = GraphUtils::CreateGraphFromComputeGraph(computeGraph); model.SetGraph(graph); } @@ -60,9 +57,8 @@ class UtestModelManagerModelManager : public testing::Test { void TearDown() {} - void GenUnencryptModelData(ge::ModelData &data) { + void GenUnencryptModelData(ModelData &data) { const int model_len = 10; - data.key; data.model_len = sizeof(ModelFileHeader) + model_len; data.model_data = new uint8_t[data.model_len]; memset((uint8_t *)data.model_data + sizeof(ModelFileHeader), 10, model_len); @@ -75,7 +71,7 @@ class UtestModelManagerModelManager : public testing::Test { header->is_checksum = ModelCheckType::CHECK; } - void GenEncryptModelData(ge::ModelData &data) { + void GenEncryptModelData(ModelData &data) { const int model_len = 10; data.key = ENC_KEY; data.model_data = new uint8_t[data.model_len]; @@ -88,10 +84,10 @@ class UtestModelManagerModelManager : public testing::Test { header->length = 10; // encrypt_len; } - void LoadStandardModelData(ge::ModelData &data) { + void LoadStandardModelData(ModelData &data) { static const std::string STANDARD_MODEL_DATA_PATH = "llt/framework/domi/ut/ome/test/data/standard_partition_model.txt"; - ge::proto::ModelDef model_def; + proto::ModelDef model_def; ReadProtoFromText(STANDARD_MODEL_DATA_PATH.c_str(), &model_def); data.model_len = model_def.ByteSizeLong(); @@ -100,79 +96,79 @@ class UtestModelManagerModelManager : public testing::Test { } }; -class DModelListener : public ge::ModelListener { +class DModelListener : public ModelListener { public: DModelListener(){}; uint32_t OnComputeDone(uint32_t model_id, uint32_t data_index, uint32_t resultCode) { return 0; } }; -/*TEST_F(UtestModelManagerModelManager, case_load_incorrect_param) { +TEST_F(UtestModelManagerModelManager, case_load_incorrect_param) { ModelManager mm; uint32_t model_id = 0; - ge::ModelData model; - EXPECT_EQ(ge::FAILED, mm.LoadModelOffline(model_id, model, nullptr, nullptr)); - ge::ModelData data; + ModelData data; // Load allow listener is null - EXPECT_EQ(ge::FAILED, mm.LoadModelOffline(model_id, data, nullptr, nullptr)); + EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_EXEC_MODEL_DATA_SIZE_INVALID); } TEST_F(UtestModelManagerModelManager, case_load_model_len_too_short) { ModelManager mm; - ge::ModelData data; + ModelData data; data.model_len = 10; + data.model_data = (void *)&data; uint32_t model_id = 1; - EXPECT_EQ(ge::FAILED, mm.LoadModelOffline(model_id, data, UTEST_CALL_BACK_FUN, nullptr)); + EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); + data.model_data = nullptr; } TEST_F(UtestModelManagerModelManager, case_load_model_len_not_match) { ModelManager mm; - ge::ModelData data; + ModelData data; GenUnencryptModelData(data); data.model_len = sizeof(ModelFileHeader) + 1; uint32_t model_id = 1; - EXPECT_EQ(ge::FAILED, mm.LoadModelOffline(model_id, data, UTEST_CALL_BACK_FUN, nullptr)); + EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); delete[](uint8_t *) data.model_data; } TEST_F(UtestModelManagerModelManager, case_load_model_encypt_not_match) { ModelManager mm; - ge::ModelData data; + ModelData data; GenUnencryptModelData(data); data.key = ENC_KEY; uint32_t model_id = 1; - EXPECT_EQ(ge::PARAM_INVALID, mm.LoadModelOffline(model_id, data, UTEST_CALL_BACK_FUN, nullptr)); + EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); delete[](uint8_t *) data.model_data; } TEST_F(UtestModelManagerModelManager, case_load_model_encypt_type_unsupported) { ModelManager mm; - ge::ModelData data; + ModelData data; GenUnencryptModelData(data); ModelFileHeader *header = (ModelFileHeader *)data.model_data; header->is_encrypt = 255; uint32_t model_id = 1; - EXPECT_EQ(ge::FAILED, mm.LoadModelOffline(model_id, data, UTEST_CALL_BACK_FUN, nullptr)); + EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); delete[](uint8_t *) data.model_data; } - +/* shared_ptr LabelCallBack(new DModelListener()); // test HandleCommand TEST_F(UtestModelManagerModelManager, command_success1) { ModelManager manager; - ge::Command cmd; + Command cmd; cmd.cmd_type = "INFERENCE"; - EXPECT_EQ(ge::PARAM_INVALID, manager.HandleCommand(cmd)); + EXPECT_EQ(PARAM_INVALID, manager.HandleCommand(cmd)); cmd.cmd_type = "NOT SUPPORT"; - EXPECT_EQ(ge::PARAM_INVALID, manager.HandleCommand(cmd)); + EXPECT_EQ(PARAM_INVALID, manager.HandleCommand(cmd)); } TEST_F(UtestModelManagerModelManager, command_success2) { ModelManager manager; - ge::Command cmd; + Command cmd; cmd.cmd_type = "dump"; cmd.cmd_params.push_back("status"); @@ -184,101 +180,101 @@ TEST_F(UtestModelManagerModelManager, command_success2) { cmd.cmd_params.push_back("layer"); cmd.cmd_params.push_back("layer1"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); } // test profile TEST_F(UtestModelManagerModelManager, command_profile_success) { ModelManager manager; - ge::Command cmd; + Command cmd; cmd.cmd_type = "profile"; cmd.cmd_params.push_back("ome"); cmd.cmd_params.push_back("on"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); bool ome_profile_on = PropertiesManager::Instance().GetPropertyValue(OME_PROFILE) == "1"; EXPECT_EQ(true, ome_profile_on); cmd.cmd_params.clear(); cmd.cmd_params.push_back("ome"); cmd.cmd_params.push_back("off"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); ome_profile_on = PropertiesManager::Instance().GetPropertyValue(OME_PROFILE) == "1"; EXPECT_FALSE(ome_profile_on); cmd.cmd_params.clear(); cmd.cmd_params.push_back("cce"); cmd.cmd_params.push_back("on"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); bool cce_profile_on = PropertiesManager::Instance().GetPropertyValue(CCE_PROFILE) == "1"; EXPECT_EQ(true, cce_profile_on); cmd.cmd_params.clear(); cmd.cmd_params.push_back("cce"); cmd.cmd_params.push_back("off"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); cce_profile_on = PropertiesManager::Instance().GetPropertyValue(CCE_PROFILE) == "1"; EXPECT_FALSE(cce_profile_on); cmd.cmd_params.clear(); cmd.cmd_params.push_back("runtime"); cmd.cmd_params.push_back("on"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); bool rts_profile_on = PropertiesManager::Instance().GetPropertyValue(RTS_PROFILE) == "1"; EXPECT_EQ(true, rts_profile_on); cmd.cmd_params.clear(); cmd.cmd_params.push_back("runtime"); cmd.cmd_params.push_back("off"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); rts_profile_on = PropertiesManager::Instance().GetPropertyValue(RTS_PROFILE) == "1"; EXPECT_FALSE(rts_profile_on); cmd.cmd_params.clear(); cmd.cmd_params.push_back("profiler_jobctx"); cmd.cmd_params.push_back("jobctx"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); EXPECT_EQ("jobctx", PropertiesManager::Instance().GetPropertyValue(PROFILER_JOBCTX)); cmd.cmd_params.clear(); cmd.cmd_params.push_back("profiler_target_path"); cmd.cmd_params.push_back("/test/target"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); EXPECT_EQ("/test/target", PropertiesManager::Instance().GetPropertyValue(PROFILER_TARGET_PATH)); cmd.cmd_params.clear(); cmd.cmd_params.push_back("RTS_PATH"); cmd.cmd_params.push_back("/test/rts_path"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); EXPECT_EQ("/test/rts_path", PropertiesManager::Instance().GetPropertyValue(RTS_PROFILE_PATH)); } // test acl profiling TEST_F(UtestModelManagerModelManager, command_profiling) { ModelManager manager; - ge::Command cmd; + Command cmd; cmd.cmd_type = "profiling"; cmd.cmd_params.push_back("config"); cmd.cmd_params.push_back("on"); - EXPECT_EQ(ge::SUCCESS, manager.HandleCommand(cmd)); + EXPECT_EQ(SUCCESS, manager.HandleCommand(cmd)); } TEST_F(UtestModelManagerModelManager, command_profile_failed) { ModelManager manager; - ge::Command cmd; + Command cmd; cmd.cmd_type = "profile"; cmd.cmd_params.push_back("ome"); - EXPECT_EQ(ge::PARAM_INVALID, manager.HandleCommand(cmd)); + EXPECT_EQ(PARAM_INVALID, manager.HandleCommand(cmd)); } // test Start TEST_F(UtestModelManagerModelManager, start_fail) { ModelManager manager; manager.model_map_[2] = nullptr; - EXPECT_EQ(ge::PARAM_INVALID, manager.Start(2)); + EXPECT_EQ(PARAM_INVALID, manager.Start(2)); } // test GetMaxUsedMemory @@ -286,7 +282,7 @@ TEST_F(UtestModelManagerModelManager, get_max_used_memory_fail) { ModelManager manager; uint64_t max_size = 0; manager.model_map_[2] = nullptr; - EXPECT_EQ(ge::PARAM_INVALID, manager.GetMaxUsedMemory(2, max_size)); + EXPECT_EQ(PARAM_INVALID, manager.GetMaxUsedMemory(2, max_size)); } // test GetInputOutputDescInfo @@ -295,7 +291,7 @@ TEST_F(UtestModelManagerModelManager, get_input_output_desc_info_fail) { manager.model_map_[2] = nullptr; vector input_shape; vector output_shape; - EXPECT_EQ(ge::PARAM_INVALID, manager.GetInputOutputDescInfo(2, input_shape, output_shape)); + EXPECT_EQ(PARAM_INVALID, manager.GetInputOutputDescInfo(2, input_shape, output_shape)); } @@ -306,7 +302,7 @@ TEST_F(UtestModelManagerModelManager, get_input_output_desc_info_zero_copy_fail) manager.model_map_[2] = nullptr; vector input_shape; vector output_shape; - EXPECT_EQ(ge::PARAM_INVALID, manager.GetInputOutputDescInfoForZeroCopy(2, input_shape, output_shape)); + EXPECT_EQ(PARAM_INVALID, manager.GetInputOutputDescInfoForZeroCopy(2, input_shape, output_shape)); } *//* @@ -314,7 +310,7 @@ TEST_F(UtestModelManagerModelManager, get_input_output_desc_info_zero_copy_fail) TEST_F(UtestModelManagerModelManager, stop_fail) { ModelManager manager; manager.model_map_[2] = nullptr; - EXPECT_EQ(ge::PARAM_INVALID, manager.Stop(2)); + EXPECT_EQ(PARAM_INVALID, manager.Stop(2)); } // build input_data @@ -322,8 +318,8 @@ TEST_F(UtestModelManagerModelManager, check_data_len_success) { shared_ptr g_label_call_back(new DModelListener()); DavinciModel model(0, g_label_call_back); ModelManager model_manager; - ge::InputData input_data; - ge::DataBuffer data_buffer; + InputData input_data; + DataBuffer data_buffer; data_buffer.data = new char[51200]; data_buffer.length = 51200; input_data.index = 0; @@ -353,6 +349,6 @@ TEST_F(UtestModelManagerModelManager, test_data_input_tensor) { vector inputs; inputs.emplace_back(input_tensor); auto ret = mm.DataInputTensor(model_id,inputs); - EXPECT_EQ(ge::UNSUPPORTED, ret); + EXPECT_EQ(UNSUPPORTED, ret); } } // namespace ge From 4793969fce08a2e7ea1c934666eaa2fba4a95bf8 Mon Sep 17 00:00:00 2001 From: zhangxiaokun Date: Thu, 18 Feb 2021 13:00:48 +0800 Subject: [PATCH 02/14] Add UT --- tests/ut/ge/graph/load/model_manager_unittest.cc | 75 +++++++++++++++++++++--- 1 file changed, 68 insertions(+), 7 deletions(-) diff --git a/tests/ut/ge/graph/load/model_manager_unittest.cc b/tests/ut/ge/graph/load/model_manager_unittest.cc index 142b5566..81d88ecd 100644 --- a/tests/ut/ge/graph/load/model_manager_unittest.cc +++ b/tests/ut/ge/graph/load/model_manager_unittest.cc @@ -85,14 +85,64 @@ class UtestModelManagerModelManager : public testing::Test { } void LoadStandardModelData(ModelData &data) { - static const std::string STANDARD_MODEL_DATA_PATH = - "llt/framework/domi/ut/ome/test/data/standard_partition_model.txt"; - proto::ModelDef model_def; - ReadProtoFromText(STANDARD_MODEL_DATA_PATH.c_str(), &model_def); - - data.model_len = model_def.ByteSizeLong(); + data.model_len = 512; data.model_data = new uint8_t[data.model_len]; - model_def.SerializePartialToArray(data.model_data, data.model_len); + uint8_t *model_data = reinterpret_cast(data.model_data); + + uint32_t mem_offset = sizeof(ModelFileHeader); + ModelPartitionTable *partition_table = reinterpret_cast(model_data + mem_offset); + partition_table->num = PARTITION_SIZE; + + mem_offset += sizeof(ModelPartitionTable) + sizeof(ModelPartitionMemInfo) * 5; + { + Model model; + ComputeGraphPtr graph = make_shared("default"); + model.SetGraph(GraphUtils::CreateGraphFromComputeGraph(graph)); + model.SetVersion(123); + + Buffer buffer; + model.Save(buffer); + EXPECT_TRUE(mem_offset + buffer.GetSize() < 512); + memcpy(model_data + mem_offset, buffer.GetData(), buffer.GetSize()); + + ModelPartitionMemInfo &partition_info = partition_table->partition[0]; + partition_info.type = ModelPartitionType::MODEL_DEF; + partition_info.mem_size = buffer.GetSize(); + mem_offset += buffer.GetSize(); + } + + { + ModelPartitionMemInfo &partition_info = partition_table->partition[1]; + partition_info.type = ModelPartitionType::WEIGHTS_DATA; + partition_info.mem_offset = mem_offset; + partition_info.mem_size = 0; + } + + { + ModelPartitionMemInfo &partition_info = partition_table->partition[2]; + partition_info.type = ModelPartitionType::TASK_INFO; + partition_info.mem_offset = mem_offset; + partition_info.mem_size = 0; + } + + { + ModelPartitionMemInfo &partition_info = partition_table->partition[3]; + partition_info.type = ModelPartitionType::TBE_KERNELS; + partition_info.mem_offset = mem_offset; + partition_info.mem_size = 0; + } + + { + ModelPartitionMemInfo &partition_info = partition_table->partition[4]; + partition_info.type = ModelPartitionType::CUST_AICPU_KERNELS; + partition_info.mem_offset = mem_offset; + partition_info.mem_size = 0; + } + + EXPECT_TRUE(mem_offset < 512); + ModelFileHeader *header = new (data.model_data) ModelFileHeader; + header->length = mem_offset - sizeof(ModelFileHeader); + data.model_len = mem_offset; } }; @@ -151,6 +201,17 @@ TEST_F(UtestModelManagerModelManager, case_load_model_encypt_type_unsupported) { EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); delete[](uint8_t *) data.model_data; } + +TEST_F(UtestModelManagerModelManager, case_load_model_data_success) { + ModelData data; + LoadStandardModelData(data); + + uint32_t model_id = 1; + ModelManager mm; + EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), SUCCESS); + delete[](uint8_t *) data.model_data; +} + /* shared_ptr LabelCallBack(new DModelListener()); From 043e4569b41fde85f70825ddf502dce405240884 Mon Sep 17 00:00:00 2001 From: taoxudonghaha Date: Thu, 18 Feb 2021 14:28:16 +0800 Subject: [PATCH 03/14] modify static depends --- cmake/external_libs/protobuf_static.cmake | 6 ++++++ ge/common/CMakeLists.txt | 2 +- ge/executor/CMakeLists.txt | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cmake/external_libs/protobuf_static.cmake b/cmake/external_libs/protobuf_static.cmake index e4bbb9a0..22f537cf 100755 --- a/cmake/external_libs/protobuf_static.cmake +++ b/cmake/external_libs/protobuf_static.cmake @@ -1,3 +1,7 @@ +if (HAVE_PROTOBUF_STATIC) + return() +endif() + include(ExternalProject) include(GNUInstallDirs) #set(CMAKE_INSTALL_PREFIX ${GE_CODE_DIR}/output) @@ -58,3 +62,5 @@ include_directories(${PROTOBUF_STATIC_PKG_DIR}/include) endif () add_dependencies(ascend_protobuf_static protobuf_static_build) + +set(HAVE_PROTOBUF_STATIC TRUE) diff --git a/ge/common/CMakeLists.txt b/ge/common/CMakeLists.txt index 22b1a7ea..c73e21c6 100755 --- a/ge/common/CMakeLists.txt +++ b/ge/common/CMakeLists.txt @@ -170,7 +170,7 @@ target_include_directories(ge_common_static PRIVATE target_link_libraries(ge_common_static PRIVATE $ - ascend_protobuf + ascend_protobuf_static json c_sec $<$>:-lrt> diff --git a/ge/executor/CMakeLists.txt b/ge/executor/CMakeLists.txt index 05d627de..56c8efd4 100644 --- a/ge/executor/CMakeLists.txt +++ b/ge/executor/CMakeLists.txt @@ -202,7 +202,7 @@ target_include_directories(ge_executor SYSTEM PRIVATE target_link_libraries(ge_executor PRIVATE $ json - ascend_protobuf + ascend_protobuf_static c_sec $<$>:-lrt> -ldl From 506df189b4ecca5324c5236c1ef22f3e9e460002 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Thu, 18 Feb 2021 15:11:16 +0800 Subject: [PATCH 04/14] display model info --- ge/common/helper/model_helper.cc | 13 ------------- ge/session/omg.cc | 16 ++++++++-------- inc/framework/omg/omg.h | 2 +- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/ge/common/helper/model_helper.cc b/ge/common/helper/model_helper.cc index 073cad29..7de7d8e0 100644 --- a/ge/common/helper/model_helper.cc +++ b/ge/common/helper/model_helper.cc @@ -78,19 +78,6 @@ Status ModelHelper::SaveModelPartition(std::shared_ptr &om_fil Status ModelHelper::SaveSizeToModelDef(const GeModelPtr &ge_model) { vector om_info; - ModelPtr model_tmp = ge::MakeShared(ge_model->GetName(), ge_model->GetPlatformVersion()); - if (model_tmp == nullptr) { - GELOGE(FAILED, "Create Model %s Ptr failed", ge_model->GetName().c_str()); - return FAILED; - } - model_tmp->SetGraph(ge_model->GetGraph()); - model_tmp->SetVersion(ge_model->GetVersion()); - model_tmp->SetAttr(ge_model->MutableAttrMap()); - ge::Buffer model_buffer; - (void)model_tmp->Save(model_buffer); - GELOGD("SaveSizeToModelDef modeldef_size is %zu", model_buffer.GetSize()); - om_info.push_back(model_buffer.GetSize()); - auto ge_model_weight = ge_model->GetWeight(); GELOGD("SaveSizeToModelDef weight_data_size is %zu, %p", ge_model_weight.GetSize(), ge_model_weight.GetData()); om_info.push_back(ge_model_weight.GetSize()); diff --git a/ge/session/omg.cc b/ge/session/omg.cc index bbc674ec..a82db26b 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -71,7 +71,7 @@ const char *const kOutputTypeError = "The multiple out nodes set in output_type const size_t kNodeNameIndex = 0; const size_t kIndexStrIndex = 1; const size_t kDTValueIndex = 2; -const size_t kOmInfoSize = 5; +const size_t kOmInfoSize = 4; } // namespace // When the model is converted to a JSON file, the following operator attributes in the blacklist will be ignored @@ -828,7 +828,7 @@ void GetGroupName(ge::proto::ModelDef &model_def) { }); } -FMK_FUNC_HOST_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def) { +FMK_FUNC_HOST_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def, uint32_t modeldef_size) { std::cout << "============ Display Model Info start ============" << std::endl; auto model_attr_map = model_def->mutable_attr(); @@ -879,15 +879,15 @@ FMK_FUNC_HOST_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def) { if (list_size == kOmInfoSize) { std::cout << "om info: " << "modeldef_size" - << "[" << iter->second.list().i(0) << " B], " + << "[" << modeldef_size << " B], " << "weight_data_size" - << "[" << iter->second.list().i(1) << " B], " + << "[" << iter->second.list().i(0) << " B], " << "tbe_kernels_size" - << "[" << iter->second.list().i(2) << " B], " + << "[" << iter->second.list().i(1) << " B], " << "cust_aicpu_kernel_store_size" - << "[" << iter->second.list().i(3) << " B], " + << "[" << iter->second.list().i(2) << " B], " << "task_info_size" - << "[" << iter->second.list().i(4) << " B]." << std::endl; + << "[" << iter->second.list().i(3) << " B]." << std::endl; } else { std::cout << "Display Model Info error, please check!" << std::endl; }; @@ -955,7 +955,7 @@ FMK_FUNC_HOST_VISIBILITY Status ConvertOm(const char *model_file, const char *js ret = ModelSaver::SaveJsonToFile(json_file, j); } else { - PrintModelInfo(&model_def); + PrintModelInfo(&model_def, ir_part.size); } } else { ret = INTERNAL_ERROR; diff --git a/inc/framework/omg/omg.h b/inc/framework/omg/omg.h index eb25f919..be7f776f 100644 --- a/inc/framework/omg/omg.h +++ b/inc/framework/omg/omg.h @@ -104,7 +104,7 @@ GE_FUNC_VISIBILITY void UpdateOmgCtxWithParserCtx(); GE_FUNC_VISIBILITY void UpdateParserCtxWithOmgCtx(); -GE_FUNC_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def); +GE_FUNC_VISIBILITY void PrintModelInfo(ge::proto::ModelDef *model_def, uint32_t modeldef_size); } // namespace ge namespace domi { From dc7ef4666267a008da165bba212f1ed8bbb580c3 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Thu, 18 Feb 2021 15:24:35 +0800 Subject: [PATCH 05/14] display model info --- inc/framework/omg/omg.h | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/inc/framework/omg/omg.h b/inc/framework/omg/omg.h index be7f776f..a0cdb449 100644 --- a/inc/framework/omg/omg.h +++ b/inc/framework/omg/omg.h @@ -43,8 +43,8 @@ namespace ge { * @brief init omg context * @return void */ -GE_FUNC_VISIBILITY Status InitDomiOmgContext(const string &input_shape, const string &input_format, const string &net_format, - bool is_dynamic_input); +GE_FUNC_VISIBILITY Status InitDomiOmgContext(const string &input_shape, const string &input_format, + const string &net_format, bool is_dynamic_input); /** * @ingroup domi_omg @@ -61,9 +61,10 @@ GE_FUNC_VISIBILITY Status InitDomiOmgContext(const string &input_shape, const st * @param [in] atc_params multiply atc params * @return Status result code */ -GE_FUNC_VISIBILITY Status ParseGraph(ge::Graph &graph, const std::map &atc_params, const char *model_file, - const char *weights_file, domi::FrameworkType type, const char *op_conf = nullptr, - const char *target = nullptr, RunMode run_mode = GEN_OM_MODEL, bool is_dynamic_input = false); +GE_FUNC_VISIBILITY Status ParseGraph(ge::Graph &graph, const std::map &atc_params, + const char *model_file, const char *weights_file, domi::FrameworkType type, + const char *op_conf = nullptr, const char *target = nullptr, + RunMode run_mode = GEN_OM_MODEL, bool is_dynamic_input = false); /** * @ingroup domi_omg @@ -85,7 +86,8 @@ GE_FUNC_VISIBILITY Status ConvertPbtxtToJson(const char *model_file, const char * @param [key] encrypted key * @return Status result code */ -GE_FUNC_VISIBILITY Status ConvertFwkModelToJson(domi::FrameworkType framework, const char *model_file, const char *json_file); +GE_FUNC_VISIBILITY Status ConvertFwkModelToJson(domi::FrameworkType framework, const char *model_file, + const char *json_file); GE_FUNC_VISIBILITY void GetGroupName(ge::proto::ModelDef &model); @@ -93,12 +95,14 @@ GE_FUNC_VISIBILITY void FindParserSo(const string &path, vector &fileLis GE_FUNC_VISIBILITY Status DumpInfershapeJson(const ge::Graph &graph, const char *json_file); -GE_FUNC_VISIBILITY Status SetOutputNodeInfo(ge::Graph &graph, const std::string &output_type, const std::string &output_format); +GE_FUNC_VISIBILITY Status SetOutputNodeInfo(ge::Graph &graph, const std::string &output_type, + const std::string &output_format); -GE_FUNC_VISIBILITY Status GetOutputLeaf(ge::NodePtr node, std::vector> &output_nodes_info); +GE_FUNC_VISIBILITY Status GetOutputLeaf(ge::NodePtr node, + std::vector> &output_nodes_info); GE_FUNC_VISIBILITY void GetOutputNodesNameAndIndex(std::vector> &output_nodes_info, - std::vector &output_nodes_name); + std::vector &output_nodes_name); GE_FUNC_VISIBILITY void UpdateOmgCtxWithParserCtx(); From 8617dcc3043f9e3ecda06983ca5cb296ac5883c3 Mon Sep 17 00:00:00 2001 From: "wangwenhua1@huawei.com" Date: Thu, 18 Feb 2021 15:41:06 +0800 Subject: [PATCH 06/14] display model info --- tests/ut/ge/session/omg_omg_unittest.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/ut/ge/session/omg_omg_unittest.cc b/tests/ut/ge/session/omg_omg_unittest.cc index b9c7f1ec..334df319 100644 --- a/tests/ut/ge/session/omg_omg_unittest.cc +++ b/tests/ut/ge/session/omg_omg_unittest.cc @@ -33,7 +33,7 @@ class UtestOmg : public testing::Test { TEST_F(UtestOmg, display_model_info_failed) { ge::proto::ModelDef model_def; - PrintModelInfo(&model_def); + PrintModelInfo(&model_def, 1); } TEST_F(UtestOmg, display_model_info_success) { @@ -46,7 +46,6 @@ TEST_F(UtestOmg, display_model_info_success) { attr_def->mutable_list()->add_i(2); attr_def->mutable_list()->add_i(3); attr_def->mutable_list()->add_i(4); - attr_def->mutable_list()->add_i(5); - PrintModelInfo(&model_def); + PrintModelInfo(&model_def, 1); } } // namespace ge From d79f0a260a3d43d68012b216ea7a68c59883be9f Mon Sep 17 00:00:00 2001 From: y00500818 Date: Thu, 4 Feb 2021 14:47:10 +0800 Subject: [PATCH 07/14] optimize InitModelProfile cost time --- ge/graph/load/model_manager/davinci_model.cc | 21 +++++++++++---------- ge/graph/load/model_manager/davinci_model.h | 1 + tests/ut/ge/graph/load/davinci_model_unittest.cc | 2 ++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ge/graph/load/model_manager/davinci_model.cc b/ge/graph/load/model_manager/davinci_model.cc index 8d6dca2a..3401ee47 100755 --- a/ge/graph/load/model_manager/davinci_model.cc +++ b/ge/graph/load/model_manager/davinci_model.cc @@ -147,7 +147,6 @@ DavinciModel::DavinciModel(int32_t priority, const std::shared_ptrStop(); + if (data_inputer_ != nullptr) { + data_inputer_->Stop(); + } if (thread_id_.joinable()) { thread_id_.join(); } + if (shrink_id_.joinable()) { + shrink_id_.join(); + } + return SUCCESS; } @@ -2820,8 +2823,6 @@ Status DavinciModel::ModelRunStop() { LockRunFlg(); GE_MAKE_GUARD(tmp_lock, [&] { UnlockRunFlg(); }); - GE_IF_BOOL_EXEC(!run_flg_, return SUCCESS); - GE_CHK_STATUS_RET(DestroyThread(), "DestoyThead failed."); return SUCCESS; diff --git a/ge/graph/load/model_manager/davinci_model.h b/ge/graph/load/model_manager/davinci_model.h index 8ed82912..31cc9939 100755 --- a/ge/graph/load/model_manager/davinci_model.h +++ b/ge/graph/load/model_manager/davinci_model.h @@ -907,6 +907,7 @@ class DavinciModel { vector output_memory_size_list_; thread thread_id_; + thread shrink_id_; shared_ptr listener_; diff --git a/tests/ut/ge/graph/load/davinci_model_unittest.cc b/tests/ut/ge/graph/load/davinci_model_unittest.cc index a66aed7e..39e8ef2e 100644 --- a/tests/ut/ge/graph/load/davinci_model_unittest.cc +++ b/tests/ut/ge/graph/load/davinci_model_unittest.cc @@ -280,7 +280,9 @@ TEST_F(UtestDavinciModel, init_unknown) { memcpy_async->set_op_index(2); EXPECT_EQ(model.Assign(ge_model), SUCCESS); + ProfilingManager::Instance().is_load_profiling_ = true; EXPECT_EQ(model.Init(), SUCCESS); + ProfilingManager::Instance().is_load_profiling_ = false; EXPECT_EQ(model.input_addrs_list_.size(), 1); EXPECT_EQ(model.output_addrs_list_.size(), 1); From 637416941ecb0b90e557e3567c4892c03c87496b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 18 Feb 2021 21:11:12 +0800 Subject: [PATCH 08/14] Fix reshape bug. --- ge/generator/ge_generator.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ge/generator/ge_generator.cc b/ge/generator/ge_generator.cc index e9c2e6ab..0d484fbf 100644 --- a/ge/generator/ge_generator.cc +++ b/ge/generator/ge_generator.cc @@ -627,12 +627,11 @@ namespace { bool is_dynamic = false; for (const auto &node : graph->GetDirectNode()) { GE_CHECK_NOTNULL(node); - if (node->GetType() == DATA || node->GetType() == CONSTANT || node->GetType() == CONSTANTOP || - node->GetType() == NETOUTPUT) { - continue; - } auto op_desc = node->GetOpDesc(); GE_CHECK_NOTNULL(op_desc); + if (op_desc->GetOpEngineName() != kAIcoreEngine) { + continue; + } if (AttrUtils::HasAttr(op_desc, kAttrSupportDynamicShape)) { is_dynamic = true; (void) AttrUtils::GetBool(op_desc, kAttrSupportDynamicShape, support_dynamic); From c21ca96511887552b2a857af4d4a5076fb319066 Mon Sep 17 00:00:00 2001 From: zhangxiaokun Date: Fri, 19 Feb 2021 15:29:22 +0800 Subject: [PATCH 09/14] Fix No NetOutput Model Logic --- ge/graph/load/model_manager/davinci_model.cc | 13 +++++++------ ge/graph/load/model_manager/davinci_model.h | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ge/graph/load/model_manager/davinci_model.cc b/ge/graph/load/model_manager/davinci_model.cc index 9954ceaf..1899af37 100755 --- a/ge/graph/load/model_manager/davinci_model.cc +++ b/ge/graph/load/model_manager/davinci_model.cc @@ -1095,6 +1095,7 @@ Status DavinciModel::InitNetOutput(const ComputeGraphPtr &graph, const NodePtr & GELOGI("Init NetOutput node: %s.", op_desc->GetName().c_str()); output_op_list.push_back(op_desc); + has_output_node_ = true; if (known_node_) { return SUCCESS; } @@ -2422,7 +2423,7 @@ void DavinciModel::SetProfileTime(ModelProcStage stage, int64_t endTime) { /// @author /// Status DavinciModel::CopyOutputData(uint32_t data_id, OutputData &output_data, rtMemcpyKind_t kind) { - if (output_addrs_list_.empty()) { + if (!has_output_node_) { Status ret = SyncVarData(); return ret; } @@ -2582,7 +2583,7 @@ Status DavinciModel::ReturnResult(uint32_t data_id, const bool rslt_flg, const b return INTERNAL_ERROR; } - if (output_addrs_list_.empty()) { + if (!has_output_node_) { GELOGW("Output tensor list is empty, model id: %u", model_id_); GE_CHK_STATUS(listener_->OnComputeDone(model_id_, data_id, INTERNAL_ERROR, outputs), "OnComputeDone failed."); return INTERNAL_ERROR; @@ -2735,10 +2736,10 @@ void *DavinciModel::Run(DavinciModel *model) { model->SetProfileTime(MODEL_AFTER_PROC_START)); GE_TIMESTAMP_START(ReturnResult3); // copy output data from device to host - GE_IF_BOOL_EXEC(!model->output_addrs_list_.empty(), - (void)model->ReturnResult(current_data.index, rslt_flg, false, data_wrapper->GetOutput())) + GE_IF_BOOL_EXEC(model->has_output_node_, + (void)model->ReturnResult(current_data.index, rslt_flg, false, data_wrapper->GetOutput())); // copy output data from device to host for variable graph - GE_IF_BOOL_EXEC(model->output_addrs_list_.empty(), (void)model->ReturnNoOutput(current_data.index)); + GE_IF_BOOL_EXEC(!model->has_output_node_, (void)model->ReturnNoOutput(current_data.index)); GE_IF_BOOL_EXEC(model->is_first_execute_, GE_TIMESTAMP_EVENT_END(ReturnResult3, "GraphExcute::CopyDataFromDeviceToHost")); GE_IF_BOOL_EXEC(ProfilingManager::Instance().ProfilingModelExecuteOn(), @@ -2890,7 +2891,7 @@ Status DavinciModel::CreateKnownZeroCopyMap(const vector &inputs, const GELOGI("input %zu, v addr %p, r addr %p, p addr %p", i, addr_list[kDataIndex], addr, inputs[i]); } - if (output_addrs_list_.empty()) { + if (!has_output_node_) { GELOGW("output op num in graph is %zu", output_addrs_list_.size()); return SUCCESS; } diff --git a/ge/graph/load/model_manager/davinci_model.h b/ge/graph/load/model_manager/davinci_model.h index 31cc9939..5bc3a68e 100755 --- a/ge/graph/load/model_manager/davinci_model.h +++ b/ge/graph/load/model_manager/davinci_model.h @@ -1042,6 +1042,7 @@ class DavinciModel { // For super kernel. SuperKernelTaskInfo skt_info_; + bool has_output_node_ = false; bool is_dynamic_aipp_ = false; vector dynamic_output_shape_info_; From dd9099f6614b396c3aafc2e914193a74176648b1 Mon Sep 17 00:00:00 2001 From: zhangxiaokun Date: Fri, 19 Feb 2021 16:21:47 +0800 Subject: [PATCH 10/14] Add unit test for no NetOutput --- ge/graph/load/model_manager/davinci_model.cc | 3 +-- tests/ut/ge/graph/load/davinci_model_unittest.cc | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ge/graph/load/model_manager/davinci_model.cc b/ge/graph/load/model_manager/davinci_model.cc index 1899af37..e921aefe 100755 --- a/ge/graph/load/model_manager/davinci_model.cc +++ b/ge/graph/load/model_manager/davinci_model.cc @@ -2424,8 +2424,7 @@ void DavinciModel::SetProfileTime(ModelProcStage stage, int64_t endTime) { /// Status DavinciModel::CopyOutputData(uint32_t data_id, OutputData &output_data, rtMemcpyKind_t kind) { if (!has_output_node_) { - Status ret = SyncVarData(); - return ret; + return SyncVarData(); } output_data.index = data_id; diff --git a/tests/ut/ge/graph/load/davinci_model_unittest.cc b/tests/ut/ge/graph/load/davinci_model_unittest.cc index c90a4997..f10068aa 100644 --- a/tests/ut/ge/graph/load/davinci_model_unittest.cc +++ b/tests/ut/ge/graph/load/davinci_model_unittest.cc @@ -27,6 +27,16 @@ using namespace std; namespace ge { extern OpDescPtr CreateOpDesc(string name, string type); +class DModelListener : public ModelListener { + public: + DModelListener(){}; + uint32_t OnComputeDone(uint32_t model_id, uint32_t data_index, uint32_t result, vector &outputs) { + return 0; + } +}; + +shared_ptr g_local_call_back(new DModelListener()); + class UtestDavinciModel : public testing::Test { protected: void SetUp() {} @@ -309,7 +319,7 @@ TEST_F(UtestDavinciModel, init_unknown) { } TEST_F(UtestDavinciModel, Init_variable_op) { - DavinciModel model(0, nullptr); + DavinciModel model(0, g_local_call_back); model.ge_model_ = make_shared(); model.runtime_param_.mem_base = (uint8_t *)0x08000000; model.runtime_param_.mem_size = 5120000; @@ -337,6 +347,12 @@ TEST_F(UtestDavinciModel, Init_variable_op) { EXPECT_EQ(model.ReturnNoOutput(1), PARAM_INVALID); EXPECT_EQ(model.SyncVarData(), SUCCESS); + + OutputData output_data; + EXPECT_FALSE(model.has_output_node_); + EXPECT_EQ(model.CopyOutputData(1, output_data, RT_MEMCPY_DEVICE_TO_HOST), SUCCESS); + + EXPECT_EQ(model.ReturnResult(1, false, true, &output_data), INTERNAL_ERROR); } TEST_F(UtestDavinciModel, InitRealSizeAndShapeInfo_succ1) { From 75bcf24692072918d51963f02d29502cce70c951 Mon Sep 17 00:00:00 2001 From: zhangxiaokun Date: Fri, 19 Feb 2021 16:31:29 +0800 Subject: [PATCH 11/14] Add unit test for no NetOutput --- tests/ut/ge/graph/load/davinci_model_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ut/ge/graph/load/davinci_model_unittest.cc b/tests/ut/ge/graph/load/davinci_model_unittest.cc index f10068aa..b8a963e3 100644 --- a/tests/ut/ge/graph/load/davinci_model_unittest.cc +++ b/tests/ut/ge/graph/load/davinci_model_unittest.cc @@ -345,7 +345,7 @@ TEST_F(UtestDavinciModel, Init_variable_op) { EXPECT_EQ(model.InitNodes(graph), SUCCESS); - EXPECT_EQ(model.ReturnNoOutput(1), PARAM_INVALID); + EXPECT_EQ(model.ReturnNoOutput(1), SUCCESS); EXPECT_EQ(model.SyncVarData(), SUCCESS); OutputData output_data; From eda5536dd534f7f059be143fd931f762138ac26b Mon Sep 17 00:00:00 2001 From: zhengyuanhua Date: Sat, 20 Feb 2021 13:35:49 +0800 Subject: [PATCH 12/14] dts: update submodule --- metadef | 2 +- parser | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/metadef b/metadef index 40e2d5c9..9d3f0444 160000 --- a/metadef +++ b/metadef @@ -1 +1 @@ -Subproject commit 40e2d5c974eda1d1f5716b18fc776dede7da4370 +Subproject commit 9d3f0444b1e13e6a3c9d498963f8232f439a0f47 diff --git a/parser b/parser index 3c534dc8..fc02ad76 160000 --- a/parser +++ b/parser @@ -1 +1 @@ -Subproject commit 3c534dc831eeedd13ad86d9c2b52879f345403e0 +Subproject commit fc02ad76d2892cbe600a1f3906f68246284b84a1 From 12e8c5bf0a9093fd537827e4cebac63c670e11fe Mon Sep 17 00:00:00 2001 From: wqtshg Date: Sat, 20 Feb 2021 18:26:46 +0800 Subject: [PATCH 13/14] update submodule --- .gitmodules | 4 ++-- metadef | 2 +- parser | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index a17fe30c..c6b7cc8e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +1,8 @@ [submodule "parser"] path = parser url = https://gitee.com/ascend/parser.git - branch = development + branch = master [submodule "metadef"] path = metadef url = https://gitee.com/ascend/metadef.git - branch = development + branch = master diff --git a/metadef b/metadef index 9d3f0444..a2b80cb2 160000 --- a/metadef +++ b/metadef @@ -1 +1 @@ -Subproject commit 9d3f0444b1e13e6a3c9d498963f8232f439a0f47 +Subproject commit a2b80cb22a62a6757c7dd31e684ca632e0b79268 diff --git a/parser b/parser index fc02ad76..cfabf622 160000 --- a/parser +++ b/parser @@ -1 +1 @@ -Subproject commit fc02ad76d2892cbe600a1f3906f68246284b84a1 +Subproject commit cfabf622b803d5957563a73652a0ce5086aab99d From 7702ae806800468dfaf56cde1475805db0fabcd7 Mon Sep 17 00:00:00 2001 From: yanghaoran Date: Mon, 22 Feb 2021 11:09:43 +0800 Subject: [PATCH 14/14] update googletest version to 1.8.1 --- cmake/external_libs/gtest.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/external_libs/gtest.cmake b/cmake/external_libs/gtest.cmake index 303ce464..f2f50e7d 100755 --- a/cmake/external_libs/gtest.cmake +++ b/cmake/external_libs/gtest.cmake @@ -11,13 +11,13 @@ if ((${CMAKE_INSTALL_PREFIX} STREQUAL /usr/local) OR endif() if (GE_PB_PKG) - set(REQ_URL "${GE_PB_PKG}/libs/ge_gtest/release-1.8.0.tar.gz") + set(REQ_URL "${GE_PB_PKG}/libs/ge_gtest/release-1.8.1.tar.gz") set(MD5 "") elseif (ENABLE_GITEE) - set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.0.tar.gz") + set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.1.tar.gz") set(MD5 "") else() - set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.0.tar.gz") + set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz") set(MD5 "") endif ()