圈圈虫 · 2021年02月19日

Tengine 支持 NPU 第3篇-TIM-VX

背景

2020年以来由于特殊的国际环境的影响下,原本在 AI边缘计算 占有绝对优势的海思平台 Hi35xx 系列 SoC 最终一货难求,导致国内其他 AI SoC 平台如同雨后春笋般激增。无论是真正的自主研发,还是套壳NVDLA,或直接购买已有 NPU IP,只要能解决行业刚需问题,就是一颗优秀的 AI SoC。本文主要介绍国内优秀的 NPU IP 供应商——芯原微电子(VeriSilicon)最近开源的 TIM-VX 项目,以及 Tengine 适配 TIM-VX 加速器的初步进展。

VeriSilicon

TIM-VX

TIM-VX 的全称是 Tensor Interface Module for OpenVX,是 VeriSilicon 提供的用于在支持 OpenVX 的其自研 ML 加速器 IP 上实现深度学习神经网络模型部署。它可以做为 Android NN、TensorFlow-Lite、MLIR、TVM、Tengine 等 Runtime Inference Framework 的 Backend 模块。

主要特性:

  • 支持超过130种算子,提供量化、浮点格式支持;
  • 通过简单易用的 API 来实现 Tensor 和 Operator 的创建;
  • 灵活的计算图构建;
  • 内置自定义层扩展;
  • 丰富的调试函数接口;
  • 提供 X86 平台 Simulator 功能。

什么是 OpenVX

OpenVX™ 是 Khronos 组织提出的一种计算机视觉应用程序跨平台加速标准。OpenVX 给对性能和功耗敏感的计算机视觉处理应用提供软件编程接口,特别是在嵌入式和实时的应用案例中,例如人脸、身体和手势跟踪、智能视频监控、先进的驾驶辅助系统(ADAS)、对象和场景重建、增强现实、视觉检测、机器人等应用。

下图是 OpenVX 的成员合照

关于 OpenVX 更加详细的介绍及最新版本动态可以直接关注 Khronos OpenVX 的版块

https://www.khronos.org/openvx/​www.khronos.org

Tengine 适配 TIM-VX

最近一年,由于通过对 Tengine 代码的重构(Tengine Lite)已实现良好的前后端分离、异构切图、混合精度计算的功能。

tengine architecture 2021-02-08

因此在适配 TIM-VX 后端的时候并没有较大的 gap。启用 TIM-VX 后端模式时,加载 Tengine 专有的网络模型存储文件 tmfile 后,框架自动对原始计算图按照 TIM-VX 已配置支持的算子列表进行子图(Subgraph)切割。

Graph Partition

同时 Tengine 由于支持多种量化方案(Int8、UInt8、Per-Layer、Per-Channel),当然也无缝支持 TIM-VX 私有的量化策略。所以原理上可以继承 Tengine Quantization Tool 优秀的 PTQ 精度调优成果。

项目进展

Tengine 的小伙伴赶在2021年春节前,已基于 Khadas VIM3x86\_64 simulator 完成 Tengine with TIM-VX PoC 功能发布

Khadas VIM3

具体使用指南请参考:

https://github.com/OAID/Tengine/blob/tengine-lite/doc/npu\_tim-vx\_user\_manual.md​github.com

后续计划

后续 Tengine 的小伙伴将在开源社区协同 TIM-VX 的工程师持续开展合作,支持更多的硬件设备和适配更广泛的网络模型。团队的大目标是通过 Tengine 的开源项目希望能给对 AI SoC 芯片感兴趣的伙伴提供一种通用可靠的参考设计,赋能行业创造出更多有价值、有趣的 AIoT 产品。欢迎其他 NPU 厂家加入我们的开源项目~

插个楼,Tengine 已支持 NV GPU 各平台,欢迎试用。

Tengine在GPU上支持CUDA/TensorRT加速啦

传送门

https://github.com/OAID/Tengine​github.com

VIM3 | Khadas丨中文站​www.khadas.cn!

https://github.com/VeriSilicon/TIM-VX​github.com

相关链接传送门

我是圈圈虫,一个热爱技术的中年大叔。快加入 OPEN AI LAB 开发者技术 QQ 群(829565581)来找我吧!溜了~~
入群秘令:CNN

更多Tengine相关内容请关注Tengine-边缘AI推理框架专栏。
推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息