platform/core/ml/nnfw.git
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>
5 years ago[enco] Allocate host buffers (#1212)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 23:52:00 +0000 (08:52 +0900)]
[enco] Allocate host buffers (#1212)

With this commit, generated C++ code allocate local buffers inside
Invoke method.

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

This commit revises enco to emit C++ code which includes
NeuralNetworks.h.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoMove High-Level Design Documentation to contrib/nnc (#1216)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 15:29:32 +0000 (18:29 +0300)]
Move High-Level Design Documentation to contrib/nnc (#1216)

* Move High-Level Design Document to contrib/nnc
* Move SW Requirement Specification Document to contrib/nnc
* Move all their dependencies to contrib/nnc

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoFix caffe blob import (#1211)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 28 Aug 2018 14:57:55 +0000 (17:57 +0300)]
Fix caffe blob import (#1211)

Replace copy of float into char array with float to float copy

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years agoPartial reorganize nnc file hierarchy (#1197)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 10:08:47 +0000 (13:08 +0300)]
Partial reorganize nnc file hierarchy (#1197)

* reorganize modelIR part: plugin/core/... -> core/modelIR

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[enco] Append generated block (#1208)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 09:28:25 +0000 (18:28 +0900)]
[enco] Append generated block (#1208)

The current implementation of caffe frontend generates a block, but does
not appends it to the block list.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Generate Subnet declaration (#1203)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 07:22:26 +0000 (16:22 +0900)]
[enco] Generate Subnet declaration (#1203)

This commit implements SubnetStructBuilder which generates a helper
struct for accessing android NN sub-network.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoBuild caffeproto under externals (#1207)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 07:08:43 +0000 (16:08 +0900)]
Build caffeproto under externals (#1207)

This commit revises CaffeProtoConfig.cmake to use a dedicated build directory
for libcaffeproto.so (under build/externals/caffeproto).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Initilize Conv2D kernel overlay (#1206)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 07:06:39 +0000 (16:06 +0900)]
[enco] Initilize Conv2D kernel overlay (#1206)

This commit revises caffe frontend to initialize Conv2D kernel overlay.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Build Android NN module (#1204)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 07:06:26 +0000 (16:06 +0900)]
[enco] Build Android NN module (#1204)

This commit revises SplitPass to build andoird NN module for each
compatible block in the code under compilation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoSuppress warnings by Caffe package (#1205)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 06:58:51 +0000 (15:58 +0900)]
Suppress warnings by Caffe package (#1205)

This commit revises Caffe package not to report warnings when dependent
libraries (Boost, HDF5, Atlas) are missing.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoSuppress warning during configuration (#1202)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 04:35:44 +0000 (13:35 +0900)]
Suppress warning during configuration (#1202)

The current implementation of 'CaffeProto' package shows unnecessary
warnings when libprotobuf is unavailable.

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

This commit introduces Split pass which split a sequence of instructions
into a sequence of phases.

This Split pass marks aome of phases as Andoird NN compatible if all the
op/instruction in it have a correponds Andoird NN operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Support simple convolution IR generation (#1194)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 00:57:35 +0000 (09:57 +0900)]
[enco] Support simple convolution IR generation (#1194)

With this commit, enco caffe frontend is now able to process convolution
layers that satisfy the following conditions:
- 2D convolution with no bias
- Padding is 0 for all the spatial axes
- Stride is 1 for all the spatial axes
- Dilation is 1 for all the spatial axes

Note that this commit does not pass kernel weight, yet.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce caffe-based test framework (#1189)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 28 Aug 2018 00:50:17 +0000 (09:50 +0900)]
[enco] Introduce caffe-based test framework (#1189)

This commit implementes caffe-based random test framework for enco.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoFix bug when destructor of PluginManager throws exception (#1196)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 15:26:59 +0000 (18:26 +0300)]
Fix bug when destructor of PluginManager throws exception (#1196)

* mark destructor as noexcept(false)
* write unittest to test that destructor throws exception correctly
* not to throw exception from destructor if stack is unwinding

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoFix buffer overflow bug in unit test (#1193)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 09:55:34 +0000 (12:55 +0300)]
Fix buffer overflow bug in unit test (#1193)

* add nullptr to end of argv and correct argc

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[enco] Introduce ConvolutionSpec class (#1191)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 09:51:17 +0000 (18:51 +0900)]
[enco] Introduce ConvolutionSpec class (#1191)

This commit introduces ConvolutionSpec class which allows us to infer
the shape of kernel and output feature map for a given shape of input
feature map.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce NormalizePass (#1192)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 09:36:07 +0000 (18:36 +0900)]
[enco] Introduce NormalizePass (#1192)

This commit introduces NormalizePass which inserts data reordering
(Shuffle) instructions to make each instruction/operation compatible
with Android NN API.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoPartial reorganization of project file hierarchy (#1187)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 07:44:34 +0000 (10:44 +0300)]
Partial reorganization of project file hierarchy (#1187)

* reorganize backend part: soft, interpreter
* reorganize driver and support
* create utils dir

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[coco] Set default stride as 1 (#1188)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 02:03:39 +0000 (11:03 +0900)]
[coco] Set default stride as 1 (#1188)

This commit revises Stride2D to use 1 as its default stride value.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Support Shuffle code generation (#1182)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 27 Aug 2018 02:03:27 +0000 (11:03 +0900)]
[enco] Support Shuffle code generation (#1182)

This commit implement Shuffle code generator which emits nested loops
that corresponds to a shuffle instruction.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoAdd negative axis number support in concat (#1186)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Fri, 24 Aug 2018 14:43:04 +0000 (17:43 +0300)]
Add negative axis number support in concat (#1186)

Adds support for negative axis indexing in concat operation

5 years ago[enco] Include functional in Driver (#1174)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 08:47:27 +0000 (17:47 +0900)]
[enco] Include functional in Driver (#1174)

This commit inserts '#include <functional>' at the top of Driver.cpp to
fix a build break reported by the recent C++ compiler (g++ 8.X and clang++ 7.X).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce MemoryContext class (#1180)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 07:54:13 +0000 (16:54 +0900)]
[enco] Introduce MemoryContext class (#1180)

This commit introduces MemoryContext class which manages expressions
that denote the base address and size of memory region dedicated to each
Bag.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoImport reference NN runtime (#1181)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 07:53:37 +0000 (16:53 +0900)]
Import reference NN runtime (#1181)

This commit imports reference android NN runtime implementation.

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

This commit introduces DuplicatePass which eliminates a pair of
input/ouput that share the same bag as their underlying bag.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Mangle tensor names (#1173)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 06:46:02 +0000 (15:46 +0900)]
[nnkit] Mangle tensor names (#1173)

This commit revises HDF5 export/import action to mangle tensor
names when it export into/import from a HDF5 file.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit missing return (#1178)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 02:40:02 +0000 (11:40 +0900)]
[enco] Emit missing return (#1178)

Network_input_count and Network_output_count emitted by the current
implementation does not have "return".

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit input/output metadata API (#1176)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 02:30:46 +0000 (11:30 +0900)]
[enco] Emit input/output metadata API (#1176)

With this commit, enco now emits the implementation of input/ouput
metadata API.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoIntroduce EXCLUDE option to add_subdirectories (#1156)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 01:29:48 +0000 (10:29 +0900)]
Introduce EXCLUDE option to add_subdirectories (#1156)

Now, user can request add_subdirectories not to include some
directories.

Note that there is no change in the default behavior.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Process Input layer (#1158)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 01:12:45 +0000 (10:12 +0900)]
[enco] Process Input layer (#1158)

This commit revises enco Caffe frontend to support Input layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Check the existence of in/out bag (#1154)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 00:58:03 +0000 (09:58 +0900)]
[enco] Check the existence of in/out bag (#1154)

* [enco] Check the existence of in/out bag

The current design of enco NNAPI backend does not work if there is an
in/out bag.

This commit introduces a corresponding assert to make it easy to detect
such a case.

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

5 years ago[enco] Record Input/Output Shape metadata (#1153)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 24 Aug 2018 00:33:29 +0000 (09:33 +0900)]
[enco] Record Input/Output Shape metadata (#1153)

With this commit, generated C++ code includes the shape metadata of each
input and output.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agofix build bug: eliminate dependencies from external Shape (#1164)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 16:11:45 +0000 (19:11 +0300)]
fix build bug: eliminate dependencies from external Shape (#1164)

* remove redundant operator<<
* replace including shape headers

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoRefactor CLI options and output message (#1142)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 15:38:10 +0000 (18:38 +0300)]
Refactor CLI options and output message (#1142)

-  remove redundant option
-  correct output message in usage method

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years agoAdd .dot Model IR dumper (#1027)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 23 Aug 2018 15:32:45 +0000 (18:32 +0300)]
Add .dot Model IR dumper (#1027)

Allows to present Model IR graph as a graph in .dot format.

5 years ago[nnc] Save interpreter result (#941)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Thu, 23 Aug 2018 09:42:58 +0000 (12:42 +0300)]
[nnc] Save interpreter result (#941)

Added cli key to save interpreter result

5 years agoUpdate README.md about running nnc (#1141)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 08:58:52 +0000 (11:58 +0300)]
Update README.md about running nnc (#1141)

- update README.md
- correct overview for options
- replace tabs by spaces in option printing

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[enco] Load model from files (#1152)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 08:09:17 +0000 (17:09 +0900)]
[enco] Load model from files (#1152)

This commit revises caffe frontend to load prototxt and caffemodel from
disk.

Now users should provides these files as an argument.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Allow Input and Output to share the same bag (#1150)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 07:05:03 +0000 (16:05 +0900)]
[coco] Allow Input and Output to share the same bag (#1150)

This commit revises coco IR to allow Input and Output to share the same
backing bag.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Record input/output names (#1151)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 06:57:21 +0000 (15:57 +0900)]
[enco] Record input/output names (#1151)

With this commit, C++ code that enco generates allows users to get input/output
name via Network_input_name and Network_output_name API.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Enforce source code generation (#1149)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 04:12:21 +0000 (13:12 +0900)]
[enco] Enforce source code generation (#1149)

This commit revises enco basic(000) testcase to always generate source
code.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Implement Caffe model import helpers (#1144)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 04:05:59 +0000 (13:05 +0900)]
[enco] Implement Caffe model import helpers (#1144)

This commit implements 'from_txt' and 'from_bin' helper functions that
constructs caffe NetParameter from textual/binary input stream.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[ann] Import Android NN API header (#1147)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 03:48:57 +0000 (12:48 +0900)]
[ann] Import Android NN API header (#1147)

This commit introduces 'ann_api' target which allow clients to access Android NN API
header.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce Global vairable manager (#1140)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 01:07:26 +0000 (10:07 +0900)]
[enco] Introduce Global vairable manager (#1140)

This commit introduces Global class which allows us to declare global
variables with its initial value.

The current implemenation supports global string decleration.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce basic test (000) (#1139)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 23 Aug 2018 01:07:15 +0000 (10:07 +0900)]
[enco] Introduce basic test (000) (#1139)

This commit introduces the first enco test which enforces enco to
generates compilable C++ code (at least for empty model).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agointerpreter: add intermediate operations result getter (#1112)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 22 Aug 2018 15:41:22 +0000 (18:41 +0300)]
interpreter: add intermediate operations result getter (#1112)

implemented getting results by node names

Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
5 years agoFix axis number for nonstandart shaped tensors (#1039)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Wed, 22 Aug 2018 15:23:10 +0000 (18:23 +0300)]
Fix axis number for nonstandart shaped tensors (#1039)

Set proper axis number for softmax and reshape opeartions for tensors with non 4 dimension shapes

5 years ago[nnc] Update DepthwiseConvolution interpreter test (#1032)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Wed, 22 Aug 2018 15:21:04 +0000 (18:21 +0300)]
[nnc] Update DepthwiseConvolution interpreter test (#1032)

Follow-up to #1030, now DepthwiseConv operation is tested
with a full 4D kernel.

5 years ago[nncc.foundation] Remove unused Exception class (#1131)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 13:15:45 +0000 (22:15 +0900)]
[nncc.foundation] Remove unused Exception class (#1131)

This commit removes Exception class from nncc.foundation as there is no
code that use this class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoAdd support of negative axis in softmax (#1117)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Wed, 22 Aug 2018 13:09:17 +0000 (16:09 +0300)]
Add support of negative axis in softmax (#1117)

Use negative parameter in softmax operation to count axises from last one

5 years ago[enco] Emit Network_???_count and Network_???_bind (#1138)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 10:39:50 +0000 (19:39 +0900)]
[enco] Emit Network_???_count and Network_???_bind (#1138)

This commit revises C++ code emitter to emit the implementation of the
following functions:
 - Network_input_count
 - Network_input_bind
 - Network_output_count
 - Network_output_bind

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce Stride2D (#1137)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 10:32:32 +0000 (19:32 +0900)]
[coco] Introduce Stride2D (#1137)

This commit introduces Stirde2D class which records stride over 2D plane
(such as channels in a feature map).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Dummy Caffe Frontend implementation (#1133)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 09:36:38 +0000 (18:36 +0900)]
[enco] Dummy Caffe Frontend implementation (#1133)

This commit introduces Frontend class which inherits enco::Frontend.

In the current implementation, load method always returns empty
coco::Module and coco::Data instances.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Self-complete C++ code gen (#1134)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 08:33:15 +0000 (17:33 +0900)]
[enco] Self-complete C++ code gen (#1134)

This commit revises C++ code generator to generate self-complete C++
code, which allows us to compile generated C++ code without any
dependency.

The current implementation includes "NeuralNetworks.h" (which is not
available yet), and emits Network_output_dim implementatation that
cannot be compiled.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Record Conv2D Padding (#1135)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 08:32:53 +0000 (17:32 +0900)]
[coco] Record Conv2D Padding (#1135)

This commit revises Conv2D op to record required padding.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Caffe frontend template (#1130)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 07:16:50 +0000 (16:16 +0900)]
[enco] Caffe frontend template (#1130)

This commit creates a workspace for Caffe frontend with basic template.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Invoke backend compile method from CLI (#1126)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 07:12:51 +0000 (16:12 +0900)]
[enco] Invoke backend compile method from CLI (#1126)

This commit revises enco-cli to initiate compilation from loaded bundle
(that frontend generates).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce basic implementation of CppCode (#1128)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 07:12:35 +0000 (16:12 +0900)]
[enco] Introduce basic implementation of CppCode (#1128)

This commit introduces basic implementation of CppCode which emits the
basic template of compiled artifact.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce Backend basic implementation (#1127)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 07:09:47 +0000 (16:09 +0900)]
[enco] Introduce Backend basic implementation (#1127)

This commit introduces the basic template of enco::Backend
implementation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce reorder in Arg (#1124)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 07:05:44 +0000 (16:05 +0900)]
[coco] Introduce reorder in Arg (#1124)

This commit add reorder method to Arg to facilitate Frontend
implementation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nest] Fix conv2d example comments (#1123)
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Wed, 22 Aug 2018 07:04:13 +0000 (16:04 +0900)]
[nest] Fix conv2d example comments (#1123)

This will fix nest conv2d example comments about ifm, ker accessing.

Signed-off-by: SaeHie Park <saehie.park@samsung.com>
5 years agoImplement compiler driver and redesign plugin system (#1103)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 06:52:50 +0000 (09:52 +0300)]
Implement compiler driver and redesign plugin system (#1103)

* improve command line parser a little bit
* implement compiler driver
* redesign plugin system:
  - eliminate redundant classes
  - search plugin by predefined paths
  - adapt cmake build system: installation of targets
* Remove redundant headers
* Set plugin name dependent on OS target
* Eliminate dependencies from nncc_foundation and nncc_core libraries

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[enco] Introduce CppCode class (#1125)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 05:36:12 +0000 (14:36 +0900)]
[enco] Introduce CppCode class (#1125)

This commit introduces CppCode class which encapsulates C++ code
emitter.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce Code class (#1111)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 04:16:37 +0000 (13:16 +0900)]
[enco] Introduce Code class (#1111)

* [enco] Introduce Code class

This commit introduces Code class which is a triple of coco::Module,
coco::Data, and ANNContext; One may regard this as an extended coco IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Use enco namespace

5 years ago[pp] Remove deprecated IndentedDocumentBuilder (#1120)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 02:19:23 +0000 (11:19 +0900)]
[pp] Remove deprecated IndentedDocumentBuilder (#1120)

This commit removes deprecated IndentedDocumentBuilder from pp.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoAdd 'llvm' as external module (#1110)
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Wed, 22 Aug 2018 02:19:15 +0000 (11:19 +0900)]
Add 'llvm' as external module (#1110)

This commit adds 'llvm' as external module which provides compile/link options to use LLVM libraries.

Signed-off-by: SaeHie Park <saehie.park@samsung.com>
5 years ago[coco] Introduce Padding2D class (#1121)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 02:19:03 +0000 (11:19 +0900)]
[coco] Introduce Padding2D class (#1121)

This commit introduces Padding2D class which represents padding for
feature operations such as Conv2D.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Support Shuffle creation (#1108)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 22 Aug 2018 02:18:54 +0000 (11:18 +0900)]
[coco] Support Shuffle creation (#1108)

This commit allows InstrManager to create Shuffle instructions.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnc] tflite schema moved to separate target (#1092)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 21 Aug 2018 18:20:27 +0000 (21:20 +0300)]
[nnc] tflite schema moved  to separate target (#1092)

Moved tflite schema to separate target

5 years agoAdd stream operator for Shape (#1115)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 21 Aug 2018 18:11:43 +0000 (21:11 +0300)]
Add stream operator for Shape (#1115)

This commit adds stream operator for Shape

5 years agoAdd stream operator for Index (#1116)
Vitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 21 Aug 2018 18:10:19 +0000 (21:10 +0300)]
Add stream operator for Index (#1116)

This commit adds stream operator for Index

5 years agoMove Shape and Index classes to nnc (#1104)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 21 Aug 2018 14:09:40 +0000 (17:09 +0300)]
Move Shape and Index classes to nnc (#1104)

Move Shape, Index and all related support classes to nnc

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>