基于FPGA人工智能加速器的数据存储和传输方法技术

技术编号:33536579 阅读:32 留言:0更新日期:2022-05-19 02:18
本发明专利技术提供了一种基于FPGA人工智能加速器的数据存储和传输方法,本发明专利技术在人工智能领域中主要针对硬件设备功耗受限制的场景中性能提升问题进行深入研究,从人工智能加速器架构方面进行设计并优化。本发明专利技术基于FPGA人工智能加速器的数据存储和传输方法不但实现了高效地存储和传输数据,且对卷积神经网络进行加速,而且还有效提高吞吐量降低延迟,适用于对严格限制功耗和要求低延迟的应用场景,提高了智能硬件的计算效率。智能硬件的计算效率。智能硬件的计算效率。

【技术实现步骤摘要】
基于FPGA人工智能加速器的数据存储和传输方法


[0001]本专利技术涉及一种基于FPGA人工智能加速器的数据存储和传输方法,属于图像算法


技术介绍

[0002]随着人们对深度学习的深入研究,基于卷积神经网络算法精度得到了大幅提高,已经开始越来越广泛地应用于交通、安防、自动驾驶、航空航天等领域。改进后算法通过卷积神经网络提取图像中所需要的信息实现对图像中目标的定位和分类,涉及大量并行性运算,目前大多数卷积神经网络主要都是基于CPU、GPU实现的,基于CPU的卷积神经网络处理器无法利用卷积神经网络高并行性的特性,无法获得较高的计算吞吐量,并且其也存在功耗过高的问题。基于GPU的卷积神经网络处理器虽然可以利用卷积神经网络的计算并行性,获得很高的计算吞吐量,但是其功耗过高限制了其应用在嵌入式等对功耗要求高的场景。
[0003]另一方面,伴随着物联网时代到来,网络数据传输量激增,给云端数据中心运算处理带来极大负担,而边缘计算技术能分担服务器端的运算压力。为了满足边缘计算的需求,人们进行了大量研究,包括专用集成电路和基于FPGA的深度学习加速器。由于设计灵活性高和开发时间短的优点,FPGA已广泛应用于高效的深度学习。但是,大部分卷积神经网络的权重数量多,运算量庞大,需要存储资源、运算资源充足的FPGA才能满足需求。
[0004]有鉴于此,针对图像识别领域和人工智能领域中硬件设备功耗受限导致性能不够满足需求的问题,确有必要提出一种基于FPGA人工智能加速器的数据存储和传输方法,以解决上述问题。

技术实现思路

