一种水下噪声分类卷积神经网络加速器

文档序号:1862176 发布日期:2021-11-19 浏览:10次 >En<

阅读说明:本技术 一种水下噪声分类卷积神经网络加速器 (Underwater noise classification convolution neural network accelerator ) 是由 鲁毅 赵斌 单诚 付彦淇 何全 于 2021-07-20 设计创作,主要内容包括:本发明公开了一种水下噪声分类卷积神经网络加速器,包括:DMA控制器、特征图转置向量单元、卷积核转置向量单元、若干个最小计算单元和数据缓存池;其中,DMA控制器读入输入特征图和第一层卷积核;特征图转置向量单元根据特征图完成计算向量转置得到特征图向量,并将特征图向量写入数据缓存池;卷积核转置向量单元根据第一层卷积核完成第一个卷积核向量转置得到卷积核向量,并将卷积核向量写入数据缓存池;每个最小计算单元读取数据缓存池中的特征图向量和第一个卷积核向量,并将特征图向量和第一个卷积核向量点乘得到点乘结果,并将点乘结果存储到数据缓存池。本发明可以适应不同资源状况的FPGA器件,实现灵活增减硬件并行度的加速器方案。(The invention discloses an underwater noise classification convolution neural network accelerator, which comprises: the device comprises a DMA controller, a feature map transposed vector unit, a convolution kernel transposed vector unit, a plurality of minimum calculation units and a data cache pool; the DMA controller reads an input feature map and a first layer of convolution kernel; the characteristic diagram transposition vector unit completes calculation of vector transposition according to the characteristic diagram to obtain a characteristic diagram vector, and writes the characteristic diagram vector into a data cache pool; the convolution kernel transposition vector unit completes first convolution kernel vector transposition according to the first layer of convolution kernels to obtain convolution kernel vectors, and writes the convolution kernel vectors into the data cache pool; each minimum computing unit reads the feature map vector and the first convolution kernel vector in the data cache pool, performs point multiplication on the feature map vector and the first convolution kernel vector to obtain a point multiplication result, and stores the point multiplication result in the data cache pool. The invention can adapt to FPGA devices with different resource conditions and realize an accelerator scheme for flexibly increasing and decreasing the parallelism of hardware.)

一种水下噪声分类卷积神经网络加速器

技术领域

本发明属于水下噪声分类应用的卷积神经网络技术领域,尤其涉及一种水下噪声分类卷积神经网络加速器。

背景技术

传统水下噪声分类是通过训练有素的声纳员,连续监听声纳凭借经验获得分类结果。这种方式严重依赖声纳员的经验和工作状态。声纳信号经过放大、采样后可转换成一维的数字信号。

近年来,深度学习中卷积神经网络在分类问题中得到广泛应用。众多实践结果表明,卷积神经网络在处理分类问题时,具有识别准确率高的特点。水下噪声分类网络部署在嵌入式环境下,需要面对硬件平台计算能力弱,资源有限的问题。

针对水下目标分类问题形成的专用卷积神经网络,可以使用专用的卷积神经网络加速器来实现算力提升,解决实时性问题。

相关技术中,卷积神经网络通常是先完成全部卷积、然后进行激活、再进行池化操作,分层完成计算加速。这种方式的缺点有:每个层级都需要缓存层存放中间计算结果,对缓存资源消耗较大;每层计算单元规模固定,无法根据FPGA资源大小进行扩充或裁剪。

发明内容

本发明解决的技术问题是:克服现有技术的不足,提供了一种水下噪声分类卷积神经网络加速器,可以适应不同资源状况的FPGA器件,实现灵活增减硬件并行度的加速器方案。

本发明目的通过以下技术方案予以实现:一种水下噪声分类卷积神经网络加速器,包括:DMA控制器、特征图转置向量单元、卷积核转置向量单元、若干个最小计算单元和数据缓存池;其中,DMA控制器读入输入特征图和第一层卷积核;特征图转置向量单元根据特征图完成计算向量转置得到特征图向量,并将特征图向量写入数据缓存池;卷积核转置向量单元根据第一层卷积核完成第一个卷积核向量转置得到卷积核向量,并将卷积核向量写入数据缓存池;每个最小计算单元读取数据缓存池中的特征图向量和第一个卷积核向量,并将特征图向量和第一个卷积核向量点乘得到点乘结果,并将点乘结果存储到数据缓存池;DMA控制器读取数据缓存池中的点乘结果作为输入特征图和下一层卷积核,直至卷积层数计算全部完成。

