一种深度学习模型中最大池化层运算电路装置制造方法及图纸

技术编号:32133477 阅读:23 留言:0更新日期:2022-01-29 19:37
一种深度学习模型中最大池化层运算电路装置,其中输入特征图SRAM阵列用于存放深度学习模型最大池化层的输入特征图;输出特征图SRAM阵列用于存放输出特征图;输入交叉开关把从输入特征图SRAM阵列读取的输入特征图传送给最大池化电路,输出交叉开关把最大池化电路的计算结果传送给输出特征图SRAM阵列;最大池化电路的三组比较器电路分别对输入的每列16、15、16个数据进行两两、3个一组及4个一组的比较,三组比较器电路的输出端通过选择器电路连接输出交叉开关;所有比较器电路和选择器电路接受全局配置寄存器的控制。本发明专利技术的优点在于:可以同时快速处理16行或15行特征图,计算其最大池化结果,并将结果存回存放结果特征图的存储器。的存储器。的存储器。

【技术实现步骤摘要】
一种深度学习模型中最大池化层运算电路装置


[0001]本专利技术涉及集成电路设计
,特别是深度学习模型中最大池化层运算电路装置。

技术介绍

[0002]卷积神经网络(Convolutional neural network,CNN)是常见的一种深度学习模型,在计算机视觉领域的应用非常普遍。卷积神经网络可以提取图像中与位置无关的特征,经过逐层特征提取后,对图像进行分类或检测图像中目标的位置和种类。最大池化层是卷积神经网络中常见的层,其作用是以滑动窗口的方式对特征图进行处理,计算特征图中滑动窗口内的最大值,作为下一层特征图的值。最大池化层可以降低特征图的大小,减小其后各层的计算量。更重要的是,最大池化层可以选择特征图滑动窗口中最显著的特征,去除不重要特征的干扰。一般,在最大池化层后,特征图的尺寸至少减小为原来的1/2,再经过若干层卷积层的计算,可以得到图像更大尺度的信息。最大池化是卷积神经网络中最常见的操作之一,常见的是2x2滑动窗口的最大池化层,3x3、4x4的最大池化层非常少见,5x5及以上的最大池化层则几乎没有见到。
[0003]卷积神经网络的计算量一般非常大,一般至少在几十GOPS(数百亿次乘法或加法运算)量级。若直接利用CPU执行,很难达到实时处理(一般要求帧率在30FPS以上,即每秒进行30次以上的推理)的效果。很多硬件架构被提出,用以加速卷积神经网络的计算,如谷歌公司提出的TPU架构、MIT大学提出的Eyeriss架构等等。这些架构一般通过设计硬件电路,用以快速计算卷积层或全连接层。
[0004]目前,极少见到关于卷积神经网络中最大池化层硬件快速实现的技术。

技术实现思路

