platform/core/ml/nnfw.git
6 years ago[enco] Emit Bag's initial data as global data (#1940)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 23 Oct 2018 01:57:39 +0000 (10:57 +0900)]
[enco] Emit Bag's initial data as global data (#1940)

With this commit, global data that global data generation pass emits
includes bag's weight values (in addition to weight values for ANN
operands).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Use valid bag size during DataLayoutConversion (#1933)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 23 Oct 2018 00:58:49 +0000 (09:58 +0900)]
[enco] Use valid bag size during DataLayoutConversion (#1933)

* [enco] Use valid bag size during DataLayoutConversion

The current implementation of "clone_feature" in data layout conversion
pass creates a new bag whose size is same as the size of a corresponding
bag.

However, this implementation may result in invalid bag mapping, especially
when the corresponding bag uses broadcasting layout (i.e. there are multiple
feature indices that map to one element in a bag).

This commit revises this buggy implementation of "clone_feature".

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Do NOT declare unused oldbag variable

6 years ago[coco] Bag-level weight allocation (#1932)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 23 Oct 2018 00:46:44 +0000 (09:46 +0900)]
[coco] Bag-level weight allocation (#1932)

This commit introduces a new allocate API in PlainWieghtContext<T> which
allows users to allocate a weight for each bag.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoFix build (#1937)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Mon, 22 Oct 2018 18:19:47 +0000 (21:19 +0300)]
Fix build (#1937)

Fix visitor in ACL soft backend which diverged with trunk version
Fix code style in IVisitor

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
6 years agoAcl backend add softmax and convolution (#1907)
Тимур Отеллович Аблязимов/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Mon, 22 Oct 2018 17:48:28 +0000 (20:48 +0300)]
Acl backend add softmax and convolution (#1907)

These operations run in the inference sequence

Signed-off-by: Timur Ablyazimov <t.ablyazimov@samsung.com>
6 years ago[caffegen] Fix typos in MergeCommand.h (#1916)
남궁석/동작제어Lab(SR)/Engineer/삼성전자 [Mon, 22 Oct 2018 10:30:48 +0000 (19:30 +0900)]
[caffegen] Fix typos in MergeCommand.h (#1916)

This commit will fix trivial typos in `MergeCommand.h`

Signed-off-by: Seok NamKoong <sk.namkoong@samsung.com>
6 years agoAdd format.patch to gitignore (#1927)
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Mon, 22 Oct 2018 07:38:23 +0000 (16:38 +0900)]
Add format.patch to gitignore (#1927)

* Add format.patch to gitignore

This will all format.patch file to gitignore to ignore temporary file of format checker

Signed-off-by: SaeHie Park <saehie.park@samsung.com>
* add /

6 years ago[coco] Channel-wise, Channel-major Feature Layout (#1924)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 22 Oct 2018 07:01:54 +0000 (16:01 +0900)]
[coco] Channel-wise, Channel-major Feature Layout (#1924)

* [coco] Channel-wise, Channel-major Feature Layout

This commit introduces BC feature layout which allows users to express
channel-wise, channel-major element layout without performance overhead.

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

6 years ago[caffegen] Introduce README for caffegen (#1915)
남궁석/동작제어Lab(SR)/Engineer/삼성전자 [Mon, 22 Oct 2018 06:15:07 +0000 (15:15 +0900)]
[caffegen] Introduce README for caffegen (#1915)

This commit introduce README for caffegen

Signed-off-by: Seok NamKoong <sk.namkoong@samsung.com>
6 years ago[enco] Initial directory and cmake for tflite frontend (#1919)
윤현식/동작제어Lab(SR)/Principal Engineer/삼성전자 [Mon, 22 Oct 2018 06:00:49 +0000 (15:00 +0900)]
[enco] Initial directory and cmake for tflite frontend (#1919)

* [enco] Initial direcoty for tflite frontend

This commit introduce directory and initial cmake file for enco tflite frontend

Signed-off-by: Hyun Sik Yoon <hyunsik.yoon@samsung.com>
* [enco] Fix for PR #1919

- find_package->find_nncc_package
- use of std::runtime_error instead of assert for not-yet-implemented code

Signed-off-by: Hyun Sik Yoon <hyunsik.yoon@samsung.com>
6 years agotflchef: TensorFlow Lite model generator (#1896)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 22 Oct 2018 01:15:23 +0000 (10:15 +0900)]
tflchef: TensorFlow Lite model generator (#1896)

* tflchef: TensorFlow Lite model generator

This commit includes the initial version of (random) tensorflow lite
model generator (tflchef) with the following features:

* Buffer (= Tensor with initial value) Generation
  - Float32 Buffer filled with constant value
* Operation Generation
  - Conv2D operation

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd else and catch Coding style rule (#1868)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Fri, 19 Oct 2018 16:34:08 +0000 (19:34 +0300)]
Add else and catch Coding style rule (#1868)

Specify position of else and catch words in code

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
6 years agoSupport depthwise layer in caffe (#1893)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Fri, 19 Oct 2018 12:43:55 +0000 (15:43 +0300)]
Support depthwise layer in caffe (#1893)

Import special case of grouped convolution as depthwise operaion

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
6 years ago[nnc] Add ability to get inputs/outputs from model graph (#1905)
Vladimir Plazun/AI Tools Lab /SRR/Engineer/삼성전자 [Fri, 19 Oct 2018 12:31:23 +0000 (15:31 +0300)]
[nnc] Add ability to get inputs/outputs from model graph (#1905)

This commits adds collectInputs/collectOutputs methods to graph
Add _lastNodeId field to separate node indexing from nodes list size
Fix code style

Signed-off-by: Vladimir Plazun <v.plazun@partner.samsung.com>
6 years ago[nnc] Support for Deconvolution and Elu (#1765)
Андрей Шедько/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Thu, 18 Oct 2018 13:36:01 +0000 (16:36 +0300)]
[nnc] Support for Deconvolution and Elu (#1765)

Defined Deconvolution and Elu OPs.

Added support for Deconvolution and Elu in:
* modelIR Visitors
* Interpreter backend

Signed-off-by: Andrei Shedko <a.shedko@partner.samsung.com>
6 years agoAcl backend refine dom (#1745)
Тимур Отеллович Аблязимов/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Thu, 18 Oct 2018 13:29:01 +0000 (16:29 +0300)]
Acl backend refine dom (#1745)

Adding an operation generator using the ACL DOM.

A new IR visitor has been added, which should generate the model operations representations using the ACL DOM.

Signed-off-by: Timur Ablyazimov <t.ablyazimov@samsung.com>
6 years ago[nnc] Tanh and elementwise (#1856)
Андрей Шедько/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Thu, 18 Oct 2018 12:57:37 +0000 (15:57 +0300)]
[nnc] Tanh and elementwise (#1856)

Add TanhOP

This adds Tanh activation function to the interpreter and visitors

Signed-off-by: Andrei Shedko <a.shedko@partner.samsung.com>
6 years ago[coco] Build as a shared library (#1899)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 18 Oct 2018 09:37:26 +0000 (18:37 +0900)]
[coco] Build as a shared library (#1899)

Frontend/backend based on coco will share core/generic libraries,
and thus static linking leads to one definition rule (ODR) violation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Add caffe 018 test (#1897)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 18 Oct 2018 07:17:55 +0000 (16:17 +0900)]
[enco] Add caffe 018 test (#1897)

This commit introduces caffe 018 test which includes a single
element-wise multiplication layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Use C++ standard iostream for in/out (#1881)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 18 Oct 2018 02:40:34 +0000 (11:40 +0900)]
[caffegen] Use C++ standard iostream for in/out (#1881)

This commit rewrites I/O routines in caffegen to use C++ standard
iostream to avoid possible portability issues.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoGenerate protobuf code upon schema change (#1890)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 17 Oct 2018 23:58:11 +0000 (08:58 +0900)]
Generate protobuf code upon schema change (#1890)

The current implementation of Protobuf_Generate does not refresh
the header and source files even though there is a change in protobuf
specification.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco.caffe] Support Eltwise Prod Layer (#1884)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 17 Oct 2018 23:52:18 +0000 (08:52 +0900)]
[enco.caffe] Support Eltwise Prod Layer (#1884)

* [enco.caffe] Support Eltwise Prod Layer

With this commit, enco caffe frontend is now able to build coco IR even
in the presence of a Eltwise Prod layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Use mul instead of add

6 years ago[coco] Remove unnecessary indentation (#1889)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 17 Oct 2018 06:50:07 +0000 (15:50 +0900)]
[coco] Remove unnecessary indentation (#1889)

This commit removes unnecessary indentation which is left to reduce code
changes during refactoring.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Use -pthread (#1888)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 17 Oct 2018 06:49:18 +0000 (15:49 +0900)]
[nnkit] Use -pthread (#1888)

* [nnkit] Use -pthread

This commit updates CMakeLists.txt to prefer -pthread (which affects
both compilation and linking) to -lpthread (which affects only linking)

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

6 years ago[coco] Rename local variables in Def test (#1887)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 17 Oct 2018 05:18:12 +0000 (14:18 +0900)]
[coco] Rename local variables in Def test (#1887)

Def test current includes several local variables whose name is
counter-intuitive.

This commit renames these variables in order to make it easy to
understand the test.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Build ANN Mul operation from coco IR (#1877)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 17 Oct 2018 00:39:44 +0000 (09:39 +0900)]
[enco] Build ANN Mul operation from coco IR (#1877)

With this commit, enco NNAPI backend is now able to build ANN Mul
operation from coco IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnc] Fix core CMakeLists (#1883)
Denis Maksimenko/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Tue, 16 Oct 2018 10:59:24 +0000 (13:59 +0300)]
[nnc] Fix core CMakeLists (#1883)

This commit should fix errors when building nnc_core without protobuf.

Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>
6 years ago[enco.caffe] Construct coco IR with reducer (#1876)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 09:38:52 +0000 (18:38 +0900)]
[enco.caffe] Construct coco IR with reducer (#1876)

This commit revises coco IR build routine for Eltwise layer to be
extensible (in terms of supported operation).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Rename ::mock::Def (#1878)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 07:22:01 +0000 (16:22 +0900)]
[coco] Rename ::mock::Def (#1878)

::mock::Def inherits coco::Producer (not coco::Def).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Remove ID from ANNBinder (#1882)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 07:10:46 +0000 (16:10 +0900)]
[enco] Remove ID from ANNBinder (#1882)

There is no code (except its testcase) that uses ID assigned to each
ANNBinder.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nnkit] Link thread libraries (#1880)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 07:10:32 +0000 (16:10 +0900)]
[nnkit] Link thread libraries (#1880)

This commit links thread libraries to nnkit_support_backend to properly
support multi-threaded backends (such as a backend based on ARMCompute NEON).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Support elementwise multiplication (#1875)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 02:02:48 +0000 (11:02 +0900)]
[coco] Support elementwise multiplication (#1875)

With this commit, coco IR is now able to express elementwise
multiplication.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Extend ANN IR with Mul op (#1874)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 02:02:35 +0000 (11:02 +0900)]
[enco] Extend ANN IR with Mul op (#1874)

With this commit, users are allowed to create ANEURALNETWORKS_MUL op
on top of ANN IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco.generic] Add license notice (#1838)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 01:43:51 +0000 (10:43 +0900)]
[coco.generic] Add license notice (#1838)

This commit appends license notice for the sources and headers of
coco generic.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Introduce BinaryOp trait (#1873)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 01:35:52 +0000 (10:35 +0900)]
[coco] Introduce BinaryOp trait (#1873)

This commit extracts BinaryOp trait from Add, and simplifies the
declaration and implementation of Add class using this BinaryOp trait.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[refNN] Import Element-wise Mul operator (#1872)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 01:20:40 +0000 (10:20 +0900)]
[refNN] Import Element-wise Mul operator (#1872)

This commit imports the implementation of ANEURALNETWORKS_MUL operator
from reference android NN runtime.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Fix iterate_constant_block test (#1871)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 16 Oct 2018 00:37:50 +0000 (09:37 +0900)]
[coco] Fix iterate_constant_block test (#1871)

The name of iterate_constant_block test implies that this test SHOULD
iterate instructions in a constant block, but the current implementation
does not do that.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoFixed caffe PassException what method, minor fixes (#1867)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Mon, 15 Oct 2018 19:01:38 +0000 (22:01 +0300)]
Fixed caffe PassException what method, minor fixes (#1867)

* Fixed caffe PassException method
* Fixed sasha.caffemodel
* Made caffe op-checker methods non static

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years ago[nnc] Eliminated visitors from caffe frontend (#1788)
Ivan Vagin/AI Tools Lab /SRR/Engineer/삼성전자 [Mon, 15 Oct 2018 17:12:17 +0000 (20:12 +0300)]
[nnc] Eliminated visitors from caffe frontend (#1788)

* Replace visitors with iterators in caffe frontend
* Collect unsupported layers
* Fix coding style
* Remove dump visitor utils

Signed-off-by: Ivan Vagin <ivan.vagin@samsung.com>
6 years agoRefactor PassException and DriverException classes (#1843)
Сергей Баранников/AI Tools Lab /SRR/Engineer/삼성전자 [Mon, 15 Oct 2018 16:15:05 +0000 (19:15 +0300)]
Refactor PassException and DriverException classes (#1843)

* derive DriverException from std::exception
* replace methods `reason` with `what`
* add unnamed namespace in unit test for PassException
* refactor according to coding style

Signed-off-by: Sergei Barannikov <s.barannikov@samsung.com>
6 years agoDelete nodes allocated in unit test. (#1855)
Denis Maksimenko/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Mon, 15 Oct 2018 10:38:56 +0000 (13:38 +0300)]
Delete nodes allocated in unit test. (#1855)

These nodes caused memory leaks detected by ASan and valgrind.

Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>
6 years ago[enco] Introduce residual test (#1863)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 09:32:39 +0000 (18:32 +0900)]
[enco] Introduce residual test (#1863)

This commit introduces 'residual' test which includes a part of ResNet.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce 017 test (#1862)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 07:57:45 +0000 (16:57 +0900)]
[enco] Introduce 017 test (#1862)

This commit introduces caffe 017 test which includes one element-wise
add layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco.caffe] Build coco IR from Eltwise Sum layer (#1861)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 07:33:14 +0000 (16:33 +0900)]
[enco.caffe] Build coco IR from Eltwise Sum layer (#1861)

With this commit, enco caffe frontend is now able to build coco IR from
Eltwise Sum layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Construct ANN Add op from coco IR (#1860)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 06:40:50 +0000 (15:40 +0900)]
[enco] Construct ANN Add op from coco IR (#1860)

This commit extends Split pass to construct an ANN "Add" op from a
"Eval" instruction with a Add operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Support ANEURALNETWORKS_ADD in ANN IR (#1859)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 03:08:02 +0000 (12:08 +0900)]
[enco] Support ANEURALNETWORKS_ADD in ANN IR (#1859)

This commit extends ANN IR to support ANEURALNETWORKS_ADD operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Use Conv2D kernel data without modification (#1858)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 02:22:58 +0000 (11:22 +0900)]
[enco] Use Conv2D kernel data without modification (#1858)

This commit revises Split pass to use Conv2D kernel data that coco::Data
provides without modification (to reduce peak memory consumption).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Generate ANN Opcode from def (#1857)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 15 Oct 2018 02:22:46 +0000 (11:22 +0900)]
[enco] Generate ANN Opcode from def (#1857)

This commit introduces Operation.def which enumerates Android NN operation
supported in ANN IR, and rewrites ann::IR::Operation:::Code declaration
using Operation.def

Besides, OperationDecl::opcode method is now generated from this def
file with this commit.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Introduce UnaryOp trait (#1853)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 07:56:19 +0000 (16:56 +0900)]
[coco] Introduce UnaryOp trait (#1853)

This commit introduces UnaryOp traits, and simplifies the implementation
and declaration of several existing operation classes, such as ReLU and
PadF.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Add file comment on Op.h (#1852)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 07:56:02 +0000 (16:56 +0900)]
[coco] Add file comment on Op.h (#1852)

This commit add file-level comment on Op.h.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Remove unused FeatureInstr (#1851)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 07:55:52 +0000 (16:55 +0900)]
[coco] Remove unused FeatureInstr (#1851)

This commit removes codes related with FeatureInstr from coco.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Introduce Add Op (#1850)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 07:46:50 +0000 (16:46 +0900)]
[coco] Introduce Add Op (#1850)

This commit extends coco IR with element-wise Add operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Introduce Ops.h (#1849)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 03:50:17 +0000 (12:50 +0900)]
[coco] Introduce Ops.h (#1849)

This commit introduces Ops.h which includes all Op class declarations.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Introduce factory method for GenericKernelLayout (#1848)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 01:59:34 +0000 (10:59 +0900)]
[coco] Introduce factory method for GenericKernelLayout (#1848)

This commit introduces factory method (create) for GenericKernelLayout,
and enforces users to construct it only via factory method.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Introduces Instrs.h (#1847)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 01:53:16 +0000 (10:53 +0900)]
[coco] Introduces Instrs.h (#1847)

This commit introduces Instrs.h which includes all of instruction
classes in coco IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Enforce NHWC layout for Conv2D kernels (#1846)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 01:37:47 +0000 (10:37 +0900)]
[enco] Enforce NHWC layout for Conv2D kernels (#1846)

With this commit, Data Layout Conversion pass enforces each Conv2D op
uses a kernel of NHWC layout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco.generic] Support raw-data access (#1839)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 00:37:26 +0000 (09:37 +0900)]
[coco.generic] Support raw-data access (#1839)

* [coco.generic] Support raw-data access

This commit introduces weight method in PlainWeightContext which supports
raw-data access.

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

6 years ago[coco] Generate Instr create methods from list (#1841)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 00:37:13 +0000 (09:37 +0900)]
[coco] Generate Instr create methods from list (#1841)

With this commit, create methods in InstrManager are generated from
Instr.lst.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] AvgPoolLowering as a function (#1840)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 00:37:01 +0000 (09:37 +0900)]
[enco] AvgPoolLowering as a function (#1840)

This commit rewrites AvgPoolLowering as a function for consistency.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Remove ObjectList.h (#1837)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 12 Oct 2018 00:24:36 +0000 (09:24 +0900)]
[coco] Remove ObjectList.h (#1837)

There is no code that includes this header.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Remove deprecated UnitF (#1835)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 07:43:41 +0000 (16:43 +0900)]
[coco] Remove deprecated UnitF (#1835)

This commit removes deprecated UnitF instruction from coco IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Remove UnitF reference (#1834)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 07:05:51 +0000 (16:05 +0900)]
[enco] Remove UnitF reference (#1834)

As the first step to deprecate UnitF in coco IR, this commit removes all
the reference of UnitF from NNAPI backend.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco.caffe] Emit Eval upon Pooling layers (#1833)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 05:51:38 +0000 (14:51 +0900)]
[enco.caffe] Emit Eval upon Pooling layers (#1833)

With this commit, enco caffe frontend now emits Eval instruction for
Pooling layers.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Build ANN IR from Pooling Op in Eval (#1831)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 05:31:12 +0000 (14:31 +0900)]
[enco] Build ANN IR from Pooling Op in Eval (#1831)

* [enco] Build ANN IR from Pooling Op in Eval

With this commit, ANNOpBuilder is now able to build ANN IR from Pooling
Op inside Eval instruction.

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

6 years ago[enco.caffe] Emit Eval instruction for ReLU (#1832)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 05:28:04 +0000 (14:28 +0900)]
[enco.caffe] Emit Eval instruction for ReLU (#1832)

With this commit, caffe frontend now emits Eval instruction (instead of
UnitF) for ReLU layers.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Lower AvgPool2D op in Eval instruction (#1830)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 05:12:27 +0000 (14:12 +0900)]
[enco] Lower AvgPool2D op in Eval instruction (#1830)

This commit extends AvgPool lowering pass to lower AvgPool2D op even
when it resides in Eval instruction.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Generate Pad Op tree for AvgPool lowering (#1829)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 04:56:25 +0000 (13:56 +0900)]
[enco] Generate Pad Op tree for AvgPool lowering (#1829)

This commit revises AvgPool lowering pass to generate Eval instruction
with Pad Op tree (instead of UnitF).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoRelocate nnkit backends for nnsuite conv model (#1828)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 04:48:54 +0000 (13:48 +0900)]
Relocate nnkit backends for nnsuite conv model (#1828)

Now, the implementation of nnkit backends for nnsuite
conv model lives in nnsuite directory (not in nnkit directory).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Build ANN IR from PadF Op tree (#1827)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 04:44:24 +0000 (13:44 +0900)]
[enco] Build ANN IR from PadF Op tree (#1827)

With this commit, ANNOpBuilder is now able to build ANN IR from PadF Op
tree.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco.generic] Support weight data release (#1826)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 03:59:43 +0000 (12:59 +0900)]
[coco.generic] Support weight data release (#1826)

This commit introduces 'release' method which allows users to
deallocated a memory chunk for weight data.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce PadInstrBuilder (#1825)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 03:59:29 +0000 (12:59 +0900)]
[enco] Introduce PadInstrBuilder (#1825)

This commit extracts PadF instruction generation routine as
PadInstrBuilder class, and simplifies AvgPoolRewritePass using it.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNPadFAppender (#1824)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 03:54:29 +0000 (12:54 +0900)]
[enco] Introduce ANNPadFAppender (#1824)

This commit extracts Pad Op generation code as ANNPadFAppender.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Remove deprecated DefaultVisitor and DefaultMutator (#1821)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 01:31:18 +0000 (10:31 +0900)]
[coco] Remove deprecated DefaultVisitor and DefaultMutator (#1821)

This commit removes derprecated DefaultVsitor and DefaultMutator for
Instr.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNAvgPool2DAppender (#1820)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 01:12:56 +0000 (10:12 +0900)]
[enco] Introduce ANNAvgPool2DAppender (#1820)

This commit extracts AvgPool2D Op generation code as
ANNAvgPool2DAppender.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNMaxPool2DAppender (#1818)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:44:04 +0000 (09:44 +0900)]
[enco] Introduce ANNMaxPool2DAppender (#1818)

This commit extracts MaxPool2D Op generation code as
ANNMaxPool2DAppender.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] PadF as a Op tree node (#1817)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:43:54 +0000 (09:43 +0900)]
[coco] PadF as a Op tree node (#1817)

With this commit, PadF may serve as a node of Op tree.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] AvgPool2D as a Op tree node (#1816)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:43:44 +0000 (09:43 +0900)]
[coco] AvgPool2D as a Op tree node (#1816)

With this commit, AvgPool2D may serve as a node of Op tree.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco.generic] Introduce allocated method (#1815)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:42:16 +0000 (09:42 +0900)]
[coco.generic] Introduce allocated method (#1815)

This commit introduces Data::allocated method which allows users to
check whether a bag has a corresponding weight.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Remove unused BlobID (#1814)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:39:33 +0000 (09:39 +0900)]
[coco] Remove unused BlobID (#1814)

BlobID has no referenced in coco IR codebase.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Compile ReLU op in Eval instruction (#1813)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:38:32 +0000 (09:38 +0900)]
[enco] Compile ReLU op in Eval instruction (#1813)

With this commit, ANNOpBuild is now able to compile a simple ReLU op in
Eval instruction.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] MaxPool2D Op Tree (#1812)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 11 Oct 2018 00:37:31 +0000 (09:37 +0900)]
[coco] MaxPool2D Op Tree (#1812)

With this commit, MaxPool2D may serve as a node of Op tree.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Do NOT use deprecated Instr::DefaultVisitor (#1811)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 10:20:10 +0000 (19:20 +0900)]
[enco] Do NOT use deprecated Instr::DefaultVisitor (#1811)

This commit removes all the use of deprecated Instr::DefaultVisitor
inside enco NNAPI backend.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco.generic] Manage Bag-to-Data link in BlobContext (#1806)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 10:17:44 +0000 (19:17 +0900)]
[coco.generic] Manage Bag-to-Data link in BlobContext (#1806)

The current implementation manages Object-to-Data link inside
PlainWeightContextImpl, which violates one of the the main concepts of
coco IR:
 - Object is just a view over Bag.

With this commit, BlobContext is now responsible for Bag-to-Data link
management, which is aligned with the concept of Bag and Object.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Rename Rewrite as AvgPoolLowering (#1809)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 10:17:33 +0000 (19:17 +0900)]
[enco] Rename Rewrite as AvgPoolLowering (#1809)

This commit renames Rewrite as AvgPoolLowering for consistency

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Return nullptr on Eval compilation failure (#1807)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 10:15:15 +0000 (19:15 +0900)]
[enco] Return nullptr on Eval compilation failure (#1807)

The return value may be undefined with the current implementation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Expose ReLU::arg methods (#1805)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 10:15:05 +0000 (19:15 +0900)]
[coco] Expose ReLU::arg methods (#1805)

Currently, arg methods in ReLU class are private.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco.generic] Honor KernelLayout (#1803)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 07:34:02 +0000 (16:34 +0900)]
[coco.generic] Honor KernelLayout (#1803)

This commit revises kernel reader/accessor that coco::Data generates to
honor the layout of a given kernel object.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNReLUAppender (#1802)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 07:20:35 +0000 (16:20 +0900)]
[enco] Introduce ANNReLUAppender (#1802)

As the first step to compile ReLU inside Eval, this commit extracts ReLU
compilation code as ANNReLUAppender which does not depend on UnitF.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco.caffe] Emit Eval on Convolution (#1800)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 06:39:40 +0000 (15:39 +0900)]
[enco.caffe] Emit Eval on Convolution (#1800)

With this commit, Caffe frontend now emits Eval instruction (instead of
UnitF) for Convolution layers.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Tree-like ReLU op (#1801)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 06:10:25 +0000 (15:10 +0900)]
[enco] Tree-like ReLU op (#1801)

This commit rewrites ReLU class to support tree-like Op structure.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Traverse only UnitF instructions (#1799)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 05:41:38 +0000 (14:41 +0900)]
[enco] Traverse only UnitF instructions (#1799)

This commit refines the implementation of data layout conversion pass to
traverse only UnitF instructions.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Build ANN Conv2D/DepthwiseConv2D from Eval instruction (#1798)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 05:06:59 +0000 (14:06 +0900)]
[enco] Build ANN Conv2D/DepthwiseConv2D from Eval instruction (#1798)

This commit allows Split pass to build Conv2D and DepthwiseConv2D
operation from Eval instruction.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Rename Lower as CopyLowering (#1797)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 04:35:11 +0000 (13:35 +0900)]
[enco] Rename Lower as CopyLowering (#1797)

This commit renames Lower.h and Lower.cpp as CopyLowering.h
and CopyLowering.cpp, respectively.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNDepthwiseConv2DAppender (#1795)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 04:34:40 +0000 (13:34 +0900)]
[enco] Introduce ANNDepthwiseConv2DAppender (#1795)

This commit introduces ANNDepthwiseConv2DAppender which does not depend
on UnitF instruction declaration, and rewrites ANNOpBuilder to use this
new appender.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Insert Copy after Eval if necessary (#1796)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 04:05:11 +0000 (13:05 +0900)]
[enco] Insert Copy after Eval if necessary (#1796)

This commit revises data layout conversion pass to insert Copy after Eval
if necessary.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Insert Copy before Load if necessary (#1794)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 02:32:42 +0000 (11:32 +0900)]
[enco] Insert Copy before Load if necessary (#1794)

This commit rewrites Data Layout Conversion pass to insert Copy before
each Load op if necessary.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNConv2DAppender (#1793)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 02:32:31 +0000 (11:32 +0900)]
[enco] Introduce ANNConv2DAppender (#1793)

This commit introduces ANNConv2DAppender which does not depend on UnitF
instruction declaration, and rewrites ANNOpBuilder to use this new
appender.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] clone_feature as a non-class helper (#1792)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 02:11:43 +0000 (11:11 +0900)]
[enco] clone_feature as a non-class helper (#1792)

This commit extracts 'clone' method in ShuffleGen as 'clone_feature'
which is a non-class helper function.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[coco] Remove ObjectInfo.forward.h (#1791)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 02:11:33 +0000 (11:11 +0900)]
[coco] Remove ObjectInfo.forward.h (#1791)

ObjectInfo.h no longer exists, but ObjectInfo.forward.h is still in the
code tree.

This commit removes ObjectInfo.forward.h itself along with all of its
references.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[enco] Introduce ANNOpAppender interface (#1790)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 01:52:39 +0000 (10:52 +0900)]
[enco] Introduce ANNOpAppender interface (#1790)

This commit introduces ANNOpAppender interface which generalizes the
existing Appender interface (based on std::function).

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