summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorEfimov Alexander/AI Tools Lab/./Samsung Electronics <a.efimov@samsung.com>2019-07-23 12:11:57 +0900
committer이춘석/On-Device Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>2019-07-23 12:11:57 +0900
commitc537162e45ddc6145111def4e55661d772a338f7 (patch)
treee7456cd03143cf0d5c558675b115e109172f7607 /docs
parent598ab9ddac957eb133071b8ce48531cba7fca40e (diff)
downloadnnfw-c537162e45ddc6145111def4e55661d772a338f7.tar.gz
nnfw-c537162e45ddc6145111def4e55661d772a338f7.tar.bz2
nnfw-c537162e45ddc6145111def4e55661d772a338f7.zip
DR1 project requirements document (#5633)
* DR1 project requirements document Added DR1 project requrements document Signed-off-by: Efimov Alexander <a.efimov@samsung.com> * remove unnecessary data Signed-off-by: Efimov Alexander <a.efimov@samsung.com> * rethink component list Signed-off-by: Efimov Alexander <a.efimov@samsung.com> * - Update Interpreter description - Add Heterogeneous execution requirements Signed-off-by: Efimov Alexander <a.efimov@samsung.com> * add requirement for optimizer * review fixes Signed-off-by: Efimov Alexander <a.efimov@samsung.com> * - Add custom-op related requirement - Set optimization requirements Signed-off-by: Efimov Alexander <a.efimov@samsung.com> * revert mistake change Signed-off-by: Efimov Alexander <a.efimov@samsung.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/project/19_NN_Compiler_and_Runtime_SRS.rst271
-rw-r--r--docs/project/19_NN_Compiler_and_Runtime_SRS.rst.cover7
-rw-r--r--docs/project/Makefile32
-rw-r--r--docs/project/pdf.style617
-rw-r--r--docs/project/pdf_cover.tmpl58
-rw-r--r--docs/project/pdf_main.tmpl41
-rw-r--r--docs/project/project_purpose_and_scope.rst13
-rw-r--r--docs/project/project_terms_and_abbreviation.rst43
-rw-r--r--docs/project/samsung_logo.pngbin0 -> 22360 bytes
9 files changed, 1082 insertions, 0 deletions
diff --git a/docs/project/19_NN_Compiler_and_Runtime_SRS.rst b/docs/project/19_NN_Compiler_and_Runtime_SRS.rst
new file mode 100644
index 000000000..20ba338b7
--- /dev/null
+++ b/docs/project/19_NN_Compiler_and_Runtime_SRS.rst
@@ -0,0 +1,271 @@
+=============================
+SW Requirements Specification
+=============================
+
+.. contents::
+
+.. section-numbering::
+
+.. raw:: pdf
+
+ PageBreak oneColumn
+
+**Revision history**
+
++-------+-------------+----------------------------+--------------------------+---------------------+
+| Ver. | Date | Contents | Author | Approver |
++=======+=============+============================+==========================+=====================+
+| 0.1 | 2019.04.22 | Initial version | Rusyaev Roman | |
++-------+-------------+----------------------------+--------------------------+---------------------+
+| 0.2 | 2019.04.23 | SE member in-charge review | Aleksei Kondrashov | |
++-------+-------------+----------------------------+--------------------------+---------------------+
+| 1.0 | 2019.04.24 | Final Execution DR version | Rusyaev Roman | Sung-Jae Lee |
++-------+-------------+----------------------------+--------------------------+---------------------+
+| 1.1 | 2019.07.24 | DR1 version | Efimov Alexander | Sung-Jae Lee |
++-------+-------------+----------------------------+--------------------------+---------------------+
+
+
+Introduction
+============
+
+Purpose and scope
+-----------------
+
+.. include:: project_purpose_and_scope.rst
+.. include:: project_terms_and_abbreviation.rst
+
+
+SW System Architecture
+----------------------
+
+The main components of the compiler are the following:
+
+- Configuration system
+- TensorFlow Importer (loads model in TensorFlow format and creates internal IR semantically equal to the given model)
+- ONNX Importer (loads model in ONNX format and creates internal IR semantically equal to the given model)
+- NN Package emitter
+
+|
+
+The main components of the runtime are the following:
+
+- Configuration system
+- API interface for loading and execution of NN models
+- NN Package parser
+- High Level optimizations
+- Model lowering pass (transforms IR created by API of imported from NN Package into low-level representation)
+- Low-Level optimizations on lowered IR
+- Lowered IR executor
+- Fallback model interpreter
+
+
+SW Functional Requirements
+==========================
+
+Frontend
+--------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+
+ * - RF-1
+ - Frontend: Tensorflow
+ - The compiler should support import of NN model in Tensorflow format (parsing & verification)
+
+ * - RF-2
+ - Frontend: ONNX
+ - The compiler should support import of NN model in ONNX format (parsing & verification)
+
+ * - RF-3
+ - Frontend: lossless import
+ - The front-end should use the lossless approach while it is converting any NN model to IR
+
+ * - RF-4
+ - Frontend: Inception_v3
+ - The front-end should successful import the Inception V3 NN model
+
+ * - RF-5
+ - Frontend: MobileNet
+ - The front-end should successful import the MobileNet NN model
+
+
+High-Level optimization
+-----------------------
+
+No special requirements
+
+
+Low-Level optimization
+----------------------
+
+No special requirements
+
+
+Heterogeneous computing
+-----------------------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+
+ * - RF-?
+ - HE: profiling
+ - Runtime should be able to gather or import information about execution time of specific operations
+
+ * - RF-?
+ - HE: scheduling
+ - Runtime should be able to use profile information to choose optimal assignment of operations to execution devices
+
+ * - RF-?
+ - HE: mixing backends
+ - Runtime should be able to mix different types of execution devices in one compilation to achieve best performance
+
+
+RNN
+---
+
+Detailed requirements will be described on DR1 milestone (end of July)
+
+
+SW Non-Functional Requirements
+==============================
+
+Performance
+-----------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+ * - RNF-1
+ - Performance: input
+ - Inference time should be equal or less then models executed by ML frameworks of original model
+
+
+Reliability
+-----------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+ * - RNF-2
+ - Reliability: input
+ - If the incorrect input data are provided inference should not be performed, but user should be informed about all errors which were met
+
+Security
+--------
+
+No special requirements
+
+Usability
+---------
+
+No special requirements
+
+Availability
+------------
+
+No special requirements
+
+Maintainability
+---------------
+
+No special requirements
+
+Extensibility
+-------------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+ * - RNF-3
+ - Extensibility: operators
+ - Project design and implementation should provide possibility to add new built-in operators easily
+ * - RNF-4
+ - Extensibility: formats
+ - Project design and implementation should provide possibility to support new model formats easily
+ * - RNF-5
+ - Extensibility: custom operators
+ - Project design and implementation should provide possibility to extend set of supported operators by utilization of user-defined kernels and necessary metainformation
+
+
+Testability
+-----------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+ * - RNF-5
+ - Testability: environment
+ - The test environment should be built in order to verify functionality, product build status, inference correctness and performance
+
+
+Portability
+-----------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+ * - RNF-6
+ - Portability: Linux
+ - The functionality should be portable with Linux-based OS
+
+Scalability
+-----------
+
+No special requirements
+
+
+Configurability
+---------------
+
+No special requirements
+
+
+The source code
+---------------
+
+.. list-table::
+ :widths: 23 50 100
+ :header-rows: 1
+
+ * - ID
+ - Requirement Name
+ - Description
+ * - RNF-7
+ - Legislation
+ - All source code files should follows its original license and general project license without any conflicts
+ * - RNF-8
+ - Legitimacy
+ - The project should have its own general license
+ * - RNF-9
+ - Coding style
+ - Each source code file should follow the one defined for the project coding style
diff --git a/docs/project/19_NN_Compiler_and_Runtime_SRS.rst.cover b/docs/project/19_NN_Compiler_and_Runtime_SRS.rst.cover
new file mode 100644
index 000000000..e99a4911f
--- /dev/null
+++ b/docs/project/19_NN_Compiler_and_Runtime_SRS.rst.cover
@@ -0,0 +1,7 @@
+=============================
+SW Requirements Specification
+=============================
+
+-------------------------
+SRR-RAJ0119ZZ-BERF-SRS001
+-------------------------
diff --git a/docs/project/Makefile b/docs/project/Makefile
new file mode 100644
index 000000000..5a58c8c88
--- /dev/null
+++ b/docs/project/Makefile
@@ -0,0 +1,32 @@
+DOC_SRC = 19_NN_Compiler_and_Runtime_SRS.rst
+
+DOC_PDF = $(DOC_SRC:.rst=.pdf)
+
+all: pdf_docs
+
+pdf_docs: $(DOC_PDF)
+
+
+%.pdf.cover: %.rst.cover pdf.style pdf_cover.tmpl
+ rst2pdf --inline-footnotes -b 1 -s pdf.style --custom-cover pdf_cover.tmpl $< -o $@
+
+%.pdf.main: %.rst pdf.style pdf_main.tmpl $(PU_IMG)
+ rst2pdf --inline-footnotes -b 1 -s pdf.style --custom-cover pdf_main.tmpl $< -o $@
+
+%.pdf: %.pdf.cover %.pdf.main
+ pdftk A=$@.cover B=$@.main cat A1 B2-end output $@
+ mkdir -p ./pdf
+ mv $@ ./pdf
+ rm -f $@.cover $@.main
+
+style.diff: pdf.style
+ rst2pdf --print-stylesheet > default.style
+ diff -Nuraw default.style $< > $@ || true
+
+clean:
+ rm -f pdf rst
+ rm tree.txt default.style style.diff || true
+
+.PHONY: all clean pdf_docs
+
+.PRECIOUS: %.pdf.cover %.pdf.main
diff --git a/docs/project/pdf.style b/docs/project/pdf.style
new file mode 100644
index 000000000..41f5c31fa
--- /dev/null
+++ b/docs/project/pdf.style
@@ -0,0 +1,617 @@
+
+ # List any fonts you would like to embed in the PDF here
+ embeddedFonts: []
+
+ # Default page setup. Can be overridden by including other
+ # stylesheets with -s
+
+ pageSetup:
+ size: A4
+ width: null
+ height: null
+ margin-top: 2cm
+ margin-bottom: 2cm
+ margin-left: 2cm
+ margin-right: 2cm
+ margin-gutter: 0cm
+ spacing-header: 5mm
+ spacing-footer: 5mm
+
+ # The first template is one of the 'pageTemplates"
+ # (See next section)
+
+ firstTemplate: oneColumn
+
+ # pageTemplates can be accessed with the .. raw:: pdf PageBreak command
+
+ pageTemplates:
+ coverPage:
+ frames: []
+ [0cm, 0cm, 100%, 100%]
+ showHeader : false
+ showFooter : false
+
+ emptyPage:
+ frames: []
+ [0cm, 0cm, 100%, 100%]
+ showHeader : false
+ showFooter : false
+
+ oneColumn:
+ frames: []
+ [0cm, 0cm, 100%, 100%]
+ showHeader : true
+ showFooter : true
+
+ twoColumn:
+ frames: []
+ [0cm, 0cm, 49%, 100%]
+ [51%, 0cm, 49%, 100%]
+ showHeader : true
+ showFooter : true
+
+ threeColumn:
+ frames: []
+ [2%, 0cm, 29.333%, 100%]
+ [35.333%, 0cm, 29.333%, 100%]
+ [68.666%, 0cm, 29.333%, 100%]
+ showHeader : true
+ showFooter : true
+
+ cutePage:
+ frames: []
+ [0%, 0%, 100%, 100%]
+ showHeader : true
+ showFooter : true
+ defaultFooter : ###Page###
+ defaultHeader : ###Section###
+
+ fontsAlias:
+ stdFont: Helvetica
+ stdBold: Helvetica-Bold
+ stdItalic: Helvetica-Oblique
+ stdBoldItalic: Helvetica-BoldOblique
+ stdSans: Helvetica
+ stdSansBold: Helvetica-Bold
+ stdSansItalic: Helvetica-Oblique
+ stdSansBoldItalic: Helvetica-BoldOblique
+ stdMono: Courier
+ stdMonoItalic: Courier-Oblique
+ stdMonoBold: Courier-Bold
+ stdMonoBoldItalic: Courier-BoldOblique
+ stdSerif: Times-Roman
+
+ linkColor: navy
+
+ styles:
+ base:
+ parent: null
+ fontName: stdFont
+ fontSize: 10
+ leading: 12
+ leftIndent: 0
+ rightIndent: 0
+ firstLineIndent: 0
+ alignment: TA_LEFT
+ spaceBefore: 0
+ spaceAfter: 0
+ bulletFontName: stdFont
+ bulletFontSize: 10
+ bulletIndent: 0
+ textColor: black
+ backColor: null
+ wordWrap: null
+ borderWidth: 0
+ borderPadding: 0
+ borderColor: null
+ borderRadius: null
+ allowWidows: false
+ allowOrphans: false
+ hyphenation: false
+ kerning: false
+ underline: false
+ strike: false
+ commands: []
+
+ normal:
+ parent: base
+
+ title-reference:
+ parent: normal
+ fontName: stdItalic
+
+ bodytext:
+ parent: normal
+ spaceBefore: 6
+ alignment: TA_JUSTIFY
+ hyphenation: true
+
+ toc:
+ parent: normal
+
+ blockquote:
+ parent: bodytext
+ leftIndent: 20
+
+ lineblock:
+ parent: bodytext
+
+ line:
+ parent: lineblock
+ spaceBefore: 0
+
+ toc1:
+ parent: toc
+ fontName: stdBold
+
+ toc2:
+ parent: toc
+ leftIndent: 20
+
+ toc3:
+ parent: toc
+ leftIndent: 40
+
+ toc4:
+ parent: toc
+ leftIndent: 60
+
+ toc5:
+ parent: toc
+ leftIndent: 80
+
+ toc6:
+ parent: toc
+ leftIndent: 100
+
+ toc7:
+ parent: toc
+ leftIndent: 100
+
+ toc8:
+ parent: toc
+ leftIndent: 100
+
+ toc9:
+ parent: toc
+ leftIndent: 100
+
+ toc10:
+ parent: toc
+ leftIndent: 100
+
+ toc11:
+ parent: toc
+ leftIndent: 100
+
+ toc12:
+ parent: toc
+ leftIndent: 100
+
+ toc13:
+ parent: toc
+ leftIndent: 100
+
+ toc14:
+ parent: toc
+ leftIndent: 100
+
+ toc15:
+ parent: toc
+ leftIndent: 100
+
+ footer:
+ parent: normal
+ alignment: TA_CENTER
+ textColor: #808080
+
+ header:
+ parent: normal
+ alignment: TA_CENTER
+
+ headertext:
+ parent: normal
+ textColor: #808080
+
+ headertable:
+ parent: header
+ borderWidth: 0
+
+ headertablemain:
+ parent: header
+ borderPadding: 0
+ commands: [
+ [ GRID, [ 0, -1 ], [ -1, -1 ], 0.25, transparent ],
+ [ LINEBELOW, [ 0, -1 ], [ -1, -1 ], 0.25, #808080 ],
+ [ LEFTPADDING, [ 0, 0 ], [ -1, -1 ], 0 ],
+ [ RIGHTPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ ]
+
+ sectmpcode:
+ alignment: TA_LEFT
+ textColor: #C0C0C0
+
+ titletable:
+ commands: [
+ [ GRID, [ 0, -1 ], [ -1, -1 ], 0.25, transparent ],
+ [ LEFTPADDING, [ 0, 0 ], [ -1, -1 ], 0 ],
+ [ RIGHTPADDING, [ 0, 0 ], [ -1, -1 ], 0 ],
+ [ ROWBACKGROUNDS, [0, 0], [-1, -1], [white, #C0C0C0, white, #05365D]]
+ ]
+
+ attribution:
+ parent: bodytext
+ alignment: TA_RIGHT
+
+ image:
+ parent: bodytext
+ alignment: TA_CENTER
+
+ figure:
+ parent: bodytext
+ alignment: TA_CENTER
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [ALIGN, [ 0, 0 ], [ -1, -1 ], CENTER ]
+ colWidths: [100%]
+
+ figure-caption:
+ parent: bodytext
+ fontName: stdItalic
+ alignment: TA_CENTER
+
+ figure-legend:
+ parent: bodytext
+
+ bullet-list:
+ parent: bodytext
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [RIGHTPADDING, [ 0, 0 ], [ 1, -1 ], 0 ]
+ colWidths: ["20", null]
+
+ bullet-list-item:
+ parent: bodytext
+
+ item-list:
+ parent: bodytext
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [RIGHTPADDING, [ 0, 0 ], [ 1, -1 ], 0 ]
+ colWidths: [20pt,null]
+
+ item-list-item:
+ parent: bodytext
+
+ definition-list-term:
+ parent: normal
+ fontName: stdBold
+ spaceBefore: 4
+ spaceAfter: 0
+ keepWithNext: false
+
+ definition-list-classifier:
+ parent: normal
+ fontName: stdItalic
+
+ definition:
+ parent: bodytext
+ firstLineIndent: 0
+ bulletIndent: 0
+ spaceBefore: 0
+ colWidths: [20pt,null]
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [LEFTPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ [BOTTOMPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ [RIGHTPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+
+ fieldname:
+ parent: bodytext
+ alignment: TA_RIGHT
+ fontName: stdBold
+
+ fieldvalue:
+ parent: bodytext
+
+ rubric:
+ parent: bodytext
+ textColor: darkred
+ alignment: TA_CENTER
+
+ italic:
+ parent: bodytext
+ fontName: stdItalic
+
+ heading:
+ parent: normal
+ keepWithNext: true
+ spaceBefore: 12
+ spaceAfter: 6
+
+ title:
+ parent: heading
+ fontName: stdBold
+ fontSize: 300%
+ alignment: TA_RIGHT
+ keepWithNext: false
+ spaceAfter: 10
+
+ subtitle:
+ parent: title
+ spaceBefore: 12
+ fontSize: 75%
+
+ heading1:
+ parent: heading
+ fontName: stdBold
+ fontSize: 175%
+
+ heading2:
+ parent: heading
+ fontName: stdBold
+ fontSize: 150%
+
+ heading3:
+ parent: heading
+ fontName: stdBoldItalic
+ fontSize: 125%
+
+ heading4:
+ parent: heading
+ fontName: stdBoldItalic
+
+ heading5:
+ parent: heading
+ fontName: stdBoldItalic
+
+ heading6:
+ parent: heading
+ fontName: stdBoldItalic
+
+ topic-title:
+ parent: heading3
+
+ sidebar-title:
+ parent: heading3
+
+ sidebar-subtitle:
+ parent: heading4
+
+ sidebar:
+ float: none
+ width: 100%
+ parent: normal
+ backColor: beige
+ borderColor: darkgray
+ borderPadding: 8
+ borderWidth: 0.5
+
+ admonition:
+ parent: normal
+ spaceBefore: 12
+ spaceAfter: 6
+ borderPadding: [16,16,16,16]
+ backColor: beige
+ borderColor: darkgray
+ borderWidth: 0.5
+ commands:[]
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+
+ attention:
+ parent: admonition
+
+ caution:
+ parent: admonition
+
+ danger:
+ parent: admonition
+
+ error:
+ parent: admonition
+
+ hint:
+ parent: admonition
+
+ important:
+ parent: admonition
+
+ note:
+ parent: admonition
+
+ tip:
+ parent: admonition
+
+ warning:
+ parent: admonition
+
+ admonition-title:
+ parent: heading3
+
+ admonition-heading:
+ parent: heading3
+
+ attention-heading:
+ parent: admonition-heading
+
+ caution-heading:
+ parent: admonition-heading
+
+ danger-heading:
+ parent: admonition-heading
+
+ error-heading:
+ parent: admonition-heading
+
+ hint-heading:
+ parent: admonition-heading
+
+ important-heading:
+ parent: admonition-heading
+
+ note-heading:
+ parent: admonition-heading
+
+ tip-heading:
+ parent: admonition-heading
+
+ warning-heading:
+ parent: admonition-heading
+
+ literal:
+ parent: normal
+ fontName: stdMono
+ firstLineIndent: 0
+ hyphenation: false
+ wordWrap: null
+
+ aafigure:
+ parent: literal
+
+ table:
+ spaceBefore:6
+ spaceAfter:0
+ alignment: TA_CENTER
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], CENTER ]
+ [INNERGRID, [ 0, 0 ], [ -1, -1 ], 0.25, black ]
+ [ROWBACKGROUNDS, [0, 0], [-1, -1], [white]]
+ [BOX, [ 0, 0 ], [ -1, -1 ], 0.25, black ]
+
+ table-title:
+ parent : heading4
+ keepWithNext: false
+ alignment : TA_CENTER
+
+ table-heading:
+ parent : heading
+ backColor : #F3F3F3
+ alignment : TA_CENTER
+ valign : CENTER
+ borderPadding : 0
+ fontName: stdBold
+
+ table-body:
+ parent : normal
+
+ dedication:
+ parent : normal
+
+ abstract:
+ parent : normal
+
+ contents:
+ parent : normal
+
+ tableofcontents:
+ parent : normal
+
+ code:
+ parent: literal
+ leftIndent: 0
+ spaceBefore: 8
+ spaceAfter: 8
+ backColor: beige
+ borderColor: darkgray
+ borderWidth: 0.5
+ borderPadding: 6
+
+ linenumber:
+ parent: code
+
+ right:
+ parent: bodytext
+ alignment: right
+
+ center:
+ parent: bodytext
+ alignment: center
+
+ pygments-n: parent: code
+ pygments-nx: parent: code
+ pygments-p: parent: code
+ pygments-hll: {parent: code, backColor: #ffffcc}
+ pygments-c: {textColor: #008800, parent: code}
+ pygments-err: {parent: code}
+ pygments-k: {textColor: #AA22FF, parent: code}
+ pygments-o: {textColor: #666666, parent: code}
+ pygments-cm: {textColor: #008800, parent: code}
+ pygments-cp: {textColor: #008800, parent: code}
+ pygments-c1: {textColor: #008800, parent: code}
+ pygments-cs: {textColor: #008800, parent: code}
+ pygments-gd: {textColor: #A00000, parent: code}
+ pygments-ge: {parent: code}
+ pygments-gr: {textColor: #FF0000, parent: code}
+ pygments-gh: {textColor: #000080, parent: code}
+ pygments-gi: {textColor: #00A000, parent: code}
+ pygments-go: {textColor: #808080, parent: code}
+ pygments-gp: {textColor: #000080, parent: code}
+ pygments-gs: {parent: code}
+ pygments-gu: {textColor: #800080, parent: code}
+ pygments-gt: {textColor: #0040D0, parent: code}
+ pygments-kc: {textColor: #AA22FF, parent: code}
+ pygments-kd: {textColor: #AA22FF, parent: code}
+ pygments-kn: {textColor: #AA22FF, parent: code}
+ pygments-kp: {textColor: #AA22FF, parent: code}
+ pygments-kr: {textColor: #AA22FF, parent: code}
+ pygments-kt: {textColor: #00BB00, parent: code}
+ pygments-m: {textColor: #666666, parent: code}
+ pygments-s: {textColor: #BB4444, parent: code}
+ pygments-na: {textColor: #BB4444, parent: code}
+ pygments-nb: {textColor: #AA22FF, parent: code}
+ pygments-nc: {textColor: #0000FF, parent: code}
+ pygments-no: {textColor: #880000, parent: code}
+ pygments-nd: {textColor: #AA22FF, parent: code}
+ pygments-ni: {textColor: #999999, parent: code}
+ pygments-ne: {textColor: #D2413A, parent: code}
+ pygments-nf: {textColor: #00A000, parent: code}
+ pygments-nl: {textColor: #A0A000, parent: code}
+ pygments-nn: {textColor: #0000FF, parent: code}
+ pygments-nt: {textColor: #008000, parent: code}
+ pygments-nv: {textColor: #B8860B, parent: code}
+ pygments-ow: {textColor: #AA22FF, parent: code}
+ pygments-w: {textColor: #bbbbbb, parent: code}
+ pygments-mf: {textColor: #666666, parent: code}
+ pygments-mh: {textColor: #666666, parent: code}
+ pygments-mi: {textColor: #666666, parent: code}
+ pygments-mo: {textColor: #666666, parent: code}
+ pygments-sb: {textColor: #BB4444, parent: code}
+ pygments-sc: {textColor: #BB4444, parent: code}
+ pygments-sd: {textColor: #BB4444, parent: code}
+ pygments-s2: {textColor: #BB4444, parent: code}
+ pygments-se: {textColor: #BB6622, parent: code}
+ pygments-sh: {textColor: #BB4444, parent: code}
+ pygments-si: {textColor: #BB6688, parent: code}
+ pygments-sx: {textColor: #008000, parent: code}
+ pygments-sr: {textColor: #BB6688, parent: code}
+ pygments-s1: {textColor: #BB4444, parent: code}
+ pygments-ss: {textColor: #B8860B, parent: code}
+ pygments-bp: {textColor: #AA22FF, parent: code}
+ pygments-vc: {textColor: #B8860B, parent: code}
+ pygments-vg: {textColor: #B8860B, parent: code}
+ pygments-vi: {textColor: #B8860B, parent: code}
+ pygments-il: {textColor: #666666, parent: code}
+
+ endnote:
+ parent: bodytext
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [TOPPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ [BOTTOMPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ [RIGHTPADDING, [ 0, 0 ], [ 1, -1 ], 0 ]
+ colWidths: [3cm, null]
+
+ field-list:
+ parent: bodytext
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [TOPPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ colWidths: [3cm, null]
+ spaceBefore: 6
+
+ option-list:
+ commands: []
+ [VALIGN, [ 0, 0 ], [ -1, -1 ], TOP ]
+ [TOPPADDING, [ 0, 0 ], [ -1, -1 ], 0 ]
+ colWidths: [null,null]
+
diff --git a/docs/project/pdf_cover.tmpl b/docs/project/pdf_cover.tmpl
new file mode 100644
index 000000000..db16a6c58
--- /dev/null
+++ b/docs/project/pdf_cover.tmpl
@@ -0,0 +1,58 @@
+.. raw:: pdf
+
+ Spacer 0 50mm
+
+.. |doctitle| replace:: #{title}
+
+.. |doccode| replace:: #{subtitle}
+
+.. class:: titletable
+
+ +--------------------------------------+
+ | .. class:: sectmpcode |
+ | |
+ | |doccode| |
+ +--------------------------------------+
+ | |
+ +--------------------------------------+
+ | .. class:: title |
+ | |
+ | |doctitle| |
+ +--------------------------------------+
+ | |
+ +--------------------------------------+
+
+.. raw:: pdf
+
+ Spacer 0 100mm
+
++------------------+--------------------------+--------------+--------------+
+| **Project Name** | 19 NN Compiler & Runtime | |
++------------------+--------------------------+--------------+--------------+
+| **Author** | Alexander Efimov | **Approver** | Sung-Jae Lee |
++------------------+--------------------------+--------------+--------------+
+| **Team** | SRR/Deep System |
++------------------+--------------------------+--------------+--------------+
+
+.. |samsunglogo| image:: samsung_logo.png
+ :width: 5em
+
+.. header::
+
+ .. class:: headertable
+
+ +---+----------------+
+ | |.. class:: right|
+ | | |
+ | | |samsunglogo| |
+ +---+----------------+
+
+.. include:: <isonum.txt>
+
+.. footer::
+
+ Copyright |copy| 2019 Samsung Electronics Co.,LTD.
+
+.. raw:: pdf
+
+ PageBreak oneColumn
diff --git a/docs/project/pdf_main.tmpl b/docs/project/pdf_main.tmpl
new file mode 100644
index 000000000..c19845571
--- /dev/null
+++ b/docs/project/pdf_main.tmpl
@@ -0,0 +1,41 @@
+.. raw:: pdf
+
+ Spacer 0 72mm
+
+.. |doctitle| replace:: #{title}
+
+.. class:: title
+
+|doctitle|
+
+.. raw:: pdf
+
+ Spacer 0 83mm
+
+
+.. |samsunglogo| image:: samsung_logo.png
+ :width: 5em
+
+.. header::
+
+ .. class:: headertablemain
+
+ +-------------------------+------------------+
+ | .. class:: headertext | .. class:: right |
+ | | |
+ | |doctitle| | |samsunglogo| |
+ +-------------------------+------------------+
+
+.. footer::
+
+ .. class:: headertable
+
+ +-------------------------+----------------------------------------------------------+
+ | .. class:: headertext | .. class:: headertext |
+ | | |
+ | ###Page### | Confidential Property of Samsung Electronics Co., Ltd. |
+ +-------------------------+----------------------------------------------------------+
+
+.. raw:: pdf
+
+ PageBreak oneColumn
diff --git a/docs/project/project_purpose_and_scope.rst b/docs/project/project_purpose_and_scope.rst
new file mode 100644
index 000000000..b153326ce
--- /dev/null
+++ b/docs/project/project_purpose_and_scope.rst
@@ -0,0 +1,13 @@
+The main goals of the project are to develop compiler and runtime for neural networks to perform inference for specified SW and HW platform.
+
+|
+| **2019 year goals:**
+
+- Support heterogeneous computing in NN compiler and runtime
+- Support TensorFlow NN model format
+- Support ONNX NN model format
+- Implement target-independent compiler optimizations
+- Improve inference performance in NN runtime
+- Develop common IR for both NN compiler and runtime
+- Support RNN in NN runtime
+- Support custom operators in NN runtime
diff --git a/docs/project/project_terms_and_abbreviation.rst b/docs/project/project_terms_and_abbreviation.rst
new file mode 100644
index 000000000..6298b9f43
--- /dev/null
+++ b/docs/project/project_terms_and_abbreviation.rst
@@ -0,0 +1,43 @@
+|
+
+**Terminology and Abbreviation**
+
+.. list-table::
+ :widths: 10 30
+ :header-rows: 0
+
+ * - OS
+ - Operating System
+ * - OS API
+ - Application interface of OS
+ * - HW
+ - Hardware
+ * - SW
+ - Software
+ * - NN
+ - Neural Network
+ * - NN model
+ - Neural network model (Instance of NN built with ML framework)
+ * - NN compiler
+ - The compiler for neural network
+ * - ML framework
+ - The machine learning framework
+ * - TF/TF Lite
+ - Tensorflow/Tensorflow Lite ML framework
+ * - IR
+ - Intermediate representation
+ * - CI/CI system
+ - Continuous integration system
+ * - UI
+ - The user interface
+ * - GUI
+ - The graphical user interface
+ * - CLI
+ - The command-line interface
+ * - CG
+ - Computational Graph
+ * - RNN
+ - Recurrent Neural Network
+ * - NN Package
+ - Serialized representation of NN model generated by NN Compiler
+
diff --git a/docs/project/samsung_logo.png b/docs/project/samsung_logo.png
new file mode 100644
index 000000000..0c2d680d6
--- /dev/null
+++ b/docs/project/samsung_logo.png
Binary files differ