This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

OPEN AI LAB发布嵌入式前端深度学习框架Tengine

1 Tengine概述

Tengine 是OPEN AI LAB 针对前端智能设备开发的软件开发包,核心部分是一个轻量级,模块化,高性能的AI 推断引擎,并支持用DLA、GPU、xPU作为硬件加速计算资源异构加速。

  • Graph Inference C API:提供给应用开发的 C API 接口。在C API接口之上,还可以构造出python,Java,JavaScript等接口。同时,为了兼容客户已有基于Caffe/Tensorflow的应用, Tengine API 封装了Caffe(C++)  、Tensorflow(C) 的接口。
  • Serialization API:是一个持久化的接口,以动态库的形式提供不同AI框架存储格式的加载,比如Caffe/MXNet等。客户也可以定制自己的格式,并实现对应的serializer模块来加载到系统中。
  • Plugin API:是为Operator的定义接口,为用户提供自定义DL 操作的接口。
  • HAL: HAL 层定义了和硬件的接口。不同类型的硬件,通过HAL层将自己的能力上报给Tengine。Tengine 通过HAL调用硬件的计算资源以及和硬件进行数据交互。

2 Tengine的主要特点

  1. 针对Arm CPU 微架构以及 SoC系统高度优化的CPU性能,适配Arm Cortex-A7/A17/A53/A72/A73,后续还将适配Cortex-A55/A75;
  2. 可以直接加载caffe/mxnet/tensorflow 模型文件,而不需要事先转换;
  3. 基于Caffe/Tensorflow开发的应用,仅需重新编译就可以利用Tengine的加速性能;
  4. 针对内存优化设计的框架和算子接口定义,极大减少了内存占用;
  5. 模块化设计:通过扩展接口可以定义和实现新的operator;
  6. 核心模块不依赖于第三方库,只依赖于系统C/C++运行库;
  7. 支持多设备异构计算:可以利用CPUs,GPUs和DLAs进行运算;
  8. 支持层融合、8位量化等优化策略。

3 Tengine性能

Tengine在RK3399上测试性能数据如下(单位:ms):

Tengine在RK3288上测试性能数据如下(单位:ms):

与Caffe+OpenBLAS相比,Tengine单核即超过原本双核的性能,资源利用率大幅度提升。

4 Tengine 的兼容性

Tengine支持以下operator,后续将逐步支持更多operator。

具体规格参考:https://github.com/OAID/Tengine/blob/master/doc/operator_ir.md

Tengine的开源版本完整支持Rockchip RK3399,链接:https://github.com/OAID/Tengine