首页 > 其他分享 >Rockchip RK3588 - 板级支持包之RKNPU

Rockchip RK3588 - 板级支持包之RKNPU

时间:2025-01-12 09:55:35浏览次数:1  
标签:RKNPU 包之 RK3588 Rockchip MAC 神经网络 rockchip NPU

----------------------------------------------------------------------------------------------------------------------------

开发板 :ArmSoM-Sige7开发板
eMMC64GB
LPDDR48GB
显示屏 :15.6英寸HDMI接口显示屏
u-boot2017.09
linux5.10
----------------------------------------------------------------------------------------------------------------------------

在《Rockchip RK3588 - Rockchip Linux SDK Buildroot文件系统构建》我们对Buildroot文件系统进行了详细的介绍,不过不知道你有没有留意到在配置环节【配置Target packages】中,需要配置Rockchip板级支持包,这些板级支持包是由Rockchip提供的,本节的目的实际上就是研究部分核心板级支持包,比如OpenGL ESrknpu

至于为什么去研究这些很简单,比如我们自己在做ubuntu根文件系统的时候,我们通常需要移植适配于硬件的动态库,因此我们就需要参考Rockchip Linux SDK文件系统的实现。

一、板级支持包回顾

回顾《Rockchip RK3588 - Rockchip Linux SDK Buildroot文件系统构建》文章【配置Target packages】小节中的配置:

Target packages ---> 
	Hardware Platforms  --->
		[*] Rockchip Platform  --->
			Rockchip SoC (rk3588)  --->                                                    
				 ( ) rk3358 chip
				 (X) rk3588 chip
				 ......
			[*]   Rockchip Camera Engine For ISP
			Rockchip BSP packages  --->   // Rockchip板级支持包,很重要
            	[*]   Rockchip Camera Engine 3A service run in booting
            		Specify a directory to store xml speed up bin (disabled)  --->
            	()    Rockchip Camera Engine IQ xml file 
                [ ] rockchip common algorithm
                [*] gstreamer1-rockchip
                [*] A rockchip-mpp V4L2 wrapper plugin for chromium V4L2 VDA  
                [ ] Rockchip NPU power control for linux    
                [ ] Rockchip NPU power control combine for linux
                [ ] rk n4 camera  
                [ ] Rockchip recovery for linux  
                [ ] rknpu
                [ ] rknpu pcie   
                [ ] rknpu2
                [ ] rknn_demo 
                [*] rockchip script 
                ()    default PCM
                [ ]   rkscript iodomain notice script
                ......
                [ ] Rockchip rkupdate for linux
                [*] rkwifibt 
                [ ]   Enable static   
                [ ] rkwifibt wireless applicantion
                [*] rockchip-alsa-config
                [*] rockchip-rga 
                [*]   prefer using rockchip-rga
                [*] rockchip-mali
                ......
                [*]   wayland winsys
                [*]   GBM 
                [*]   OpenGL EGL
                [*]     OpenGL EGL Wayland 
                [*]   OpenGL ES
                [*]   OpenCL
                [ ]   Vulkan  
                [*] rockchip-mpp  --->
                ......

除了我们在OTA升级中介绍过的Rockchip recovery for linux,还有一堆其它的编译选项,比如rknpuOpenGL ES等,你可能好奇这些配置项是用来做什么的,但是请你按住性子往下看下去,我们会在后续文章一一介绍这些编译配置选项。

二、RKNPU介绍

2.1 NPU的由来

NPUNerual Processing Unit)是一种专门用于加速神经网络计算的处理器。

在深度学习技术刚开始流行的时候,人们主要使用通用计算设备,如CPUGPU,来执行神经网络计算。但是,随着神经网络的复杂度和规模不断增加,传统的计算设备已经不能满足快速、高效地执行神经网络计算的需求。因此,研究人员开始探索如何设计一种专门用于加速神经网络计算的处理器,这就是NPU的由来。

早期的NPU主要是基于FPGAField Programmable Gate Array)实现的。FPGA 是一种可编程逻辑器件,可以通过编程实现各种不同的电路功能。由于FPGA具有高度的灵活性和可编程 性,可以用于实现各种不同类型的神经网络处理器。

