Introduce nnfw kernel Initialize (#502)
author박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com>
Mon, 9 Apr 2018 06:49:16 +0000 (15:49 +0900)
committer김정현/동작제어Lab(SR)/Senior Engineer/삼성전자 <jh0822.kim@samsung.com>
Mon, 9 Apr 2018 06:49:16 +0000 (15:49 +0900)
This will introduce initialize function for nnfw acl kernels

Signed-off-by: SaeHie Park <saehie.park@samsung.com>
include/kernel/acl/nnfw_kernel_acl.h [new file with mode: 0644]
src/kernel/acl/CMakeLists.txt
src/kernel/acl/src/Conv2D_acl.test.cpp
src/kernel/acl/src/Init_acl.cpp [new file with mode: 0644]

diff --git a/include/kernel/acl/nnfw_kernel_acl.h b/include/kernel/acl/nnfw_kernel_acl.h
new file mode 100644 (file)
index 0000000..c7a062c
--- /dev/null
@@ -0,0 +1,14 @@
+#ifndef __NNFW_KERNEL_ACL_H__
+#define __NNFW_KERNEL_ACL_H__
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+void Initialize(void);
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_H__
index 6263b82..74a93f2 100644 (file)
@@ -28,7 +28,8 @@ set(GTEST_LIBS libgtest.a libgtest_main.a pthread)
 link_directories(${CMAKE_INSTALL_PREFIX}/lib)
 
 # kernel library
-set(KERNELACL_SRCS "src/Conv2D_acl.cpp"
+set(KERNELACL_SRCS "src/Init_acl.cpp"
+                   "src/Conv2D_acl.cpp"
                    )
 
 add_library(${LIB_KERNELACL} SHARED ${KERNELACL_SRCS})
index 2dd1d1d..19589b7 100644 (file)
@@ -1,5 +1,6 @@
 #include "gtest/gtest.h"
 #include "OperationsUtils.h"
+#include <kernel/acl/nnfw_kernel_acl.h>
 
 namespace nnfw {
 namespace kernel {
@@ -29,6 +30,8 @@ using namespace nnfw::kernel::acl;
 
 TEST(KernelACL_TC, convFloat32_test)
 {
+  nnfw::kernel::acl::Initialize();
+
   float inputData[9];
   const android::nn::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
   float filterData[9];
diff --git a/src/kernel/acl/src/Init_acl.cpp b/src/kernel/acl/src/Init_acl.cpp
new file mode 100644 (file)
index 0000000..05317fb
--- /dev/null
@@ -0,0 +1,16 @@
+#include <arm_compute/runtime/CL/CLScheduler.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+// This will do one time initialization but can be called multiple times
+void Initialize(void)
+{
+  arm_compute::CLScheduler::get().default_init();
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw