The NVIDIA Deep Learning Accelerator (NVDLA) is a free and open architecture that promotes a standard way to design deep learning inference accelerators. With its modular architecture, NVDLA is scalable, highly configurable, and designed to simplify integration and portability. Learn more about NVDLA on the project web page.
You can find the latest NVDLA Virtual Platform documentation here. This README file contains only basic information.
Git clone the repository and update the submodules. After cloning the repository, run the following command to update the submodule:
git submodule update --init --recursive
Download and build the NVDLA CMOD
Please refer to Integrator's Manual for details on building the hardware tree, and make sure the required tools listed in Environment Setup are installed first.
$ git clone https://github.com/nvdla/hw.git
$ cd hw
$ make
$ tools/bin/tmake -build cmod_top
The header files and library will be generated in hw/outdir/<project>/cmod/release
.
Install required tools/libraries
$ sudo apt-get install g++ cmake libboost-dev python-dev libglib2.0-dev libpixman-1-dev liblua5.2-dev swig libcap-dev libattr1-dev
Download and install SystemC 2.3.0
$ sudo wget -O systemc-2.3.0a.tar.gz http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.0a.tar.gz
$ tar -xzvf systemc-2.3.0a.tar.gz
$ cd systemc-2.3.0a
$ sudo mkdir -p /usr/local/systemc-2.3.0/
$ mkdir objdir
$ cd objdir
$ ../configure --prefix=/usr/local/systemc-2.3.0
$ make
$ sudo make install
Cmake build
$ cmake -DCMAKE_INSTALL_PREFIX=[install dir] -DSYSTEMC_PREFIX=[systemc prefix] -DNVDLA_HW_PREFIX=[nvdla_hw prefix] -DNVDLA_HW_PROJECT=[nvdla_hw project name]
install dir
is the installation path, systemc prefix
is the SystemC installation directory, nvdla_hw prefix
is the local NVDLA HW repository, and nvdla_hw project name
is the NVDLA HW project name. Example:
$ cmake -DCMAKE_INSTALL_PREFIX=build -DSYSTEMC_PREFIX=/usr/local/systemc-2.3.0/ -DNVDLA_HW_PREFIX=/usr/local/nvdla/hw -DNVDLA_HW_PROJECT=nv_full
Compile
$ make
Installation
$ make install
$ export SC_SIGNAL_WRITE_CHECK=DISABLE
$ ./build/bin/aarch64_toplevel --conf [platform.lua]
platform.lua
is the path to your platform conf file. A demo example is in conf/aarch64_nvdla.lua
. You will need a linux kernel image to run the NVDLA software, please refer to here on how to build a kernel image for NVDLA.