Skip to content

Open Source for Deep Neural Network Compiler for All Platforms

License

Notifications You must be signed in to change notification settings

enigmarikki/dnnCompiler

 
 

Repository files navigation

dnn Compiler


📛 Introduction

dnn Compiler is designed to enable and perform deep learning neural networks by focussing on features of custom ai-accelerators like FPGAs, eFPGAs and other embedded devices like risc-V, raspberry-pi and others.

dnn Compiler is ahead of time compiler producing optimized executable based on LLVM compiler tool chain and openAcc specialized for deep neural networks with ONNX as front end.

📝 Design

Main component of dnn Compiler has been designed to represent and optimize the common deep learning networks in high level graph IR and to transform the computation graph to minimize memory utilization, optimize data layout and fuse computation patterns for different hardware backends.

Architecture

Read more at high level design document

PreRequisites

⚙ Installation

build and install dnn Compiler locally from source code with following steps

⭕ Ubuntu 18.04

You can install ubuntu18.04 on windows Watch HowTo video here or Google it

Follow the steps to install pre-requisites

sudo apt-get install clang clang-8 llvm-8 llvm-8-dev libprotobuf-dev protobuf-compiler \
    cmake graphviz libpng-dev wget opencl-headers libgoogle-glog-dev

Once you are done, build dnnCompiler

git clone https://github.com/ai-techsystems/dnnCompiler.git 
cd dnnCompiler
make

📜 Output

[ 50%] Building CXX object CMakeFiles/dnnc.dir/src/main.cc.o
[ 66%] Building CXX object CMakeFiles/dnnc.dir/onnx-operators.pb.cc.o
[ 83%] Building CXX object CMakeFiles/dnnc.dir/onnx.pb.cc.o
[100%] Linking CXX executable dnnc
[100%] Built target dnnc

🏃‍♂️ Usage

[build]$ wget https://onnxzoo.blob.core.windows.net/models/opset_8/mnist/mnist.tar.gz
[build]$ tar xvf mnist.tar.gx
[build]$ ./dnnc

Usage: ./dnnc onnx_model_file

[build]$ ./dnnc mnist/model.onnx
reading CNTK graph from mnist/model.onnx 
populating graph ...

➕ Contribute

dnn Compiler adopts apache committer model, we aim to create an open source project that is maintained and owned by the community. Checkout the Contributor Guide.

🙏 Acknowledgement

We acknowledge the efforts predecessor projects like LLVM, ONNX etc. to make this project a reality.


🚧 Project Under Development. Stay tuned. We plan to release the first version in the third quarter of 2019.

About

Open Source for Deep Neural Network Compiler for All Platforms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 79.9%
  • Fortran 11.1%
  • Python 2.8%
  • CMake 2.7%
  • C 2.0%
  • Cuda 1.1%
  • Other 0.4%