summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author이춘석/On-Device Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>2019-09-17 14:27:23 +0900
committerGitHub Enterprise <noreply-CODE@samsung.com>2019-09-17 14:27:23 +0900
commitcfacbb413f54c34f55b02ddc1442d735ea973708 (patch)
treeec6bb612655835235775194a0823acc972e7b083
parentf326d6353457df607cee689b9e8ab07f0af17ab8 (diff)
downloadnnfw-cfacbb413f54c34f55b02ddc1442d735ea973708.tar.gz
nnfw-cfacbb413f54c34f55b02ddc1442d735ea973708.tar.bz2
nnfw-cfacbb413f54c34f55b02ddc1442d735ea973708.zip
Use string as backend configuration arg (#7500)
* Use string as backend configuration arg - remove unness. enums for backend/operation - Use string as backend api arguments Signed-off-by: Chunseok Lee <chunseok.lee@samsung.com> * Fix backend conf api - Remove unness. functions - Reflect new backend conf api Signed-off-by: Chunseok Lee <chunseok.lee@samsung.com> * Use const char* in c++ header
-rw-r--r--runtimes/include/nnfw.h42
-rw-r--r--runtimes/neurun/frontend/api/nnfw_dev.cc4
-rw-r--r--runtimes/neurun/frontend/api/wrapper/nnfw_api.cc60
-rw-r--r--runtimes/neurun/frontend/api/wrapper/nnfw_api.hpp4
4 files changed, 20 insertions, 90 deletions
diff --git a/runtimes/include/nnfw.h b/runtimes/include/nnfw.h
index 5c73a4116..320b7b12f 100644
--- a/runtimes/include/nnfw.h
+++ b/runtimes/include/nnfw.h
@@ -57,44 +57,6 @@ struct nnfw_tensorinfo
};
/*
- * (Partial) List of runtime's operations
- */
-typedef enum {
- NNFW_OP_AddNode,
- NNFW_OP_SubNode,
- NNFW_OP_Conv2DNode,
- NNFW_OP_DepthwiseConv2DNode,
- NNFW_OP_AvgPool2DNode,
- NNFW_OP_MaxPool2DNode,
- NNFW_OP_ConcatNode,
- NNFW_OP_FullyConnectedNode,
- NNFW_OP_ReshapeNode,
- NNFW_OP_MulNode,
- NNFW_OP_SoftmaxNode,
- NNFW_OP_TanhNode,
- NNFW_OP_DivNode,
- NNFW_OP_TransposeNode,
- NNFW_OP_RSQRTNode,
- NNFW_OP_ReLUNode,
- NNFW_OP_ReLU6Node,
- NNFW_OP_TransposeConvNode,
- NNFW_OP_SQRTNode,
- NNFW_OP_SquaredDifferenceNode,
- NNFW_OP_MeanNode,
- NNFW_OP_CustomNode,
-} NNFW_OP;
-
-/*
- * List of available backends
- */
-typedef enum {
- NNFW_BACKEND_ACL_CL, // ARM Compute Library's OpenCL backend
- NNFW_BACKEND_ACL_NEON, // ARM Compute Library's NEON backend
- NNFW_BACKEND_CPU, // cpu backend
- NNFW_BACKEND_SRCN, // Samsung SRC-N's backend
-} NNFW_BACKEND;
-
-/*
* Create a new session instance
*
* @param[out] session the session to be created
@@ -217,7 +179,7 @@ NNFW_STATUS nnfw_output_tensorinfo(nnfw_session *session, uint32_t index,
* @param[in] session session to which a default backend is set
* @param[in] backend default backend
*/
-NNFW_STATUS nnfw_set_default_backend(nnfw_session *session, NNFW_BACKEND backend);
+NNFW_STATUS nnfw_set_default_backend(nnfw_session *session, const char *backend);
/*
* Set the operation's backend
@@ -228,7 +190,7 @@ NNFW_STATUS nnfw_set_default_backend(nnfw_session *session, NNFW_BACKEND backend
*
* @return NNFW_STATUS_NO_ERROR if successful
*/
-NNFW_STATUS nnfw_set_op_backend(nnfw_session *session, NNFW_OP op, NNFW_BACKEND backend);
+NNFW_STATUS nnfw_set_op_backend(nnfw_session *session, const char *op, const char *backend);
#ifdef __cplusplus
}
diff --git a/runtimes/neurun/frontend/api/nnfw_dev.cc b/runtimes/neurun/frontend/api/nnfw_dev.cc
index ad53d4486..e7ee7a255 100644
--- a/runtimes/neurun/frontend/api/nnfw_dev.cc
+++ b/runtimes/neurun/frontend/api/nnfw_dev.cc
@@ -183,7 +183,7 @@ NNFW_STATUS nnfw_register_custom_op_info(nnfw_session *session, const char *id,
* @param[in] session session to which a default backend is set
* @param[in] backend default backend
*/
-NNFW_STATUS nnfw_set_default_backend(nnfw_session *session, NNFW_BACKEND backend)
+NNFW_STATUS nnfw_set_default_backend(nnfw_session *session, const char *backend)
{
return session->set_default_backend(backend);
}
@@ -197,7 +197,7 @@ NNFW_STATUS nnfw_set_default_backend(nnfw_session *session, NNFW_BACKEND backend
*
* @return NNFW_STATUS_NO_ERROR if successful
*/
-NNFW_STATUS nnfw_set_op_backend(nnfw_session *session, NNFW_OP op, NNFW_BACKEND backend)
+NNFW_STATUS nnfw_set_op_backend(nnfw_session *session, const char *op, const char *backend)
{
return session->set_op_backend(op, backend);
}
diff --git a/runtimes/neurun/frontend/api/wrapper/nnfw_api.cc b/runtimes/neurun/frontend/api/wrapper/nnfw_api.cc
index eb8aef039..80a768e4e 100644
--- a/runtimes/neurun/frontend/api/wrapper/nnfw_api.cc
+++ b/runtimes/neurun/frontend/api/wrapper/nnfw_api.cc
@@ -275,38 +275,16 @@ NNFW_STATUS nnfw_session::register_custom_operation(const std::string &id,
return NNFW_STATUS_NO_ERROR;
}
-static std::string get_backend_string(NNFW_BACKEND backend)
-{
- static std::unordered_map<NNFW_BACKEND, std::string> backend_map = {
- {NNFW_BACKEND_ACL_CL, "acl_cl"},
- {NNFW_BACKEND_ACL_NEON, "acl_neon"},
- {NNFW_BACKEND_CPU, "cpu"},
- {NNFW_BACKEND_SRCN, "srcn"},
- };
-
- auto b = backend_map.find(backend);
-
- if (b == backend_map.end())
- {
- // this return value is handled by a caller to return error code
- return std::string("");
- }
- else
- {
- return b->second;
- }
-}
-
-static std::string get_op_backend_string(NNFW_OP op)
+static std::string get_op_backend_string(std::string op)
{
// TODO: Provide complete set of operations
- static std::unordered_map<NNFW_OP, std::string> operation_map = {
- {NNFW_OP_TransposeConvNode, "OP_BACKEND_TransposeConvNode"},
- {NNFW_OP_Conv2DNode, "OP_BACKEND_Conv2DNode"},
- {NNFW_OP_DepthwiseConv2DNode, "OP_BACKEND_DepthwiseConv2DNode"},
- {NNFW_OP_MeanNode, "OP_BACKEND_MeanNode"},
- {NNFW_OP_AvgPool2DNode, "OP_BACKEND_AvgPool2DNode"},
- {NNFW_OP_MaxPool2DNode, "OP_BACKEND_MaxPool2DNode"},
+ static std::unordered_map<std::string, std::string> operation_map = {
+ {"TRANSPOSE_CONV", "OP_BACKEND_TransposeConvNode"},
+ {"CONV_2D", "OP_BACKEND_Conv2DNode"},
+ {"DEPTHWISE_CONV_2D", "OP_BACKEND_DepthwiseConv2DNode"},
+ {"MEAN", "OP_BACKEND_MeanNode"},
+ {"AVERAGE_POOL_2D", "OP_BACKEND_AvgPool2DNode"},
+ {"MAX_POOL_2D", "OP_BACKEND_MaxPool2DNode"},
};
auto n = operation_map.find(op);
@@ -322,19 +300,11 @@ static std::string get_op_backend_string(NNFW_OP op)
}
}
-NNFW_STATUS nnfw_session::set_default_backend(NNFW_BACKEND backend)
+NNFW_STATUS nnfw_session::set_default_backend(std::string backend)
{
try
{
- std::string bs = get_backend_string(backend);
- if (bs.empty())
- {
- return NNFW_STATUS_ERROR;
- }
- else
- {
- _source->set("OP_BACKEND_ALLOPS", bs);
- }
+ _source->set("OP_BACKEND_ALLOPS", backend);
}
catch (...)
{
@@ -344,21 +314,19 @@ NNFW_STATUS nnfw_session::set_default_backend(NNFW_BACKEND backend)
return NNFW_STATUS_NO_ERROR;
}
-NNFW_STATUS nnfw_session::set_op_backend(NNFW_OP op, NNFW_BACKEND backend)
+NNFW_STATUS nnfw_session::set_op_backend(std::string op, std::string backend)
{
try
{
- std::string key, value;
- value = get_backend_string(backend);
- key = get_op_backend_string(op);
+ auto key = get_op_backend_string(op);
- if (key.empty() || value.empty())
+ if (key.empty())
{
return NNFW_STATUS_ERROR;
}
- _source->set(key, value);
+ _source->set(key, backend);
}
catch (...)
{
diff --git a/runtimes/neurun/frontend/api/wrapper/nnfw_api.hpp b/runtimes/neurun/frontend/api/wrapper/nnfw_api.hpp
index 8cc956eaa..5b4465081 100644
--- a/runtimes/neurun/frontend/api/wrapper/nnfw_api.hpp
+++ b/runtimes/neurun/frontend/api/wrapper/nnfw_api.hpp
@@ -64,8 +64,8 @@ public:
NNFW_STATUS register_custom_operation(const std::string &id, nnfw_custom_eval eval_func);
- NNFW_STATUS set_default_backend(NNFW_BACKEND backend);
- NNFW_STATUS set_op_backend(NNFW_OP op, NNFW_BACKEND backend);
+ NNFW_STATUS set_default_backend(std::string backend);
+ NNFW_STATUS set_op_backend(std::string op, std::string backend);
private:
std::shared_ptr<neurun::graph::Graph> _graph;