MCPcopy Create free account
hub / github.com/ai-techsystems/deepC

github.com/ai-techsystems/deepC @v0.12

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.12 ↗ · + Follow
14,121 symbols 39,756 edges 1,824 files 1,061 documented · 8% updated 11mo agov0.12 · 2019-11-19★ 60327 open issues

Browse by type

Functions 10,470 Types & classes 3,651
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

deepC


Build Status PyPI version txt Financial Contributors on Open Collective

🏃‍♂️ Using deepC

Here are few of many ways.

  1. Try deepC with Colab Noteboook
  2. Install it on Ubuntu (or other debian derivatives) using pip install deepC
  3. Compile onnx model
  4. Use deepC with a Docker File

See more examples in tutorial dir.

📛 what is deepC?

deepC Compiler and inference framework is designed to enable and perform deep learning neural networks by focussing on features of custom ai-accelerators like micro-controllers, eFPGAs, cpus and other embedded devices like raspberry-pi, odroid, arduino, SparkFun Edge, risc-V and others.

deepC also offers ahead of time compiler producing optimized executable based on LLVM compiler tool chain specialized for deep neural networks with ONNX as front end.

📝 Design

Main components of deepC have 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 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 onnx

Once you are done, build dnnCompiler

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

📜 Output

find 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

➕ 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.


🕵️‍♂️ 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.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

Core symbols most depended-on inside this repo

Shape

Method 6,837
Function 3,633
Class 3,602
Enum 49

Languages

C++92%
Python7%
C1%
TypeScript1%

Modules by API surface

test/swig/tensorOperatorsGenerated.py341 symbols
packages/eigen-eigen-323c052e1731/unsupported/test/mpreal/mpreal.h206 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/util/ForwardDeclarations.h152 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/util/Meta.h149 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/MathFunctions.h145 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/functors/UnaryFunctors.h141 symbols
packages/eigen-eigen-323c052e1731/unsupported/Eigen/CXX11/src/util/CXX11Meta.h131 symbols
packages/eigen-eigen-323c052e1731/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h130 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/CoreEvaluators.h130 symbols
packages/eigen-eigen-323c052e1731/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h127 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/arch/SSE/PacketMath.h125 symbols
packages/eigen-eigen-323c052e1731/Eigen/src/Core/util/XprHelper.h122 symbols

For agents

$ claude mcp add deepC \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page