From 6949a9edaa92abe82bcc40265548d7287ad59b3e Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=9D=B4=ED=95=9C=EC=A2=85/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Engineer/=EC=82=BC=EC=84=B1=EC=A0=84?= =?utf8?q?=EC=9E=90?= Date: Wed, 5 Sep 2018 13:18:02 +0900 Subject: [PATCH] [neurun] Introduce getOperandLayout (#2591) Introduce `IBackendConfig::getOperandLayout` which returns `operand::Layout` for each backend. Note that this assumes a backend only support one type of operand layout. Signed-off-by: Hanjoung Lee --- runtimes/neurun/src/backend/IBackendConfig.h | 4 ++++ runtimes/neurun/src/backend/acl_cl/BackendConfig.h | 1 + runtimes/neurun/src/backend/cpu/BackendConfig.h | 1 + runtimes/neurun/src/graph/operand/Layout.h | 22 ++++++++++++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 runtimes/neurun/src/graph/operand/Layout.h diff --git a/runtimes/neurun/src/backend/IBackendConfig.h b/runtimes/neurun/src/backend/IBackendConfig.h index 7ba6291..85ae507 100644 --- a/runtimes/neurun/src/backend/IBackendConfig.h +++ b/runtimes/neurun/src/backend/IBackendConfig.h @@ -1,6 +1,8 @@ #ifndef __INTERNAL_IBACKEND_CONFIG_H__ #define __INTERNAL_IBACKEND_CONFIG_H__ +#include "graph/operand/Layout.h" + namespace neurun { namespace backend @@ -11,6 +13,8 @@ struct IBackendConfig virtual ~IBackendConfig() = default; virtual void initialize() = 0; + // NOTE Assume backend has only one type of operand layout + virtual graph::operand::Layout getOperandLayout() = 0; }; } // namespace backend diff --git a/runtimes/neurun/src/backend/acl_cl/BackendConfig.h b/runtimes/neurun/src/backend/acl_cl/BackendConfig.h index 294950f..e0d1248 100644 --- a/runtimes/neurun/src/backend/acl_cl/BackendConfig.h +++ b/runtimes/neurun/src/backend/acl_cl/BackendConfig.h @@ -19,6 +19,7 @@ public: } virtual void initialize() override; + virtual graph::operand::Layout getOperandLayout() { return graph::operand::Layout::NCHW; } }; } // namespace acl_cl diff --git a/runtimes/neurun/src/backend/cpu/BackendConfig.h b/runtimes/neurun/src/backend/cpu/BackendConfig.h index de5f7ee..a4ddf5d 100644 --- a/runtimes/neurun/src/backend/cpu/BackendConfig.h +++ b/runtimes/neurun/src/backend/cpu/BackendConfig.h @@ -19,6 +19,7 @@ public: } virtual void initialize() override; + virtual graph::operand::Layout getOperandLayout() { return graph::operand::Layout::NHWC; } }; } // namespace cpu diff --git a/runtimes/neurun/src/graph/operand/Layout.h b/runtimes/neurun/src/graph/operand/Layout.h new file mode 100644 index 0000000..d35667f --- /dev/null +++ b/runtimes/neurun/src/graph/operand/Layout.h @@ -0,0 +1,22 @@ +#ifndef __NEURUN_GRAPH_OPERAND_LAYOUT_H__ +#define __NEURUN_GRAPH_OPERAND_LAYOUT_H__ + +namespace neurun +{ +namespace graph +{ +namespace operand +{ + +enum class Layout +{ + UNKNOWN = 0, + NHWC, + NCHW +}; + +} // namespace operand +} // namespace graph +} // namespace neurun + +#endif // __NEURUN_GRAPH_OPERAND_LAYOUT_H__ -- 2.7.4