From 6b0d71112d65c12a1e5e16cf64594d16dead2428 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=B0=95=EC=A2=85=ED=98=84/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Senior=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Wed, 4 Apr 2018 08:26:08 +0900 Subject: [PATCH] Setup NN API without NN Runtime project (#390) This commit adds a room for NN API implementation without NN Runtime (for experiments). Signed-off-by: Jonghyun Park --- tools/nnapi_bindings/bindings/CMakeLists.txt | 1 + .../bindings/pure_arm_compute/CMakeLists.txt | 8 +++ .../bindings/pure_arm_compute/src/compilation.cc | 15 ++++++ .../bindings/pure_arm_compute/src/compilation.h | 8 +++ .../bindings/pure_arm_compute/src/event.cc | 16 ++++++ .../bindings/pure_arm_compute/src/event.h | 8 +++ .../bindings/pure_arm_compute/src/execution.cc | 36 +++++++++++++ .../bindings/pure_arm_compute/src/execution.h | 8 +++ .../bindings/pure_arm_compute/src/memory.cc | 19 +++++++ .../bindings/pure_arm_compute/src/memory.h | 8 +++ .../bindings/pure_arm_compute/src/model.cc | 59 ++++++++++++++++++++++ .../bindings/pure_arm_compute/src/model.h | 8 +++ 12 files changed, 194 insertions(+) create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/CMakeLists.txt create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.cc create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.h create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/event.cc create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/event.h create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.cc create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.h create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.cc create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.h create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/model.cc create mode 100644 tools/nnapi_bindings/bindings/pure_arm_compute/src/model.h diff --git a/tools/nnapi_bindings/bindings/CMakeLists.txt b/tools/nnapi_bindings/bindings/CMakeLists.txt index c53215b..a19e454 100644 --- a/tools/nnapi_bindings/bindings/CMakeLists.txt +++ b/tools/nnapi_bindings/bindings/CMakeLists.txt @@ -1,2 +1,3 @@ add_subdirectory(template) add_subdirectory(logging) +add_subdirectory(pure_arm_compute) diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/CMakeLists.txt b/tools/nnapi_bindings/bindings/pure_arm_compute/CMakeLists.txt new file mode 100644 index 0000000..87fdc1b --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/CMakeLists.txt @@ -0,0 +1,8 @@ +if(TARGET arm_compute) + file(GLOB_RECURSE SOURCES "src/*.cc") + + add_library(nnapi_pure_arm_compute SHARED ${SOURCES}) + target_include_directories(nnapi_pure_arm_compute PUBLIC ${NNAPI_INCLUDE_DIR}) + target_link_libraries(nnapi_pure_arm_compute arm_compute) + set_target_properties(nnapi_pure_arm_compute PROPERTIES OUTPUT_NAME neuralnetworks) +endif(TARGET arm_compute) diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.cc b/tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.cc new file mode 100644 index 0000000..98b0722 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.cc @@ -0,0 +1,15 @@ +#include + +#include "compilation.h" + +ResultCode +ANeuralNetworksCompilation_create(ANeuralNetworksModel* model, ANeuralNetworksCompilation** compilation) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation* compilation) +{ + return ANEURALNETWORKS_NO_ERROR; +} diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.h b/tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.h new file mode 100644 index 0000000..7a28742 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/compilation.h @@ -0,0 +1,8 @@ +#ifndef __COMPILATION_H__ +#define __COMPILATION_H__ + +struct ANeuralNetworksCompilation +{ +}; + +#endif diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/event.cc b/tools/nnapi_bindings/bindings/pure_arm_compute/src/event.cc new file mode 100644 index 0000000..b26b707 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/event.cc @@ -0,0 +1,16 @@ +#include + +#include "event.h" + +ResultCode +ANeuralNetworksEvent_wait(ANeuralNetworksEvent* event) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksEvent_free(ANeuralNetworksEvent* event) +{ + delete event; + return ANEURALNETWORKS_NO_ERROR; +} diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/event.h b/tools/nnapi_bindings/bindings/pure_arm_compute/src/event.h new file mode 100644 index 0000000..7197f04 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/event.h @@ -0,0 +1,8 @@ +#ifndef __EVENT_H__ +#define __EVENT_H__ + +struct ANeuralNetworksEvent +{ +}; + +#endif diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.cc b/tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.cc new file mode 100644 index 0000000..d04244f --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.cc @@ -0,0 +1,36 @@ +#include + +#include "execution.h" + +ResultCode +ANeuralNetworksExecution_create(ANeuralNetworksCompilation* compilation, ANeuralNetworksExecution** execution) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksExecution_setInput(ANeuralNetworksExecution* execution, + int32_t index, const ANeuralNetworksOperandType* type, + const void* buffer, size_t length) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksExecution_setOutput(ANeuralNetworksExecution* execution, + int32_t index, const ANeuralNetworksOperandType* type, + const void* buffer, size_t length) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksExecution_startCompute(ANeuralNetworksExecution* execution, ANeuralNetworksEvent** event) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode ANeuralNetworksExecution_free(ANeuralNetworksExecution* execution) +{ + return ANEURALNETWORKS_NO_ERROR; +} diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.h b/tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.h new file mode 100644 index 0000000..84d4e88 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/execution.h @@ -0,0 +1,8 @@ +#ifndef __EXECUTION_H__ +#define __EXECUTION_H__ + +struct ANeuralNetworksExecution +{ +}; + +#endif diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.cc b/tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.cc new file mode 100644 index 0000000..f031933 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.cc @@ -0,0 +1,19 @@ +#include + +#include "memory.h" + +ResultCode +ANeuralNetworksMemory_createFromFd(size_t size, int protect, int fd, size_t offset, ANeuralNetworksMemory** memory) +{ + *memory = new ANeuralNetworksMemory{}; + + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksMemory_free(ANeuralNetworksMemory* memory) +{ + delete memory; + + return ANEURALNETWORKS_NO_ERROR; +} diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.h b/tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.h new file mode 100644 index 0000000..a4fed82 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/memory.h @@ -0,0 +1,8 @@ +#ifndef __MEMORY_H__ +#define __MEMORY_H__ + +struct ANeuralNetworksMemory +{ +}; + +#endif // __MEMORY_H__ diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/model.cc b/tools/nnapi_bindings/bindings/pure_arm_compute/src/model.cc new file mode 100644 index 0000000..3b064f1 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/model.cc @@ -0,0 +1,59 @@ +#include + +#include "model.h" + +ResultCode +ANeuralNetworksModel_create(ANeuralNetworksModel** model) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksModel_free(ANeuralNetworksModel* model) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksModel_addOperand(ANeuralNetworksModel* model, const ANeuralNetworksOperandType *type) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksModel_setOperandValue(ANeuralNetworksModel* model, + int32_t index, + const void* buffer, size_t length) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksModel_setOperandValueFromMemory(ANeuralNetworksModel* model, + int32_t index, + const ANeuralNetworksMemory* memory, size_t offset, size_t length) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksModel_addOperation(ANeuralNetworksModel* model, + ANeuralNetworksOperationType type, + uint32_t inputCount, const uint32_t* inputs, + uint32_t outputCount, const uint32_t* outputs) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode +ANeuralNetworksModel_identifyInputsAndOutputs(ANeuralNetworksModel* model, + uint32_t inputCount, const uint32_t* inputs, + uint32_t outputCount, const uint32_t* outputs) +{ + return ANEURALNETWORKS_NO_ERROR; +} + +ResultCode ANeuralNetworksModel_finish(ANeuralNetworksModel* model) +{ + return ANEURALNETWORKS_NO_ERROR; +} diff --git a/tools/nnapi_bindings/bindings/pure_arm_compute/src/model.h b/tools/nnapi_bindings/bindings/pure_arm_compute/src/model.h new file mode 100644 index 0000000..8da8f74 --- /dev/null +++ b/tools/nnapi_bindings/bindings/pure_arm_compute/src/model.h @@ -0,0 +1,8 @@ +#ifndef __MODEL_H__ +#define __MODEL_H__ + +struct ANeuralNetworksModel +{ +}; + +#endif // __MODEL_H__ -- 2.7.4