From acec9fe6eab17ab14dc17b0af8467e3f4dfbe113 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: Thu, 24 May 2018 17:10:08 +0900 Subject: [PATCH] [nnkit] Introduce backend interface (#251) This commit introduces 'nnkit::Backend' and 'nnkit::BackendFactory' interfaces which abstracts various NN frameworks. Signed-off-by: Jonghyun Park --- contrib/nnkit/libs/intf/CMakeLists.txt | 1 + contrib/nnkit/libs/intf/backend/CMakeLists.txt | 4 ++++ .../libs/intf/backend/include/nnkit/Backend.h | 22 ++++++++++++++++++++++ .../intf/backend/include/nnkit/BackendFactory.h | 22 ++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 contrib/nnkit/libs/intf/backend/CMakeLists.txt create mode 100644 contrib/nnkit/libs/intf/backend/include/nnkit/Backend.h create mode 100644 contrib/nnkit/libs/intf/backend/include/nnkit/BackendFactory.h diff --git a/contrib/nnkit/libs/intf/CMakeLists.txt b/contrib/nnkit/libs/intf/CMakeLists.txt index 46de032..bb56320 100644 --- a/contrib/nnkit/libs/intf/CMakeLists.txt +++ b/contrib/nnkit/libs/intf/CMakeLists.txt @@ -1,2 +1,3 @@ add_subdirectory(tensor) add_subdirectory(cmdline) +add_subdirectory(backend) diff --git a/contrib/nnkit/libs/intf/backend/CMakeLists.txt b/contrib/nnkit/libs/intf/backend/CMakeLists.txt new file mode 100644 index 0000000..84161e9 --- /dev/null +++ b/contrib/nnkit/libs/intf/backend/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(nnkit_intf_backend INTERFACE) +target_include_directories(nnkit_intf_backend INTERFACE include) +target_link_libraries(nnkit_intf_backend INTERFACE nnkit_intf_tensor) +target_link_libraries(nnkit_intf_backend INTERFACE nnkit_intf_cmdline) diff --git a/contrib/nnkit/libs/intf/backend/include/nnkit/Backend.h b/contrib/nnkit/libs/intf/backend/include/nnkit/Backend.h new file mode 100644 index 0000000..4bcc80e --- /dev/null +++ b/contrib/nnkit/libs/intf/backend/include/nnkit/Backend.h @@ -0,0 +1,22 @@ +#ifndef __NNKIT_BACKEND_H__ +#define __NNKIT_BACKEND_H__ + +#include + +#include + +namespace nnkit +{ + +struct Backend +{ + virtual ~Backend() = default; + + virtual void prepare(const std::function &f) = 0; + virtual void run(void) = 0; + virtual void teardown(const std::function &f) = 0; +}; + +} // namespace nnkit + +#endif // __NNKIT_BACKEND_H__ diff --git a/contrib/nnkit/libs/intf/backend/include/nnkit/BackendFactory.h b/contrib/nnkit/libs/intf/backend/include/nnkit/BackendFactory.h new file mode 100644 index 0000000..09abbdf --- /dev/null +++ b/contrib/nnkit/libs/intf/backend/include/nnkit/BackendFactory.h @@ -0,0 +1,22 @@ +#ifndef __NNKIT_BACKEND_FACTORY_H__ +#define __NNKIT_BACKEND_FACTORY_H__ + +#include "Backend.h" + +#include + +#include + +namespace nnkit +{ + +struct BackendFactory +{ + virtual ~BackendFactory() = default; + + virtual std::unique_ptr make(const CmdlineArguments &args) const = 0; +}; + +} // namesapce nnkit + +#endif // __NNKIT_BACKEND_FACTORY_H__ -- 2.7.4