[0005]本专利技术所要解决的技术问题在于如何提升深度学习模型中最大池化层在硬件上的计算效率。
[0006]本专利技术通过以下技术手段解决上述技术问题:一种对卷积神经网络中的最大池化层进行硬件直接计算的电路,包括输入特征图SRAM阵列、输入交叉开关、最大池化电路、输出交叉开关、输出特征图SRAM阵列;
[0007]所述输入特征图SRAM阵列用于存放深度学习模型最大池化层的输入特征图,其中包含16块SRAM,该输入特征图SRAM阵列一个周期输出16个数据,每块SRAM按顺序存储特征图的一行数据,每个周期,每块SRAM依次把输入特征图中的一行数据输出一个数据;
[0008]所述输出特征图SRAM阵列用于存放输出特征图,其中包含16块SRAM,该输出特征图SRAM阵列一个周期接受16个数据,每块SRAM每个周期接受1个数据,每块SRAM按顺序存储输出特征图的一行数据。
[0009]输入交叉开关负责把从输入特征图SRAM阵列读取的输入特征图传送给最大池化电路,输出交叉开关负责把最大池化电路的计算结果传送给输出特征图SRAM阵列;
[0010]最大池化电路包括三组比较器(MAX)电路和一组选择器(MUX)电路,第一组比较器电路具有8个比较器,第二组比较器电路具有5个比较器,第三组比较器电路具有4个比较器,第一组比较器电路对输入的每列16个数据进行两两比较,第二组比较器电路对输入的每列16个数据中的前15个数据每3个为一组进行比较,第三组比较器电路对输入的每列16个数据每4个为一组进行比较,三组比较器电路的输出端通过选择器电路连接输出交叉开关;选择器电路有8个,用于接受多个比较器的输出数据,并按一定规则把数据传送给输出交叉开关;选择器内部设置有最大值寄存器,用于暂存若干周期内选择器接受到的最大数据;选择器把选择的输入数据与内部存储的最大值寄存器比较,输出比较产生的最大数据,并用比较产生的最大数据替换内部存储器的值;选择器每隔若干个周期被配置为输出一次有效数据,该周期数与最大池化运算滑动窗口的宽度相关;当选择器被配置为输出有效数据时,输出当前输入数据与最大值寄存器比较产生的最大值及输出有效的标志信号;选择器在计算不同窗口大小的最大池化运算时,选择相应比较器的输出传送给输出交叉开关;当计算窗口大小为2x2的最大池化层时,选择器选择第一组比较器的输出数据传送给输出交叉开关;当计算窗口大小为3x3的最大池化层时,选择器选择第二组比较器的输出数据传送给输出交叉开关;当计算窗口大小为4x4的最大池化层时,选择器选择第三组比较器的输出数据传送给输出交叉开关;
[0011]所有比较器电路和选择器电路接受全局配置寄存器的控制,选择不同的输入执行后续动作。
[0012]作为进一步优化的技术方案,输出特征图SRAM阵列接受的输入中同时包含一个额外的输入是否有效的标志,当该标志的含义为有效时,才把输入的数据写入SRAM,当该标志的含义为无效时,不把该次输入的数据写入SRAM。
[0013]作为进一步优化的技术方案,选择器电路MUX根据控制信号的不同,选择某一个输入,和内部的最大值寄存器进行比较后输出,选择较大者输出,该较大值存入最大值寄存器。
[0014]作为进一步优化的技术方案,每隔若干个周期清空一次该最大值寄存器,清空该最大值寄存器指把该寄存器的值设置为硬件所能表示的最小值,选择器电路MUX把选择的输入和内部最大值寄存器的值作比较,若本次选择的输入大于内部最大值寄存器,则把本次选择的输入值赋给内部最大值寄存器,若本次选择的输入值小于内部最大值寄存器值,则对内部最大值寄存器不作修改,选择器电路MUX每隔N个周期产生一次输出,输出值即为本周期赋值后的内部最大值寄存器的值;N与最大池化层滑动窗口的宽度相关;当计算滑动窗口大小为2x2的最大池化层时,N为2;当计算滑动窗口大小为3x3的最大池化层时,N为3;当计算滑动窗口大小为4x4的最大池化层时,N为4。
[0015]作为进一步优化的技术方案,选择器电路MUX的输出信号中包含标志该次输出数据是否有效的标志,当选择器电路MUX不产生有效输出时,其输出的信号中该标志为无效;当选择器电路MUX产生有效输出时,其输出的信号中该标志为有效,从而使得选择器电路MUX的输出值经过输出交叉开关传递后,每N个周期产生一次有效的输出数据,写入到输出特征图SRAM阵列中,其他周期时,选择器电路MUX的输出数据不写入到输出特征图SRAM阵列,相当于无效。
[0016]作为进一步优化的技术方案,每个第一组比较器电路分别连接输入交叉开关2的
16个数据出口,比较器电路MAX2_1的输入端连接数据出口1、2,比较器电路MAX2_2的输入端连接数据出口3、4
……
比较器电路MAX2_8的输入端连接数据出口15、16,对输入的每列16个数据进行两两比较,辅助完成2x2滑动窗口的最大池化计算;
[0017]每个第二组的比较器电路的第一输入端分别与第一组的比较器电路MAX2_1、MAX2_3、MAX2_4、MAX2_6、、MAX2_7的输出端相连,第二输入端分别连接输入交叉开关2的数据出口3、4、9、10、15相连,对输入的每列16个数据的前15个数据每3个为一组进行比较,辅助完成3x3滑动窗口的最大池化计算;
[0018]每个第三组的比较本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习模型中最大池化层运算电路装置,其特征在于:包括输入特征图SRAM阵列、输入交叉开关、最大池化电路、输出交叉开关、输出特征图SRAM阵列;所述输入特征图SRAM阵列用于存放深度学习模型最大池化层的输入特征图,其中包含16块SRAM,每块SRAM一个周期输出1个数据,该输入特征图SRAM阵列一个周期输出16个数据,每块SRAM按顺序存储特征图的一行数据,每个周期,每块SRAM依次把输入特征图中的一行数据输出一个数据;所述输出特征图SRAM阵列用于存放输出特征图,其中包含16块SRAM,每块SRAM一个周期接受1个数据,该输出特征图SRAM阵列一个周期接受16个数据,每块SRAM按顺序存储特征图的一行数据。输入交叉开关负责把从输入特征图SRAM阵列读取的输入特征图传送给最大池化电路,输出交叉开关负责把最大池化电路的计算结果传送给输出特征图SRAM阵列;最大池化电路包括三组比较器电路和一组选择器电路,第一组比较器电路具有8个,第二组比较器电路具有5个,第三组比较器电路具有4个,选择器电路有8个,第一组比较器电路对输入的每列16个数据进行两两比较,第二组比较器电路对输入的每列16个数据中的前15个数据每3个为一组进行比较,第三组比较器电路对输入的每列16个数据每4个为一组进行比较,三组比较器电路的输出端通过选择器电路连接输出交叉开关;所有比较器电路和选择器电路接受全局配置寄存器的控制,选择不同的输入执行后续动作。2.如权利要求1所述的一种深度学习模型中最大池化层运算电路装置,其特征在于:输出特征图SRAM阵列接受的输入中同时包含一个额外的输入是否有效的标志,当该标志的含义为有效时,才把输入的数据写入SRAM,当该标志的含义为无效时,不把该次输入的数据写入SRAM。3.如权利要求1所述的一种深度学习模型中最大池化层运算电路装置,其特征在于:选择器电路有8个,用于接受多个比较器的输出数据,并按一定规则把数据传送给输出交叉开关;选择器内部设置有最大值寄存器,用于暂存若干周期内选择器接受到的最大数据;选择器把选择的输入数据与内部存储的最大值寄存器比较,输出比较产生的最大数据,并用比较产生的最大数据替换内部存储器的值;选择器每隔若干个周期被配置为输出一次有效数据,该周期数与最大池化运算滑动窗口的宽度相关;当选择器被配置为输出有效数据时,输出当前输入数据与最大值寄存器比较产生的最大值及输出有效的标志信号;选择器在计算不同窗口大小的最大池化运算时,选择相应比较器的输出传送给输出交叉开关;当计算窗口大小为2x2的最大池化层时,选择器选择第一组比较器的输出数据传送给输出交叉开关;当计算窗口大小为3x3的最大池化层时,选择器选择第二组比较器的输出数据传送给输出交叉开关;当计算窗口大小为4x4的最大池化层时,选择器选择第三组比较器的输出数据传送给输出交叉开关。4.如权利要求3所述的一种深度学习模型中最大池化层运算电路装置,其特征在于:每隔若干个周期清空一次该最大值寄存器,清空该最大值寄存器指把该寄存器的值设置为硬件所能表示的最小值,选择器电路MUX把选择的输入和内部最大值寄存器的值作比较,若本次选择的输入大于内部最大值寄存器,则把本次选择的输入值赋给内部最大值寄存器,若本次选择的输入值小于内部最大值寄存器值,则对内部最大值寄存器不作修改,选择器电
路MUX每隔N个周期产生一次输出,输出值即为本周期赋值后的内部最大值寄存器的值。5.如权利要求4所述的一种深度学习模型中最大池化层运算电路装置,其特征在于:选择器电路MUX的输出信号中包含标志该次输出数据是否有效的标志,当选择器电路MUX不产生输出时,其输出的信号中该标志为无效;当选择器电路MUX产生输出时,其输出的信号中该标志为有效,从而...

【专利技术属性】
技术研发人员:林广栋张笑顾大晔陆俊峰黄光红
申请(专利权)人:中国电子科技集团公司第三十八研究所
类型:发明
国别省市:

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

1