一种CNN加速器数据存取方法及系统技术方案

技术编号:33916481 阅读:33 留言:0更新日期:2022-06-25 20:19
本发明专利技术涉及一种CNN加速器数据存取方法及系统,属于计算、推算技术领域,包括:预设训练参数,获取输入特征图并存储于缓存区中;对缓存区中的输入特征图进行判断处理并通过寄存器阵列处理得到预取数据,对预取数据进行循环处理得到序后数据;对序后数据进行卷积计算处理得到卷积数据;对卷积数据依次进行批量归一化、RELU激活函数激活、量化、池化和FIFO缓存处理得到输出结果;对输出结果的处理层数进行判断处理,从而实现全片上存储,获得目标坐标;有效降低了内存带宽和功耗。效降低了内存带宽和功耗。效降低了内存带宽和功耗。

【技术实现步骤摘要】
一种CNN加速器数据存取方法及系统


[0001]本专利技术涉及一种CNN加速器数据存取方法及系统,属于计算、推算


技术介绍

[0002]近年来,深度学习极大地促进了机器学习的发展,卷积神经网络(Convolutional Neutral Network,CNN)受生物学上感受野的机制而提出,是一种具有局部连接、权重共享以及汇聚等特性的深层前馈神经网络,也是深度学习中一种出色的学习模型,因为其取得的极为先进的性能而广泛应用于处理图像信息、语音信息等诸多应用领域。与传统方法相比,取得高精度和实时的目标识别能力的同时,它也需要更多的计算处理和内存资源,这必须依赖于大型服务器,现通用的处理器已经无法满足其需求,可以通过底层应用加速计算过程结合深度学习算法上的优化,来推动CNN算法应用行业的发展。
[0003]目前,嵌入式移动终端面临着片上资源有限与高性能和低功耗的挑战,CNN网络有大量的参数,大多都是将庞大的参数存储在外部存储器中,内存带宽成为加速CNN网络的一个严重问题,对于庞大的乘加运算和复杂的控制信号,需要深入研究数据流和计算模式来最大化应用片上资源。

技术实现思路

[0004]本专利技术的目的在于克服现有技术中的不足,提供一种CNN加速器数据存取方法及系统,可有效降低内存带宽和功耗。
[0005]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0006]第一方面,本专利技术提供了一种CNN加速器数据存取方法,包括:
[0007]预设训练参数,获取输入特征图并存储于缓存区中;
[0008]对缓存区中的输入特征图进行判断处理并通过寄存器阵列处理得到预取数据,对预取数据进行循环处理得到序后数据;
[0009]对序后数据进行卷积计算处理得到卷积数据;
[0010]对卷积数据依次进行批量归一化、RELU激活函数激活、量化、池化和FIFO缓存处理得到输出结果;
[0011]对输出结果的处理层数进行判断处理,从而实现全片上存储,获得目标坐标。
[0012]进一步的,所述训练参数包括输入特征图的尺寸和权重。
[0013]进一步的,所述缓存区存储有不同通道的输入特征图。
[0014]进一步的,对缓存区中的输入特征图进行判断处理的方法包括:
[0015]根据缓存区中的输入特征图计算输入特征图地址,判断输入特征图地址是否为输入特征图的边缘;
[0016]若判断结果为是,则对缓存区中的输入特征图进行补零,将补零后的输入特征图进行寄存器阵列处理;
[0017]若判断结果为否,则直接将缓存区中的输入特征图进行寄存器阵列处理。
[0018]进一步的,根据缓存区中的输入特征图计算输入特征图地址的方法包括:
[0019][0020]其中,address为输入特征图地址,channel为通道偏移地址,为特征图的缓存分区,[w]为特征图一行像素值的并向上取最邻近的2的幂的值,group为组偏移地址,row为行偏移地址。
[0021]进一步的,通过寄存器阵列处理得到预取数据的方法包括:
[0022]于缓存区中所有通道的输入特征图的第零地址开始,取前M行、第M+1行和第M+2行进行三次循环完成(M+2)行
×
3列的输入特征图的预取;
[0023]对缓存区中所有通道预取后的输入特征图的第三地址取(M+2)行
×
3列后进行三次循环得到预取数据。
[0024]进一步的,对预取数据进行循环处理得到序后数据的方法包括:
[0025]将寄存器阵列输出的最后一行预取数据作为第一行数据,寄存器阵列输出的剩余行数据依次作为第二至M行数据;
[0026]将寄存器阵列输出的预取数据直接输出;
[0027]将寄存器阵列输出的第一行预取数据作为最后一行数据,寄存器阵列输出的剩余行数据依次作为第一至(M

1)行数据。
[0028]对输出结果的处理层数进行判断处理的方法包括:
[0029]将第一次计算得到的输出结果的处理层数记为1,并对处理层数进行判断;
[0030]若输出结果的处理层数小于权重的层数,则将输出结果作为下一层的输入特征图进行二次计算,二次计算后得到的输出结果的处理层数为前一次计算得到的处理层数通过层计数器+1;
[0031]若输出结果的处理层数等于权重的层数,则将输出结果作为目标坐标输出。
[0032]第二方面,本专利技术提供了一种CNN加速器数据存取系统,包括:
[0033]数据缓存模块:用于预设训练参数,获取输入特征图并存储于缓存区中;
[0034]数据预处理模块:用于对缓存区中的输入特征图进行判断处理并通过寄存器阵列处理得到预取数据,对预取数据进行循环处理得到序后数据;
[0035]卷积计算模块:用于对序后数据进行卷积计算处理得到卷积数据;
[0036]数据后处理模块:用于对卷积数据依次进行批量归一化、RELU激活函数激活、量化、池化和FIFO缓存处理得到输出结果;
[0037]判断输出模块:对输出结果的处理层数进行判断处理,从而实现全片上存储,获得目标坐标。
[0038]与现有技术相比,本专利技术所达到的有益效果:
[0039]1、通过对缓存区中的输入特征图进行判断处理,能够有效降低内存带宽和功耗,从而提高了CNN加速器的运行速度;将判断处理后的输入特征图通过寄存器阵列处理得到预取数据,再对预取数据进行循环处理得到序后数据,每个循环实现了对上一循环的M

