Package: deepC
deepC🏃‍♂️ Using deepCHere are few of many ways.Try deepC withColab NoteboookInstall it on Ubuntu (or other debian derivatives) usingpip install deepCCompile onnx modelUse deepC with aDocker FileSee more examples intutorialdir.📛 what is deepC?deepC Compiler and inference framework is designed toenable and performdeep learning neural networks by focussing on features of custom ai-accelerators like micro-controllers, eFPGAs, cpus and other embedded devices likeraspberry-pi,odroid,arduino,SparkFun Edge,risc-Vand others.deepC also offers ahead of time compiler producing optimized executable based onLLVM compiler tool chainspecialized for deep neural networks withONNXas front end.📝 DesignMain components ofdeepChave 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.Read more athigh level design document💧 PreRequisitesONNX 1.5LLVM 8.0Python 3.6SWIG 3.0⚙ Installationbuild and install dnn Compiler locally from source code with following steps⭕ Ubuntu 18.04You can install ubuntu18.04 on windowsWatch HowTo video hereorGoogle itFollow the steps to install pre-requisitessudo apt-get update
sudo apt-get install build-essential python3.6-dev python3-pip swig doxygen clang-format clang clang-8 llvm-8 llvm-8-dev
sudo pip3 install numpy onnxOnce you are done, build dnnCompilergit clone https://github.com/ai-techsystems/dnnCompiler.git 
cd dnnCompiler
make📜 Outputfind include src swig -name \*.h -print0 -o -name \*.cpp -print0 | xargs -0 -P8 -n1 clang-format -i
make -C src
make[1]: Entering directory 'dnnCompiler/src'
make -C core
make[2]: Entering directory 'dnnCompiler/src/core'
compiling broadcast.cpp
/usr/bin/g++ -O3 -Wall -std=c++14 -fPIC -march=native -msse2 \
    -isystem ./packages/eigen-eigen-323c052e1731 -I./include \
    -c broadcast.cpp -o obj/broadcast.o
compiling tensor.cpp
...
...
/usr/bin/g++ -shared  ./obj/dnnc_swig.o ./obj/dnnc_pyutils.o ./obj/dnnc_api.o -o lib/libdnnc.so
ln -s -f lib/libdnnc.so _dnnc.so
/usr/bin/python3 ../test/swig/basic.py➕ Contributednn 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.🙏 AcknowledgementWe acknowledge the efforts predecessor projects likeLLVM,ONNXetc. to make this project a reality.🕵️‍♂️ Why compiler❔dnnCompiler is targeted towards devices with small formfactor like microcontrollers, which are part of all sorts of household devices: think appliances, cars, and toys. In fact, there are around 30 billion microcontroller-powered devices produced each year. They're cheap, require very little energy, and are very reliable.By bringing deep learning models to tiny microcontrollers, we can boost the intelligence of billions of devices that we use in our lives, without relying on expensive hardware or reliable internet connections. Imagine smart appliances that can adapt to your daily routine, intelligent industrial sensors that understand the difference between problems and normal operation, and magical toys that can help kids learn in fun and delightful ways.🚧 Project Under Development.Stay tuned. We plan to release the first version in Nov. 2019.ContributorsCode ContributorsThis project exists thanks to all the people who contribute. [Contribute].Financial ContributorsBecome a financial contributor and help us sustain our community. [Contribute]IndividualsOrganizationsSupport this project with your organization. Your logo will show up here with a link to your website. [Contribute]