Apache License 2.0

项目介绍

ai-techsystems/deepC 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 Apache License 2.0 许可证,目前获得 605 个 Star、92 次 Fork。

仓库全名
ai-techsystems/deepC
开源许可证
Apache License 2.0
Star 数
605
Fork 数
92
未关闭 Issue
27

README 摘要

deepC The deepC is a vendor independent deep learning library, compiler and inference framework designed for small form-factor devices including μControllers, IoT and Edge devices 🏃‍♂️ Using deepC Here are few of many ways. 1. Try deepC with Colab Noteboook 1. Install it on Ubuntu, raspbian (or any other debian derivatives) using 1. Compile onnx model- read this article or watch this video 1. Use deepC with a…

完整内容见 GitHub 原始 README 或本页 。

常见问题

deepC 用什么语言开发?

主要使用 C++ 编写,采用 Apache License 2.0 许可证,目前有 605 个 Star。

deepC 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 deepC 的源码?

可以直接克隆仓库:git clone https://github.com/ai-techsystems/deepC.git,默认分支为 master;安装与运行步骤见仓库 README。

deepC 最近还在维护吗?

仓库最近一次更新为 2025年7月23日,当前有 27 个未关闭 Issue;Star 数为 605,可作为社区活跃度的参考。

关于

vendor independent TinyML deep learning library, compiler and inference framework microcomputers and micro-controllers

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

语言占比

C
C++
CMake
CSS
Cuda
Dockerfile
Fortran
JavaScript
Jupyter Notebook
Makefile
Python
SWIG
Shell

Release

README

deepC

PyPI version Downloads Apache2.0 License Contributors Chat

The deepC is a vendor independent deep learning library, compiler and inference framework designed for small form-factor devices including μControllers, IoT and Edge devices

🏃‍♂️ Using deepC

Here are few of many ways.

  1. Try deepC with Colab Noteboook
  2. Install it on Ubuntu, raspbian (or any other debian derivatives) using pip install deepC
  3. Compile onnx model- read this article or watch this video
  4. Use deepC with a Docker File

See more examples in tutorial dir.

📛 what is deepC?

deepC library, compiler and inference framework is designed to enable and perform deep learning neural networks by focussing on features of small form-factor devices like micro-controllers, eFPGAs, cpus and other embedded devices like raspberry-pi, odroid, arduino, SparkFun Edge, risc-V, mobile phones, x86 and arm laptops among others.

edge Devices

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

💻 Development

Build and start modifying deepC locally from source code with following steps

⭕ Ubuntu 18.04

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 protobuf-compiler libprotoc-dev
sudo pip3 install numpy==1.15.0

Once you are done, build deepC

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

⭕ Mac OS / Windows 10

Make sure you have the below pre-requisites

Mac OS:
Windows 10:

Once you are done, build deepC inside docker container

git clone https://github.com/ai-techsystems/deepC.git
cd deepC
python buildDocker.py
📜 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 'deepC/src'
make -C core
make[2]: Entering directory 'deepC/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

Current Support

Supported Architectures Status
Arm ✔️
Armv7 ✔️
Arm64 ✔️
AMD64 ✔️
ppc64le ✔️
Supported OS Distributions Status
Linux Ubuntu 18.04 ✔️
Linux CentOS 6 ✔️
Linux Arch Linux ✔️
Linux Manjaro ✔️
Windows 1803 and above ✔️
Mac OS Sierra and above ✔️

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

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

Organizations

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


Built on/with deepC

Products

  1. No code TinyML platform, built with deepC technology.
  2. No code TinyML Book, with a chapter on deepC.

Papers

Paper Citations

Book Chapter

  1. deepC Chapter in book Introduction to TinyML, available on Amazon and other retailers

评论

暂无评论