上述水下噪声分类卷积神经网络加速器中,数据缓存池大小Amax通过如下公式得到:

Amax=AI+MAX(AVi,APki,AO)+AVKi;

其中,AI为输入数据缓存池大小,AO为输出数据缓存池大小,AVi为各层特征图数据转向量后缓存池大小,AVki为卷积核转向量大小,APki为池化后各层数据大小。

上述水下噪声分类卷积神经网络加速器中,对于A>Amax的情况,B=1表示系统不分块,数据可全部在FPGA内不存放,计算过程中DMA控制器只需要完成一次数据读入和计算结果写回即可;对于A<Amax的情况,B=MAX(AVi,APki,AO)/A,表示输入数据分解成B块,如果计算B为小数,那么B=Int(B)+1。

上述水下噪声分类卷积神经网络加速器中,根据卷积核行数Kri和卷积核列数Kci得到乘法器计算向量个数V。

上述水下噪声分类卷积神经网络加速器中,乘法器计算向量个数V为V=MAX(Krix Kci)。

上述水下噪声分类卷积神经网络加速器中,乘法器计算向量个数V决定了单个加速器计算单元数据输入的吞吐量需求。

上述水下噪声分类卷积神经网络加速器中,最小计算单元是计算单元的最小单位,实现向量乘法、激活和池化操作。

上述水下噪声分类卷积神经网络加速器中,当数据缓存池字节数A小于数据缓存池大小Amax且分块参数B大于1时,DMA控制器读入输入特征图,然后转换成特征向量后,分块写到FPGA外的RAM中。

本发明与现有技术相比具有如下有益效果:

(1)本发明的卷积计算过程是多层复用的,能够增强加速器内的存储复用能力;

(2)本发明可实现小型FPGA到大型FPGA的灵活配置,为不同量级资源的FPGA提供灵活的硬件加速方案。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例提供的水下噪声分类卷积神经网络加速器的框图;

图2是本发明实施例提供的乘加器实施结构图;

图3是本发明实施例提供的乘加器实施另一结构图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

图1是本发明实施例提供的水下噪声分类卷积神经网络加速器的框图。如图1所示,该水下噪声分类卷积神经网络加速器包括DMA控制器、特征图转置向量单元、卷积核转置向量单元、若干个最小计算单元和数据缓存池;其中,

DMA控制器读入输入特征图和第一层卷积核;特征图转置向量单元根据特征图完成计算向量转置得到特征图向量,并将特征图向量写入数据缓存池;卷积核转置向量单元根据第一层卷积核完成第一个卷积核向量转置得到卷积核向量,并将卷积核向量写入数据缓存池;每个最小计算单元读取数据缓存池中的特征图向量和第一个卷积核向量,并将特征图向量和第一个卷积核向量点乘得到点乘结果,并将点乘结果存储到数据缓存池;DMA控制器读取数据缓存池中的点乘结果作为输入特征图和下一层卷积核,直至卷积层数计算全部完成。

利用综合脚本和本发明提出的最小计算单元,可以适应不同资源状况的FPGA器件,实现灵活增减硬件并行度的加速器方案。

本发明通过综合脚本实现硬件加速器的生成,综合脚本中需要用户提供如下参数:输入特征图的数量C、特征图高度H、特征图宽度W;各个输入卷积核数量Cki、卷积核行数Kri、卷积核列数Kci,卷积步进数Ksi;池化单元行数Pr、池化单元列数Pc、池化单元位移长度Ps;最小计算单元数量M;数据缓存池字节数A。

最小计算单元是本发明中计算单元的最小单位,可实现向量乘法、激活和池化操作。激活函数的类型在综合脚本中进行配置,对于一个网络中,不同卷积层使用不同激活函数的情况,可以综合多种激活函数,通过配置选项完成激活函数的选择。

