platform/core/ml/nnfw.git
5 years agoUpdate revision history in DLD document and add GPU backend item (#1355)
Sergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 12:57:34 +0000 (15:57 +0300)]
Update revision history in DLD document and add GPU backend item (#1355)

This commit adds item about GPU backend and updates revision history of DLD

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
5 years agoUpdate HLD by adding new revision info (#1356)
Sergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 12:55:05 +0000 (15:55 +0300)]
Update HLD by adding new revision info (#1356)

This commit adds new revision history line "add IR description"

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
5 years ago[enco] Set AvgPool2D stride on ANN subnet construction (#1349)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 09:06:26 +0000 (18:06 +0900)]
[enco] Set AvgPool2D stride on ANN subnet construction (#1349)

With this commit, ANN subnet builder uses stride values stored in coco IR to
set strides of ANN AvgPool2D operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Remove unused onUpdate hook (#1347)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 08:15:00 +0000 (17:15 +0900)]
[coco] Remove unused onUpdate hook (#1347)

* [coco] Remove unused onUpdate hook

This commit removes unused onUpdate hook from Object.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Update related comment

5 years ago[enco.caffe] Set AvgPool2D stride (#1346)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 07:36:33 +0000 (16:36 +0900)]
[enco.caffe] Set AvgPool2D stride (#1346)

With this commit, enco caffe frontend now sets the stride of AvgPool2D
using a value specified in a given caffe model (instead of hard-coded one).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add caffe 010 testcase (#1345)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 07:24:44 +0000 (16:24 +0900)]
[enco] Add caffe 010 testcase (#1345)

This commit adds caffe 010 testcase which includes a simple 3x3
average pooling layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Rewrite constant methods using concat (#1337)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 06:19:51 +0000 (15:19 +0900)]
[enco] Rewrite constant methods using concat (#1337)

Currently, constant methods in Global internally implements string concat
operation.

This commit revises these methods to reuse existing concat method.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Build AvgPool2D op from caffe model (#1341)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 06:19:38 +0000 (15:19 +0900)]
[enco] Build AvgPool2D op from caffe model (#1341)

With this commit, enco caffe frontend is now able to build a simple
AvgPool2D op from caffe model.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce stride-related members in AvgPool2D (#1344)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 06:19:23 +0000 (15:19 +0900)]
[coco] Introduce stride-related members in AvgPool2D (#1344)

This commit introduces stride methods and related _stride field in
AvgPool2D class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Decide pooling method from spec (#1339)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 04:09:57 +0000 (13:09 +0900)]
[enco] Decide pooling method from spec (#1339)

This commit revises PoolingSpec to correctly decide pooling method from
a model specification given as prototxt.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Generate code for AvgPool2D op (#1340)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 04:07:33 +0000 (13:07 +0900)]
[enco] Generate code for AvgPool2D op (#1340)

This commit supports code generation on AvgPool2D op.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Construct AvgPool2D via OpManager (#1336)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 01:05:50 +0000 (10:05 +0900)]
[coco] Construct AvgPool2D via OpManager (#1336)

This commit implements OpManager::create<AvgPool2D> method.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nncc.core] Remove unused tensor formatting classes (#1335)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 00:31:55 +0000 (09:31 +0900)]
[nncc.core] Remove unused tensor formatting classes (#1335)

This commit removes unused tensor formatting classes from nnnc core
library.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Correctly enumerate network outputs (#1327)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 00:11:06 +0000 (09:11 +0900)]
[enco.caffe] Correctly enumerate network outputs (#1327)

With this commit, caffe frontend now correctly enumerates network
outputs.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce AvgPool2D class (#1329)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 5 Sep 2018 00:06:41 +0000 (09:06 +0900)]
[coco] Introduce AvgPool2D class (#1329)

This commit introduces AvgPool2D class which denotes 2D average pooling
operation in coco IR.

Note that the current implementation allows users to specify window
size.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoTest compilation of artifact (#1119)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 4 Sep 2018 15:06:23 +0000 (18:06 +0300)]
Test compilation of artifact (#1119)

Adds test to check that backend is able to produce compilable files

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years agoGenerate unified setter and getter (#1284)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 4 Sep 2018 14:36:05 +0000 (17:36 +0300)]
Generate unified setter and getter (#1284)

Generate unified setter and getter for single input/output nets to artifact.
This setter and getter has fixed declaration for all nets with single input and output

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years agoFix arm c++ artifact generation (#1285)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 4 Sep 2018 14:09:19 +0000 (17:09 +0300)]
Fix arm c++ artifact generation (#1285)

+ Fix alignment of serialized data
+ Fix build with NEON enabled
+ Fix -Wall warnings

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years ago[enco] Add caffe 008 test (#1324)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 08:41:14 +0000 (17:41 +0900)]
[enco] Add caffe 008 test (#1324)

This commit introduces caffe 008 testcase which checks whether enco can
correctly compile a simple caffe network that consists of a single Max
pooling layer with stride.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Set MaxPool2D op stride values (#1323)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 08:22:06 +0000 (17:22 +0900)]
[enco.caffe] Set MaxPool2D op stride values (#1323)

With this commit, Caffe frontend now correctly sets stride of
MaxPool2D operation using the values inferred from caffe model.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Configure ANN subnet MaxPool2D strides (#1321)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 07:41:31 +0000 (16:41 +0900)]
[enco] Configure ANN subnet MaxPool2D strides (#1321)

With this commit, enco now sets stride values for MaxPool2D op in android
NN subnet from stride values stored in coco::MaxPool2D entity.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Infer the output shape of Pooling with stride (#1322)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 07:41:11 +0000 (16:41 +0900)]
[enco.caffe] Infer the output shape of Pooling with stride (#1322)

With this commit, PoolingSpec is now able to infer the output shape of
Pooling layer with stride values.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add caffe 007 test (#1319)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 07:02:00 +0000 (16:02 +0900)]
[enco] Add caffe 007 test (#1319)

This commit adds caffe 007 test which consists of a simple Max pooling
layer without padding and stride.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Record stride configuration in MaxPool2D (#1320)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 07:01:51 +0000 (16:01 +0900)]
[coco] Record stride configuration in MaxPool2D (#1320)

This commit introduces a field and methods related with stride into
MaxPool2D class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Initial MaxPool2D codegen support (#1318)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 05:00:49 +0000 (14:00 +0900)]
[enco] Initial MaxPool2D codegen support (#1318)

This commit implements codegen routines for MaxPool2D without
padding/stride.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove unused num_output field (#1317)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 04:55:58 +0000 (13:55 +0900)]
[enco] Remove unused num_output field (#1317)

This commit removes unused num_output field from ConvolutionSpec class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Correct copy & move constructor (#1316)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 04:55:50 +0000 (13:55 +0900)]
[coco] Correct copy & move constructor (#1316)

This commit fixes copy&paste error in MaxPool2D class declaration.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Initial pooling layer support (#1314)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 04:49:29 +0000 (13:49 +0900)]
[enco.caffe] Initial pooling layer support (#1314)

This commit presents the initial implementation of pooling layer
supporting routine.

The current implementation supports only simple Max pooling (w/o padding
and stride).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Initial PoolingSpec implementation (#1312)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 02:20:15 +0000 (11:20 +0900)]
[enco.caffe] Initial PoolingSpec implementation (#1312)

This commit submits the initial implementation of PoolingSpec.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Configurable MaxPool2D window size (#1313)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 02:18:00 +0000 (11:18 +0900)]
[coco] Configurable MaxPool2D window size (#1313)

This commit introduces a field and methods related with window (=
receptive field) configuration.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Extract string-manipulating rotuines (#1311)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 01:51:13 +0000 (10:51 +0900)]
[enco] Extract string-manipulating rotuines (#1311)

This commit extracts concat method (for string manipulation) from
Subnet.cpp, and introduces String.h for future reuse.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Create MaxPool2D with OpManager (#1310)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 01:25:53 +0000 (10:25 +0900)]
[coco] Create MaxPool2D with OpManager (#1310)

This commit implements 'create' method for 'MaxPool2D' op in
'OpManager'.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce MaxPool2D class (#1307)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 00:26:47 +0000 (09:26 +0900)]
[coco] Introduce MaxPool2D class (#1307)

This commit introduces MaxPool2D class which allows coco IR to describe
MAX pooling over feature maps.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add 006 test (#1306)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 4 Sep 2018 00:11:16 +0000 (09:11 +0900)]
[enco] Add 006 test (#1306)

This commit adds 006 testcase which includes a simple ReLU layer in it.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Build ANN ReLU operator (#1298)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 23:24:52 +0000 (08:24 +0900)]
[enco] Build ANN ReLU operator (#1298)

This commit revises ANNGroupBuilder and ANNOpBuilder to recognize ReLU
operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit ReLU opcode (#1297)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 23:24:40 +0000 (08:24 +0900)]
[enco] Emit ReLU opcode (#1297)

enco is now able to generate ANeuralNetworks_addOperation call for
RELU operator.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Suppress caffe test glog messages (#1287)
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Mon, 3 Sep 2018 23:24:18 +0000 (08:24 +0900)]
[enco] Suppress caffe test glog messages (#1287)

This will suppress enco caffe test glog messages while in build steps.
Error and Fatal will be shown.

Signed-off-by: SaeHie Park <saehie.park@samsung.com>
5 years agoSupport for grouped convolution for caffe (#1209)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Mon, 3 Sep 2018 19:34:14 +0000 (22:34 +0300)]
Support for grouped convolution for caffe (#1209)

Adds support for grouped convolution in caffe: fix kernel tensor on shape inference

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years agoUpdate HLD, SRS, and DLD documentation (#1304)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 18:46:13 +0000 (21:46 +0300)]
Update HLD, SRS, and DLD documentation (#1304)

* include content from rst file into one
* remove redundant rst files
* correct reference to image

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoUpdate DLD by adding of ModelIR, C++ backend, Caffe backend, CLI description (#1286)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 18:06:14 +0000 (21:06 +0300)]
Update DLD by adding of ModelIR, C++ backend, Caffe backend, CLI  description (#1286)

Added description of:
  * model IR
  * soft backend
  * caffe importer
  * command line interface

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[coco] Introduce Window2D class (#1296)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 05:47:35 +0000 (14:47 +0900)]
[coco] Introduce Window2D class (#1296)

This commit introduces Window2D class which denotes the size of
receptive field that some spatial operator (such as Pooling) uses.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce ReLU op to ANN IR (#1294)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 05:47:22 +0000 (14:47 +0900)]
[enco] Introduce ReLU op to ANN IR (#1294)

This commit introduces RELU tag to ann::Operation::Code enumeration.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Genernally normalize feature layout (#1293)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 05:47:11 +0000 (14:47 +0900)]
[enco] Genernally normalize feature layout (#1293)

The current implementation of NormalizePass applies feature layout
normalization only for Conv2D operation.

With this commit, NormalizePass normalizes feature layout for general
feature operation (including ReLU).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Build IR from ReLU layer (#1292)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 05:47:02 +0000 (14:47 +0900)]
[enco.caffe] Build IR from ReLU layer (#1292)

This commit implements the initial implementation of IR builder for ReLU
layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add kernel_h/kernel_w convolution test (#1291)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 02:32:31 +0000 (11:32 +0900)]
[enco] Add kernel_h/kernel_w convolution test (#1291)

This commit adds caffe 005 test which includes a convolution layer that
specifies its kernel size using kernel_h and kernel_w, and enables
build/inference test.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Extend OpManager for ReLU op (#1278)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 02:03:55 +0000 (11:03 +0900)]
[coco] Extend OpManager for ReLU op (#1278)

This commit implements create<ReLU> method, which allows us to create
ReLU instances via OpManager.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[refNN] Support ReLU operator (#1290)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 01:56:15 +0000 (10:56 +0900)]
[refNN] Support ReLU operator (#1290)

This commit imports ReLU operator-related implementations into the
reference NN runtime.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Support kernel_h/kernel_w paramaters (#1289)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 01:38:07 +0000 (10:38 +0900)]
[enco.caffe] Support kernel_h/kernel_w paramaters (#1289)

With this commit, ConvolutionSpec is now able to recoginize kernel_h and
kernel_w parameters.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Asymmetrically padded convolution test (#1276)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 01:10:48 +0000 (10:10 +0900)]
[enco] Asymmetrically padded convolution test (#1276)

This commit adds 004 test which includes asymmetrically padded
convolution layer, and enables build/inference test.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Symmetrically padded convolution test (#1274)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 3 Sep 2018 01:10:01 +0000 (10:10 +0900)]
[enco] Symmetrically padded convolution test (#1274)

This commit adds a 003 test which includes symmetrically padded
convolution layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoRemove redundant curly brace (#1282)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 18:54:25 +0000 (21:54 +0300)]
Remove redundant curly brace (#1282)

remove redundant curly brace when initialization of cmake variable

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoClosing files in interpreter`s plugin and cpp operations (#1185)
Юрий Новиков/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Fri, 31 Aug 2018 15:33:20 +0000 (18:33 +0300)]
Closing files in interpreter`s plugin and cpp operations (#1185)

Add closing of files in interpreter_plugin.cpp and cpp_operations.def. Also checking for error codes was made.

Signed-off-by: y.novikov <y.novikov@partner.samsung.com>
5 years agoFix build bugs: not enabled target if its dependent targets are unavailable (#1258)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 15:23:29 +0000 (18:23 +0300)]
Fix build bugs: not enabled target if its dependent targets are unavailable (#1258)

Targets for tests won't be built if main targets aren't set

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoNot enable frontend plugins if their dependencies aren't set (#1279)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 15:10:00 +0000 (18:10 +0300)]
Not enable frontend plugins if their dependencies aren't set (#1279)

* frontend plugins won't be enabled if their dependencies aren't set
* added feature to disable command line options. It is needed to
  disable plugin options if plugins aren't available

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoMove Detailed Level Design Documentation to contrib/nnc (#1281)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 14:52:39 +0000 (17:52 +0300)]
Move Detailed Level Design Documentation to contrib/nnc (#1281)

* move rst file
* correct references in file: replace .md by .rst

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoUpdate getting_started document for docker (#1267)
남궁석/동작제어Lab(SR)/Engineer/삼성전자 [Fri, 31 Aug 2018 14:39:09 +0000 (23:39 +0900)]
Update getting_started document for docker (#1267)

Docker build for _nncc_ use multistage-build
However multistage-build require docker 17.05 or higher version
This commit will update this information

Signed-off-by: Seok NamKoong <sk.namkoong@samsung.com>
5 years agoCorrect paths where plugins are to be searched (#1280)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 14:35:12 +0000 (17:35 +0300)]
Correct paths where plugins are to be searched (#1280)

* now it's not necessary to run make install
* now plugins are searched by relative path

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[CaffeProto] Do NOT generate files at top-level (#1273)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 08:35:37 +0000 (17:35 +0900)]
[CaffeProto] Do NOT generate files at top-level (#1273)

CaffeProto package currently places generated protobuf files into the
top-level binary directory.

With this commit, generated protobufe files are inside a directory
dedicated to caffeproto target (external/caffeproto).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Add ReLU operator (#1272)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 08:35:24 +0000 (17:35 +0900)]
[coco] Add ReLU operator (#1272)

This commit introduces ReLU op class which denotes a ReLU op in coco IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Deliver Conv2D padding values via IR (#1271)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 08:33:39 +0000 (17:33 +0900)]
[enco.caffe] Deliver Conv2D padding values via IR (#1271)

With this commit, enco Caffe frontend now sets Conv2D padding values
correctly in IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.core] Use DefaultVisitor (#1269)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 06:28:35 +0000 (15:28 +0900)]
[enco.core] Use DefaultVisitor (#1269)

The use of Op::Visitor and Instr::Visitor in enco.core enforces us to
update enco whenever a new operator is introduced to coco IR.

To decouple changes on enco from thone on coco, this commit revises
enco core library to use DefaultVisitor instead of Visitor.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Read pad from ConvolutionParameter (#1268)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 06:24:30 +0000 (15:24 +0900)]
[enco] Read pad from ConvolutionParameter (#1268)

* [enco] Read pad from ConvolutionParameter

This commit revises ConvolutionSpec to read pad values from
ConvolutionParameter.

Note that 'pad_h' and 'pad_w' parameters are not supported, yet.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Fix typos (stride_h -> pad_h, stride_w -> pad_w)

5 years ago[enco] Set Conv2D padding for ANN Subnet (#1264)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 04:20:43 +0000 (13:20 +0900)]
[enco] Set Conv2D padding for ANN Subnet (#1264)

The current implementation assumes that padding is always 0. With this commit,
enco now sets Conv2D padding based on padding parameters that IR
provides.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add ConvolutionSpec::ifm_shape test (#1266)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 04:20:03 +0000 (13:20 +0900)]
[enco] Add ConvolutionSpec::ifm_shape test (#1266)

This commit extracts repeated tests over ifm_shape as a seperate test.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add symmetrically strided convolution test (#1265)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 04:18:44 +0000 (13:18 +0900)]
[enco] Add symmetrically strided convolution test (#1265)

This commit adds 002 testcase which tests symmetrically strided
convolution, and enables build/inference test.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[core] Remove deprecated PadInfo and StrideInfo (#1263)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 04:16:10 +0000 (13:16 +0900)]
[core] Remove deprecated PadInfo and StrideInfo (#1263)

This commit removes deprecated PadInfo and StrideInfo classes from
nncc.core.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Extract CanonicalChannelAxis (#1259)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 00:56:50 +0000 (09:56 +0900)]
[enco] Extract CanonicalChannelAxis (#1259)

This commit extracts CanonicalChannelAxis class from ConvolutionSpec to
make it reusable from outside.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco.caffe] Set Conv2D stride (#1256)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 00:52:43 +0000 (09:52 +0900)]
[enco.caffe] Set Conv2D stride (#1256)

With this commit, enco Caffe frontend now sets strides for Conv2D op
entity.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnop] Use internal PadInfo and StrideInfo (#1260)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 00:29:19 +0000 (09:29 +0900)]
[nnop] Use internal PadInfo and StrideInfo (#1260)

This commit introduces nnop-internal PadInfo and StrideInfo class, and
revises conv method to use these internal classes.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Pass strides to ANN subnet (#1257)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 31 Aug 2018 00:19:07 +0000 (09:19 +0900)]
[enco] Pass strides to ANN subnet (#1257)

This commit passes stride values (specified in Conv2D op) to android NN
sub-network via setOperandValue calls.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Adjust input size for 001 test (#1255)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 08:49:35 +0000 (17:49 +0900)]
[enco] Adjust input size for 001 test (#1255)

This commit adjusts inputs size of 001 test to reduce test time.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove duplicated includes (#1253)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 08:49:25 +0000 (17:49 +0900)]
[enco] Remove duplicated includes (#1253)

This commit removes duplicated '#include "Normalize.h"' in
Normalize.cpp.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Support stride get/set for Conv2D (#1252)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 08:49:14 +0000 (17:49 +0900)]
[coco] Support stride get/set for Conv2D (#1252)

This commit allows us to get and set stride values for Conv2D operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Convolution Shape inference with stride (#1251)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 08:33:57 +0000 (17:33 +0900)]
[enco] Convolution Shape inference with stride (#1251)

This commit revises ConvolutionSpec to infer stride values for each
spatial axis, and use these values for OFM shape inference.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Enable inference test on 001 case (#1248)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 07:00:19 +0000 (16:00 +0900)]
[enco] Enable inference test on 001 case (#1248)

This commit enables inference test on 001 (simple convolution) case.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit setInput and setOutput calls (#1246)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 06:48:36 +0000 (15:48 +0900)]
[enco] Emit setInput and setOutput calls (#1246)

With this commit, generated code will includes the call for the
following APIs (if necessary):
 - ANeuralNetworksExecution_setInput
 - ANeuralNetworksExecution_setOutput

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit ANeuralNetworksModel_finish call (#1247)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 06:48:28 +0000 (15:48 +0900)]
[enco] Emit ANeuralNetworksModel_finish call (#1247)

Now, subnet constructor includes ANeuralNetworksModel_finish call.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit identifyInputsAndOutputs call (#1244)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 05:32:19 +0000 (14:32 +0900)]
[enco] Emit identifyInputsAndOutputs call (#1244)

Generated C++ code will invoke ANeuralNetworksModel_identifyInputsAndOutputs
with this commit.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Extract Conv2D class (#1245)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 05:28:56 +0000 (14:28 +0900)]
[coco] Extract Conv2D class (#1245)

This commit extracts the declaration/implementation/test of Conv2D
class into a dedicated header/source/test file.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Identify input/output of ANN subnet (#1243)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 05:28:43 +0000 (14:28 +0900)]
[enco] Identify input/output of ANN subnet (#1243)

This commit revises Split pass to identify input/ouput of android NN
sub-network based on how block and bags are related.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Set weight (kernel/bias) data for ANN subnet (#1242)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 05:28:31 +0000 (14:28 +0900)]
[enco] Set weight (kernel/bias) data for ANN subnet (#1242)

This commit implements weight initializer for android NN subnet inside
Split pass.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit addOperation calls (#1240)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 01:52:04 +0000 (10:52 +0900)]
[enco] Emit addOperation calls (#1240)

With this commit, C++ code generated by enco includes addOperation
calls.

Note that the current implementation supports only CONV_2D operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce usage analysis helpers (#1239)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 01:43:57 +0000 (10:43 +0900)]
[enco] Introduce usage analysis helpers (#1239)

* [enco] Introduce usage analysis helpers

This commit introduces several helper functions that allows us to easily
analyze how bags and blocks are related with each other.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Add assert on blk

5 years ago[enco] Add asymmetric conv kernel shape test (#1235)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 01:27:47 +0000 (10:27 +0900)]
[enco] Add asymmetric conv kernel shape test (#1235)

This commit adds a test that checks whether ConvolutionSpec infers
the shape of kernel and OFM when kernel_size is specified for each dimension.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Support subnet in/out identification (#1234)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 30 Aug 2018 01:02:25 +0000 (10:02 +0900)]
[enco] Support subnet in/out identification (#1234)

This commit introduces identifyInputs and identifyOutputs method which
allows Backend to record android NN subnet's input and output.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoReorganize nnc project file hierarchy (#1219)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 10:15:24 +0000 (13:15 +0300)]
Reorganize nnc project file hierarchy (#1219)

* reorganize frontend part (last part)

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[enco] Emit setOperandValue calls (#1233)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 08:29:11 +0000 (17:29 +0900)]
[enco] Emit setOperandValue calls (#1233)

Generated C++ code will include setOperand (ANeuralNetworksModel_setOperandValue)
calls with this commit.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Use random weight (#1232)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 07:57:37 +0000 (16:57 +0900)]
[enco] Use random weight (#1232)

The output of current 000 test is always filled with zero as Caffe
uses 'constant:0' weight filler if weight filler is not specified.

This commit revises 001 testcase to use gaussian filler for weight.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Update test configuration correctly (#1231)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 07:57:30 +0000 (16:57 +0900)]
[enco] Update test configuration correctly (#1231)

The current implementation does not update test configuration for
inference tests.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Create and start ANN exeution (#1230)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 07:13:18 +0000 (16:13 +0900)]
[enco] Create and start ANN exeution (#1230)

With this commit, enco now emits ANeuralNetworksExecution_create and
ANeuralNetworksExecution_startCompute calls.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit addOperand calls (#1228)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 06:10:21 +0000 (15:10 +0900)]
[enco] Emit addOperand calls (#1228)

* [enco] Emit addOperand calls

Now, the constructor of Subnet class includes addOperand calls in it.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Use scalar/tensor instead of info

5 years ago[enco] Introduce setOperand for non-scalar values (#1229)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 06:09:21 +0000 (15:09 +0900)]
[enco] Introduce setOperand for non-scalar values (#1229)

This commit introduces overloaded setOperand method which takes non-scalar
(array) values.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Record ANN input/output opreands (#1227)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 04:30:11 +0000 (13:30 +0900)]
[enco] Record ANN input/output opreands (#1227)

This commit extends ann::Module class with input and output methods
which records the input and output operands of android NN model.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit fields in Subnet classes (#1224)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 03:04:43 +0000 (12:04 +0900)]
[enco] Emit fields in Subnet classes (#1224)

* [enco] Emit fields in Subnet classes

This commit revises SubnetStructBuilder to emit mandatory fields and
relevant constructor/destructor code.

Note that model construction is not yet supported.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Fix a typo (Retun -> Return)

5 years ago[enco] Declare subnet field (#1226)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 03:02:46 +0000 (12:02 +0900)]
[enco] Declare subnet field (#1226)

Now, Network struct has a dedicated field for each subnet.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove redundant host memory allocation (#1225)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 02:58:43 +0000 (11:58 +0900)]
[enco] Remove redundant host memory allocation (#1225)

This commit removes redundant host momory allocation introduced by
mistake.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Add convolution test (#1223)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 02:33:12 +0000 (11:33 +0900)]
[enco] Add convolution test (#1223)

This commit adds a simple caffe model with one convolution layer as a
testcase.

Note that inference test is not yet enabled.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Append missing semicolon (#1222)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 02:10:31 +0000 (11:10 +0900)]
[enco] Append missing semicolon (#1222)

The current implementation emits assert call without semicolon.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce build test (#1221)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 29 Aug 2018 02:02:50 +0000 (11:02 +0900)]
[enco] Introduce build test (#1221)

The current enco test framework supports only inference test based on
nnkit, and thus cannot be used in the middle of development.

This commit allows us to test whether enco generates a valid source code.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce SubnetBlockCompiler template (#1213)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 23:52:12 +0000 (08:52 +0900)]
[enco] Introduce SubnetBlockCompiler template (#1213)

This commit introduces SubnetBlockCompiler which will generate the code
that invokes Android NN network inference.

Note that the current implementation simply generates some assert code.

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