박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 15 May 2018 04:04:54 +0000 (13:04 +0900)]
Unify nncc_example_link_libraries and nncc_test_link_libraries (#220)
* Unify nncc_example_link_libraries and nncc_test_link_libraries
This commit introduces nncc_target_link_libraries function which unifies
nncc_example_link_libraries and nncc_test_link_libraries.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Use NAME instead of TARGET as an argument
Vitaliy Cherepanov/SRR-AI Tools Lab/./삼성전자 [Mon, 14 May 2018 23:19:59 +0000 (02:19 +0300)]
foundation: Create base exception classes (#165)
* Core: Create base exception classes
Created base exceptions classes.
This classes will be used by compiler components like
frontend, optimizers, backend to inform main compiler
part about some problems during compilation
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* core: Create base exception classes
move libs/core/.../plugin to libs/foundation/.../plugin
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* foundation: Create base exception classe
split class methods realisation
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* foundation: Create base exception class
fix format coding style
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* foundation: Create base exception class
this commit to fix PR
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* foundation: Create base exception class
this commit to fix PR
refactor BaseException class
fix build
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* foundation: Create base exception class
this commit to fix PR
fix include
add gtest
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* foundation: Create base exception class
fix coding style
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vitaliy Cherepanov/SRR-AI Tools Lab/./삼성전자 [Mon, 14 May 2018 23:19:37 +0000 (02:19 +0300)]
nnc: initial commit (#161)
* tools nncc: compiler initial commit
Create makefiles and main for compiler
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* tools nncc: compiler initial commit
Move tools/nncc to contrib/tools/
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* tools nncc: compiler initial commit
code clean remove unused code
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* tools nncc: compiler initial commit
Move contrib/tools/nncc to contrib/nnc
rename cl to nnc
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
* tools nnc: compiler initial commit
private nncc_core library target link
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Mon, 14 May 2018 03:17:54 +0000 (12:17 +0900)]
Allow FlatBuffers source download by default (#222)
This commit allows users to download (and build) FlatBuffers by default.
This commit also revises docker build script to pass FLATBUFFERS_URL
(which is necessary to allow CI to download and build FlatBuffers).
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 11 May 2018 05:48:02 +0000 (14:48 +0900)]
Find GFlags via internal script when building Caffe (#218)
This commit revises Caffe external module to lookup GFlags using
nncc_find_package instead of find_package.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Thu, 10 May 2018 23:57:28 +0000 (08:57 +0900)]
Add glog target cmake configure file (#216)
* Add glog target cmake configure file
This will add glog configure file that adds glog target.
Unlike gflags, latest glog source archieve has issue(namespace difference) with latest gflags so cannot use built from source glog at the moment.
So this commit only includes adding target interface with system installed version.
Download and build from source may be added later when isses are fixed somehow.
Signed-off-by: SaeHie Park <saehie.park@samsung.com>
* move status message
* remove empty line
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 10 May 2018 23:57:14 +0000 (08:57 +0900)]
Build shared GFlags library (#215)
The default GFlag build script dose not specify -fPIC option when
building static gflags library, and thus it is impossible to use built
library when building other shared libraries.
This commit addresses this issue by building shared library instead of
static library.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Thu, 10 May 2018 01:37:45 +0000 (10:37 +0900)]
Add ExternalProjectTools (#213)
This commit introduces ExternalProjectTools module which allows users to
import external CMake projects in a systematic way.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Wed, 9 May 2018 23:24:41 +0000 (08:24 +0900)]
Add gflags download and build (#210)
* Add gflags download and build
This will add download and build gflags within cmake
- default action is off
- system installed version can be used when download is off
Signed-off-by: SaeHie Park <saehie.park@samsung.com>
* apply comments
* move compile line
* use interface and move build options settings
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 9 May 2018 05:40:36 +0000 (14:40 +0900)]
[core] Add 'fill' method to ADT::tensor::Index (#198)
This commit adds 'fill' method (to ADT::tensor::Index class) which sets
all the indices as the given value.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Wed, 9 May 2018 01:47:44 +0000 (10:47 +0900)]
[core.ADT.tensor] Introduce 'squeeze' operation (#207)
* [core.ADT.tensor] Introduce 'squeeze' operation
This commit introduces 'squeeze' operation on tensor shape which eliminates
axies with null dimensionality.
This commit also introduces several related unittests which show how to
use this operation and describes the expected operation.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
* Return reference correctly
박세희/동작제어Lab(SR)/Principal Engineer/삼성전자 [Wed, 9 May 2018 01:34:23 +0000 (10:34 +0900)]
Update .gitignore for vscode (#208)
This will add .vscode to .gitignore for the users
Signed-off-by: SaeHie Park <saehie.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 8 May 2018 03:47:24 +0000 (12:47 +0900)]
[caffekit] Run inference without caffemodel (#206)
This commit revises 'caffekit run' to performe inference with random weight
even when caffemodel is not provided.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 8 May 2018 01:13:06 +0000 (10:13 +0900)]
Introduce 'caffekit' (#154)
This commit introduces 'caffekit' which will include various tools for
supporting caffe. Currently, 'caffekit' supports only 'run' command which
loads .prototxt and .caffemodel and runs one inference.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Tue, 8 May 2018 01:09:13 +0000 (10:09 +0900)]
[core.ADT.tensor] Add 'range' function (#205)
This commit adds 'range' function which creates a 'IndexRange'
object from a 'Shape' object.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 4 May 2018 08:37:44 +0000 (17:37 +0900)]
[core.ADT.tensor] Add 'TextFormatted<Index>' class (#202)
This commit adds 'TextFormatted<Index' class which is useful for
logging.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 [Fri, 4 May 2018 06:30:11 +0000 (15:30 +0900)]
[core] Introduce 'Printable' interface (#199)
This commit introduces 'Printable' interface for printable objects. This
commit also introduces related tests.
Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
박종현/동작제어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>
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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
최형규/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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)
박종현/동작제어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
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
최형규/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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>
박종현/동작제어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'
박종현/동작제어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>
박종현/동작제어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>
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>
박종현/동작제어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>
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>