Fix build bug: remove conflicting declaration (#1384)
* remove conflicting declaration in interpreter
Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
Add tracking of error code (#1067)
Return value of a functions 'fstat' and 'fseek' is not checked.
The return value may indicate error code.
Signed-off-by: y.novikov <y.novikov@partner.samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 06:43:16 +0000 (15:43 +0900)]
[coco] Introduce PadF op (#1381)
This commit introduces PadF op, and extends OpManager to support PadF
construction.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 06:43:08 +0000 (15:43 +0900)]
[enco] Add caffe 012 test (#1380)
This commit introduces caffe 012 test which includes a MAX pooling layer
with padding.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 05:37:58 +0000 (14:37 +0900)]
[enco] Correctly set ANN MaxPool2D padding (#1379)
This commit revises ANN IR builder to use padding configuration stored
in MaxPool2D op (instead of hard-coded ones)
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 05:37:46 +0000 (14:37 +0900)]
[enco] Build IR from Max pooling layer with padding (#1378)
This commit revises enco caffe frontend to update padding on MaxPool2D
op with the padding values from pooling layer specification.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 05:37:34 +0000 (14:37 +0900)]
[enco] Build ANN IR for AvgPool2D with padding (#1377)
This commit enables ANN IR build for AvgPool2D with padding.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 04:39:05 +0000 (13:39 +0900)]
[coco] Introduce padding-related members to MaxPool2D (#1376)
This commit introduces padding-related members to MaxPool2D class to
allow frontend to deliver padding information to backend.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 04:38:49 +0000 (13:38 +0900)]
[coco] Remove deprecated Shuffle::at (#1375)
This commit removes deprecated Shuffle::at method.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 04:38:36 +0000 (13:38 +0900)]
[enco] Build IR from Average Pooling layers with padding (#1373)
This commit extends enco caffe frontend to support coco IR build on
average pooling layers with padding.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 02:58:17 +0000 (11:58 +0900)]
[enco] Initial AvgPoolRewritePass implementation (#1374)
This commit introduces the initial implementation of AvgPoolRewritePass
which support only simple case (Static divisor with empty padding).
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 02:27:26 +0000 (11:27 +0900)]
[enco] Add caffe 011 test (#1350)
This commit adds caffe 011 test which includes an average pooling layer
with stride.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 02:27:08 +0000 (11:27 +0900)]
[enco] Use Shuffle::insert instead of Shuffle::at (#1372)
This commit replaces all the use of deprecated Shuffle::at with
Shuffle::insert.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:40:25 +0000 (10:40 +0900)]
[coco] Introduce Instr::dispose (#1370)
This commit intorudces dispose method to Instr class, which allows users
to request each instruction to release IR entities that it internally manages.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:32:33 +0000 (10:32 +0900)]
[coco] Introduce divisor-related members in AvgPool2D (#1371)
This commit extends AvgPool2D with divisor-related members to allow
frontend to deliver diviosr-related information to backend.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:32:21 +0000 (10:32 +0900)]
[RefNN] Import PAD op implementation (#1351)
This commit imports PAD op implementation in AOSP (with small cleanup).
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:32:09 +0000 (10:32 +0900)]
[coco] Override dispose in MaxPool2D (#1367)
This commit overrides dispose in MaxPool2D with empty body (to convert
dispose method in Op as a pure virtual method).
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:31:57 +0000 (10:31 +0900)]
[coco] Support Op destruction (#1369)
This commit introduces destroy method into OpManager class, which allows
users to destruct Op instances.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:04:52 +0000 (10:04 +0900)]
[enco] Shape inference on Pooling layers with Padding (#1354)
This commit revises PoolingSpec to infer the ouput shape of pooling
layers with padding.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 01:04:22 +0000 (10:04 +0900)]
[coco] Introduce pad in AvgPool2D (#1353)
This commit introduces padding-related members into AvgPool2D class.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 00:59:28 +0000 (09:59 +0900)]
[coco] Release kernel on Conv2D dispose (#1366)
This commit overrides dispose method for Conv2D. On dispose call, Conv2D
will release its kernel object.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 00:59:20 +0000 (09:59 +0900)]
[coco] Introduce dummy dispose to AvgPool2D (#1368)
This commit introduces dummy (empty) dispose method to AvgPool2D.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 00:52:58 +0000 (09:52 +0900)]
[coco] Introduce insert method in Shuffle (#1363)
* [coco] Introduce insert method in Shuffle
This commit introduces insert method in Shuffle instruction as the first
step toward partial shuffling support.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Update _content properly inside insert
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 00:52:42 +0000 (09:52 +0900)]
[coco] Extract UnitF to a seperate file (#1365)
This commit extracts the declaration and implementation of UnitF into a
seperate file.
Note that test code is not yet extracted.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 00:08:58 +0000 (09:08 +0900)]
[coco] Introduce Op dispose (#1364)
This commit introduces Op::dispose method which allows users to request
each operation to release resources before destruction.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 6 Sep 2018 00:02:39 +0000 (09:02 +0900)]
[enco] Fix build break on clang 7 (#1362)
This commit includes 'functional' in Frontend.cpp to fix build break on
clang 7.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
[nnc]Visitor improvement Pure Virtual Methods to Virtual (#1303)
changed visitor's methods from pure virtual to virtual
Signed-off-by: Andrei Shedko <a.shedko@partner.samsung.com>
Add absent layers for mobilenet (#1333)
Add layers in Model IR:
+ batch norm
+ scale
+ dropout
Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
Fix soft backend unittest (#1332)
Disable soft backend ASSERT_DEATH test in case of release build,
this test is not applicable for release build.
Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
Refactor soft backend (#1305)
Remove redundant soft backend classes
Move all C++ code snippets to code_snippet directory
Generate headers from snippets to generated directory
Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
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>
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>
박종현/동작제어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>
박종현/동작제어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
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
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>
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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박세희/동작제어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>
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>
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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
Remove redundant curly brace (#1282)
remove redundant curly brace when initialization of cmake variable
Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
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>
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>
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>
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>
남궁석/동작제어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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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)
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>