10

圈圈虫 · 2020年10月14日

Tengine 支持 AML、RK NPU 第2篇-A311D

背景

2020年风云变幻,原本以为嵌入式端侧 AI 芯片“大菊已定”。

但国内最大智能电视芯片厂商——晶晨半导体(Amlogic)

却在从2019年开始,陆陆续续(悄悄咪咪)发布了S905D3,A311D,C308X 等几款能覆盖边缘计算盒子、智能IPC应用场景的 AI SoC。

参数对比

先简单介绍下当前国内可满足采用 NPU方案的 IPC 或 边缘计算盒子,市场假象划分(为什么是假象,因为是通过各种道听途说,拍脑袋总结出来的,仅供参考,别对号入座,若有误导请及时斧正)。

然而最近,特殊原因导致海思的芯片供应链出现问题,大家都表示担忧。难过归难过,企业/项目/生活还是要坚持过下去的。通过奇怪的渠道从 Amlogic 的芯片池中找到了两三款临时应急方案,算是歪打正着缓解了大家的燃眉之急。

常规参数

AI 性能

啊~我尽力补全!

从参数可以看出,Amlogic 已有芯片能够实现 Hi3519A 替代方案的功能。

新问题

平台切换,需要成本,而内置 NPU 的 SoC 软件开发,最担心的两个地方是:

学习成本高

其实,圈圈虫入坑AI以来,尝试过端侧各种AI芯片的开发、部署工具。易用性上 Amlogic 的 Acuity-Toolkit 已经算是一线大厂水准的工具了。但是有没有更简单粗暴的方案?

思考.jpg

早在一个月前,Tengine Lite 已经完美适配 A311D 等芯片,采用 Tengine 已有的模型格式 tmfile,仅需在原有 CPU demo 的基础上,增加2行代码,就能实现这两款芯片运行。

CPU 代码

/* load model, create tengine nn graph */ 
graph_t graph = create_graph(vx_context, "tengine", model_file);

NPU 代码

/* create device context */ 
context_t vx_context = create_context("vx", 1); 

/* add npu device */ 
add_context_device(vx_context, VXDEVICE); 

/* load model, create tengine nn graph */ 
graph_t graph = create_graph(vx_context, "tengine", model_file);

与此同时,我们支持了异构计算自适应混合精度切图,在加载模型时,将计算图切割成能运行在不同硬件后端的子图,极大增强了对各种网络模型兼容性。进一步降低了 A311D 等芯片的工程部署难度。

NPU模型精度

哎,每逢 NPU 应用,都会碰见精度问题,那怕是之前嵌入式AI芯片“大菊已定”的 NNIE,也有网络模型量化成 .wk 文件后精度翻车的案例。所以还不得不提供了量化重训练工具。

其实现在的端侧 AI NPU,量化策略大同小异(毕竟要支持全球最大的AI生态公司,要按照别人的游戏规则来)。

早在上半年疫情期间,Tengine 组的 HH 小哥哥,被关在家里,从最近模型压缩量化相关的 paper 中总结出一套组合拳,已经提前完成类似 NPU 芯片的精度补偿,同时也快速迁移到 A311D 的适配中,得到较为满意的结果。

端侧 AI 芯片量化,trick 太多,圈圈虫 也在努力推动公司进行开源/开放。欢迎大家积极关注 Tengine GitHub 社区(求 star……)

Tengine

Tengine 是 OPEN AI LAB 推出的面向 AIoT 场景 的 AI 应用开发平台,致力于解决 AIoT 产业链碎 片化问题,加速 AI 产业化落地。Tengine 专为 AIoT 场景设计,同时具有跨平台、异构调度、芯片底层加速、超轻量无依赖、完整开发移植部署工具链几大特点。Tengine 兼容多种操作系统和深度学习算法框架,简化和加速面向场景的 AI 算法在嵌入式边缘设备上快速迁移,以及实际应用部署落地。

开放的边缘AI计算框架

异构/加速-激活芯片性能

杂谈

Khadas

Khadas 隶属于深圳市世野科技有限公司的开源品牌,目前是市面上能买到的最好看的 A311D SBC(大佬说不能叫开发板,应该是 Single Board Computer)。

VIM3 (A73+A53+5Tops)

人脸面板机(调试板)

Tengine 团队已经完成了基于 VIM3 开发板的 NPU 人脸检测相关模型适配。

Khadas VIM3(A311D) + Tengine Lite + NPU FaceDetection & Landmark
image.png
毫秒级人脸检测-Tengine Lite with A311D(视频点击此处观看

IPC(调试板)

Amlogic 的 IPC 方案也又啦!太卷了……


C308X 38板卡

相关链接传送门

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

更多Tengine相关内容请关注Tengine-边缘AI推理框架专栏。
推荐阅读
关注数
3391
内容数
68
Tengine是一款轻量级模块化高性能的神经网络推理引擎 ;欢迎体验Tengine,[链接] 《Tengine开发者入门资料包》[链接]
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息