From a7f366754a757da82eb18264991f60dcc24d0990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AF=85?= Date: Tue, 9 Jan 2018 22:19:10 +0800 Subject: [PATCH] Refactor hexagon engine since several changes break it. --- mace/core/mace.cc | 26 ++++++++++-------- .../hexagon/hexagon_control_wrapper.cc | 2 +- .../runtime/hexagon/libhexagon_controller.so | Bin 17180 -> 16328 bytes mace/examples/mace_run.cc | 4 +-- tools/validate_gcn_dsp.sh | 20 ++++++++------ 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/mace/core/mace.cc b/mace/core/mace.cc index 770a8067..47d49dfe 100644 --- a/mace/core/mace.cc +++ b/mace/core/mace.cc @@ -513,14 +513,22 @@ const OperatorDef &NetDef::op(const int idx) const { MaceEngine::MaceEngine(const NetDef *net_def, DeviceType device_type) : op_registry_(new OperatorRegistry()), device_type_(device_type), ws_(new Workspace()), net_(nullptr), hexagon_controller_(nullptr) { - + ws_->CreateTensor("mace_input_node:0", + GetDeviceAllocator(device_type_), + DT_FLOAT); + ws_->CreateTensor("mace_output_node:0", + GetDeviceAllocator(device_type_), + DT_FLOAT); if (device_type == HEXAGON) { hexagon_controller_.reset(new HexagonControlWrapper()); hexagon_controller_->Init(); - hexagon_controller_->SetDebugLevel(0); + hexagon_controller_->SetDebugLevel( + static_cast(mace::internal::LogMessage::MinVLogLevel())); hexagon_controller_->Config(); hexagon_controller_->SetupGraph(*net_def); - hexagon_controller_->PrintGraph(); + if (VLOG_IS_ON(2)) { + hexagon_controller_->PrintGraph(); + } } else { ws_->LoadModelTensor(*net_def, device_type); @@ -531,19 +539,15 @@ MaceEngine::MaceEngine(const NetDef *net_def, DeviceType device_type) : LOG(FATAL) << "Net init run failed"; } ws_->RemoveUnsedTensor(); - ws_->CreateTensor("mace_input_node:0", - GetDeviceAllocator(device_type_), - DT_FLOAT); - ws_->CreateTensor("mace_output_node:0", - GetDeviceAllocator(device_type_), - DT_FLOAT); net_ = std::move(CreateNet(op_registry_, *net_def, ws_.get(), device_type)); } } MaceEngine::~MaceEngine() { if (device_type_ == HEXAGON) { - hexagon_controller_->GetPerfInfo(); - hexagon_controller_->PrintLog(); + if (VLOG_IS_ON(2)) { + hexagon_controller_->GetPerfInfo(); + hexagon_controller_->PrintLog(); + } hexagon_controller_->TeardownGraph(); hexagon_controller_->Finalize(); } diff --git a/mace/core/runtime/hexagon/hexagon_control_wrapper.cc b/mace/core/runtime/hexagon/hexagon_control_wrapper.cc index 89c09c91..032f29d1 100644 --- a/mace/core/runtime/hexagon/hexagon_control_wrapper.cc +++ b/mace/core/runtime/hexagon/hexagon_control_wrapper.cc @@ -184,7 +184,7 @@ void HexagonControlWrapper::SetDebugLevel(int level) { void HexagonControlWrapper::GetPerfInfo() { LOG(INFO) << "Get perf info"; vector perf_info(MAX_NODE); - unsigned int n_items; + unsigned int n_items = 0; hexagon_nn_get_perfinfo(nn_id_, perf_info.data(), MAX_NODE, &n_items); std::unordered_map node_id_counters; diff --git a/mace/core/runtime/hexagon/libhexagon_controller.so b/mace/core/runtime/hexagon/libhexagon_controller.so index da6f257e152d486dc82e686e2fe6cad2f60bd173..0ff470a75cf04a6f489fdc9e2113c7ea09cb35e5 100755 GIT binary patch delta 5664 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 literal 17180 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 rjc^6XF!zLWA=Fm@`89-PP=