[neurun] split compilation NNAPI implementation into frontend (#2145)
author오형석/동작제어Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Thu, 2 Aug 2018 04:55:46 +0000 (13:55 +0900)
committer박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 <saehie.park@samsung.com>
Thu, 2 Aug 2018 04:55:46 +0000 (13:55 +0900)
Split compilation NNAPI implementation into frontend
Define ANeuralNetworksCompilation::finish() to divide NNAPI implementation with internal

Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
runtimes/neurun/src/compilation.cc
runtimes/neurun/src/compilation.h
runtimes/neurun/src/frontend/compilation.cc [new file with mode: 0644]

index b401d38..f4d0603 100644 (file)
@@ -618,26 +618,11 @@ void PlanBuilder::finalize(BackendResolver &backend_resolver)
   }
 }
 
-//
-// NNAPI Implementation
-//
-int ANeuralNetworksCompilation_create(ANeuralNetworksModel *model,
-                                      ANeuralNetworksCompilation **compilation)
-{
-  std::shared_ptr<const internal::tflite::Model> internal;
-
-  model->release(internal);
-
-  *compilation = new ANeuralNetworksCompilation(internal);
-
-  return ANEURALNETWORKS_NO_ERROR;
-}
-
-int ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation *compilation)
+int ANeuralNetworksCompilation::finish()
 {
   arm_compute::CLScheduler::get().default_init();
 
-  auto &plan = compilation->plan();
+  auto &plan = this->plan();
   const auto &operands = plan.model().operands();
   const auto &operations = plan.model().operations();
 
@@ -663,15 +648,3 @@ int ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation *compilation)
 
   return ANEURALNETWORKS_NO_ERROR;
 }
-
-void ANeuralNetworksCompilation_free(ANeuralNetworksCompilation *compilation)
-{
-  delete compilation;
-}
-
-int ANeuralNetworksCompilation_setPreference(ANeuralNetworksCompilation *compilation,
-                                             int32_t preference)
-{
-  // NYi
-  return ANEURALNETWORKS_NO_ERROR;
-}
index bcbaa59..db6a5a1 100644 (file)
@@ -18,6 +18,7 @@ public:
 
 public:
   void publish(std::shared_ptr<const internal::arm_compute::Plan> &plan) { plan = _plan; }
+  int finish();
 
 private:
   std::shared_ptr<internal::arm_compute::Plan> _plan;
diff --git a/runtimes/neurun/src/frontend/compilation.cc b/runtimes/neurun/src/frontend/compilation.cc
new file mode 100644 (file)
index 0000000..fd871dc
--- /dev/null
@@ -0,0 +1,38 @@
+#include <NeuralNetworks.h>
+
+#include "model.h"
+#include "compilation.h"
+
+//
+// NNAPI Implementation
+//
+int ANeuralNetworksCompilation_create(ANeuralNetworksModel *model,
+                                      ANeuralNetworksCompilation **compilation)
+{
+  std::shared_ptr<const internal::tflite::Model> internal;
+
+  model->release(internal);
+
+  *compilation = new ANeuralNetworksCompilation(internal);
+
+  return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation *compilation)
+{
+  return compilation->finish();
+
+  return ANEURALNETWORKS_NO_ERROR;
+}
+
+void ANeuralNetworksCompilation_free(ANeuralNetworksCompilation *compilation)
+{
+  delete compilation;
+}
+
+int ANeuralNetworksCompilation_setPreference(ANeuralNetworksCompilation *compilation,
+                                             int32_t preference)
+{
+  // NYi
+  return ANEURALNETWORKS_NO_ERROR;
+}