一种低片外传输带宽需求的卷积神经网络加速方法技术

技术编号:33863598 阅读:29 留言:0更新日期:2022-06-18 10:54
本发明专利技术涉及一种低片外传输带宽需求的卷积神经网络加速方法,属于传输技术领域。通过对基于“切片”调度策略的数据流进行复用性分析,在FPGA片上计算、存储、逻辑等资源的约束下,为卷积神经网络模型每一个卷积层设计单独的调度策略等方式,降低高吞吐量对传输带来的压力,避免有限的带宽成为系统整体性能的瓶颈,从而解决实际应用中访存拥塞的问题,提升卷积神经网络模型在FPGA平台上部署的适配的,扩宽其应用场景。本发明专利技术具备低成本、高集成度、硬件资源消耗低、结构简单、可靠性高、易于实现等优点,能有效的降低高吞吐量对传输带来的压力,避免有限的带宽成为系统整体性能的瓶颈,从而解决实际应用中访存拥塞的问题。从而解决实际应用中访存拥塞的问题。从而解决实际应用中访存拥塞的问题。

【技术实现步骤摘要】
一种低片外传输带宽需求的卷积神经网络加速方法


[0001]本专利技术属于传输
,涉及一种低片外传输带宽需求的卷积神经网络加速方法。

技术介绍

[0002]作为深度学习的一个分支领域,卷积神经网络因其出色的准确性,在各种场景中已经得到了广泛的应用,例如图像处理,语音处理等。伴随着卷积神经网络准确性提升,当今顶尖的卷积神经网络模型需要构建相当深的卷积层结构来让输入图像数据转换为高度抽象的表现形式,如图1所示。神经网络深度的增加对计算提出了新的挑战,使用非常深的神经网络伴随着大量的乘法累加(MAC)操作,通用CPU的架构不适合这种计算。解决这个问题的简单方法是使用适合并行计算的GPU,其现有的运算框架可以较好的满足卷积神经网络的计算需求。随着物联网时代开始到来,边缘计算应用需求也随之提升。人们开始注意到GPU因其低能效而不适用于边缘计算应用。为了解决这个问题,目前的研究开始在FPGA和ASIC中开发硬件加速器,其具有较高的能效比。除此之外,因FPGA具有可重新配置逻辑结构的灵活性,其成为在硬件加速器领域得到大量应用的解决方案,但是,在设计一个基于FPGA的卷积神经网络加速器的时候通常面临着如下的问题。
[0003]FPGA片上存储资源有限,通常仅有几兆比特,无法放下卷积神经网络模型动辄几百兆比特的全部参数。若从片外存储中直接读写,上千万次的计算使得碎片化数据读写十分耗时。图2展示了单层卷积神经网络中卷积行为执行的示意图,左侧的为输入特征图,其中,in_h代表输入特征图高,in_w代表输入特征图宽,N代表输入特征图通道。中间的部分为权重,K代表了权重高和宽(其通常是相同的),每N个权重(每一个权重对应了一个输入通道)构成了一组过滤器,如图中椭圆框出来的部分,卷积神经网络模型每一层一共有M组过滤器(每一组过滤器对应了一个输出通道)。右侧的为输出特征图,R代表输出特征图高,C代表输出特征图宽,M代表输出特征图通道。一个单独的卷积执行的过程由图3所示,其具体可以分为以下三个步骤:
[0004]1、一个过滤器按照固定的步长(通常小于卷积核尺寸),与输入特征图的所有元素相乘,一共可以得到N*K*K个乘积。
[0005]2、在每个权重内,把K*K个输入特征图与权重相乘的结果相累加。
[0006]3、按照输入通道的方向,把N个权重内的乘累加结果相累加。
[0007]这样,便得到了输出特征图单个位置处的卷积结果,实际上,输入特征图的宽高与输出特征图宽高,权重宽高,步长之间存在一一对应的关系,可以用下面的等式表示。其中S表示卷积的步长,i代表卷积核的宽,j代表卷积核的高。
[0008]in_h=R
×
S+j
[0009]in_w=C
×
S+i
[0010]在推理过程中需要大量的参数传递来支持每一次计算过程。卷积神经网络加速器的设计宗旨是满足“高并行度计算”的特点,为了满足这一特点,其通常要求极大的数据吞
吐量,因此会造成“频繁数据交互”的现象。FPGA片上存储资源无法一次性存储卷积神经网络模型所有的参数,比较常见的做法是将其放置在片外存储器件,例如DDR(Double Data Rate SDRAM)。若从DDR中直接读写,碎片化数据读写十分耗时,且存在数据访问冲突。有学者提出了“切片”的策略,即将卷积神经网络的输入输出特征图以及权重,分割为若干个小的部分,分成多次加载到片上存储之中,使得FPGA能够依次处理这些数据,其实现示例如图4所示,将输入通道N分成若干个小份Tn,将输出通道M分成若干个小份Tm,每次只从片上加载相对应的一部分输入特征图和权重数据,将其存储在片上缓存之中,计算单元便可通过片上互联网络直接获得数据,而不再需要直接访问片外存储。待到该部分计算完成之后,再加载剩余的数据,重复相同的步骤。这样的做法虽然避免了碎片化的数据读写,减少了访存总体的时间开销,但是,片外存储器件在固定的数据频率和总线位宽的约束条件下,所能够提供的带宽是有限的。在数据加载进程发起的时间段内,若数据传输的峰值带宽需求超过了片外存储器件所能提供的最大带宽,便会造成总线的竞争,让数据加载速度与计算单元处理速度无法完全匹配,在系统流水线的架构设计中,计算单元只能空转等待直至数据完成加载,整个加速器的推理速度也会被拖慢。
[0011]因此,在卷积神经网络加速器系统应用中,为了避免数据传输速率受到片外带宽的限制,本专利技术从利用数据的可复用性角度出发,设计出一种低片外传输带宽需求的卷积神经网络加速器架构,进一步优化卷积神经网络加速器中的流水线设计,从而避免传输带宽带来的整体性能瓶颈,提高卷积神经网络加速器的推理速度。

