platform/core/ml/nnfw.git
6 years ago[nnc core] Add reshape operation description (#392)
Vladimir Plazun/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 29 Jun 2018 07:31:54 +0000 (11:31 +0400)]
[nnc core] Add reshape operation description (#392)

This commit adds missing reshape operation description

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd functions preparing data for the TFLite-to-IR operator creator (#376)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 29 Jun 2018 07:28:40 +0000 (10:28 +0300)]
Add functions preparing data for the TFLite-to-IR operator creator (#376)

Add functions preparing data for the TFLite-to-IR operator creator

Operator creator interface functions take collections of operator
inputs and operator parameters as arguments. These two functions
prepare this data.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agoAdd auxiliary functions for creating TFLite-to-Model-IR operators (#363)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 29 Jun 2018 07:24:26 +0000 (10:24 +0300)]
Add auxiliary functions for creating TFLite-to-Model-IR operators (#363)

Add Model IR operator creator skeleton for TFLite

This is a Model IR operator creator class skeleton.
Contains public interface for creating supported operations.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years ago[nnkit] Introduce 'tflite' backend (#408)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 29 Jun 2018 01:27:39 +0000 (10:27 +0900)]
[nnkit] Introduce 'tflite' backend (#408)

This commit introduces 'tflite' bakckend, which loads 'tflite' model
file and runs inference.

The core part of this backend is extracted as nnkit_support_tflite
library, which allows its reuse in the future.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce 'nnop' library (#402)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 28 Jun 2018 10:16:16 +0000 (19:16 +0900)]
Introduce 'nnop' library (#402)

This commit introduce 'nnop' librarry which provides simple (naive)
implementation of NN operation (which can be used as a reference).

'nnop' currently contains 'conv2d' operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'How to build and run unittest' section (#403)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 28 Jun 2018 08:48:48 +0000 (17:48 +0900)]
Add 'How to build and run unittest' section (#403)

This commit adds 'How to build and run unittest' section in Getting
Started document.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT] Introduce NHWC kernel layout (#401)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 28 Jun 2018 08:20:20 +0000 (17:20 +0900)]
[core.ADT] Introduce NHWC kernel layout (#401)

This commit introduces NHWC kernel layout, which is commonly used in
CPU-optimized convolution implementation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.tensor] Introduce IndexEnumerator (#381)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 28 Jun 2018 07:27:55 +0000 (16:27 +0900)]
[core.tensor] Introduce IndexEnumerator (#381)

This commit introduces IndexEnumerator which enumerates all the valid index
for a given Shape in lexical order, and related unittests.

In addtion, this commit rewrites IndexRange class using IndexEnumerator
to eliminate code duplication.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Introduce randomize action (#399)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 28 Jun 2018 01:05:11 +0000 (10:05 +0900)]
[nnkit] Introduce randomize action (#399)

This commit introduces randomize action which randomizes all the tensors
in a tensor context.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT] Introduce feature buffer/overlay (#400)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 28 Jun 2018 01:05:00 +0000 (10:05 +0900)]
[core.ADT] Introduce feature buffer/overlay (#400)

This commit introduces feature buffer/overlay classes, and related
tests. The design of buffer/overlay is almost similar as that of
kernel/tensor.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUpdate the IDEF0 A1 diagram (#319)
Sergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 09:54:57 +0000 (18:54 +0900)]
Update the IDEF0 A1 diagram (#319)

Update the IDEFO A1 diagram: connect backend by Model IR

This commit updates the IDEF0 A1 diagram by adding new connection
from activity block 2 "Import NN model" to activity block 5
"Code generation" by the Model IR. It means that the backend is
able to use the Model IR to produce some output.

Also, it fixes naming of activity boxes.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoUpdate IDEF0 A12 diagram: add input Configured Execution Session (#334)
Sergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 09:43:05 +0000 (18:43 +0900)]
Update IDEF0 A12 diagram: add input Configured Execution Session (#334)

This commit updates IDEF0 A12 diagram adding one more input for
all activity Configured Execution Session.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoIDEF0 A0: add new input for the block from "Environment variables" (#327)
Sergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 09:39:10 +0000 (18:39 +0900)]
IDEF0 A0: add new input for the block from "Environment variables" (#327)

This commit adds third input from Environment variables to the block
"NN model compilation"

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoSoft backend plugin (#356)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Wed, 27 Jun 2018 09:05:26 +0000 (12:05 +0300)]
Soft backend plugin (#356)

Add initial soft backend to generate C/C++ source code

This commit adds C/C++ emitting backend plugin.
Yet empty

Signed-off-by: Alexander Efimov <a.efimov@samsung.com>
6 years agoPluginManager tests part 8 (AbstractModule class) (#348)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 27 Jun 2018 07:39:13 +0000 (10:39 +0300)]
PluginManager tests part 8 (AbstractModule class) (#348)

AbstractModule class test

This commit introduced test for AbstractModule class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoAdd Model IR operator creator skeleton for TFLite (#354)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 27 Jun 2018 07:19:44 +0000 (10:19 +0300)]
Add Model IR operator creator skeleton for TFLite (#354)

Add Model IR operator creator skeleton for TFLite

This is a Model IR operator creator class skeleton.
Contains public interface for creating supported operations.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years ago[foundation] Implemented 'Exception' class 'what()' method (#351)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 27 Jun 2018 07:18:04 +0000 (10:18 +0300)]
[foundation] Implemented 'Exception' class 'what()' method (#351)

Implemented 'Exception' class 'what()' method

This commit introduced 'what()' method 'Exception' class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years ago[core.ADT.kernel] Introduce Overlay/Buffer (#389)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 07:13:35 +0000 (16:13 +0900)]
[core.ADT.kernel] Introduce Overlay/Buffer (#389)

This commit introduce kernel overlay which interprets externally allocated
memory region as a tensor, and buffer which allocates its own memory region.

These overlay and buffer are derived from common view class (to minimize
code duplication)

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUse correct test namespace (#390)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 06:46:54 +0000 (15:46 +0900)]
Use correct test namespace (#390)

This commit fixes multiple reference issues inside nncc_core_test

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoBuild caffe inside build/externals directory (#382)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 06:40:12 +0000 (15:40 +0900)]
Build caffe inside build/externals directory (#382)

Currently, caffe is built inside the binary directory of the first subproejct
that finds caffe.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT.tensor] Introduce Overlay/Buffer (#386)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 06:36:39 +0000 (15:36 +0900)]
[core.ADT.tensor] Introduce Overlay/Buffer (#386)

This commit revises tensor::View<T> as an interface, and introduces two
implementations: Overlay<T> and Buffer<T>

Overlay<T> is a tensor view over externally allocated memory region, and
Buffer<T> is a tensor view which owns content memory (currently
implemented via vector)

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT] Copyable/movable feature layout (#384)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 06:36:03 +0000 (15:36 +0900)]
[core.ADT] Copyable/movable feature layout (#384)

This commit revises feature::Layout class similarly as tensor::Layout.

With this commit, one may copy/move layout as if it is a plain value.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Set HDF5 include directories correctly (#388)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 05:39:24 +0000 (14:39 +0900)]
[nnkit] Set HDF5 include directories correctly (#388)

This commit passes HDF5 include directories when building HDF5 export
action correctly.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT] Copyable/movable kernel layout (#385)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 05:20:33 +0000 (14:20 +0900)]
[core.ADT] Copyable/movable kernel layout (#385)

This commit revises kernel layout implementations similarly as those of
tensor layout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT] Simplify tensor view construction (#383)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 02:43:46 +0000 (11:43 +0900)]
[core.ADT] Simplify tensor view construction (#383)

The current implementation of tensor::View<T> takes an owned pointer
of Layout (std::unique_ptr<Layout>) as its argument.

This design was enforced by the constraint that Layout is a pure
virtual class. Recently, this constraint is gone. Layout class is now
a simple class which is copyable and movable.

This commit revises tensor view constructor to take Layout instead of
std::unique_ptr<Layout> to make it easy to build tensor view.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Copyable/movable tensor layout (#369)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 02:00:22 +0000 (11:00 +0900)]
[nncc.core] Copyable/movable tensor layout (#369)

This commit revises 'ADT::tensor::Layout' to be copyable and movable.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT.feature] Introduce Layout interface (#289)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 01:23:11 +0000 (10:23 +0900)]
[core.ADT.feature] Introduce Layout interface (#289)

This commit introduces 'nncc::core::ADT::feature::Layout' interface
which is almost same as tensor::Layout but specialized for feature map
that convolution uses.

This commit also introduces 'CHWLayout' as an example.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Remove deprecated classes (#379)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 27 Jun 2018 00:48:50 +0000 (09:48 +0900)]
[nnkit] Remove deprecated classes (#379)

nni now loads backend/action directly from shared libraries (not
through registry).

This commit removes deprecated classes from nnkit.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoMultiple jobs docker-build (#377)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 26 Jun 2018 23:32:53 +0000 (02:32 +0300)]
Multiple jobs docker-build (#377)

Perform build in docker-build script, using multiple jobs

Signed-off-by: Ivan Vagin ivan.vagin@samsung.com
6 years agoRemove caffekit (#374)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 23:26:50 +0000 (08:26 +0900)]
Remove caffekit (#374)

Caffe backend in nnkit includes all the functionalities of caffekit, and
nnkit provides various extensions via pre/post actions.

Let's remove caffekit, and focus on nnkit.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoTensorflow Lite as Position Independent Static Library (#371)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 08:38:47 +0000 (17:38 +0900)]
Tensorflow Lite as Position Independent Static Library (#371)

This commit revises TensorFlowLite module to insert -fPIC option when
building "libtensorflowlite.a". This option will allow tensorflow lite
to be linked into shared library.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Introduce HDF5 export action (#370)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 08:28:03 +0000 (17:28 +0900)]
[nnkit] Introduce HDF5 export action (#370)

This commit introduces HDF5 export action which allows us to record
tensor state before/after inference as HDF5 file (.h5).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Add Caffe backend (#367)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 07:23:48 +0000 (16:23 +0900)]
[nnkit] Add Caffe backend (#367)

This commit adds 'caffe' backend implementation which can be loaded by
nni toolchain.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoFarmhash as Position Independent Static Library (#365)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 06:18:28 +0000 (15:18 +0900)]
Farmhash as Position Independent Static Library (#365)

This commit revises FarmhashConfig module to insert -fPIC option when
building libfarmhash.a. This option will allow farmhash library to be linked
into shared libraries.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoConvert tensor from NHWC (TFLite) to HWCN (#353)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 26 Jun 2018 05:45:06 +0000 (08:45 +0300)]
Convert tensor from NHWC (TFLite) to HWCN (#353)

Add a function that creates an IR tensor from a TFLite tensor

Note: this code is subject to change if the way IR stores tensor
data and type changes.

Signed-off-by: Dmitry Mozolev d.mozolev@samsung.com
6 years ago[nnkit] Introduce nni toolchain (#366)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 03:57:58 +0000 (12:57 +0900)]
[nnkit] Introduce nni toolchain (#366)

This commit introduces 'nni' toolchain which loads backend/action
modules, and executes them.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd section "SW Quality Verification" to SDD (#315)
Sergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 03:51:58 +0000 (06:51 +0300)]
Add section "SW Quality Verification" to SDD (#315)

* Add section "SW Quality Verification" to SDD

This commit adds the section "SW Quality Verification" to
SW Development Document. This section contains only plans.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add version info in the title table

* fix format

* remove table name

6 years ago[nnkit] Introduce Action interface (#364)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 26 Jun 2018 00:21:11 +0000 (09:21 +0900)]
[nnkit] Introduce Action interface (#364)

This commit adds 'nnkit_intf_action' target which provides 'Action'
interface to its users.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoFixed PluginSession class test (#360)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Mon, 25 Jun 2018 23:27:22 +0000 (02:27 +0300)]
Fixed PluginSession class test (#360)

Use correct delimiter between plugin paramether and plugin description

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoPluginManager tests part 3 (#333)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 13:59:03 +0000 (16:59 +0300)]
PluginManager tests part 3 (#333)

PluginManager tests part 3

This commit introduced tests for classes:
 * AbstractSession
 * PluginParam

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoPluginManager tests part 4 (PluginInstance class) (#342)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 13:58:26 +0000 (16:58 +0300)]
PluginManager tests part 4 (PluginInstance class) (#342)

PluginManager tests: PluginInstance class

This commit introduced test for PluginInstance class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoData tests part 1.2 (Data class) (#345)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 13:57:12 +0000 (16:57 +0300)]
Data tests part 1.2 (Data class)  (#345)

Data class tests

This commit introduced test for Data class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoBackendModule/FrontendModule classes tests (#349)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 13:55:55 +0000 (16:55 +0300)]
BackendModule/FrontendModule classes tests (#349)

This commit introduced tests for BackendModule/FrontendModule classes

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoPluginManager tests part 6 (PluginSession class) (#346)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 11:47:37 +0000 (14:47 +0300)]
PluginManager tests part 6 (PluginSession class) (#346)

PluginSession class tests

This commit introduced test for PluginSession class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoPluginProxy class tests (#347)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 11:47:08 +0000 (14:47 +0300)]
PluginProxy class tests (#347)

This commit introduced test for PluginProxy class

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoAdd a function that creates an IR tensor from a TFLite tensor (#350)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 22 Jun 2018 07:31:30 +0000 (10:31 +0300)]
Add a function that creates an IR tensor from a TFLite tensor (#350)

Note: this code is subject to change if the way IR stores tensor
data and type changes.

Signed-off-by: Dmitry Mozolev d.mozolev@samsung.com
6 years agoPluginManager tests part 5 (SharedLibrary class) (#344)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 21 Jun 2018 07:29:05 +0000 (10:29 +0300)]
PluginManager tests part 5 (SharedLibrary class) (#344)

SharedLibrary class tests

This commit introduced test for SharedLibrary class and appropriate
CMakeLists

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years ago[core.ADT.kernel] Introduce Layout interface (#291)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 21 Jun 2018 00:48:55 +0000 (09:48 +0900)]
[core.ADT.kernel] Introduce Layout interface (#291)

This commit introduces 'nncc::core::ADT::kernel::Layout' interface
which is almost same as tensor::Layout but specialized for 4D kernel
that convolution uses.

This commit also introduces 'NCHWLayout' as an example.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoPluginManager tests part 2 (#332)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 20 Jun 2018 14:35:18 +0000 (17:35 +0300)]
PluginManager tests part 2 (#332)

PluginManager tests part 2

This commit introduced tests for classes:
 * ConfigException
 * PluginException

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoSet IR inputs and outputs from TFLite model (#328)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 19 Jun 2018 14:07:11 +0000 (17:07 +0300)]
Set IR inputs and outputs from TFLite model (#328)

Set IR inputs and outputs from TFLite model

This commit adds methods for creating IR graph inputs and outputs
from a TFLite model.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agoPluginManager tests part 1.1 (#341)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Mon, 18 Jun 2018 15:39:40 +0000 (18:39 +0300)]
PluginManager tests part 1.1 (#341)

DataException tests

This commit introduced test for DataException class and appropriate
CMakeLists

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoAdd shape helper (#325)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 14 Jun 2018 13:57:36 +0000 (16:57 +0300)]
Add shape helper (#325)

Add shape helper

This commits adds a common class that importers can use to
carry out various operations on shapes useful during model import.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agoAdd 'add_subdirectories' module (#288)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 14 Jun 2018 09:53:10 +0000 (18:53 +0900)]
Add 'add_subdirectories' module (#288)

This commit adds 'add_subdirectores' module which provides
'add_subdirectories' function, and simplifies top-level CMakeLists.txt
using this new function.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoPass arguments to build script (#337)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 14 Jun 2018 09:42:54 +0000 (12:42 +0300)]
Pass arguments to build script (#337)

This commit allowing to pass arguments to build script

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoPrint detail messages on test failures (#338)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 14 Jun 2018 09:23:22 +0000 (12:23 +0300)]
Print detail messages on test failures (#338)

This commit enabling detail messages on test failures

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoAdd '*.swp' to .gitignore (#336)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 14 Jun 2018 09:21:59 +0000 (12:21 +0300)]
Add '*.swp' to .gitignore (#336)

This commit adds '.swp' files to .gitignore

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoIntroduce 'nncc_coverage' interface target (#335)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 14 Jun 2018 09:20:05 +0000 (18:20 +0900)]
Introduce 'nncc_coverage' interface target (#335)

This commit introduces 'nncc_coverage' interface target which propagates
compilation options for coverage build, and use it to simplify add_nncc_library
implementation.

It is possible to eliminate unnecessary link statement (to libc) inside
add_nncc_library with this commit.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agonnc: fix console params parsing (#326)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 13 Jun 2018 12:18:13 +0000 (15:18 +0300)]
nnc: fix console params parsing (#326)

fix wrong single params parsing
(params like '-a', '-f')

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agoUpdate visitor to support available operations (#320)
Vladimir Plazun/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 8 Jun 2018 13:13:16 +0000 (17:13 +0400)]
Update visitor to support available operations (#320)

Update visitor to support available operations

Updates visitor base class to support currently implemented operations

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoFix "enumeration values not handled in switch" warning (#323)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 8 Jun 2018 12:23:48 +0000 (15:23 +0300)]
Fix "enumeration values not handled in switch" warning (#323)

This commit fixes the warning that appears if not all enum values are
handled in a switch.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agonnc: Fix stream output operator (#316)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 8 Jun 2018 07:43:22 +0000 (10:43 +0300)]
nnc: Fix stream output operator (#316)

fix stream output for PluginManager AbstractModule classes

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: PluginManager make code more consistent (#317)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 8 Jun 2018 07:42:52 +0000 (10:42 +0300)]
nnc: PluginManager make code more consistent (#317)

This commit for consistent "auto" using

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agoFix CaffeProto CMake warning (#305)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 7 Jun 2018 11:05:46 +0000 (20:05 +0900)]
Fix CaffeProto CMake warning (#305)

This commit fixes CMake warning emitted when DOWNLOAD_CAFFE is disabled.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agonnc: Implement nnc common realisation (#277)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 6 Jun 2018 07:17:50 +0000 (10:17 +0300)]
nnc: Implement nnc common realisation (#277)

nnc: Implement nnc skeleton

This commit implements nnc with activated frontend and backend
modules

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: Fix PluginProxy interface (#309)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 6 Jun 2018 07:14:32 +0000 (10:14 +0300)]
nnc: Fix PluginProxy interface (#309)

This commit is to fix common plugin interface.

There are some problems to return std::shared_ptr by library "C" interface
also AbstractPluginInstance and plugin *PluginInstance (like SamplePluginInstance) should be a
singleton and std::shared_ptr is unnecessary there.

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agoFix compiler warnings in Graph and Node classes (#314)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 15:52:30 +0000 (19:52 +0400)]
Fix compiler warnings in Graph and Node classes (#314)

Reorder initialization list to match declaration order
Set node input pins with respect to inputIndex given

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agonnc example: fix SamplePluginInstance copy and assignment (#313)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 15:50:58 +0000 (18:50 +0300)]
nnc example: fix SamplePluginInstance copy and assignment (#313)

This commit delete copy and assignment operator
from singleton plugin instance example class

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: fix AbstractPluginInstance copy and assignment operator (#312)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 15:50:20 +0000 (18:50 +0300)]
nnc: fix AbstractPluginInstance copy and assignment operator (#312)

This commit delete copy and assignment operator
from singleton base class

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agoFix compiler warnings in TensorVariant class (#311)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 15:49:32 +0000 (19:49 +0400)]
Fix compiler warnings in TensorVariant class (#311)

Make constructor initilization list order match declaration order
Add missing virtual destructor

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoFix compiler warnings in operation descriptions (#310)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 15:48:58 +0000 (19:48 +0400)]
Fix compiler warnings in operation descriptions (#310)

Fixes compiler warnings in PoolOp and OpDescription classes
Add missing OpDescription virtual destructor

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years ago[nnc] Fix operation description namespace issues (#308)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 15:48:10 +0000 (19:48 +0400)]
[nnc] Fix operation description namespace issues (#308)

This commit fixes compilation errors introduced by switch to clang-7

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agonnc: Implement BackendModule class (#276)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 10:43:33 +0000 (13:43 +0300)]
nnc: Implement BackendModule class (#276)

nnc: Implement BackendModule class

This commit implements BackendModule class

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: Implement FrontendModule class (#275)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 10:43:00 +0000 (13:43 +0300)]
nnc: Implement FrontendModule class (#275)

nnc: Implement FrontendModule class

This commit implements FrontendModule class

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: fix AbstractModule copy and assignment operator (#307)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 10:28:08 +0000 (13:28 +0300)]
nnc: fix AbstractModule copy and assignment operator (#307)

nnc: fix AbstractModule copy and assignment operator

This commit delete copy and assignment operator
from singleton base class

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agoFix issue "no return statement in function return non-void" (#304)
Sergey Vostokov/AI Tools Lab/Staff Engineer/삼성전자 [Tue, 5 Jun 2018 09:01:04 +0000 (12:01 +0300)]
Fix issue "no return statement in function return non-void" (#304)

Fix issue "no return statement in function return non-void"

This commit fix issue for two classes nncc:core:ADT:tensor:Index::resize() and
nncc::core::ADT::tensor::Shape::resize()

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoFix error "returning reference to temporary" (#302)
Sergey Vostokov/AI Tools Lab/Staff Engineer/삼성전자 [Tue, 5 Jun 2018 08:39:38 +0000 (11:39 +0300)]
Fix error "returning reference to temporary" (#302)

This commit fixes issue when member function returns
reference to the local variable.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoprotect AbstractModule class methods (#301)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 08:32:51 +0000 (11:32 +0300)]
protect AbstractModule class methods (#301)

AbstractModule will be used as base class for
module singletons

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: Implement plugin example (#278)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Tue, 5 Jun 2018 08:30:42 +0000 (11:30 +0300)]
nnc: Implement plugin example (#278)

nnc: Implement plugin example

This commit show how to create plugin for nnc

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years ago[nnc] Add backend directory (#300)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Mon, 4 Jun 2018 23:06:37 +0000 (03:06 +0400)]
[nnc] Add backend directory (#300)

This directory is used to store backend plugins sources. (e.g. code emitter, interpreter)

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years ago[nnkit] Build registry library (#290)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 4 Jun 2018 23:05:57 +0000 (08:05 +0900)]
[nnkit] Build registry library (#290)

'libs/CMakeLists.txt' does not include registry directory, and thus
registry libraries are not built currently.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd Graph class (#297)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Mon, 4 Jun 2018 13:53:09 +0000 (17:53 +0400)]
Add Graph class (#297)

Add Graph class

This class is used to represent computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd Variable operation class (#296)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Mon, 4 Jun 2018 13:30:22 +0000 (17:30 +0400)]
Add Variable operation class (#296)

This class is used to represent input node in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agonnc: Implement PluginManager class (#273)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Mon, 4 Jun 2018 09:50:08 +0000 (12:50 +0300)]
nnc: Implement PluginManager class (#273)

nnc: Implement PluginsManager class

This class will search, load, initialize plugins and
delegate plugins to modules by plugin type

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years ago[foundation] Do NOT allow copy/move on OwnedRegion (#299)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 4 Jun 2018 07:09:51 +0000 (16:09 +0900)]
[foundation] Do NOT allow copy/move on OwnedRegion (#299)

As its name suggestes, OwnedRegion should not be copied.

OwnedRegion should be moveable simialrly as std::unique_ptr<T>,
but the current implementation sets '_base' field as const field,
so it is impossible to implement move constructor.

As a workaround, this commit  disables move on Owned Region
temporarily.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[cli] Add 'FunctionCommand' class (#292)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 4 Jun 2018 01:01:49 +0000 (10:01 +0900)]
[cli] Add 'FunctionCommand' class (#292)

This commit adds 'FunctionCommand' class which allows us to use pure
function as a command.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd :/cmake-build-* and :/.idea to .gitignore (#295)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Sun, 3 Jun 2018 23:37:14 +0000 (03:37 +0400)]
Add :/cmake-build-* and :/.idea to .gitignore (#295)

SRR team uses clion as a main IDE for development and it's more convinient to have IDE artefacts ignored

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd FullyConnected layer desсription class (#285)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 14:24:07 +0000 (18:24 +0400)]
Add FullyConnected layer desсription class (#285)

Add FullyConnected layer desсription class

This class is used to represent a fully connected layer in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd Relu operation desсription class (#287)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 14:13:15 +0000 (18:13 +0400)]
Add Relu operation desсription class (#287)

Add Relu operation desription class

This class is used to represent relu operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd Pool operation description (#286)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 14:12:50 +0000 (18:12 +0400)]
Add Pool operation description (#286)

Add Pool operation desription class

This class is used to represent pool operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd DepthwiseConv2D operation description (#284)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 14:12:17 +0000 (18:12 +0400)]
Add DepthwiseConv2D operation description (#284)

Add DepthwiseConv2D operation description

This class is used to represent Depthwise Convolution operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd Conv2D operation desсription class (#280)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 14:11:48 +0000 (18:11 +0400)]
Add Conv2D operation desсription class (#280)

Add Conv2D operation desription class

This class is used to represent 2d convolution operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd CappedRelu operation description class (#272)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 14:11:10 +0000 (18:11 +0400)]
Add CappedRelu operation description class (#272)

* Add CappedRelu operation description class

This class used to represent capped relu operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd Softmax operation description (#294)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 12:29:53 +0000 (16:29 +0400)]
Add Softmax operation description (#294)

This class is used to represent softmax operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd BiasAdd operation description class (#271)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 12:25:23 +0000 (16:25 +0400)]
Add BiasAdd operation description class (#271)

Add BiasAdd operation description class

This class used to represent bias addition in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd Concat operation description class (#279)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 12:23:31 +0000 (16:23 +0400)]
Add Concat operation description class (#279)

This class is used to represent concatenation operation in computation graph

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agonnc: make isOptional method const (#293)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 11:29:09 +0000 (14:29 +0300)]
nnc: make isOptional method const (#293)

This commit makes getter const

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: Implement AbstractModule class (#268)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 10:27:21 +0000 (13:27 +0300)]
nnc: Implement AbstractModule class (#268)

nnc: implement AbstractModule class

This commit implements base module class.

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: Implement PluginProxy class (#267)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 10:14:22 +0000 (13:14 +0300)]
nnc: Implement PluginProxy class (#267)

nnc: implement PluginProxy class

this is base class to load pluggin

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years agonnc: Implement AbstractPluginInstance class (#266)
Vitaliy Cherepanov/AI Tools Lab/Engineer/삼성전자 [Fri, 1 Jun 2018 07:36:36 +0000 (10:36 +0300)]
nnc: Implement AbstractPluginInstance class (#266)

nnc: implement AbstractPluginInstance class

Virtual plugin instance class.
Provides basic API for communication between plugin and nnc

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
6 years ago[core] Add Tensor View (#281)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 1 Jun 2018 06:54:25 +0000 (15:54 +0900)]
[core] Add Tensor View (#281)

This commit introduces 'nncc::core::ADT::tensor::View' class which
allows users to interpret a memory region as a tensor with a specified
shape and layout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>