Skip to content
Snippets Groups Projects
Forked from Eclipse Projects / aidge / aidge
142 commits behind, 4 commits ahead of the upstream repository.

Aidge

License-badge Documentation Status

The Eclipse Aidge platform is a comprehensive solution for fast and accurate Deep Neural Network (DNN) simulation and full and automated DNN-based application building. The platform integrates database construction, data pre-processing, network building, benchmarking and hardware export to various targets. It is particularly useful for DNN design and exploration, allowing simple and fast prototyping of DNN with different topologies. It is possible to define and learn multiple network topology variations and compare the performances (in terms of recognition rate and computational cost) automatically. Export hardware targets include CPU, DSP and GPU with OpenMP, OpenCL, Cuda, cuDNN and TensorRT programming models as well as custom hardware IP code generation with High-Level Synthesis for FPGA and dedicated configurable DNN accelerator IP.

Module Status Coverage
aidge_core Pipeline status C++ coverage Python coverage
aidge_backend_cpu Pipeline status C++ coverage Python coverage
aidge_backend_cuda Pipeline status C++ coverage Python coverage
aidge_export_cpp
aidge_onnx Pipeline status Python coverage

System requirements

  • CMake >= 3.15
  • Python >= 3.7

Each Aidge package may add other requirements, please check them.

Installation

This repository is a bundle containing Aidge modules. It will install the following modules

  • aidge_core
  • aidge_backend_cpu
  • aidge_backend_cuda
  • aidge_backend_opencv
  • aidge_export_cpp
  • aidge_learning
  • aidge_onnx
  • aidge_quantize

Feel free to install other modules if you need them with this bundle.

From Source

Build on Linux

This repository has several submodules. For this reason when cloning this repository you need to use the --recursive option.

git clone --recursive https://gitlab.eclipse.org/eclipse/aidge/aidge.git

Then we recommend creating a Python environment to work with Aidge. You can use virtualenv for example.

virtualenv -p python3.8 env_aidge
source env_aidge/bin/activate

Install Aidge in your Python environment

pip install .

You can test your installation by running

python -c "import aidge_core; import aidge_backend_cpu; print(aidge_core.Tensor.get_available_backends())"

You should have the following in your terminal:

{'cpu'}

Docker Image

Feel free to use one of the Dockerfiles available in the docker folder.

To build the image, run where your DockerFile is

docker build --pull --rm -f "path/to/dockerfile.Dockerfile" -t aidge:myenv .

Then to run a container, run

docker run --name mycontainer -it aidge:myenv

Build on Windows

On your session,

  1. Install Visual Studio Community. Get it from https://visualstudio.microsoft.com/fr/vs/community/)
  2. Install MSVC
  3. Install GIT (Source code control program). Get it from: https://git-scm.com/download)
  4. Install CMake (Solution for managing the software build process). Get it from: https://cmake.org/download/
  5. Install Python (Programming language). Get it from: https://www.python.org/download/
  6. Install pip
  7. Install VS Code. Get it from https://code.visualstudio.com/download => add following extensions (Python, CMake)
  8. create and launch virtual environnement (venv)
python -m venv myenv
.\myenv\Scripts\activate
  1. Place in aidge repository and execute
python.exe .\setup.py install

You can test your installation by running

python -c "import aidge_core; import aidge_backend_cpu; print(aidge_core.Tensor.get_available_backends())"

You should have the following in your terminal:

{'cpu'}

Contributing

If you would like to contribute to the Aidge project, we’re happy to have your help! Everyone is welcome to contribute code via merge requests, to file issues on Gitlab, to help people asking for help, fix bugs that people have filed, to add to our documentation, or to help out in any other way. We grant commit access (which includes full rights to the issue database, such as being able to edit labels) to people who have gained our trust and demonstrated a commitment to Aidge.

License

Aidge has an Eclipse Public License 2.0, as found in the LICENSE.