platform/core/ml/nnfw.git
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 years ago[coco] Return correct parent for non-root nodes (#1782)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 00:50:31 +0000 (09:50 +0900)]
[coco] Return correct parent for non-root nodes (#1782)

This commit fixes the implementation of Op::parent method to return
correct parent even for non-root nodes.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Rename Normalize as DataLayoutConversion (#1783)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 00:38:39 +0000 (09:38 +0900)]
[enco] Rename Normalize as DataLayoutConversion (#1783)

This commit renames Normalize pass as DataLayoutConversion pass, and
rewrites it to expose one function similarly as other transforms.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce Op mutator interface (#1781)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Wed, 10 Oct 2018 00:37:43 +0000 (09:37 +0900)]
[coco] Introduce Op mutator interface (#1781)

This commit introduces basic boilerplates for Op mutators.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoAdd low level code style description (#1736)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 9 Oct 2018 15:06:18 +0000 (18:06 +0300)]
Add low level code style description (#1736)

Add code_style.rst document that describes C++ formatting and naming conventions

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years ago[nnc] Fix unchecked ferror on file descriptor after reading file (#1746)
Павел Ильютченко/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Tue, 9 Oct 2018 12:42:20 +0000 (15:42 +0300)]
[nnc] Fix unchecked ferror on file descriptor after reading file (#1746)

* May occur error while reading which is skipped without checking ferror

Signed-off-by: Pavel Iliutchenko <p.iliutchenk@partner.samsung.com>
5 years ago[nnc] Add default case in intepreter Pooling op (#1748)
Павел Ильютченко/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Tue, 9 Oct 2018 11:22:58 +0000 (14:22 +0300)]
[nnc] Add default case in intepreter Pooling op (#1748)

* Add default in switch case construction with enum

* Add assert statement to default condition to switch case

Signed-off-by: Pavel Iliutchenko <p.iliutchenk@partner.samsung.com>
5 years ago[nnc] Fix switch construction with default case (#1709)
Павел Ильютченко/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Tue, 9 Oct 2018 11:20:55 +0000 (14:20 +0300)]
[nnc] Fix switch construction with default case (#1709)

* add assert(false) to default case of switch statement

Signed-off-by: Pavel Iliutchenko <p.iliutchenk@partner.samsung.com>
5 years ago[nnc] Refactor nnc Shape and related classes (#1645)
Efimov Alexander/AI Tools Lab/./Samsung Electronics [Tue, 9 Oct 2018 11:15:55 +0000 (14:15 +0300)]
[nnc] Refactor nnc Shape and related classes (#1645)

Number of warnings minimized,
Replace unsigned ints with signed in Model IR
Move num_elements and AUTO_DIM into Shape class

Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
5 years ago[nnc] Add misc scripts (#1610)
Denis Maksimenko/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Tue, 9 Oct 2018 10:59:58 +0000 (13:59 +0300)]
[nnc] Add misc scripts (#1610)

Add utility scripts that we use to repository.

Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>
5 years ago[nnc] Add readme for interpreter testing system (#1157)
Dmitry Mozolev/AI Tools Lab /SRR/Engineer/삼성전자 [Tue, 9 Oct 2018 10:57:33 +0000 (13:57 +0300)]
[nnc] Add readme for interpreter testing system (#1157)

Described how to run interpreter tests and how to add
tests for new NN operations.

Signed-off-by: Dmitry Mozolev <d.mozolev@samsung.com>
5 years agoCaffe Model Maker (#1735)
Андрей Шедько/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Mon, 8 Oct 2018 17:24:14 +0000 (20:24 +0300)]
Caffe Model Maker (#1735)

This utility creates 1 or 2 layer caffe models.

Signed-off-by: Andrei Shedko <a.shedko@partner.samsung.com>
5 years ago[nnc] Refactor serialization (#1733)
Denis Maksimenko/AI Tools Lab /SRR/Assistant Engineer/삼성전자 [Mon, 8 Oct 2018 15:27:29 +0000 (18:27 +0300)]
[nnc] Refactor serialization (#1733)

This PR:
* Addresses issue #1681: de/serialization systems are changed to stare tensor data as raw bytes sequences, which reduces some amount of code now and, potentially, more later
* Changes codestyle in related files a bit to correspond with our future standarts
* Changes file structure of related files: serializer is now moved from a separate folder into modelIR folder.
* Fixes #1701

Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>
5 years ago[enco] Decouple ANN IR from enco Code (#1780)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 07:38:33 +0000 (16:38 +0900)]
[enco] Decouple ANN IR from enco Code (#1780)

With this commit, enco::Code no longer holds ANNContext. Each pass can
access ANNContext through SubnetManager.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Require Instr on Step construction (#1779)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 07:33:51 +0000 (16:33 +0900)]
[coco] Require Instr on Step construction (#1779)

This commit disables default constructor of Step, and explicitly requires
Instr on construction.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Decouple ANNContext and Code in ANNGroupBuilder (#1777)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 07:00:58 +0000 (16:00 +0900)]
[enco] Decouple ANNContext and Code in ANNGroupBuilder (#1777)

This commit revises ANNGroupBuilder to explicitly take ANNContext as a
pointer.

This change will allow users to use their own ANNContext instead of the
one embedded in enco::Code.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Eliminate unused argument of ANNOpBuilder constructor (#1775)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 05:46:46 +0000 (14:46 +0900)]
[enco] Eliminate unused argument of ANNOpBuilder constructor (#1775)

ANNOpBuilder currently takes coco::Data *, but it is not used anymore.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Simplify arguments of ANNModuleBuilder (#1776)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 05:46:30 +0000 (14:46 +0900)]
[enco] Simplify arguments of ANNModuleBuilder (#1776)

coco::Code and coco::Data are never used inside ANNModuleBuilder.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Tree-like Conv2D op (#1773)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 05:37:07 +0000 (14:37 +0900)]
[coco] Tree-like Conv2D op (#1773)

* [coco] Tree-like Conv2D op

This commit introduces 'arg' methods to Conv2D class, which allows
frontend to construct a tree-like structure with Conv2D Op.

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

5 years ago[coco] Automatically generate Op create methods (#1774)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 04:53:36 +0000 (13:53 +0900)]
[coco] Automatically generate Op create methods (#1774)

With this commit, OpManage::create<Op> method for each Op is
automatically generated from Op.lst.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce Eval instruction (#1772)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 04:50:50 +0000 (13:50 +0900)]
[coco] Introduce Eval instruction (#1772)

This commit introduces Eval instruction as a mean to integrate tree-like
Op structure into coco IR.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Remove deprecated methods from Window2D class (#1771)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 04:30:41 +0000 (13:30 +0900)]
[coco] Remove deprecated methods from Window2D class (#1771)

This commit removes deprecated methods from Window2D and updates related
tests accordingly.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Remove unnecessary indentation in Update.cpp (#1770)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 03:53:44 +0000 (12:53 +0900)]
[coco] Remove unnecessary indentation in Update.cpp (#1770)

This commit removes unnecessary indentation in Update.cpp.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce Load op (#1769)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 03:53:24 +0000 (12:53 +0900)]
[coco] Introduce Load op (#1769)

This commit introduces Load op which serves as a leaf node of tree-like
Op structure.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Remove unnecessary indentation in Use.cpp (#1768)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 02:19:18 +0000 (11:19 +0900)]
[coco] Remove unnecessary indentation in Use.cpp (#1768)

This commit removes unnecessary indentation in Use.cpp.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Allow Op to have a parent Op (#1767)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 01:54:18 +0000 (10:54 +0900)]
[coco] Allow Op to have a parent Op (#1767)

This commit allows each Op to have a parent Op as the first step to support
tree-like Op structure.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Global as local helper class (#1766)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 8 Oct 2018 00:21:25 +0000 (09:21 +0900)]
[enco] Global as local helper class (#1766)

Now, only Global Data Generation pass accesses the internal of 'Global'
class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove unused internal helpers (#1762)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 09:31:37 +0000 (18:31 +0900)]
[enco] Remove unused internal helpers (#1762)

Global.cpp includes several unused internal helpers, which was used to
construct a string value before.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Remove Op::dispose (#1761)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 09:31:28 +0000 (18:31 +0900)]
[coco] Remove Op::dispose (#1761)

'dispose' was introduced as a mean to unlink itself before
destruction as each Op implementation does not unlink itself
on destruction at that time.

Now, 'Use' and 'Step' allow every 'Op' to unlink itself on destruction,
and thus 'dispose' is no longer necessary.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Use BackendPlugin (#1759)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 08:39:28 +0000 (17:39 +0900)]
[nnkit] Use BackendPlugin (#1759)

This commit replaces BackendBinder implemented in nni with BackendPlugin
that nnkit_support_backend provides.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Introduce 'benchmark' tool (#1760)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 08:38:05 +0000 (17:38 +0900)]
[nnkit] Introduce 'benchmark' tool (#1760)

This commit introduces 'nnkit-benchmark' which measures the
performance of each backend.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Reduce host-side allocation (#1756)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 06:25:45 +0000 (15:25 +0900)]
[enco] Reduce host-side allocation (#1756)

This commit eliminates unnecessary memory allocation for host
(non-NNAPI) code.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Introduce nnkit_support_backend (#1758)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 04:24:30 +0000 (13:24 +0900)]
[nnkit] Introduce nnkit_support_backend (#1758)

This commit introduces nnkit_support_backend library. It currently provides
BackendPlugin class which makes it easy to load a backend from a shared
library (so).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Remove duplicated VectorArguments (#1757)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 04:15:20 +0000 (13:15 +0900)]
[nnkit] Remove duplicated VectorArguments (#1757)

This commit replaces VectorArguments implemented in nni with the one
that nnkit_support_cmdline provides.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Introduce nnkit_support_cmdline (#1755)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 02:01:11 +0000 (11:01 +0900)]
[nnkit] Introduce nnkit_support_cmdline (#1755)

* [nnkit] Introduce nnkit_support_cmdline

This commit introduces nnkit_support_cmdline (v0.1) which includes
VectorArguments that implements CmdlineArguments interface.

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

5 years ago'nncc_core' as a static library (#1754)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 01:08:10 +0000 (10:08 +0900)]
'nncc_core' as a static library (#1754)

This commit converts 'nncc_core' as a static library in order to
permit the use of this library without installation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago'nncc_foundation' as a static library (#1753)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 01:07:56 +0000 (10:07 +0900)]
'nncc_foundation' as a static library (#1753)

This commit converts 'nncc_fountion' as a static library in order to
permit the use of this library without installation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[nnkit] Remove unused macros (#1752)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 5 Oct 2018 01:07:47 +0000 (10:07 +0900)]
[nnkit] Remove unused macros (#1752)

'nnkit_add_action' and 'nnkit_add_backend' was introduced to support
self-registration, but the current design of nnkit no longer uses
self-registration.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit Portable ASM code (#1743)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 10:24:25 +0000 (19:24 +0900)]
[enco] Emit Portable ASM code (#1743)

GNU "an" interprtes '@' symbol as a comment symbole for some architecture,
such as ARM.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit global weight data as a binary file (#1741)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 07:00:24 +0000 (16:00 +0900)]
[enco] Emit global weight data as a binary file (#1741)

With this commit, C++ code that enco generates no longer includes an
initializer for global weight data.

Instead, enco generates .bin file, and embed this data into an
executable through corresponding asm file.

This change significantly reduces the overhead of C++ code generation
and its compilation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove unused aligned function (#1742)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 06:52:44 +0000 (15:52 +0900)]
[enco] Remove unused aligned function (#1742)

This commit removes unused aligned function implemented in
Normalize.cpp.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce KernelLayout::ID (#1740)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 05:15:32 +0000 (14:15 +0900)]
[coco] Introduce KernelLayout::ID (#1740)

This commit introduces KernelLayout::ID and extends KernelLayout
interface and its concrete implementations to return its id
in order to make it easy to distinguish each layout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Use pre-defined NCHW layout in Caffe frontend (#1737)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 03:55:02 +0000 (12:55 +0900)]
[enco] Use pre-defined NCHW layout in Caffe frontend (#1737)

This commit rewrites Caffe frontend to use pre-defined NCHW kernel layout
instead of Generic one (for performance optimization).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce NHWC kernel layout (#1738)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 03:05:25 +0000 (12:05 +0900)]
[coco] Introduce NHWC kernel layout (#1738)

This commit introduces pre-defined (optimized) implementation of NHWC
kernel layout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Introduce Global Data Generation Pass (#1739)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 02:55:23 +0000 (11:55 +0900)]
[enco] Introduce Global Data Generation Pass (#1739)

This commit extracts code related with global weight array generation,
and introduces "Global Data Generation" pass that includes the extracted code.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce create method for Generic FeatureLayout (#1731)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 01:06:40 +0000 (10:06 +0900)]
[coco] Introduce create method for Generic FeatureLayout (#1731)

For consistency, this commit introduces create method for Generic
FeatureLayout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] KernelObject with empty layout (#1730)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 01:06:16 +0000 (10:06 +0900)]
[coco] KernelObject with empty layout (#1730)

This commit allows users to construct a KernelObject with empty layout.

For that, this commit includes the following changes:
- Introduce default constructor for KernelObject class
- Specialize template-based create method in ObjectManager for coco::KernelObject

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Emit Global constant as a single array variable (#1728)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 4 Oct 2018 01:06:07 +0000 (10:06 +0900)]
[enco] Emit Global constant as a single array variable (#1728)

With this commit, C++ code that enco generates uses a single (uint8_t) array
as a storage for weight values.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce KernelLayouts module (#1729)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 10:17:45 +0000 (19:17 +0900)]
[coco] Introduce KernelLayouts module (#1729)

This commit introduces KernelLayouts module which provides a set of
pre-defined KernelLayout classes.

The initial implementation includes includes only NCHW layout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce KernelLayout interface (#1725)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 10:03:36 +0000 (19:03 +0900)]
[coco] Introduce KernelLayout interface (#1725)

This commit introduces KernelLayout interface, and rewrites KernelObject
to use this interface instead of GenericKernelLayout.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Dead Bag Elimination as an independent module (#1726)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 10:03:25 +0000 (19:03 +0900)]
[enco] Dead Bag Elimination as an independent module (#1726)

This commit introduces "DeadBagElimination" module (header and source)
which includes the declaration and implementation of 'eliminate_dead_bag'.

Previously, the declaration and implementation was in Optimizations
module.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Introduce FeatureShape alias (#1727)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 10:03:15 +0000 (19:03 +0900)]
[coco] Introduce FeatureShape alias (#1727)

This commit introduces FeatureShape type in coco (which is an alias of
nncc::core::ADT::feature::Shape) for ease of use.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years agoEliminate nested namespaces in nnc project (#1710)
Роман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 10:01:37 +0000 (13:01 +0300)]
Eliminate nested namespaces in nnc project (#1710)

* Eliminate nested namespaces in nnc project

* replace core with mir
* replace nncc with nnc
* replace clopt with cli
* eliminate namespaces:
  - contrib
  - model
  - IR
  - data
  - backend
  - soft
  - dumper
  - ADT
  - interpreter
  - frontend
  - pass
  - common
  - util
  - impl
* remove `using` directives in some headers

Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
5 years ago[coco] Use intuitive variable name in Window2D test (#1724)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 09:56:56 +0000 (18:56 +0900)]
[coco] Use intuitive variable name in Window2D test (#1724)

Window2D test currently uses a counter-intuitive name for some
variables.

This commit renames such variables.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco.generic] Remove deprecated methods (#1722)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 09:56:14 +0000 (18:56 +0900)]
[coco.generic] Remove deprecated methods (#1722)

This commit removes deprecated methods that was introduced for
Object-level data managment.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Update Global only from CppCode (#1723)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 09:26:18 +0000 (18:26 +0900)]
[enco] Update Global only from CppCode (#1723)

With this commit, Global is updated only inside CppCode.
 - SubnetStructBuilder no longer updates Global.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Replace link with allocate (#1721)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 07:01:40 +0000 (16:01 +0900)]
[enco] Replace link with allocate (#1721)

This commit replace deprecated methods such as Data::allocate and
PlainWeightContext<T>::link with PlainWeightContext<T>::allocate.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Invoke detach from each Child class (#1713)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:57:09 +0000 (13:57 +0900)]
[coco] Invoke detach from each Child class (#1713)

* [coco] Invoke detach from each Child class

The current implementation invokes 'detach' inside the destructor of Node.

Unfortunately, this may result in undefined behavior as detach may access the
internal of Child class (through leaving hook), but Child class is already
destructed.

With this commit, unlink on destruction is the responsibility of each
Child class.

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

5 years ago[enco] Get Code from Session (#1720)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:48:57 +0000 (13:48 +0900)]
[enco] Get Code from Session (#1720)

With this commit, enco Backend class no longer declares Code variable.
Instead, it accesses the Code entity through Session.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Eliminate Objects with no backing bag (#1719)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:39:08 +0000 (13:39 +0900)]
[enco] Eliminate Objects with no backing bag (#1719)

This commit allows Dead Object Elimination (DOE) pass to eliminate
objects with no backing bag (if it has no uses).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Clone Bag if possible (#1718)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:37:34 +0000 (13:37 +0900)]
[enco] Clone Bag if possible (#1718)

The current implementation of 'clone' method always tries to clone
an object along with its backing bag.

With this commit, 'clone' method clones its backing bag only when
there is a backing bag for a given object.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco.generic] Introduce allocate for KernelObject (#1715)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:35:12 +0000 (13:35 +0900)]
[coco.generic] Introduce allocate for KernelObject (#1715)

This commit introduces allocate method in PlaingWeightContext as the
first step toward Bag-level data management.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[coco] Deprecate Layout manipulation via KernelObject (#1714)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:34:42 +0000 (13:34 +0900)]
[coco] Deprecate Layout manipulation via KernelObject (#1714)

This commit removes layout manipulation methods from KernelObject.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove unused make_sequence_map (#1717)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:32:17 +0000 (13:32 +0900)]
[enco] Remove unused make_sequence_map (#1717)

make_sequence_map is no longer used as coco IR now provides InstrIndex
and BlockIndex.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
5 years ago[enco] Remove Object Hoist pass from pipeline (#1716)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 04:28:16 +0000 (13:28 +0900)]
[enco] Remove Object Hoist pass from pipeline (#1716)

Recently introduced lightweight Identical/Duplicated Object Reduction
passes replace this heavy Object Hoist pass.

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