1行输入特征图的复用,进一步提高了CNN加速器的运行速度。
[0040]2.通过对输出结果的处理层数进行判断处理,从而实现了全片上存储,有效降低了与片外数据交互之间的高传输带宽压力,减少了本地存储开销。
附图说明
[0041]图1为本专利技术实施例提供的一种CNN加速器数据存取方法的流程图。
[0042]图2为本专利技术实施例提供的一种CNN加速器数据存储系统中缓存区的示意图。
[0043]图3为本专利技术实施例提供的一种CNN加速器数据存取方法中寄存器阵列处理的流程图。
[0044]图4为本专利技术实施例提供的一种CNN加速器数据存取方法中卷积计算处理的流程图。
具体实施方式
[0045]下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。
[0046]实施例一:
[0047]FPGA具有强大的并行处理能力和丰富的逻辑资源,如DSP可以运算精度更高的乘累加操作,非常适合作为CNN的实现平台。
[0048]如图1所示,本专利技术实施例提供的一种CNN加速器数据存取方法包括如下所述的S1至S8步骤。
[0049]S1、预设训练参数,获取输入特征图并存储于缓存区中。
[0050]需要说明的是,训练参数包括输入特征图的尺寸和权重,权重可由神经网络训本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CNN加速器数据存取方法,其特征在于,包括:预设训练参数,获取输入特征图并存储于缓存区中;对缓存区中的输入特征图进行判断处理并通过寄存器阵列处理得到预取数据,对预取数据进行循环处理得到序后数据;对序后数据进行卷积计算处理得到卷积数据;对卷积数据依次进行批量归一化、RELU激活函数激活、量化、池化和FIFO缓存处理得到输出结果;对输出结果的处理层数进行判断处理,从而实现全片上存储,获得目标坐标。2.根据权利要求1所述的CNN加速器数据存取方法,其特征在于,所述训练参数包括输入特征图的尺寸和权重。3.根据权利要求1所述的CNN加速器数据存取方法,其特征在于,所述缓存区存储有不同通道的输入特征图。4.根据权利要求1所述的CNN加速器数据存取方法,其特征在于,对缓存区中的输入特征图进行判断处理的方法包括:根据缓存区中的输入特征图计算输入特征图地址,判断输入特征图地址是否为输入特征图的边缘;若判断结果为是,则对缓存区中的输入特征图进行补零,将补零后的输入特征图进行寄存器阵列处理;若判断结果为否,则直接将缓存区中的输入特征图进行寄存器阵列处理。5.根据权利要求4所述的CNN加速器数据存取方法,其特征在于,根据缓存区中的输入特征图计算输入特征图地址的方法包括:其中,address为输入特征图地址,channel为通道偏移地址,为特征图的缓存分区,[w]为特征图一行像素值的并向上取最邻近的2的幂的值,group为组偏移地址,row为行偏移地址。6.根据权利要求1所述的CNN加速器数据存取方法,其特征在于,通过寄存器阵列处理得到预取数据的方法包括:于缓存区中所有通道的输入特征图的第零地址开始,取前M行、第M+1行和第M+2行进行三次循环完成(M+2)行

【专利技术属性】
技术研发人员:张娟梁天柱张广明疏建王汉霖
申请(专利权)人:昆山市工业技术研究院有限责任公司
类型:发明
国别省市:

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

1