2010年,斯坦福大学的研究人员提出了一种基于FPGA的神经网络加速器,可以实现高效的神经网络计算。此后,越来越多的研究人员开始尝试使用FPGA实现NPU

随着深度学习技术的不断发展和普及,NPU的研究和开发也取得了越来越多的进展;

  • 2013年,Google发布了一篇论文,介绍了一种名为Tensor Processing UnitTPU)的定制芯片,专 门用于加速深度学习模型的训练和推理。TPU采用了特定的硬件架构和优化算法,可以实现高效、低功耗的神经网络计算。TPU的成功引起了业界的广泛关注,也促进了NPU的发展。 随后,其他公司也开始研发自己的NPU
  • 2015年,华为发布了一款名为Kirin 950的处理 器,集成了一种名为Neural Processing UnitNPU)的模块,用于加速神经网络计算;
  • 2017年,苹果公司在2017年发布的A11芯片中集成了神经网络处理器,用于支持人脸识别等功能;
  • 2018年,华为推出了全新的昇腾(Ascend)系列处理器,其中包括专门用于加速深度学习计算的NPU模块。同年,英伟达推出了名为TensorCore的加速器,用于加速深度学习模型的训练和推理;

随着NPU技术的不断发展和普及,越来越多的公司开始将NPU集成到自己的芯片中,以 速神经网络计算。瑞芯微为了满足人工智能的需要,瑞芯微的处理器也逐渐集成了NPU,而瑞芯微处理器内置的NPU,就被称之为RKNPU

2.2 RKNPU介绍

到目前为止,RKNPU已经经过了几代的发展,趋近成熟;

  • RK3399proRK1808初次引入了RKNPU,相比传统的 CPUGPU ,在深度学习运算能力上有比较大幅度的提升;
  • 接下来在RV1109RV1126上使用了第二代NPU,提升了NPU的利用 率;
  • 第三代NPU应用在RK3566RK3568上,搭载全新NPU自研架构;
  • RK3588搭载的 为第四代NPU,提高了带宽利用率,支持了多核扩展。

RKNPU具体发展过程如下图所示:

img

RKNPU1.0RKNPU2.0被划分为了RKNPU,而RKNPU3.0RKNPU4.0RKNPU5.0被划分为了RKNPU2RKNPURKNPU2所使用的SDK和工具套件不同。

RK3568RK3588NPU具有的功能如下:

SoC类型 NPU功能描述
RK3588 (1)拥有三个NPU核心
(2)支持三核协同工作,双核协同工作和独立工作
(3)使用AHB接口配置 NPU
(4)使用AXI接口从内存中获取数据
(5)支持int4、int8、int16、float16、Bfloat16和tf32操作
(6)每个周期可进行1024x3 个int8 MAC操作
(7)每个周期可进行512x3 个int16 MAC操作
(8)每个周期可进行512x3 个float16 MAC操作
(9)每个周期可进行512x3 个bfloat16 MAC操作
(10)每个周期可进行256x3 个tf32 MAC操作
(11)每个周期可进行 2048x3 个int4 MAC操作
(12)每个核心有384KB的内部缓存
(13)支持转换的推理模型:TensorFlow、Caffe、Tflite、Pytorch、Onnx NN
RK3568 (1)NPU支持以下特性:
(2)使用AHB接口配置 NPU
(3)使用AXI接口从内存中获取数据
(4)支持int8、int16、float16、Bfloat16 操作(5)每个周期可进行512个int8 MAC操作
(6)每个周期可进行128 个int16 MAC操作
(7)每个周期可进行128 个float16 MAC操作
每个周期可进行128 个 bfloat16 MAC操作(8)4(9)每个核心有256KB的内部缓存
(10)支持转换的模型:TensorFlow、Caffe、Tflite、Pytorch、OnnxNN等

RKNN三核架构如下图所示:

img
2.2.1 RKNPU单核框架

RKNPU单核心架构如下图所示:

img

参考文章

[1] Rockchip_Quick_Start_RKNN_SDK_V1.3.0_CN.pdf

[2] AI嵌入式人工智能开发 --- 【1】初始RKNPU

