박종현/동작제어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>
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>
[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>
[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>
[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>
[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>
[nnc] Add misc scripts (#1610)
Add utility scripts that we use to repository.
Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>
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>
Caffe Model Maker (#1735)
This utility creates 1 or 2 layer caffe models.
Signed-off-by: Andrei Shedko <a.shedko@partner.samsung.com>
[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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 01:18:35 +0000 (10:18 +0900)]
[enco] Introduce DuplicatedObjectReduction (#1712)
* [enco] Introduce DuplicatedObjectReduction
This commit introduces Duplicated Object Reduction pass in enco. This
pass will replace Object Hoist pass later.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Fix a typo in comment
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 00:29:50 +0000 (09:29 +0900)]
[coco] Change Instr/Block destruction order (#1711)
This commit revises EntityManagerImpl to first destruct InstrManager and
then destruct BlockManager.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Tue, 2 Oct 2018 00:01:36 +0000 (09:01 +0900)]
[enco.nnapi] Do NOT manipulate layout through KernelObject (#1699)
This commit eliminates the use of deprecated Kernel layout manipulatoin
methods from NNAPI backend implementation.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 23:54:49 +0000 (08:54 +0900)]
[enco] Introduce Session (#1697)
* [enco] Introduce Session
This commit introduces Session-related API in enco compiler framework.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Correct return value for make_session
Add license for new files (#1698)
Add license for new files: serializer, deserializer
Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
Acl backend add dom (#1638)
* Adding the ACL C++ soft backend DOM
This commit adds two class hierarchies: one for the ACL C++ soft backend
and another for the code prodecers ("backends of the backend").
Signed-off-by: Timur Ablyazimov <t.ablyazimov@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 10:31:58 +0000 (19:31 +0900)]
[enco] Introduce IdenticalObjectReduction pass (#1694)
This commit implements Identical Object Reduction optimization as an
enco pass.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 10:27:30 +0000 (19:27 +0900)]
[enco.caffe] Do NOT manipulate Kernel Layout via Kernel Object (#1696)
This commit eliminates the use of kernel layout manipulation methods of
Kernel Object inside enco caffe frontend.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 07:52:55 +0000 (16:52 +0900)]
[enco] Introduce IndirectCopyElimination (#1692)
* [enco] Introduce IndirectCopyElimination
This commit introduces Indirect Copy Elimination pass in enco.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Add assert
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 07:40:51 +0000 (16:40 +0900)]
[enco] Introduce IR Utils (#1693)
This commit introduces IRUtils.h and IRUtils.cpp which will hold
coco IR-related utilities used in enco.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 07:19:53 +0000 (16:19 +0900)]
[enco] Introduce Dead Object Elimination (#1691)
* [enco] Introduce Dead Object Elimination
This commit introduces Dead Object Elimination (DOE) pass in enco
compilation pipeline.
DOE is a special case of Dead Bag Elimination (DBE), but inserted in
order to reduce compilation overhead.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Fix a typo (updater -> producer)
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 06:29:21 +0000 (15:29 +0900)]
[coco] Rename GenericFeatureLayout (#1689)
This commit renames GenericFeatureLayout as FeatureLayouts::Generic
for naming consistency.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 06:29:14 +0000 (15:29 +0900)]
[coco] Introduce GenericKernelLayout (#1688)
This commit introduces GenericKernelLayout class which corresponds to
GenericFeatureLayout class for feature objects.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 06:28:59 +0000 (15:28 +0900)]
[enco] Introduce FeatureUnification pass (#1687)
This commit implements FeatureUnficition pass in enco, which removes
duplicated (redundant) FeatureObject declaration.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 06:25:47 +0000 (15:25 +0900)]
[coco] Introduce Object::Kind (#1690)
This commit introduces Object::Kind enum class, which allows us to
easily distinguish the kind of each object.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 02:21:11 +0000 (11:21 +0900)]
[coco] Support Object destruction (#1685)
* [coco] Support Object destruction
This commit introduces 'destroy' method in ObjectManager, which allows
users to destruct Object(s) allocated via ObjectManager.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Fix typos
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 02:21:04 +0000 (11:21 +0900)]
[enco] Write generated code into a file (#1686)
With this commit, enco will write generated code into a file specified
by command-line argument.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 01:34:39 +0000 (10:34 +0900)]
[enco] Introduce CodeIndex (#1678)
This commit introduces CodeIndex class (which is a pair of BlockIndex
and InstrIndex). This CodeIndex allows us to decide the order between
two instructions without building a sequence map.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Mon, 1 Oct 2018 01:14:18 +0000 (10:14 +0900)]
[coco] Remove dangling info method (#1679)
Object::info has no implementation, and no code invokes this method.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
[nnc] Implement tensor deserialization (#1412)
* This PR adds Deserializer template class, specializations of which are used for deserialization in nnc.
* Serializer functions are made static because they conflict with functions with same name from deserializer as they are in the same translation unit.
Signed-off-by: Denis Maksimenko d.maksimenko@partner.samsung.com
Add licenses to code snippets (#1680)
Add proper licenses in soft backend snippet files
Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 10:32:26 +0000 (19:32 +0900)]
[coco] Assign InstrIndex for each Instr (#1673)
This commit introduces a field/method related with instruction index, and
revises the implementation of Instr to automatically update this index
per change.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 10:01:44 +0000 (19:01 +0900)]
[coco] Remove FeatureObjectInfo (#1676)
Similarly as KernelObjectInfo, FeatureObjectInfo was introduced as a
mean to avoid the use of friend declaration, but this decision is no
longer valid.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 10:01:28 +0000 (19:01 +0900)]
[coco] Remove KernelObjectInfo (#1675)
This commit removes KernelObjectInfo class. This class was introduced as
a mean to avoid the use of friend declaration, but this design is no
longer valid.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
[nnc] Add license notice (#1627)
* [nnc] Add license notice
Append license notice for all headers and sources of nnc project
Signed-off-by: Roman Rusyaev r.rusyaev@samsung.com
* add license for new files
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 08:19:48 +0000 (17:19 +0900)]
[coco] Introduce InstrIndex (#1670)
This commit introduces InstIndex class which denotes the index of each
instruction (inside a block).
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 08:19:02 +0000 (17:19 +0900)]
[enco.cli] Introduce --backend-arg option (#1672)
This commit introduces --backend-arg option which allows users to pass
arguments to backend.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 08:18:42 +0000 (17:18 +0900)]
[enco] Backend as interface (#1671)
This commit makes Backend as interface, and hides its implementation
details.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 07:16:29 +0000 (16:16 +0900)]
[enco.cli] Use make_backend (#1669)
This commit revises enco-cli to invoke make_backend helper instead of
Backend's constructor directly.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 07:03:07 +0000 (16:03 +0900)]
[coco] Construct FeatureObject empty layout (#1668)
This commit revises ObjectManager to allow users to construct FeatureObject
with empty layout.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 06:23:27 +0000 (15:23 +0900)]
[enco] Add license notice (#1662)
This commit appends license notice at the top of all the headers and
sources of enco.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 06:09:46 +0000 (15:09 +0900)]
[enco] Introduce make_backend function (#1667)
This commit introduces make_backend function which will abstract Backend
instance creation.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 02:19:58 +0000 (11:19 +0900)]
[enco] Remove unused local variable (#1665)
This commit removes unused local variable m from ShuffleGen::mutate.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 01:21:29 +0000 (10:21 +0900)]
[coco] Automatic BlockIndex update (#1656)
With this commit, each Block includes BlockIndex which will be
automatically updated upon Block link update.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Fri, 28 Sep 2018 01:21:20 +0000 (10:21 +0900)]
[enco] Remove unused code (#1663)
This commit removes unused code in Normalize.cpp which is left to
minimize code diffs.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 27 Sep 2018 23:29:10 +0000 (08:29 +0900)]
[coco] Add license notice (#1657)
This commit appends license notice for all the sources and headers of
coco IR.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
Remove third party debug functionality (#1658)
* Remove unused third party debug functionality
Signed-off-by: Roman Rusyaev <r.rusyaev@samsung.com>
박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 [Thu, 27 Sep 2018 09:55:06 +0000 (18:55 +0900)]
[coco] Introduce BlockIndex class (#1655)
This commit introduces BlockIndex class which denotes the index of a
block inside a block list.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>