背景
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
毫秒级人脸检测-Tengine Lite with A311D(视频点击此处观看)
IPC(调试板)
Amlogic 的 IPC 方案也又啦!太卷了……
C308X 38板卡
相关链接传送门
我是圈圈虫,一个热爱技术的中年大叔。快加入 OPEN AI LAB 开发者技术 QQ 群(829565581)来找我吧!溜了~~
入群秘令:CNN
更多Tengine相关内容请关注Tengine-边缘AI推理框架专栏。