提交 2b807d65 编写于 作者: 李滨

Merge branch 'master' into 'master'

Refactor mace-nnlib

See merge request !643
......@@ -204,9 +204,6 @@ MaceStatus MaceEngine::Impl::Init(
MACE_CHECK(hexagon_controller_->Init(), "hexagon init error");
hexagon_controller_->SetDebugLevel(
static_cast<int>(mace::logging::LogMessage::MinVLogLevel()));
int dsp_mode =
ProtoArgHelper::GetOptionalArg<NetDef, int>(*net_def, "dsp_mode", 0);
hexagon_controller_->SetGraphMode(dsp_mode);
MACE_CHECK(hexagon_controller_->SetupGraph(*net_def, model_data),
"hexagon setup graph error");
if (VLOG_IS_ON(2)) {
......
......@@ -51,7 +51,7 @@ int HexagonControlWrapper::GetVersion() {
bool HexagonControlWrapper::Config() {
LOG(INFO) << "Hexagon config";
if (hexagon_controller_InitHexagonWithMaxAttributes(0, 100) != 0) {
if (hexagon_nn_set_powersave_level(0) != 0) {
return false;
}
return hexagon_nn_config() == 0;
......@@ -66,7 +66,7 @@ bool HexagonControlWrapper::Init() {
bool HexagonControlWrapper::Finalize() {
LOG(INFO) << "Hexagon finalize";
return hexagon_controller_DeInitHexagon() == 0;
return hexagon_nn_set_powersave_level(1) == 0;
}
bool HexagonControlWrapper::SetupGraph(const NetDef &net_def,
......@@ -271,11 +271,6 @@ void HexagonControlWrapper::SetDebugLevel(int level) {
"set debug level error");
}
void HexagonControlWrapper::SetGraphMode(int mode) {
LOG(INFO) << "Set dsp mode: " << mode;
MACE_CHECK(hexagon_nn_set_graph_mode(nn_id_, mode) == 0, "set mode error");
}
void HexagonControlWrapper::GetPerfInfo() {
LOG(INFO) << "Get perf info";
std::vector<hexagon_nn_perfinfo> perf_info(MACE_MAX_NODE);
......
......@@ -17,10 +17,10 @@
#include <vector>
#include "mace/core/runtime/hexagon/hexagon_controller.h"
#include "mace/core/runtime/hexagon/quantize.h"
#include "mace/core/tensor.h"
#include "mace/public/mace.h"
#include "third_party/nnlib/hexagon_nn.h"
namespace mace {
......@@ -44,7 +44,6 @@ class HexagonControlWrapper {
void GetPerfInfo();
void ResetPerfInfo();
void SetDebugLevel(int level);
void SetGraphMode(int mode);
private:
static constexpr int NODE_ID_OFFSET = 10000;
......
// Copyright 2018 Xiaomi, Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef MACE_CORE_RUNTIME_HEXAGON_HEXAGON_CONTROLLER_H_
#define MACE_CORE_RUNTIME_HEXAGON_HEXAGON_CONTROLLER_H_
#include "third_party/nnlib/hexagon_nn.h"
#ifdef __cplusplus
extern "C" {
#else
#include <stdbool.h>
#endif // __cplusplus
int hexagon_controller_InitHexagonWithMaxAttributes(int enable_dcvs,
int bus_usage);
int hexagon_controller_DeInitHexagon();
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // MACE_CORE_RUNTIME_HEXAGON_HEXAGON_CONTROLLER_H_
......@@ -37,7 +37,7 @@
#define THIRD_PARTY_NNLIB_HEXAGON_NN_H_
#ifndef __QAIC_HEADER
#define __QAIC_HEADER(ff) ff
#endif // __QAIC_HEADER
#endif //__QAIC_HEADER
#ifndef __QAIC_HEADER_EXPORT
#define __QAIC_HEADER_EXPORT
......@@ -49,7 +49,7 @@
#ifndef __QAIC_IMPL
#define __QAIC_IMPL(ff) ff
#endif // __QAIC_IMPL
#endif //__QAIC_IMPL
#ifndef __QAIC_IMPL_EXPORT
#define __QAIC_IMPL_EXPORT
......@@ -131,7 +131,7 @@ struct hexagon_nn_const_node {
};
__QAIC_HEADER_EXPORT int __QAIC_HEADER(hexagon_nn_config)(void)
__QAIC_HEADER_ATTRIBUTE;
__QAIC_HEADER_EXPORT int __QAIC_HEADER(hexagon_nn_init)(hexagon_nn_nn_id* g)
__QAIC_HEADER_EXPORT int __QAIC_HEADER(hexagon_nn_init)(hexagon_nn_nn_id *g)
__QAIC_HEADER_ATTRIBUTE;
__QAIC_HEADER_EXPORT int __QAIC_HEADER(hexagon_nn_set_debug_level)(
hexagon_nn_nn_id id, int level) __QAIC_HEADER_ATTRIBUTE;
......@@ -221,6 +221,8 @@ __QAIC_HEADER_EXPORT int __QAIC_HEADER(hexagon_nn_execute_new)(
int inputsLen,
hexagon_nn_tensordef *outputs,
int outputsLen) __QAIC_HEADER_ATTRIBUTE;
__QAIC_HEADER_EXPORT unsigned int __QAIC_HEADER(hexagon_nn_get_dsp_offset)(void)
__QAIC_HEADER_ATTRIBUTE;
#ifdef __cplusplus
}
#endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册