platform/core/ml/nnfw.git
6 years agoAdd 'Caffe' as an external module (#195)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 4 May 2018 06:00:17 +0000 (15:00 +0900)]
Add 'Caffe' as an external module (#195)

This commit adds 'Caffe' external module which builds libcaffe.so from
Caffe source (with CPU_ONLY flag).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoSW System Test Document v1.0 (#77)
Sergey Vostokov/SRR-AI Tools Lab/./삼성전자 [Fri, 4 May 2018 06:00:02 +0000 (09:00 +0300)]
SW System Test Document v1.0 (#77)

* Add initital version of Test Plan Document

This commit adds the initital version for
SW Test Plan document

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add section SW System Test Items

This commit adds the list of functions to be tested and not
to be tested

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Fix mistakes

This commit fixes some mistakes in text

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add software items to table 4-3

Add CI and VCS systems to table 4-3. Software

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add risk management plan

This commit adds the risk management plan to the section 4.3

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update risk management table

The risk "SmartMachine OS targets are not available" was added

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update formulation of the Scope section

Some changes to reflect the exact scope.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Change RST format to MD

This commit adds the same content of Test Plan, but in MD format

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update SW Test document by comments from SRR SE Team

This commit add more details in Scope, updates test items,
and test tools

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Fix format errors

Fix format errors

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Remove test item 1 and test item 2. Update numbering

This commit removes test items1/2 as they are considered as a
part of other tests

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update test tescription for test item 2/3

This commit updates the test items description for the
test item 2 and test item 3

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update SW Test Document to follow SW Requirements Specification

This commit updates test Item to follow the SW Requirements Specification
content

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add separated test items for testing of import Caffe/Caffe2

This commit adds new test items for each reqirements:
 - test import of Caffe NN model format
 - test import of Caffe2 NN model format

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update reuirements mapping for test items

This commit fixes wrong requirements mapping for test items

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Fix wrong numbering for test items

This commit fixes wrong numbering for test item and
for manual testing of functional requirement

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Remove RF-9::LLO from STD and fix typos

This commit removes test item for RF-9:LLO as it is not
presented in SRS

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update revision of STD to 1.0

This commit updates revision of SW Test Document to Rev1.0

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years ago[nncc.core] Simplify tensor tests with constructor (#194)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 4 May 2018 01:15:27 +0000 (10:15 +0900)]
[nncc.core] Simplify tensor tests with constructor (#194)

This commit simplifies tensor tests with recently introduce constructors
based on brace initialization.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'CaffeProto' as an external module (#193)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 4 May 2018 01:14:35 +0000 (10:14 +0900)]
Add 'CaffeProto' as an external module (#193)

This commit adds 'CaffeProto' external module which provides
'libcaffeproto' library. This library allows us to parse .prototxt
and .caffemodel files.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'tflitekit' (#192)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 4 May 2018 01:13:47 +0000 (10:13 +0900)]
Add 'tflitekit' (#192)

This commit adds 'tflitekit' which provides various command
related with TensorFlow Lite.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'TensorFlowLite' as an external module (#188)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 3 May 2018 05:34:03 +0000 (14:34 +0900)]
Add 'TensorFlowLite' as an external module (#188)

This commit adds 'TensorFlowLite' external module which builds a
'libtensorflowlite.a' from TensorFlow Lite source.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Initialize tensor::Index via ctor (#191)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 11:00:15 +0000 (20:00 +0900)]
[nncc.core] Initialize tensor::Index via ctor (#191)

This commit introduces a constructor for tensor::Index which takes an
initializer list as its argument.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'CaffeSource' an an external module (#190)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 10:59:59 +0000 (19:59 +0900)]
Add 'CaffeSource' an an external module (#190)

This commit adds 'CaffeSource' external module which downloads Caffe
source from the URL specified by CAFFE_URL environment variable.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Add 'Iterable' class (#189)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 10:50:38 +0000 (19:50 +0900)]
[nncc.core] Add 'Iterable' class (#189)

This commit adds 'Iterable' class which faciliates the use of
'iterate' method based on lambda.

This commit also revises 'tensor::IndexRange' class using newly
introduced 'Iterable' class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'FlatBuffer' as an external module (#186)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 01:21:08 +0000 (10:21 +0900)]
Add 'FlatBuffer' as an external module (#186)

This commit adds 'FlatBuffer' external module which compiles
libflatbuffers.a library and flatc executable from the flatbuffers
source that 'FlatBufferSource' provides.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Set tensor::Shape values via constructor (#181)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 01:15:32 +0000 (10:15 +0900)]
[nncc.core] Set tensor::Shape values via constructor (#181)

This commit introduces a constructor for tensor::Shape which takes an
initializer list as its argument.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'NEON2SSE' as an external module (#185)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 01:11:36 +0000 (10:11 +0900)]
Add 'NEON2SSE' as an external module (#185)

This commit adds 'NEON2SSE' library module (which provide a header-only
neon2sse library target using NEON2SSESource) which is necessary to
build tensorflow lite.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'GEMMLowp' as an external module (#184)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 01:11:26 +0000 (10:11 +0900)]
Add 'GEMMLowp' as an external module (#184)

This commit adds 'GEMMLowp' library module (which provide a header-only
gemmlowp libary target using GEMMLowpSource) which is necessary to build
tensorflow lite.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'Farmhash' as an external module (#183)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 01:11:16 +0000 (10:11 +0900)]
Add 'Farmhash' as an external module (#183)

This commit adds 'Farmhash' as an external module which provides
'farmhash' library target.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'Eigen' as an external module (#182)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 2 May 2018 01:11:08 +0000 (10:11 +0900)]
Add 'Eigen' as an external module (#182)

This commit adds 'Eigen' module which provides 'eigen' interface library
if it is successfully loaded.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Add 'tensor::IndexRange' (#180)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 30 Apr 2018 08:35:25 +0000 (17:35 +0900)]
[nncc.core] Add 'tensor::IndexRange' (#180)

This commit adds 'tensor::IndexRange' class which helps users to iterage
over all the index valid for a certain tensor shape.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'NEON2SSESource' as an external module (#179)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 30 Apr 2018 08:34:50 +0000 (17:34 +0900)]
Add 'NEON2SSESource' as an external module (#179)

This commit adds 'NEON2SSESource' (which is necessary to build
tensorflow lite) as an external module that nncc_find_package can load.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'GEMMLowpSource' as an external module (#178)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 30 Apr 2018 08:08:41 +0000 (17:08 +0900)]
Add 'GEMMLowpSource' as an external module (#178)

This commit adds 'GEMMLowpSource' (which is necessary to build
tensorflow lite) as an external module that nncc_find_package can load.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'FarmhashSource' as an external module (#177)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 30 Apr 2018 07:44:24 +0000 (16:44 +0900)]
Add 'FarmhashSource' as an external module (#177)

This commit adds 'FarmhashSource' (which is necessary to build
tensorflow lite) as an external module that nncc_find_package can load.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'EigenSource' as an external module (#176)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 30 Apr 2018 05:14:10 +0000 (14:14 +0900)]
Add 'EigenSource' as an external module (#176)

This commit adds 'EigenSource' (which is necessary to build tensorflow
lite) as an external module that nncc_find_package can load.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'FlatBuffersSource' as an external module (#156)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Sun, 29 Apr 2018 23:36:53 +0000 (08:36 +0900)]
Add 'FlatBuffersSource' as an external module (#156)

This commit adds 'FlatBuffersSources' as an external module used by
nncc_find_package.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'TensorFlowSource' as an external module (#155)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 06:45:26 +0000 (15:45 +0900)]
Add 'TensorFlowSource' as an external module (#155)

This commit adds 'TensorFlowSource' as an external module. Any
components in nncc are now able to download TensorFlowSource (if
DOWNLOAD_TENSORFLOW is set as true) and access it through
nncc_find_package macro.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Equality over tensor shape (#153)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 05:00:37 +0000 (14:00 +0900)]
[nncc.core] Equality over tensor shape (#153)

This commit introduces == operator between two tensor::Shape class.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoGenerage coverage report only for libs and tools (#152)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 04:25:24 +0000 (13:25 +0900)]
Generage coverage report only for libs and tools (#152)

This commit revises 'gen-coverage-report' to consider sources under libs
and tools (which nncc officially provides) when generating coverage
report.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd Protobuf as an external module (#151)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 03:48:29 +0000 (12:48 +0900)]
Add Protobuf as an external module (#151)

This commit adds Protobuf as an external module that can be checked and
imported via nncc_find_package macro.

This commit also simplifies build scripts using this external module.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoSimplify C++ standard configuration (#150)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 01:56:30 +0000 (10:56 +0900)]
Simplify C++ standard configuration (#150)

Now, CMake 3.1 is the minimum requirement for nncc, and thus workaround for
legacy CMake (based on CMAKE_CXX_FLAGS) is no longer required.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoDefine 'nncc_find_package' as macro (#149)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 01:56:19 +0000 (10:56 +0900)]
Define 'nncc_find_package' as macro (#149)

In CMake, function creates a new scope, and thus it interfers the
behavior of 'find_package' command if its wrapper ('nncc_find_package')
is implemented as a function.

This commit rewrites 'nncc_find_package' as a macro (which does not
create a new scope) to avoid scope issue, and updates existing
configurations accordingly.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'decode' command (#148)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 26 Apr 2018 00:41:48 +0000 (09:41 +0900)]
[caffegen] Add 'decode' command (#148)

This commit supports 'decode' command in caffegen tool which takes
binary caffemodel via standard input, and shows its content in text
format via standard output.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAllow users to build Google Test locally (#146)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 09:56:09 +0000 (18:56 +0900)]
Allow users to build Google Test locally (#146)

This commit revises CMake-based build scripts to allow users to build
Google Test locally by default.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUpdate Build Prerequisites (#147)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 09:31:52 +0000 (18:31 +0900)]
Update Build Prerequisites (#147)

This commit updates 'getting_started.md' to include build prerequisites
section.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Add 'ADT::tensor::Reader' class (#145)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 08:16:10 +0000 (17:16 +0900)]
[nncc.core] Add 'ADT::tensor::Reader' class (#145)

This commit adds 'ADT::tensor::Reader' class as a base class for all the
readable tensor objects.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoSet minimum required CMake version as 3.1 (#144)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 08:12:28 +0000 (17:12 +0900)]
Set minimum required CMake version as 3.1 (#144)

This commit sets minimum required CMake version as 3.1 (updated from
2.8).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoInstall CMake 3.2.2 in Docker image (#143)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 02:54:11 +0000 (11:54 +0900)]
Install CMake 3.2.2 in Docker image (#143)

This commit updates Dockerfile to install CMake 3.2.2 using PPA during
image build.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUse 'project path' as prefix in coverage report (#136)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 02:54:01 +0000 (11:54 +0900)]
Use 'project path' as prefix in coverage report (#136)

This commit revises gen-coverage-report to use NNCC project path as the
prefix for paths in coverage report.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Add 'ADT::tensor::Index' class (#135)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 01:33:17 +0000 (10:33 +0900)]
[nncc.core] Add 'ADT::tensor::Index' class (#135)

This commit adds 'tensor::Index' class which indicates the element in a
tensor.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[nncc.core] Add 'ADT::tensor::Shape' class (#134)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 01:31:54 +0000 (10:31 +0900)]
[nncc.core] Add 'ADT::tensor::Shape' class (#134)

This commit adds 'tensor::Shape' class inside nncc::core::ADT::tensor.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Take the ownership of 'NetParameter' (#126)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 01:31:40 +0000 (10:31 +0900)]
[caffegen] Take the ownership of 'NetParameter' (#126)

This commit revises 'Network' class to take the ownership of
'NetParameter' (to ensure the liveness of pointer).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Allow Command to read command-line (#125)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 25 Apr 2018 01:31:24 +0000 (10:31 +0900)]
[caffegen] Allow Command to read command-line (#125)

This commit revises 'Command' interface to take command-line arguments
from main.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce Kernel Reader interface (#122)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 23:59:26 +0000 (08:59 +0900)]
Introduce Kernel Reader interface (#122)

This commit introduces 'nncc::core::ADT::kernel::Reader' class which
serves as a base interface for accessing the content of kernel without
modification.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoRename Feature.cpp as Reader.cpp (#124)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 23:56:12 +0000 (08:56 +0900)]
Rename Feature.cpp as Reader.cpp (#124)

Feature.cpp was introduced to test the self-completeness of 'Reader.h',
but with incorrect name.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce feature::Accessor interface (#123)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 23:54:24 +0000 (08:54 +0900)]
Introduce feature::Accessor interface (#123)

This commit introduces 'nncc::core::ADT::feature::Accessor' interface
which allows users to modify the content of a feature map.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Introduce 'internal' directory (#121)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 23:53:15 +0000 (08:53 +0900)]
[caffegen] Introduce 'internal' directory (#121)

This commit introduces 'internal' directory which contains all the code
that helps users to access the internal of caffe models.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoChange permission of a command file (#115)
최형규/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 02:31:24 +0000 (11:31 +0900)]
Change permission of a command file (#115)

- Change permission of a command file

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
6 years agoIntroduce 'nncc::core::ADT::feature::Reader' interface (#118)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 02:31:12 +0000 (11:31 +0900)]
Introduce 'nncc::core::ADT::feature::Reader' interface (#118)

This commit introduces 'nncc::core::ADT::feature::Reader' interface
which allows its client to read the content of feature map.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce ENABLE_CONTRIB_BUILD option (#119)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 02:30:55 +0000 (11:30 +0900)]
Introduce ENABLE_CONTRIB_BUILD option (#119)

This commit introduces ENABLE_CONTRIB_BUILD option to allow users to
skip build on projects under contrib/.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'Getting Started' guide (#109)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 23 Apr 2018 02:30:45 +0000 (11:30 +0900)]
Add 'Getting Started' guide (#109)

* Add 'Getting Started' guide

This commit adds 'getting_started.md' which will include various guide
for newcomers although the current version provides guide on docker-based
build only.

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

* Fix other typos

* Fix a typo (environtment -> environment)

6 years agoFix GCC 4.8 build error (#108)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Sun, 22 Apr 2018 23:50:38 +0000 (08:50 +0900)]
Fix GCC 4.8 build error (#108)

* Fix GCC 4.8 build error

This commit fixes build errors on GCC 4.8 to enable build CI.

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

6 years agoUse NNCC_PROJECT_PATH as DOCKER_PATH (#110)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 20 Apr 2018 06:11:52 +0000 (15:11 +0900)]
Use NNCC_PROJECT_PATH as DOCKER_PATH (#110)

File paths used during docker are different from those in host, so
users should translate that address manually.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Support Convolution Paramater Randomize (#112)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 20 Apr 2018 05:48:06 +0000 (14:48 +0900)]
[caffegen] Support Convolution Paramater Randomize (#112)

This commit supports randomization on parameters of convolution layer.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUpdate Dockerfile (#107)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 20 Apr 2018 04:31:35 +0000 (13:31 +0900)]
Update Dockerfile (#107)

This commit updates Dockerfile to install google test (for testing),
and protocol buffer (for caffe support).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'ConvolutionLayer' (#111)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 20 Apr 2018 02:24:07 +0000 (11:24 +0900)]
[caffegen] Add 'ConvolutionLayer' (#111)

This commit adds 'ConvolutionLayer' which allows us to easily access the
internal of ConvolutionLayerParameter.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Include 'InputLayer.h' (#106)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 20 Apr 2018 01:20:58 +0000 (10:20 +0900)]
[caffegen] Include 'InputLayer.h' (#106)

LayerAnalysisPass.h uses 'InputLayer', but does not includes
'InputLayer.h'

This commit updates 'LayerAnalysisPass.h', and introduces
empty 'LayerAnalysisPass.cpp' to ensure that 'LayerAnalysisPass.h' is
self-complete.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd CI script (#31)
최형규/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 20 Apr 2018 00:22:43 +0000 (09:22 +0900)]
Add CI script (#31)

Add a command to build using docker for CI and local build

* Using docker image `nncc` as default
* Make use of NNCC_PROJECT_PATH
* Use double quotes to prevent possible issues from space
* Update comments and variable names to fit for nncc

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
6 years ago[caffegen] Introduce 'fill' command (#104)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 10:41:59 +0000 (19:41 +0900)]
[caffegen] Introduce 'fill' command (#104)

This commit implements 'fill' command. Currently, only 'Input' layer
is supported.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'NetworkBuilder' class (#103)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 10:07:01 +0000 (19:07 +0900)]
[caffegen] Add 'NetworkBuilder' class (#103)

This commit adds 'NetworkBuilder' class which reads
'caffe::NetParameter' and creates a 'Network' object.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Fix build break (#102)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 08:47:41 +0000 (17:47 +0900)]
[caffegen] Fix build break (#102)

This commit adds pure virtual methods on layer to fix build break.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'InputLayer' class (#101)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 08:36:52 +0000 (17:36 +0900)]
[caffegen] Add 'InputLayer' class (#101)

This commit introduces 'InputLayer' class which helps us to process
'Input' layer on caffe model.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'Network' class (#100)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 06:40:28 +0000 (15:40 +0900)]
[caffegen] Add 'Network' class (#100)

This commit adds 'Network' class which serves as in-memory Caffe model
representation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'BlobContext' class (#98)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 05:16:06 +0000 (14:16 +0900)]
[caffegen] Add 'BlobContext' class (#98)

This commit adds 'BlobContext' class which maintains the shape of each
blob.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'LayerContext' class (#99)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 05:15:54 +0000 (14:15 +0900)]
[caffegen] Add 'LayerContext' class (#99)

This commit adds 'LayerContext' class which maintains a sequence of
'Layer' objects.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'BlobShape' class (#96)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 04:28:09 +0000 (13:28 +0900)]
[caffegen] Add 'BlobShape' class (#96)

This commit adds 'BlobShape' class which records the dimensionality of
blobs.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add Layer-related classes (#97)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 04:27:53 +0000 (13:27 +0900)]
[caffegen] Add Layer-related classes (#97)

This commit adds the following Layer-related classes which will be extended later.
 - Layer (base class)
 - LayerAnalysisPass (for read-only passes)
 - LayerTransformPass (for read-write passes)

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Support 'encode' (#95)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 04:27:15 +0000 (13:27 +0900)]
[caffegen] Support 'encode' (#95)

This commit implements 'encode' command which allows users to convert
prototxt (text format) to caffemodel (binary format).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years ago[caffegen] Add 'Command' class (#94)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 02:05:10 +0000 (11:05 +0900)]
[caffegen] Add 'Command' class (#94)

This commit adds 'Command' class as a basic infrastructure for
caffegen.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce 'nncc_foundation' (#93)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 19 Apr 2018 02:04:28 +0000 (11:04 +0900)]
Introduce 'nncc_foundation' (#93)

This commit introduces 'nncc_foundation' library which includes
functions and classes not directly related with compiler itself, but
useful when implementing it.

The initial version includes the implementation of 'make_unique' which
makes it easy to use 'std::unique_ptr'.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce nncc_frontend_caffe_core (#87)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 18 Apr 2018 01:44:00 +0000 (10:44 +0900)]
Introduce nncc_frontend_caffe_core (#87)

This commit introduces nncc_frontend_caffe_core library which allows us
to access the content of .caffemodel and .prototxt.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoFormat check all the files under tools (#88)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 18 Apr 2018 01:43:38 +0000 (10:43 +0900)]
Format check all the files under tools (#88)

This commit sets 'tools' as a target of format check. Now, 'nncc format'
will check code style for all the header and source under '/tools'.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoCreate 'caffegen' project (#89)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 18 Apr 2018 01:40:49 +0000 (10:40 +0900)]
Create 'caffegen' project (#89)

This commit creates empty 'caffegen' project under contrib which will
provide a random caffemodel generator.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAllow configuration on directories to be format checked (#90)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 18 Apr 2018 01:39:49 +0000 (10:39 +0900)]
Allow configuration on directories to be format checked (#90)

This commit allows users to specify directories to be format checked on
'nncc format' via command-line arguments.

Running 'nncc format dir1' will check all the files under dir1 in addition
to the default files (i.e. files under directories that include .FORMATCHECKED)

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd nncc::core::ADT::kernel::Shape (#86)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 23:36:15 +0000 (08:36 +0900)]
Add nncc::core::ADT::kernel::Shape (#86)

This commit adds nncc::core::ADT::kernel::Shape class and related tests.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd nncc::core::ADT::PadInfo (#85)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 23:36:08 +0000 (08:36 +0900)]
Add nncc::core::ADT::PadInfo (#85)

This commit adds nncc::core::ADT::PadInfo class which describes padding
for convolution operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd nncc::core::ADT::StrideInfo (#84)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 23:36:00 +0000 (08:36 +0900)]
Add nncc::core::ADT::StrideInfo (#84)

This commit adds nncc::core::ADT::StrideInfo class which describes
stride parameters of convolution operation.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce CMake functions for example build (#82)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 10:52:59 +0000 (19:52 +0900)]
Introduce CMake functions for example build (#82)

This commit introduces the following CMake functions for example build:
 - add_nncc_example_executable
 - nncc_example_link_libraries

These functions allow us to easily disable examples when measuring test
coverage.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUse C++ 11 standard (#83)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 07:48:36 +0000 (16:48 +0900)]
Use C++ 11 standard (#83)

This commit sets C++ 11 as the default standard for nncc project.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoSupport test coverage measure (#80)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 03:33:44 +0000 (12:33 +0900)]
Support test coverage measure (#80)

This commit revises CMakeLists.txt to allows users to measure test
coverage, and introduces 'gen-coverage-report' command to make it
easy to generate a test coverage report.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce 'test' command (#81)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 02:22:09 +0000 (11:22 +0900)]
Introduce 'test' command (#81)

This commit introduces 'test' command for 'nncc' driver which invokes
tests managed by CMake.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd nncc::core::ADT::feature::Shape (#78)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 17 Apr 2018 01:03:02 +0000 (10:03 +0900)]
Add nncc::core::ADT::feature::Shape (#78)

This commit adds nncc::core::ADT::feature::Shape class and related
tests.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoEnable build-time test (#76)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 12 Apr 2018 23:52:40 +0000 (08:52 +0900)]
Enable build-time test (#76)

* Enable build-time test

This commit revises CMakeLists.txt to enable build-time testing based on
Google Test, introduces three helper functions for build library and tests.

With this commit, build-time test will be enabled by default only when google
test is available.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Insert 'add_test'

6 years agoAdd 'contribution guide' (#73)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 9 Apr 2018 11:02:50 +0000 (20:02 +0900)]
Add 'contribution guide' (#73)

This commit adds the first version of 'contribution guide' which
explains how to create a pull request.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoRestructure 'libs' directory (#71)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 5 Apr 2018 09:34:26 +0000 (18:34 +0900)]
Restructure 'libs' directory (#71)

This commit renames 'lib' as 'libs' to make it clear that there are
multiple libraries in this directory, and introduces directories for
frontend (caffe and tflite) implementations.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd IDEF0 A12 (Import operation) diagram (#46)
Sergey Vostokov/SRR-Platform Lab/./삼성전자 [Mon, 2 Apr 2018 21:53:00 +0000 (00:53 +0300)]
Add IDEF0 A12 (Import operation) diagram (#46)

* Add IDEF0 A12 (Import operation) diagram

Add the A12 decomposiont diagram for the Import function.
It includes 3 steps and to components (Parser&Converter)
 - parse NN container format
 - verify loaded NN model
 - convert framework specific IR to common IR

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Change input from "NN Model desctiption" to "NN Model instance"

The input "NN Model description" was changed to
"NN Model Instance" for all diagrams A0, A1, A12

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add changes to diagram A0, A1

The input ""NN Model description" was changes to
"NN Model instance" for two top-level diagrams.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update A12 (Import operation): change rule "NN Model specification"

The rule "NN container format" of function "Parse NN container" was
changed to "NN Model Specification"

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update IDEF0 A12 (Import operation)

- change 1st function name to "Parse"
- chagng 3rd function name to "Convert"
- fix enumeration errors

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update IDEF0 A0, A1

Fix rule "Specification of NN model format" to "NN Model specification"
for consistency.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoFormat check all the files under lib (#38)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 27 Mar 2018 06:32:04 +0000 (15:32 +0900)]
Format check all the files under lib (#38)

This commit sets 'lib' as a target of format check. Now, 'nncc format'
will check code style for all the header and source under lib/.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd IDEF0 A1 diagram (#44)
Sergey Vostokov/SRR-Platform Lab/./삼성전자 [Tue, 27 Mar 2018 05:37:27 +0000 (08:37 +0300)]
Add IDEF0 A1 diagram (#44)

* Add IDEF0 A1 diagram

The diagram of the first level of decomposition was made.
It includes 5 stages:
- Setup configuration
- Import NN model
- High-level optimization
- Low-Level optimization
- Code generation

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update IDEF0 A1: remove Target ISA and fix copy-paste error

High-Level optimization function doesn't reqiure anithing else but
only hogh-level optimization techniques. The rule Target ISA was
removed.

The copy-paste error was fixed "High-Level opt...> to "Low-Level..."
for block Low-Level optimization

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Change input from Setup Configuration block

The block Setup Configuration would produce the
configured session for other modules instead of just
produce parsed arguments

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Add mechanism for the block Setup configuration"

The block "Setup configuration" would be done by
Configuration system. That was missed on prev version
of diagram.

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoSkip clang-format when there is no candidates (#39)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Sun, 25 Mar 2018 23:13:47 +0000 (08:13 +0900)]
Skip clang-format when there is no candidates (#39)

The format check currently lists up all the files tracked by git as
an input for clang-format when there is no candidate.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd IDEF0 diagrams: A0 (NN model compilation) (#30)
Sergey Vostokov/SRR-Platform Lab/./삼성전자 [Thu, 22 Mar 2018 10:27:58 +0000 (13:27 +0300)]
Add IDEF0 diagrams: A0 (NN model compilation) (#30)

* Add IDEF0 diagrams: A0 (NN model compilation)

This commit adds the A0 diagram, used IDEF0 notation to describe the
first level of decomposition of nncc functionality: NN model compilation

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update IDEF0 A0

Add name of root node as A0
Fix typo TRA -> TRE

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
* Update outcome of A0 diagram to Target binaries

The main function outcome was updated as Target binaries instead of
3 types of outcomes: ARM CPU executable/ARM GPU shaders/NPU executable

Signed-off-by: Sergey Vostokov <s.vostokov@samsung.com>
6 years agoIntroduce 'tools' directory (#37)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 22 Mar 2018 10:27:32 +0000 (19:27 +0900)]
Introduce 'tools' directory (#37)

This commit introduces 'tools' directory which will host all the
official projects that emit executables.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoFix a bug in format check script (#35)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 22 Mar 2018 06:52:35 +0000 (15:52 +0900)]
Fix a bug in format check script (#35)

The format check script currently invokes clang-format only when there
is no files to track.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce 'Dockerfile' (#32)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 22 Mar 2018 06:30:29 +0000 (15:30 +0900)]
Introduce 'Dockerfile' (#32)

This commit introduces 'Dockerfile' which ease developement environment
bring up for newcomers.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoUse italic font for nncc (#33)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 22 Mar 2018 05:54:16 +0000 (14:54 +0900)]
Use italic font for nncc (#33)

'design.md' currently includes one non-italic nncc word. This commit
removes this inconsistency.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce format checker (#21)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 22 Mar 2018 00:23:08 +0000 (09:23 +0900)]
Introduce format checker (#21)

This commit introduces C++ format checker to make it easy to maintain style
consistency. Users may invoke this format checker by running 'nncc format'.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoIntroduce 'lib' directory (#25)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 21 Mar 2018 10:54:04 +0000 (19:54 +0900)]
Introduce 'lib' directory (#25)

This commit introduces 'lib' directory which will hold the
implementation of libraries that nncc officially supports.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd 'roadmap.md' (#26)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 21 Mar 2018 10:12:28 +0000 (19:12 +0900)]
Add 'roadmap.md' (#26)

This commit adds 'roadmap.md' which states the goal of nncc in 2018.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd design.md (#13)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 19 Mar 2018 00:51:06 +0000 (09:51 +0900)]
Add design.md (#13)

This commit adds design.md which describes the principle behind the
design of nncc.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
6 years agoAdd basic configure & build tools (#11)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Sun, 18 Mar 2018 23:26:24 +0000 (08:26 +0900)]
Add basic configure & build tools (#11)

* Add basic configure & build tools

This commit introduces 'nncc' script which eases CMake configure and
build.

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

6 years agoAdd contrib directory (#6)
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Sun, 11 Mar 2018 23:48:13 +0000 (08:48 +0900)]
Add contrib directory (#6)

* Add contrib directory

This commit adds contrib directory which will include all the incubating projects,
and CMakeLists.txt for these incubating projects.

This commit adds 'Getting Started' project template which includes a simple
'hello, world' example to show how to use this directory.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Remove unnecessary blank

6 years agoUpdate README (#2)
서상민/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 6 Mar 2018 08:52:38 +0000 (17:52 +0900)]
Update README (#2)

This commit updates README.md to explain what `nncc` means.

Signed-off-by: Sangmin Seo <sangmin7.seo@samsung.com>
6 years agoUpdate README.md
이명재/Open Source그룹(SR)/Senior Engineer/삼성전자 [Thu, 22 Feb 2018 05:06:43 +0000 (14:06 +0900)]
Update README.md

6 years agoInitial commit
이명재/Open Source그룹(SR)/Senior Engineer/삼성전자 [Thu, 22 Feb 2018 05:06:05 +0000 (14:06 +0900)]
Initial commit