1. 鲁班猫板卡介绍

随着AI技术在各个行业快速发展,在云端部署到实际应用场景中存在隐私保护、通讯延时、成本等问题,将AI技术和嵌入式系统结合, 构建边缘计算成为当前技术热点之一。

但很多流行AI算法需要很多的算力和存储,对于嵌入式设备的算力、功耗有较高的要求, 随着AI处理器芯片研发,实现复杂的AI算法有很多方式成为可能。目前在嵌入式实现AI方式有:基于现有的嵌入式处理器对算法进行优化,基于GPU多处理器 或者基于专门的运算加速单元等等,这些方式有各自的优缺点,根据实际应用领域选择不同方案。

鲁班猫RK系列板卡是基于瑞芯微处理设计的一款低功耗、高性能单板电脑,保留了完善的硬件资源, 充分考虑了用户的使用需求,在成本优化的同时,引出了尽可能多的外设功能,该系列板卡可以应用于不同场景。 其中lubancat-zero系列和LubanCat-1/2系列板卡上是使用瑞芯微rk356X处理器(rk3566/rk3568), LubanCat-4/5板卡使用瑞芯微rk3588系列处理器,具体的硬件请参考下对应板卡的 产品规格书

rk356X/rk3588S处理器搭载了神经网络处理单元(NPU),具备强大的算力,支持主流的深度学习框架,拥有功能丰富的开发工具和开发案例, 同时硬件方面集成了GPU、VPU、RGA等单元,接下来将介绍下这些硬件运算单元。

1.1. CPU

lubancat-zero系列和LubanCat-1/2系列板卡上使用瑞芯微rk356X处理器(rk3566/rk3568),该处理器:

  • 四核Cortex-A55处理器,22nm先进制程,主频高达1.8Ghz

  • ARM Neon高级SIMD(单指令、多数据)支持加速媒体和信号处理计算

  • 包括支持单精度和双精度操作的VFP硬件

  • 支持Trustzone技术等等

LubanCat-4/5使用瑞芯微rk3588系列处理器,该系列处理器的特点:

  • 8核64位处理器,集成4核Cortex-A76和4核Cortex-A55大小核架构,以及单独的NEON协处理器

  • 大核支持最高2.4Ghz,小核最高支持1.8Ghz

  • 完整实现ARM架构v8-A指令集,ARM Neon Advanced SIMD(单指令、多数据)支持加速媒体和信号处理

  • 支持Trustzone技术等等

1.2. NPU(神经网络处理单元)

rk356X和rk3588都内置独立的NPU,分别高达1TOPS和6TOPS,支持整数8、整数16卷积运算,支持深度学习框架:TensorFlow、TF-lite、Pytorch、Caffe、ONNX等等。

NPU是专门用于神经网络的处理单元,它旨在加速人工智能领域的神经网络算法,如机器视觉和自然语言处理。随着人工智能的应用范围正在扩大,目前 提供各种领域的功能,包括面部跟踪、手势和身体跟踪、图像分类、视频监控、自动语音识别(ASR)以及高级驾驶员辅助系统(ADAS)等。

使用RKNPU,瑞芯微官方提供了RKNN组件,包括 RKNPU2RKNN Toolkit2RKLLM-ToolkitRKNPU驱动 等。

RKNPU2 开发套件有一个运行库(librknnrt.so等),提供c/c++编程接口,用来部署推理RKNN模型,接口适用于Linux或者Android系统。

RKNN Toolkit2 开发套件(Python接口)提供了在PC,Rockchip NPU平台上进行模型转换、量化功能、模型推理、性能和内存评估、量化精度分析、模型加密等功能。 该套件中还有一个 RKNN Toolkit Lite2 ,它提供了一个Python编程接口,可以在板端部署RKNN模型。

其中 RKNN模型 是瑞芯微为了加速模型推理而基于自身NPU硬件架构定义的一套模型格式,使用该格式定义的模型在Rockchip NPU上可以获得更高的性能。

RKLLM-Toolkit 是为用户提供在计算机上进行大语言模型(Large Language Model, LLM)的量化、转换的开发套件,支持将Hugging Face格式的大语言模型转换为 RKLLM模型。

RKNPU驱动 提供了NPU硬件接口程序,板卡系统固件都已经适配好。