Tengine完美适配国产端侧芯片龙头企业瑞芯微RV1109/RV1126芯片,助力国产芯片开启腾飞之路

近两个月来,由于国际局势导致海思的芯片供应链出现问题,海思的安防芯片缺口逐渐扩大,从华南地区逐步扩散至其他城市,从高端型号延伸到中低端型号,价格一路飙涨,能否有持续稳定的货源成为了从业者的心头病。

国产端侧芯片龙头企业之一 瑞星微(Rockchip)在今年的 6 月份发布了两款高低搭配、内置NPU、面向 IPC的SoC: RV1126、RV1109。这两块芯片的及时发布,算是缓解了大家的燃眉之急。

RV1109/1126常规参数

Tengine完美适配国产端侧芯片龙头企业瑞芯微RV1109/RV1126芯片,助力国产芯片开启腾飞之路

Tengine完美适配国产端侧芯片龙头企业瑞芯微RV1109/RV1126芯片,助力国产芯片开启腾飞之路

Tengine 完美适配RV1109/1126

算法模型迅速、高效化的工业化落地,是当前行业的面临的一大问题。原本学术界与工业界就存在较大 GAP,加上 NPU 芯片的突然兴起,说是为了提高工业界的效率,事实上很多常规的的学术界模型都较难快速部署到 NPU 芯片上。本质原因是芯片产品的迭代周期往往以年为计数单位,且NPU属于低可编程性ASIC芯片,很多NPU没有较完整的指令集,直接对寄存器进行操作;而学术界的各种 Operator 是以季度为单位在更新,因此模型算子不支持的问题在NPU部署场景预期会长期存在,现在业界对NPU部署很多基于较为传统的模型或者基于NPU可支持的操作选型模型。

为了解决AI边缘应用开发部署遇到的真实问题,OPEN AI LAB的边缘AI推理框架Tengine团队今年全力投入到赋能 AI 芯片的工作中,打通从算法到AI芯片部署的环节,助力解决开发者开发者自行适配难、效率低、性能差的问题。

Tengine团队也在今年八月开始了对RV1109/RV1126的适配支持,目前Tengine已经完美适配 RV1109/RV1126 芯片。Tengine 对RV1109/1126的适配做到了算子级的封装调度,框架自动对底层算力资源进行调度,包括NPU、CPU用于神经网络推理以及2D图形加速用于神经网络图片前后处理。

Tengine完美适配国产端侧芯片龙头企业瑞芯微RV1109/RV1126芯片,助力国产芯片开启腾飞之路

采用 Tengine 已有的模型格式 tmfile,可以对上支持非常全面的训练框架与模型格式:

Tengine完美适配国产端侧芯片龙头企业瑞芯微RV1109/RV1126芯片,助力国产芯片开启腾飞之路

很多开发者在部署的时候会有个想法:如果 CPU 能跑起来,GPU、NPU 就能跑起来,那该多好;如果这颗NPU花了九牛二虎之力跑起来,换另一颗可以不用再重新从头来一次多好。Tengine仅需在原有 CPU demo 的基础上,增加2行代码,就能实现这两款芯片运行原来在Tengine上可运行的算法模型。

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);

与此同时,Tengine支持了异构计算自适应混合精度切图,在加载模型时,将计算图切割成能运行在不同硬件后端的子图,在模型加载的时候,根据后端硬件的情况,自动完成 subgraph 生成,尽量减少算法工程师手工切割模型,促进算法模型快速迭代、落地。

极大增强了对各种网络模型兼容性。进一步降低了 RV1109/RV1126 两款芯片的工程部署难度。

Tengine完美适配国产端侧芯片龙头企业瑞芯微RV1109/RV1126芯片,助力国产芯片开启腾飞之路

  • 算力需求大、操作固定的骨干网络由 NPU 出力;
  • 算力需求低、操作风云变幻的处理由 CPU 断后。

Int8精度调优

NPU出于Die Size、能耗、算力指标考虑,大多采用 8bit 整型量化。既然量化,必然导致精度下降。由于 NPU 是个黑盒子,模型适配尚且有点难度,这下精度又掉了!是非常打击部署同学的耐心。

Tengine 在量化精度调优方面有着丰富的积累,是国内最早实装CPU int8的AI框架。从K-L校准到DFQ到量化训练都有不错的工程实践结果。最近更是总结出一套组合拳,已经提前完成类似NPU芯片的精度补偿,同时也快速迁移到 RV1126 的版本中,得到较为满意的结果。

由于精度数据涉及模型、测试数据集等诸多因素,没有一个较好的benchmark,大家可以后台联系我们获取这方面信息。

人脸参考设计方案

Tengine在适配完RV1109/1126之后,展开了应用的移植工作,目前已经完成人脸检测、关键点的应用案例移植,满足IPC抓拍机的需求;人脸闸机应用正在紧锣密鼓的开发中!

有小姐姐有真相系列

对Tengine感兴趣、对人脸抓拍方案(小姐姐)感兴趣的朋友们可以后台联系我们获取试用版。(加入QQ群:829565581)

关于开源三两言:NPU涉及芯片原厂知识产权,我们正在探索开放GitHub试用版的可能性。

Powered by Tengine, AI Anything

Tengine是OPEN AI LAB开放的边缘AI推理框架,重点关注嵌入式设备上的边缘AI计算推理,为海量AIoT应用和设备提供高性能AI推理的技术支持。Tengine于2017年在GitHub( https://github.com/OAID/Tengine )开源,一方面可以通过异构计算技术同时调用CPU、GPU、DSP、NPU 等不同计算单元来完成AI网络计算,另一方面,它和TensorFlow、Caffe、MXNet 等训练框架相互配合,并且支持Pytorch、PaddlePaddle 等业内主流框架,并且是国际上为数不多的通过ONNX官方认证的战略合作伙伴之一。技术层面上,其通过如图优化、对arm 架构处理器系列的硬件后端性能深度优化、低精度推理、异构计算调度等技术打造端测最高效的AI计算框架,广泛受到开源社区开发者欢迎,在今年4月CSDN发布的《中国 AI 应用开发者报告》上,被评为“开发者最喜爱的本土 AI 框架工具”。

作为拥有完全自主知识产权的开源AI推理框架,Tengine与众多芯片厂商建立了深度合作关系,致力于打造AIoT底层生态圈,为AIoT应用开发打通在各类硬件平台部署算法的工作流,加速面向场景的AI算法在嵌入式终端/边缘上快速迁移,大大推动了AIoT领域技术的发展,也加快了AIoT领域产业化的步伐。