标签:RKNPU,包之,RK3588,Rockchip,MAC,神经网络,rockchip,NPU
From: https://www.cnblogs.com/zyly/p/18666677

相关文章

  • 【RK3588 Linux 5.x 内核编程】-Misc设备驱动
    Misc设备驱动文章目录Misc设备驱动1、什么是Misc设备驱动2、Misc驱动API2.1Misc设备结构2.2注册Misc设备2.3注销Misc设备3、驱动实现4、驱动测试本文将详细介绍Linux内核中的Misc驱动。1、什么是Misc设备驱动MiscDriver是杂项设备的杂项驱......
  • 【RK3588 Linux 5.x 内核编程】-内核SPI子系统
    内核SPI子系统文章目录内核SPI子系统1、SPI子系统2、内核中的SPI协议驱动程序2.1获取SPI控制器驱动程序2.2将从设备添加到SPI控制器2.3配置SPI2.4数据传输2.5删除设备3、驱动实现SPI是流行的串行通信协议之一。SPI(SerialPeripheral......
  • RK3588M处理器详细介绍
    RK3588M详细介绍RK3588M是瑞芯微电子(Rockchip)推出的一款高性能、多功能的车规级芯片(SoC),专为车载信息娱乐系统(IVI)、智能座舱、工业控制等应用场景设计。以下是关于RK3588M的全面介绍:1.核心架构RK3588M采用先进的8核CPU架构,结合高性能与低功耗设计:4xCortex-A76:高性能......
  • 一文读懂!RK3576和RK3588有什么区别?-米尔嵌入式
    在中国半导体产业的版图中,瑞芯微作为国内SoC芯片领跑者,凭借其在处理器芯片设计领域的深厚积累和持续创新,推出很多智能应用处理器芯片,在嵌入式系统领域得到大规模的应用。RK3588和RK3576系列作为都是瑞芯微(Rockchip)高性能处理器代表,性能如何?价格如何?作为硬件产品开发的我们,这两款......
  • 【RK3588 Linux 5.x 内核编程】-内核IO复用与poll
    内核IO复用与poll文章目录内核IO复用与poll1、IO复用2、Poll的使用2.1用户空间程序中使用Poll2.2在内核空间实现Poll3、驱动程序实现4、用户空间程序实现5、验证让我们假设应用程序想要根据其状态读取/写入许多IO(输入和输出)的情况。在这种情况......
  • 【高清视频方案分享】12G-SDI与CameraLink输入输出,基于RK3588J+FPGA工业平台
    CameraLink协议介绍CameraLink是一种用于机器视觉和工业成像应用的标准化数字接口协议。它由自动化成像协会(AutomatedImagingAssociation)开发,旨在解决传统模拟视频接口的局限性,提供一种高效、可靠且易于使用的数字解决方案,以实现相机与图像处理系统之间的高速数据传输。 Cam......
  • RK3588开发板入门教程
    一、EVM-RK3588评估板外观二、常用系统信息查看1、查看系统内核版本信息,使用uname命令:$unamet-a2、查看操作系统信息:$cat/etc/issue3、查看系统内存使用情况:$free-h4、查看系统磁盘使用情况:$df-h5、查看磁盘和分区:#查看所有分区$fdisk-l......
  • RK3588主板/开发板Android12系统APK签名文件生成的方法,干货满满
    本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-I......
  • Qt编写RK3588视频播放器/支持RKMPP硬解/支持各种视音频文件和视频流/海康大华视频监控
    一、前言用ffmpeg做硬解码开发,参考自带的示例hw_decode.c即可,里面提供了通用的dxva2/d3d11va/vaapi这种系统层面封装的硬解码,也就是无需区分用的何种显卡,操作系统自动调度,基本上满足了各种场景的需要,这种方式很通用也便捷,但是一些特殊场景必须要用指定硬解码器名称的方式,比如指定......
  • Rust包之once_cell
    在Rust中,once_cell是一个非常有用的crate,用于实现惰性初始化(lazyinitialization)的单例模式。它允许某些值只被初始化一次,并且之后始终保持不变。该功能在需要全局变量或延迟计算的情况下非常实用。关键概念线程安全(sync)与非线程安全(unsync)•OnceCell:适用于单线程......