技术实现思路

[0012]有鉴于此,本专利技术的目的在于提供一种低片外传输带宽需求的卷积神经网络加速方法,通过对基于“切片”调度策略的数据流进行复用性分析,在FPGA片上计算、存储、逻辑等资源的约束下,为卷积神经网络模型每一个卷积层设计单独的调度策略等方式,降低高吞吐量对传输带来的压力,避免有限的带宽成为系统整体性能的瓶颈,从而解决实际应用中访存拥塞的问题,提升卷积神经网络模型在FPGA平台上部署的适配的,扩宽其应用场景。
[0013]为达到上述目的,本专利技术提供如下技术方案:
[0014]一种低片外传输带宽需求的卷积神经网络加速方法,该方法包括:
[0015]数据加载load、卷积计算conv和数据写回store;
[0016]根据DDR3传输理论带宽的计算公式:
[0017]Bandwidth
DDR
=Core_frq
×
Bus_bitwidth
×
Mult_factor/8bits
[0018]其中,Core_frq代表内存核心频率,其等于DDR3的数据频率除以8比特,Bus_bitwidth代表内存总线位宽,5CSEBA6芯片所支持的最大DDR3数据频率为800Mhz,所支持的总线位宽为32比特;Mult_factor代表内存的倍增系数;
[0019]DDR采用时钟脉冲上升、下降沿各传一次数据,1个时钟信号传输2倍于SDRAM的数据,称为双倍速率SDRAM;它的倍增系数是2,
[0020]DDR2采用时钟脉冲上升、下降支各传输一次数据的技术,每回预读4比特数据,是DDR的两倍,它的倍增系数是4,
[0021]DDR3作为DDR2的改进,每回预读8比特数据,是DDR2的两倍,DDR的4倍,它的倍增系数是8,通过下式:
[0022]Bandwidth
DDR
=800Mb/8bits
×
32bits
×
8bits/8bits
[0023]得到所选用的5CSEBA6芯片所支持的最大DDR侧传输带宽为3200Mhz;根据应用端卷积神经网络加速器的带宽计算公式:
[0024]Bandwidth
APP
=Data_frq
×
Data_本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种低片外传输带宽需求的卷积神经网络加速方法,其特征在于:该方法包括:数据加载load、卷积计算conv和数据写回store;根据DDR3传输理论带宽的计算公式:Bandwidth
DDR
=Core_frq
×
Bus_bitwidth
×
Mult_factor/8bits其中,Core_frq代表内存核心频率,其等于DDR3的数据频率除以8比特,Bus_bitwidth代表内存总线位宽,5CSEBA6芯片所支持的最大DDR3数据频率为800Mhz,所支持的总线位宽为32比特;Mult_factor代表内存的倍增系数;DDR采用时钟脉冲上升、下降沿各传一次数据,1个时钟信号传输2倍于SDRAM的数据,称为双倍速率SDRAM;它的倍增系数是2,DDR2采用时钟脉冲上升、下降支各传输一次数据的技术,每回预读4比特数据,是DDR的两倍,它的倍增系数是4,DDR3作为DDR2的改进,每回预读8比特数据,是DDR2的两倍,DDR的4倍,它的倍增系数是8,通过下式:Bandwidth
DDR
=800Mb/8bits
×
32bits
×
8bits/8bits得到所选用的5CSEBA6芯片所支持的最大DDR侧传输带宽为3200Mhz;根据应用端卷积神经网络加速器的带宽计算公式:Bandwidth
APP
=Data_frq
×
Data_bitwidth/8bits其中Data_frq代表应用端时钟频率,Data_bitwidth代表应用端数据位宽,带入当前设计数据总线频率150Mhz与位宽128bits:Bandwidth
APP
=150Mhz
×
128bits/8bits得到当前的数据加载所需带宽为2400Mhz;数据写回所需带宽为2400Mhz;为减少数据的传输带宽需求,将访存分为两个级别:片外访存和片上访存;构建当前数据调度策略的循环嵌套伪码,分析其中哪些数据流是在片外DDR访存,哪些数据流其中片上缓存访存;片外访存相较于片上访存,每次发起传输需要协议规定的握手信号,其时间和功耗开销更大,且占用有限的片外传输带宽;在每个对应输出通道切片Tm的外层循环to嵌套中,利用输入数据的复用性,将一份输入特征图数据对应一份权重数据的调度策略,转换为一个输入特征图数据,对应若干个权重数据,减少因传输输入特征图数据而产生的片外访存的开销,降低片外传输带宽的需求;计算多份权重后会得到对应多个输出通道的输出特征图数据,在满足片上存储资源约束的情况下,选择适当的输入特征图数据复用率来控制每次卷积计算进程处理的权重份数,避免因产生过多的输出数据而超出片上缓存空间;转换数据调度策略后的上板,对输出特征图尺寸较小的层而言,其占用的片上缓存空间较小,每次从片外DDR3存储器中加载一份输入特征图数据与两份权重数据,利用一定的输入特征图数据复用性。2.根据权利要求1所述的一种低片外传输带宽需求的卷积神经网络加速方法,其特征在于:所述卷积神经网络加速方法具体包括:引擎计算,用于处理加速器核心的卷积运算;片上缓存,用于缓冲从片外存储加载的输入特征图以及权重数;进程控制,用于控制单元用于控制各个模块的交互,操作进程的发起和停止;操作进程
包括计算、加载和存储。3.根据权利要求2所述的一种低片外传输带宽需求的卷积神经网络加速方法,其特征在于:所述引擎计算中,包括若干处理单元PE,每个处理单元包括Tn个乘法器,权重与输入特征图数据的...

【专利技术属性】
技术研发人员:张红升甘济章黄奎刘挺王玺
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

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

1