[0005]本专利技术的目的在于提供一种基于FPGA人工智能加速器的数据存储和传输方法,以优化加速器内部存储器和片上数据之间交互,使加速器内部数据更高效地存储传输。
[0006]为实现上述目的,本专利技术提供了一种基于FPGA人工智能加速器的数据存储和传输方法,所述数据存储和传输方法主要包括:
[0007]步骤1,设计ARM端的架构:所述ARM端包括图像收集模块、预处理模块以及数据发送模块;使用图像收集模块通过以太网将图像传递给预处理模块,所述预处理模块在ARM端对收集到的数据进行预处理并将处理好的数据发送给所述数据收发模块;所述数据收发模块将图像数据和网络权重参数数据发送到FPGA端的DDR4存储器上;
[0008]步骤2,设计FPGA端的架构:所述FPGA端包括输入缓冲模块、输出缓冲模块、DMA、DDR4以及逻辑运算模块;DMA从DDR4中读取图像数据和网络权重数据并发送到输入缓冲模块;输入缓冲模块将数据发送到逻辑运算模块进行处理;逻辑运算模块完成神经网络的各种运算;输出缓冲模块将逻辑运算模块运算完的输出数据发送到DDR4上;DMA将运算结果从DDR4中读出来并发送到ARM端的数据收发模块;
[0009]步骤3,优化FPGA端数据存储传输通路。
[0010]作为本技术的进一步改进,所述步骤3具体包括:
[0011]步骤3.1,增加乒乓buffer:在双缓冲的基本思想上建立可编程逻辑上的缓冲设计,所述双缓冲区以乒乓方式,以使数据传输时间与计算时间重叠;
[0012]步骤3.2,对神经网络权重参数重排序:根据权重参数数据,对各层的神经网络权重参数根据当前层的特定进行参数排序。
[0013]作为本技术的进一步改进,在步骤1中,所述图像收集模块为网络摄像头模块。
[0014]作为本技术的进一步改进,在步骤1中,所述预处理模块为视频流预处理模块。
[0015]作为本技术的进一步改进,在步骤1中,所述数据收发模块与所述预处理模块之间的交互为AXI总线和DMA进行交互。
[0016]作为本技术的进一步改进,在步骤1中,所述DDR4存储器与片上数据缓冲之间的数据交互是由DMA完成。
[0017]作为本技术的进一步改进,步骤2中所述各种运算包括卷积、池化、累加和地址映射。
[0018]本专利技术的有益效果是:本专利技术优化了加速器内部存储器和片上数据之间交互,使加速器内部数据更高效地存储传输,有效提高了吞吐量降低延迟,适用于对严格限制功耗和要求低延迟的应用场景,提高了智能硬件的计算效率。
附图说明
[0019]图1是本专利技术中ARM端整体流程的示意图。
[0020]图2是本专利技术中FPGA端整体流程的示意图。
[0021]图3是本专利技术中乒乓搬运的结构示意图。
[0022]图4是本专利技术中在DRAM中从参数排序的结构示意图。
具体实施方式
[0023]为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。
[0024]本专利技术的基于FPGA人工智能加速器的数据存储和传输方法主要包括:步骤1,设计ARM端的架构:ARM端有网络摄像头模块、视频流预处理模块、数据发送模块。本方法使用网络摄像头通过以太网口将图像传递给处理器系统(ARM端),在ARM端使用OpenCV库编写的相关软件代码对视频流进行预处理。然后数据收发模块通过AXI总线和DMA进行交互,并将图像数据和网络权重参数数据发送到FPGA端的DDR4存储器上,由DMA完成DDR4存储器与片上数据缓冲之间的数据交互。
[0025]如图1所示为ARM端的整体流程图。最终分配给ARM端,负责图像采集、预处理以及数据的发送。
[0026]步骤2,设计FPGA端的架构:如图2所示,FPGA端有输入输出缓冲模块、DMA、DDR4、逻辑运算模块。DMA从DDR中读取图像数据和网络权重数据并发送到输入缓冲模块。输入缓冲模块将数据发送到逻辑运算模块进行。逻辑运算模块负责完成神经网络的各种运算,涉及
卷积、池化、累加和地址映射等。输出缓冲单元用于将卷积神经网络运算完的输出feature map数据发送到DDR4上。DMA将运算结果从DDR4中读出来并发送到ARM端的数据收发模块。
[0027]步骤3,优化FPGA端数据存储传输通路。通过优化来高效地存储和传输数据,来对卷积神经网络进行加速。将卷积神经网络应用于实现低功耗、特殊应用的高性能集成电路FPGA,展示出了性能的提升。对于数据存储传输通路的优化有以下两点:
[0028]1)乒乓buffer
[0029]可编程逻辑上的缓冲设计建立在双缓冲区的基本思想之上,其中双缓冲区以乒乓方式,以使数据传输时间与计算时间重叠。本方法将乒乓buffer分为四组:两组用于存储输入feature map和卷积核权重,两组用于存储输出feature map。每个缓冲区都包含几个独立的缓冲库,每个输入缓冲库的数量等于feature map的平铺大小Tn;每个输出缓冲组中的缓冲库的数量等于输出feature map的并行运算通道数Tm。为了提高带宽利用率,采用双缓冲组来实现乒乓操作,一个用于装载操作,另一个用于卸载操作。图3显示了多个计算核数据传输阶段的时间,其中N为输入feature map的通道数。对于第一阶段,计算引擎正在处本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA人工智能加速器的数据存储和传输方法,其特征在于,所述数据存储和传输方法主要包括:步骤1,设计ARM端的架构:所述ARM端包括图像收集模块、预处理模块以及数据发送模块;使用图像收集模块通过以太网将图像传递给预处理模块,所述预处理模块在ARM端对收集到的数据进行预处理并将处理好的数据发送给所述数据收发模块;所述数据收发模块将图像数据和网络权重参数数据发送到FPGA端的DDR4存储器上;步骤2,设计FPGA端的架构:所述FPGA端包括输入缓冲模块、输出缓冲模块、DMA、DDR4以及逻辑运算模块;DMA从DDR4中读取图像数据和网络权重数据并发送到输入缓冲模块;输入缓冲模块将数据发送到逻辑运算模块进行处理;逻辑运算模块完成神经网络的各种运算;输出缓冲模块将逻辑运算模块运算完的输出数据发送到DDR4上;DMA将运算结果从DDR4中读出来并发送到ARM端的数据收发模块;步骤3,优化FPGA端数据存储传输通路。2.根据权利要求1所述的基于FPGA人工智能加速器的数据存储和传输方法,其特征在于,所述步骤3具体包括:步骤3.1,增加乒乓buf...

【专利技术属性】
技术研发人员:王堃张泽旭陈思光张载龙
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1