Skip to content
/ N2D2 Public

N2D2 is an open source CAD framework for Deep Neural Network simulation and full DNN-based applications building.

License

Notifications You must be signed in to change notification settings

CEA-LIST/N2D2

Repository files navigation

N2D2

License

N2D2 (for Neural Network Design & Deployment) is CEA LIST'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 linux-cpu linux-gpu

Usage

You can discover how to use the framework by visiting our online documentation.

The N2D2 executables and application examples are located in the exec/ directory.

You can find examples of the N2D2 Python API here.

Installation

Get the N2D2 Source

git clone --recursive git@github.com: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.

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.

License

N2D2 is released under the CeCILL-C license, a free software license adapted to both international and French legal matters that is fully compatible with the FSF's GNU/LGPL license.