Skip to content
Snippets Groups Projects
Commit 389dbcad authored by Cyril Moineau's avatar Cyril Moineau
Browse files

[Docs] Update skeleton to add platform specification.

parent 95e253d2
No related branches found
No related tags found
No related merge requests found
Showing
with 126 additions and 20 deletions
...@@ -51,6 +51,7 @@ extensions = [ ...@@ -51,6 +51,7 @@ extensions = [
'sphinx.ext.todo', 'sphinx.ext.todo',
'sphinx.ext.autodoc', 'sphinx.ext.autodoc',
'sphinx.ext.autosummary', 'sphinx.ext.autosummary',
'sphinx.ext.autosectionlabel',
'sphinx.ext.doctest', 'sphinx.ext.doctest',
'sphinx.ext.coverage', 'sphinx.ext.coverage',
'sphinx.ext.mathjax', 'sphinx.ext.mathjax',
...@@ -65,6 +66,10 @@ extensions = [ ...@@ -65,6 +66,10 @@ extensions = [
'sphinx_copybutton' 'sphinx_copybutton'
] ]
# Make sure the target is unique
autosectionlabel_prefix_document = True
autosectionlabel_maxdepth = 4
graphviz_output_format = 'svg' graphviz_output_format = 'svg'
# Mermaid Configuration # Mermaid Configuration
...@@ -157,7 +162,7 @@ html_theme = 'pydata_sphinx_theme' ...@@ -157,7 +162,7 @@ html_theme = 'pydata_sphinx_theme'
html_theme_options = { html_theme_options = {
# 'logo_only': True, # 'logo_only': True,
# 'style_nav_header_background': '#F5F5F5', # 'style_nav_header_background': '#F5F5F5',
"show_toc_level": 1, "show_toc_level": 2,
"show_nav_level": 2, "show_nav_level": 2,
"navigation_depth": 2, "navigation_depth": 2,
"navbar_align": "content", "navbar_align": "content",
......
...@@ -4,5 +4,4 @@ Aidge C++ API ...@@ -4,5 +4,4 @@ Aidge C++ API
.. toctree:: .. toctree::
data.rst data.rst
op.md \ No newline at end of file
\ No newline at end of file
Aidge API API
========= ===
.. toctree:: .. toctree::
......
...@@ -2,9 +2,9 @@ Quick Start ...@@ -2,9 +2,9 @@ Quick Start
=========== ===========
Fake example of quck start TODO fill this section ... Fake example of quick start TODO fill this section ...
First we need to create a : :ref:`Tensor <source/userguide/data:tensor>`.
.. tab-set:: .. tab-set::
......
Overview of the Aidge Framework
===============================
Context
-------
Framework architecture
======================
AIDGE is based on a principle of modular architecture (completion by plugin) in order to allow the addition of functionality and to meet needs not expressed during the initial design of the latter. Thus, let's not remove the limit of what this platform can offer while taking care to maintain its performance.
Core
----
The Core module is developped entirely in C++ (14) and includes a set of functions enabling to:
- Create a computational graph to model a DNN ;
- Modify the computational graph (e.g. by deleting or replacing a node of the graph);
- Do graph matching to find specific sequence of operators in the computational graph;
- Instanciate standard operators (without implementation);
- Instanciate standard data structures, such as Tensor (without implementation);
- Create standard schedulers (sequential), to execute the computational graph
- Access standard graph optimization functionalities, such as fusion of operators
- FuseMulAdd: Fuse MatMul and Add operators into a FullyConnected operator
- FuseConvBatchNorm: Fuse BatchNorm into a Convolution operator
.. TODO Describe CPU plugin existence
\ No newline at end of file
Benchmark neural network model
==============================
Data
====
Tensor
------
A Tensor is a multi-dimensional array defined by its dimensions, its datatype and its precision.
A Tensor can be used to represent:
- A raw input of a DNN, such as an image or a time serie;
- A label associated to a raw input;
- A processed input or label computed through a DNN;
- A parameter of a DNN, such as a weight.
AIDGE can define Tensor having the following datatype and precision:
.. list-table::
:header-rows: 1
* - Datatype
- Precision
* - Float
- 64, 32, 16
* - Int
- 64, 32, 16, 8, 7, 6, 5, 4, 3, 2, 1
* - UInt
- 64, 32, 16, 8, 7, 6, 5, 4, 3, 2, 1
Ensure robustness
=================
Runtime graph execution
=======================
\ No newline at end of file
Perform an export
=================
User Guide User Guide
========== ==========
.. toctree:: Workflow overview
:maxdepth: 1 -----------------
:caption: Framework Presentation
AIDGE allows designing and deploying Deep Neural Networks (DNN) on embedded systems.
The design and deployment stages are as follows:
.. TODO : insert workflow fig
High level functionalities
--------------------------
./FrameworkPresentation/index.rst AIDGE offers functionalities that can be categorized according to the following diagram.
- :ref:`Load and store model <source/userguide/loadStoreModel:Load and store model>` functions used to load or store a graph model from/to a serialized format.
- **Model graph:** functions used to model a graph such as adding an operator.
- **Transform model:** functions used for manipulating the graph, such as graph duplication.
- **Provide data:** functions used for providing data in order to execute a graph on data. These functions must be runnable on device.
- **Generate graph:** generate kernels and scheduling for a specific target, on an already optimized graph. There is no graph manipulation here, the graph is supposed to be already prepared (quantization, tiling, operator mapping…) for the intended target. For graph preparation and optimization, see Optimize hardware mapping.
- **Static analysis of KPI:** functions for obtaining statics on the graph like number of parameters, operations etc, that can be computed without having to execute the graph.
- **Execute graph:** execute a graph, either using a backend library (simple implementation change, no generation or compilation involved), or compiled operators implementation, after passing through the Compile graph function in this case.
- **Learn model:** performing a training requires several functions of the workflow (Model graph, Provide data, Execute graph, Benchmark KPI).
- **Benchmark KPI:** all kind of benchmarking requiring to run the network on a target in order to perform a measurment: accuracy, execution time… Some of these functions must be runable on device.
- **Model Hardware:** functions to represent the hardware target.
- **Optimize hardware mapping:** high-level functions to optimize the hardware mapping: quantization, pruning, tiling…
- **Learn on edge:** high-level functions to condition the graph for edge learning, including continual learning and federated learning.
- **Ensure robustness:** high-level functions to condition the graph for robustness.
.. toctree:: .. toctree::
:maxdepth: 1 :hidden:
:caption: Get Started :maxdepth: 2
./GetStarted/index.rst architecture.rst
\ No newline at end of file data.rst
modelGraph.rst
loadStoreModel.rst
interoperability.rst
transformGraph.rst
staticAnalysis.rst
executeGraph.rst
benchmark.rst
ensureRobustness.rst
optimizeGraph.rst
export.rst
learnEdge.rst
Plateform interoperability
==========================
\ No newline at end of file
Learn on edge
=============
Comming soon ...
\ No newline at end of file
Load and store model
====================
\ No newline at end of file
Computational graph
===================
Optimize graph
==============
\ No newline at end of file
Static analysis
===============
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment