platform/core/ml/nnfw.git
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>
6 years ago[core] Add 'num_elements' on kernel shape (#253)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 31 May 2018 23:51:59 +0000 (08:51 +0900)]
[core] Add 'num_elements' on kernel shape (#253)

This commit adds 'num_elements' for kernel shape similarly as
'num_elements' for tensor shape.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core] Add 'num_elements' on feature shape (#252)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 31 May 2018 23:46:32 +0000 (08:46 +0900)]
[core] Add 'num_elements' on feature shape (#252)

This commit adds 'num_elements' for feature shape similarly as 'num_elements'
for tensor shape.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd TFLite IR visitor skeleton (#274)
Dmitry Mozolev/AI Tools Lab/Engineer/삼성전자 [Thu, 31 May 2018 13:03:45 +0000 (16:03 +0300)]
Add TFLite IR visitor skeleton (#274)

Add TFLite IR visitor skeleton

Adds skeleton for the TFLite IR visitor,
additionally saves pointers to some useful model contents.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agoIntroduce 'nncc_include' (#263)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 31 May 2018 09:37:54 +0000 (18:37 +0900)]
Introduce 'nncc_include' (#263)

This commit introduces 'nncc_include' macro which allows users to write
and use useful nncc-internal CMake modules.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[core.ADT] Add tensor::Layout interface (#244)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 30 May 2018 23:17:48 +0000 (08:17 +0900)]
[core.ADT] Add tensor::Layout interface (#244)

This commit adds tensor::Layout interface, and tensor::LexicalLayout class
which implements Layout interfaces.

Layout interface provides 'offset' method which returns an offset of each element
in flat array, and LexicalLayout assigns this offset following lexicographical order.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce a way to support all TFLite versions in one library (#172)
Dmitry Mozolev/AI Tools Lab/Engineer/삼성전자 [Wed, 30 May 2018 13:54:11 +0000 (16:54 +0300)]
Introduce a way to support all TFLite versions in one library (#172)

* Introduce a way to support all TFLite versions in one library

It is not obvious how to support all TFLite model versions in one
library, and this commit changes the structure of the code to show
how other tflite versions can be accommodated.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agoAdd TensorVariant class (#254)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Wed, 30 May 2018 11:32:37 +0000 (15:32 +0400)]
Add TensorVariant class (#254)

Add TensorVariant class

This class is used to store and pass raw data

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoUse caffeproto instead of nncc_frontend_caffe_core (#257)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 30 May 2018 08:43:05 +0000 (17:43 +0900)]
Use caffeproto instead of nncc_frontend_caffe_core (#257)

nncc_frontend_caffe_core is currently almost same as caffeproto.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Introduce 'nnkit_registry_backend' (#258)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 30 May 2018 07:39:22 +0000 (16:39 +0900)]
[nnkit] Introduce 'nnkit_registry_backend' (#258)

* [nnkit] Introduce 'nnkit_registry_backend'

This commit introduces 'nnkit_registry_backend' library which servers as
a global registry on various backends.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Leave a comment on thread safety

* Update comment

6 years agoAdd Caffe proto reader (#255)
Dmitry Mozolev/AI Tools Lab/Engineer/삼성전자 [Tue, 29 May 2018 14:13:58 +0000 (17:13 +0300)]
Add Caffe proto reader (#255)

Add Caffe proto reader

Both reading from binary and from text files is supported.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
6 years agoAdd IRNode class (#256)
Vladimir Plazun/AI Tools Lab/Engineer/삼성전자 [Tue, 29 May 2018 13:24:26 +0000 (17:24 +0400)]
Add IRNode class (#256)

Add IRNode class

This class used to represent single operation in computation graph along with its connections

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years agoAdd 'cli' library (#249)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 29 May 2018 08:05:45 +0000 (17:05 +0900)]
Add 'cli' library (#249)

This commit introduces 'cli' library (under contrib/) and rewrites
caffegen, caffekit, tflitekit tools using newly introduced 'cli'
library.

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