From: 박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 Date: Thu, 24 May 2018 08:10:08 +0000 (+0900) Subject: [nnkit] Introduce backend interface (#251) X-Git-Tag: nncc_backup~2671 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=acec9fe6eab17ab14dc17b0af8467e3f4dfbe113;p=platform%2Fcore%2Fml%2Fnnfw.git [nnkit] Introduce backend interface (#251) This commit introduces 'nnkit::Backend' and 'nnkit::BackendFactory' interfaces which abstracts various NN frameworks. Signed-off-by: Jonghyun Park --- 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__