From dc2d7ed1dd73d0355920864fb8eeacd3cee5b565 Mon Sep 17 00:00:00 2001 From: Hyung-Kyu Choi Date: Wed, 21 Mar 2018 09:35:24 +0900 Subject: [PATCH] Add description of a reference NN runtime - Add description and reasonings of a reference NN runtime Signed-off-by: Hyung-Kyu Choi --- src/runtime/ref/README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/runtime/ref/README.md b/src/runtime/ref/README.md index dff5e43..bd51cbf 100644 --- a/src/runtime/ref/README.md +++ b/src/runtime/ref/README.md @@ -2,7 +2,26 @@ This directory will host a reference implementation of NN runtime. -## Design philosophies for this reference implemenation +## What is a reference NN runtime ? + +A reference NN runtime is a the first PoC (Proof of concept) implementation of NN runtime for quick development without concrete design. + +At the time of decision for this reference NN runtime, we don't have much time to bring up NN runtime. Precisely, by the first milestone, it would be great to have a naive but working SW stack. This is a our main goal of this reference NN runtime. + +There will be various approaches to implement NN runtime and this reference NN runtime is a designed from three possible approaches. + - (Plan A) Implement by importing Android NN components as needed + - (Plan B) Import and migrate Android NN to our environment and objectives, (i.e. porting and refactoring Android NN) + - (Plan C) Implement from scratch (with knowledge from Android NN after analysis) + +Considering given restrictions, Plan C might be not feasible for us right now, because it requires correct and time consuming analysis. Drop Plan C. And Plan B might not be easy to be worked by several developers in parallel. +Therefore, we decide to take below two approaches in parallel. + - (1) start to implement NN runtime with Plan A by developers in parallel + - (2) make use of knowledge and result from Plan C. Of course, it would be great if we can successfully port Android NN in time. (Plan C). Then we can make use of Android NN itself for our purpose for later milestones. + +Therefore we decide to implement a reference NN runtime with Plan A for quick development without concrete design. +We will follow below philosophies to achieve a main goal. + +## Design philosophies for this reference implementation We will follow below philosophies until we have a working stack of NN runtime. @@ -13,4 +32,4 @@ We will follow below philosophies until we have a working stack of NN runtime. - Introduce a new file if we have to introduce and define our own type, variable, function, namespace and etc. of C++ source code. - Don't share existing file of `experiments/android_nn` for our own implementation. -Simply keep as much as possible of `experiments/android_nn` when importing and introduce new files for our own implementaion. +Simply keep as much as possible of `experiments/android_nn` when importing and introduce new files for our own implementation. -- 2.7.4