卷积神经网络可以实现最小一个计算单元,最大N个计算单元的配置,配置数量由系统实时性要求,以及FPGA能够提供的逻辑资源数量决定。

图2是本发明实施例提供的乘加器实施结构图;图3是本发明实施例提供的乘加器实施另一结构图。如图2和图3所示,本发明基于最小计算单元结构,通过脚本配置综合选项,实现可以适配不同资源能力的FPGA芯片。实施过程如下:

在综合脚本中完成下述配置:

1)输入特征图参数:C、H、W;

2)输入卷积核参数:Cki、Kri、Kci,Ksi;

3)池化单元参数:Pr、Pc、Ps;

4)最小计算单元参数:M;

5)数据缓存池字节数A;

6)卷积层数:i;

综合脚本根据上述参数1)-4)参数,计算得出输入数据缓存池大小AI、输出数据缓存池大小AO、各层特征图数据转向量后缓存池大小AVi、卷积核转向量大小AVki、池化后各层数据大小APki。由于各卷积层计算过程中存在流水关系,一层卷积计算完成后,再进行下一层卷积;脚本算法中考虑各层可能同时存在的数据的最大数量,获得缓存池大小,算法如下:Amax=AI+MAX(AVi,APki,AO)+AVKi,其中i(1,Nk),Nk为卷积层数。

脚本根据上述参数5和Amax,完成分块参数B的设置。B参数的算法如下:

对于A>Amax的情况,B=1表示系统不分块,数据可全部在FPGA内不存放,计算过程中DMA只需要完成一次数据读入和计算结果写回即可;对于A<Amax的情况,B=MAX(AVi,APki,AO)/A,表示输入数据分解成B块,如果计算B为小数,那么B=Int(B)+1。

乘法器计算向量个数V=MAX(Kri x Kci)。该参数决定了单个加速器计算单元数据输入的吞吐量需求。

上述配置完成后,运行脚本,通过综合工具实现与当前FPGA资源量相匹配的加速器电路。电路综合完成,并部署至FPGA后,其计算过程如下:

实施例一,对于A>Amax,B<1不分块的情况。

6)DMA整体读入输入特征图和第一层卷积核,放入计算缓存池中;

7)启动特征图转置向量单元,完成计算向量转置,并将结果写入计算缓存池;

8)启动卷积核转置向量单元,完成第一个卷积核向量转置,并将结果写入计算缓存池;

9)根据最小计算单元参数M,实现卷积计算数据流的分配,每个计算单元读取向量的条目数量,由一次卷积计算结束后,池化单元的大小决定,即Pr x Pc。

10)向量进入最小计算单元后,完成输入特征图向量与卷积核向量的点乘;

11)计算结果在最小计算单元中累加;

12)累加后的结果与偏置相加;

13)上一步骤中的相加结果进行激活操作;

14)重复上述10)-13)的动作直到池化指定个数的单元全部完成计算;

15)启动池化操作,输出一个计算结果,进入数据缓存池,直到所有向量计算完成;

16)使用数据缓存池中的数据作为输入特征图,使用DMA读入下一层卷积核数据进入数据缓存池,重复7)-16)的步骤完成数据计算;

17)直至卷积层数i指定层数的卷积计算全部完成,加速器运算行为停止。

实施例二,对于A<Amax,B>1分块的情况。

DMA整体读入特征图,然后转换成特征向量后,分块写回到FPGA外RAM中。

再读回第一块向量进入计算单元准备计算。

18)执行上述6)-14)步骤中的动作,启动池化操作,完成当前块输入特征数据的计算,进入数据缓存池,直到当前块向量计算完成。将数据缓存池结果写回到外部RAM中。

19)启动DMA读取第二块向量进入计算单元,完成18)步骤中所述计算过程。

20)将第一层卷积的全部计算结果按照分块再读入,重复18),19)指定动作,直到i指定层数的卷积计算全部完成,加速器运算行为停止。

本发明的卷积计算过程是多层复用的,能够增强加速器内的存储复用能力;本发明可实现小型FPGA到大型FPGA的灵活配置,为不同量级资源的FPGA提供灵活的硬件加速方案。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于存算结合的多通道卷积FPGA架构及其工作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!