Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cea-list/n2d2
N2D2 is an open source CAD framework for Deep Neural Network simulation and full DNN-based applications building.
https://github.com/cea-list/n2d2
artificial-intelligence deep-learning deep-learning-library deep-neural-networks machine-learning neural-network spike-inference
Last synced: 3 days ago
JSON representation
N2D2 is an open source CAD framework for Deep Neural Network simulation and full DNN-based applications building.
- Host: GitHub
- URL: https://github.com/cea-list/n2d2
- Owner: CEA-LIST
- License: other
- Created: 2017-01-06T13:01:02.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-07-03T08:13:03.000Z (6 months ago)
- Last Synced: 2024-12-18T08:02:11.809Z (17 days ago)
- Topics: artificial-intelligence, deep-learning, deep-learning-library, deep-neural-networks, machine-learning, neural-network, spike-inference
- Language: C
- Homepage:
- Size: 467 MB
- Stars: 148
- Watchers: 15
- Forks: 36
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
----------------------------------------------------------------
[![License](https://img.shields.io/badge/license-CeCILL--C-blue.svg)](LICENSE)
N2D2 (for *Neural Network Design & Deployment*) is [CEA LIST](http://www-list.cea.fr/)'s CAD framework for designing and simulating
Deep Neural Network (DNN), and building full DNN-based applications on embedded platforms.
N2D2 is developped along with industrial and academic partners and is open source.| **Docs** | **`Linux CPU`**
≥ GCC 4.4.7 | **`Linux GPU`**
CUDA 11.3 + CuDNN 8 | **`Windows CPU`**
≥ Visual Studio 2015.2 | **`Windows GPU`**
≥ CUDA 8.0 + CuDNN 5.1 |
| ---------- | --------------- | ------------------ | ------------------ | ------------------ |
| [![Documentation Status](https://readthedocs.org/projects/n2d2/badge/?version=latest)](https://cea-list.github.io/N2D2-docs/) | [![linux-cpu](https://github.com/CEA-LIST/N2D2/actions/workflows/build_linux-cpu.yml/badge.svg)](https://github.com/CEA-LIST/N2D2/actions/workflows/build_linux-cpu.yml) | [![linux-gpu](https://github.com/CEA-LIST/N2D2/actions/workflows/build_linux-gpu.yml/badge.svg)](https://github.com/CEA-LIST/N2D2/actions/workflows/build_linux-gpu.yml) | | |## Usage
You can discover how to use the framework by visiting our [online documentation](https://cea-list.github.io/N2D2-docs/).
- [General presentation of the framework](https://cea-list.github.io/N2D2-docs/intro/intro.html)
- [How to compile N2D2 and perform simulations](https://cea-list.github.io/N2D2-docs/intro/simus.html)
- How to write neural network models
- [With the INI interface](https://cea-list.github.io/N2D2-docs/ini/intro.html)
- [With the Python API](https://cea-list.github.io/N2D2-docs/python_api/intro.html)
- How to quantize neural network models
- [With Post-Training Quantization](https://cea-list.github.io/N2D2-docs/quant/post.html)
- [With Quantization-Aware Training](https://cea-list.github.io/N2D2-docs/quant/qat.html)
- [How to export neural network models](https://cea-list.github.io/N2D2-docs/export/CPP.html)
- TutorialsThe N2D2 executables and **application examples** are located in the [exec/](exec) directory.
You can find examples of the N2D2 Python API [here](https://cea-list.github.io/N2D2-docs/python_api/example.html).
## Installation
### Get the N2D2 Source
```
git clone --recursive [email protected]:CEA-LIST/N2D2.git
```Specify the *recursive* option is required as it will download the PyBind submodule.
### Install Dependencies
The only mandatory dependencies for N2D2 are OpenCV and Gnuplot.
Moreover, the NVIDIA CUDA and CuDNN libraries are required to enable GPU-acceleration.
We highly recommend to use a **CUDA version higher than 10** with a **CuDNN version higher than 7**.If you want to disable CUDA support, export the environment variable `N2D2_NO_CUDA=1`.
### Build on Linux
To compile N2D2 on Linux, please go to the root of the project and run the following:
```
mkdir build
cd build
cmake .. && make
```You should have the `n2d2` executable in `build/bin` after the compilation.
To install the Python API in your python environment, follow the tutorial on our [doc](https://cea-list.github.io/N2D2-docs/python_api/intro.html).
## Docker Image
You can also pull a **pre-built docker image** from Docker Hub and run it with docker
```
docker pull cealist/n2d2
docker run --gpus all cealist/n2d2:latest
```Another possibility is to build N2D2 from the `Dockerfile`.
It is supplied to build images with CUDA 10.2 support and CuDNN 8.## Contributing
If you would like to contribute to the N2D2 project, we’re happy to have your help!
Everyone is welcome to contribute code via pull requests, to file issues on GitHub,
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 N2D2.
For more details see our [contribution guidelines](CONTRIBUTING.md).## License
N2D2 is released under the [CeCILL-C](LICENSE) license,
a free software license adapted to both international and French legal matters
that is fully compatible with the FSF's GNU/LGPL license.