박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
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>
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>
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>
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>
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>
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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
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
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
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
박종현/동작제어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>
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
박종현/동작제어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>
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>
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>
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>
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>
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>
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>
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>
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
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>
박종현/동작제어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>
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>
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>
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>
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>
박종현/동작제어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>
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>
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>
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>
박종현/동작제어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>
nnc: fix console params parsing (#326)
fix wrong single params parsing
(params like '-a', '-f')
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
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>
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>
nnc: Fix stream output operator (#316)
fix stream output for PluginManager AbstractModule classes
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
nnc: PluginManager make code more consistent (#317)
This commit for consistent "auto" using
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
박종현/동작제어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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
박종현/동작제어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>
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>
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>
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>
박종현/동작제어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>
박종현/동작제어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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
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>