ランキングに戻る

OAID/Tengine

C++

Tengine is a lite, high performance, modular inference engine for embedded device

armmachine-learningartificial-intelligencecnntensorflowpytorchonnxx86-64mipscudatensorrtacl
スター成長
スター
4.5k
フォーク
980
週間成長
Issue
243
2k4k
2017年12月2020年10月2023年9月2026年7月
README

简体中文 | English

Tengine

GitHub license GitHub Workflow Status Test Status codecov Language grade: C/C++

简介

TengineOPEN AI LAB 主导开发,该项目实现了深度学习神经网络模型在嵌入式设备上的快速高效部署需求。为实现在众多 AIoT 应用中的跨平台部署,本项目使用 C 语言进行核心模块开发,针对嵌入式设备资源有限的特点进行了深度框架裁剪。同时采用了完全分离的前后端设计,有利于 CPU、GPU、NPU 等异构计算单元的快速移植和部署,降低评估、迁移成本。

Tengine 核心代码由 4 个模块组成:

  • device:NN Operators 后端模块,已提供 CPU、GPU、NPU 参考代码;
  • scheduler:框架核心部件,包括 NNIR、计算图、硬件资源、模型解析器的调度和执行模块;
  • operator:NN Operators 前端模块,实现 NN Operators 注册、初始化;
  • serializer:模型解析器,实现 tmfile 格式的网络模型参数解析。

架构简析

Tengine 架构

快速上手

编译

  • 快速编译 基于 cmake 实现简单的跨平台编译。

示例

  • examples 提供基础的分类、检测算法用例,根据 issue 需求持续更新。
  • 源安装 提供ubuntu系统的apt-get命令行安装和试用,目前支持x86/A311D硬件。

模型仓库

转换工具

  • 预编译版本 :提供 Ubuntu 18.04 系统上预编译好的模型转换工具;
  • 在线转换版本 :基于 WebAssembly 实现(浏览器本地转换,模型不会上传;
  • 源码编译 :建议在服务器或者PC上编译,指令如下:
    mkdir build && cd build
    cmake -DTENGINE_BUILD_CONVERT_TOOL=ON ..
    make -j`nproc`
    

量化工具

  • 源码编译:已开源量化工具源码,已支持 uint8/int8。

速度评估

  • Benchmark 基础网络速度评估工具,欢迎大家更新。

NPU Plugin

  • TIM-VX VeriSilicon NPU 使用指南。

AutoKernel Plugin

  • AutoKernel 是一个简单易用,低门槛的自动算子优化工具,AutoKernel Plugin实现了自动优化算子一键部署到 Tengine 中。

Container

Roadmap

致谢

Tengine Lite 参考和借鉴了下列项目:

License

澄清说明

  • [在线上报功能] 在线上报功能主要目的是了解Tengine的使用信息,信息用于优化和迭代Tengine,不会影响任何正常功能。该功能默认开启,如需关闭,可修改如下配置关闭:(主目录 CMakeLists.txt ) OPTION (TENGINE_ONLINE_REPORT "online report" OFF)

FAQ

技术讨论

関連リポジトリ
tinygo-org/tinygo

Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.

GoGo ModulesOthermicrocontrollertinygo
tinygo.org
17.6k1.1k
alibaba/MNN

MNN: A blazing-fast, lightweight inference engine battle-tested by Alibaba, powering high-performance on-device LLMs and Edge AI.

C++Apache License 2.0mnnconvolution
15.7k2.4k
Azure/azure-quickstart-templates

Azure Quickstart Templates

BicepMIT Licenseazuretemplates
aka.ms/azqst
14.8k16.2k
mytechnotalent/Reverse-Engineering

A FREE comprehensive reverse engineering tutorial covering x86, x64, 32-bit/64-bit ARM, 8-bit AVR and 32-bit RISC-V architectures.

AssemblyApache License 2.0reverse-engineeringhacking
14k1.4k
s-matyukevich/raspberry-pi-os

Learning operating system development using Linux kernel and Raspberry Pi

CMIT Licenseraspberry-pilinux-kernel
13.9k1.3k
isl-org/Open3D

Open3D: A Modern Library for 3D Data Processing

C++Othermesh-processingcomputer-graphics
open3d.org
13.8k2.6k
hq450/fancyss

fancyss is a project providing tools to across the GFW on asuswrt/merlin based router.

ShellGNU General Public License v3.0merlinshadowsocks
13.7k3.2k
ShiqiYu/libfacedetection

An open source library for face detection in images. The face detection speed can reach 1000FPS.

C++Otherface-detectioncnn
12.8k3k
RT-Thread/rt-thread

RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/

CApache License 2.0embedded-systemskernel
rt-thread.io
12.1k5.4k
platformio/platformio-core

Your Gateway to Embedded Software Development Excellence :alien:

PythonPyPIApache License 2.0iotembedded
platformio.org
9.4k897
unicorn-engine/unicorn

Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)

CGNU General Public License v2.0emulatorframework
unicorn-engine.org
9.2k1.5k
capstone-engine/capstone

Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.

Creverse-engineeringdisassembler
capstone-engine.org
8.9k1.7k