本发明专利技术提供一种卷积硬件加速方法及卷积硬件加速电路。卷积硬件加速方法包括:将特征图分割为多个图块;在进行分割时,分割的图块的列宽和MAC运算单元的数量相匹配,分割的图块的行高为内部存储模块可容纳的最大行数;按顺序读入一个图块和对应的卷积核在进行卷积运算所需的数据;依次提取所述一个图块和所述对应的卷积核的提取数据;以及进行卷积运算并输出运算结果到外部存储模块。采用本发明专利技术提供的卷积硬件加速方法,可以用较小的内部缓存面积可以支持任意大小分辨率的特征图进行卷积运算;采用这样的图块分割方式,使得MAC运算单元的利用效率较高,且可以尽可能地减少垂直方向上边界数据的读取,进一步提高卷积的运算速度。度。度。
【技术实现步骤摘要】
一种卷积硬件加速方法及卷积硬件加速电路
[0001]本专利技术涉及卷积神经网络和芯片设计
,尤其涉及一种卷积硬件加速方法及卷积硬件加速电路。
技术介绍
[0002]卷积神经网络(convolution neural network,CNN)广泛地使用在目标识别、目标检测等应用领域。当前,随着神经网络的深度和输入特征图的数据量增加,导致了卷积运算量不断加大。通过专用芯片来进行CNN的卷积运算可以加快计算速度。然而,用于CNN的卷积计算的专用芯片设计会面临两个问题,一是如何提高运算的并行度来提高计算效率,二是如何减少存储器的读写带宽来节省计算功耗。
[0003]因此,如何提供一种卷积硬件加速方法及卷积硬件加速电路,用来提高卷积运算的并行度和减少存储器的读写带宽,实乃本领域的重要课题。
技术实现思路
[0004]为了解决上述技术问题,本专利技术提供一种卷积硬件加速方法,其特征在于,包括以下步骤:将特征图分割为多个图块;在进行分割时,分割的图块的列宽和MAC运算单元的数量相匹配,分割的图块的行高为内部存储模块可容纳的最大行数;按顺序读入一个图块和对应的卷积核在进行卷积运算所需的数据;依次提取所述一个图块和所述对应的卷积核的提取数据;以及进行卷积运算并输出运算结果。
[0005]采用本专利技术中提供的卷积硬件加速方法,可以用较小的内部缓存面积可以支持任意大小分辨率的特征图进行卷积运算;分割的图块的列宽和MAC运算单元的数量相匹配,使得MAC运算单元的利用效率较高,避免闲置MAC运算单元,提高卷积运算的速度;除此之外,分割的图块的行高为内部存储模块可容纳的最大行数,采用这样的图块分割方式,可以尽可能地减少垂直方向上边界数据的读取,进一步提高卷积的运算速度。
[0006]优选地,当特征图的宽度小于MAC运算单元的数量时,将不对特征图的行进行分割;当特征图的宽度大于MAC运算单元的数量时,对特征图进行分割的图块的列宽为MAC运算单元的数量。
[0007]优选地,当特征图的宽度小于MAC运算单元的数量乘以步长时,将不对特征图的行进行分割;当特征图的宽度大于MAC运算单元的数量乘以步长时,对特征图进行分割的图块的列宽为MAC运算单元的数量乘以步长。
[0008]采用以上图块的分割方式,可以尽可能地提高MAC运算单元的利用率,避免闲置MAC运算单元。
[0009]优选地,所述卷积硬件加速方法用于一电子装置,更包括以下步骤:从所述电子装置的外部存储模块读取并缓存多张特征图中的至少一者以及多个卷积核;以及依次缓存所述特征图的所述一个图块的所述运算结果,以及依次输出所述多张特征图的多个图块的多个运算结果到所述外部存储模块。
[0010]优选地,按顺序读入所述一个图块在进行卷积运算所需的数据的步骤是按照一个特征图分割的多个图块从左到右,从上到下的顺序。采用以上图块读入顺序,可以将当前图块的边界数据作为下一次进行卷积运算的图块所需的数据,这样可以减少边界数据重复读取,并减少带宽量。
[0011]优选地,按顺序读入所述一个图块在进行卷积运算所需的数据的步骤是从第一个特征图的第一个图块,如果水平方向有分块,则从左到右依次读取该特征图的图块数据,然后再读取下一个特征图的图块,直到最后一个特征图;如果垂直方向有分块,再从第一个特征图的下一个垂直分块开始,依次读取。采用以上图块读入顺序,可以将当前图块的边界数据作为下一次进行卷积运算的图块所需的数据,这样可以减少边界数据重复读取,并减少带宽量;除此之外,依次处理完所有特征图中每一行卷积的数据后,即可以输出卷积结果,可以减少中间数据的存储,减少对数据输出模块中的中间结果存储模块的占用。
[0012]优选地,扩展所述一个图块的边界数据,当所述卷积核的尺寸大于1时,如果所述一个图块的边界同时是所述一个特征图的边界,那么所述一个图块的边界数据是通过添加固定值进行扩展;以及如果所述一个图块的边界在所述一个特征图的内部,那么所述一个图块的边界数据是通过读取相邻的图块的数据进行扩展。
[0013]优选地,依次提取所述一个图块和所述对应的卷积核的提取数据的步骤更包括:根据一个图块的宽度、卷积运算的步长和所述MAC运算单元的数量,决定所述提取数据的行数据的数量。采用这样的数据提取方式,可以使得MAC运算单元一次处理的数据量不局限于一行,即可以同时对多行数据进行运算。
[0014]优选地,所述行数据的数量为2的指数。因为数字芯片设计内部都是二进制的方式,每次处理的行数据量为2的指数,有助于简化数字电路的设计,减少不必要的乘法器、触发器等器件。
[0015]优选地,依次提取所述一个图块和所述对应的卷积核的提取数据的步骤更包括:改组所述提取数据,改组数据的数据量与MAC运算单元的数量相一致;当提取的每行数据量与MAC运算单元的数量相等时,则将提取的数据依次按行改组成一组改组数据;当提取的每行数据量比MAC运算单元的数量少时,将MAC运算单元的数量按照提取数据的行数据的数量进行等分,等分的每组位置从前往后填充一行提取数据,每组最后空闲的位置用0进行填充,以此形成改组数据。
[0016]对数据进行改组之后,每一行数据中多个像素设置为紧密排列的,并且设置填充值0来隔开紧密排列的多个像素,这样的数据改组方法有助于简化硬件设计,在数字芯片中可以利用位移器来取代乘法器,也可以利用填充值0来取代触发器。
[0017]本专利技术的另一方面,还提供一种卷积硬件加速电路,其连接于外部存储模块,所述外部存储模块用于存储多个特征图、多个卷积核和多个运算结果,其特征在于,所述卷积硬件加速电路包括:内部存储模块,连接所述外部存储模块,用于将所述多个特征图分别分割为多个图块,并缓存所述多个特征图分割的多个图块中的至少一者以及所述多个卷积核;其中:在进行分割时,分割的图块的列宽和MAC运算单元的数量相匹配,分割的图块的行高为内部存储模块可容纳的最大行数;数据提取模块,连接所述内部存储模块,用于按顺序读入一个特征图的一个图块和对应的卷积核在进行卷积运算所需的数据,以及依次提取所述一个特征图的所述一个图块和所述对应的卷积核的提取数据;MAC运算模块,连接所述数据
提取模块,用于依次对所述一个特征图的所述一个图块和所述对应的卷积核的所述提取数据进行卷积运算,以依次产生所述一个特征图的所述一个图块的运算结果;以及数据输出模块,连接所述MAC运算模块,用于依次缓存所述一个特征图的所述一个图块的卷积运算过程中的中间结果,并将计算完成的卷积结果输出到外部存储模块。
[0018]优选地,所述内部存储模块包括:第一缓存区,连接所述外部存储模块和所述数据提取模块,用于将所述多个特征图分别分割为多个图块,并缓存所述多个特征图分割的多个图块中的至少一者;以及第二缓存区,连接所述外部存储模块和所述数据提取模块,用于缓存所述多个卷积核。
[0019]优选地,所述数据提取模块更用来扩展所述一个图块的边界数据,当所述多个卷积核的尺寸大于1时:如果所述一个图块的边界同时是所述一个特征图的边本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种卷积硬件加速方法,其特征在于,包括以下步骤:将特征图分割为多个图块;在进行分割时,分割的图块的列宽和MAC运算单元的数量相匹配,分割的图块的行高为内部存储模块可容纳的最大行数;按顺序读入一个图块和对应的卷积核在进行卷积运算所需的数据;依次提取所述一个图块和所述对应的卷积核的提取数据;以及进行卷积运算并输出运算结果。2.根据权利要求1中所述的卷积硬件加速方法,其特征在于:当特征图的宽度小于MAC运算单元的数量时,将不对特征图的行进行分割;当特征图的宽度大于MAC运算单元的数量时,对特征图进行分割的图块的列宽为MAC运算单元的数量。3.根据权利要求1中所述的卷积硬件加速方法,其特征在于:当特征图的宽度小于MAC运算单元的数量乘以步长时,将不对特征图的行进行分割;当特征图的宽度大于MAC运算单元的数量乘以步长时,对特征图进行分割的图块的列宽为MAC运算单元的数量乘以步长。4.根据权利要求1中所述的卷积硬件加速方法,其特征在于:所述卷积硬件加速方法用于一电子装置,更包括以下步骤:从所述电子装置的外部存储模块读取并缓存多张特征图中的至少一者以及多个卷积核;以及依次缓存所述特征图的所述一个图块的所述运算结果,以及依次输出所述多张特征图的多个图块的多个运算结果到所述外部存储模块。5.根据权利要求1中所述的卷积硬件加速方法,其特征在于,按顺序读入所述一个图块在进行卷积运算所需的数据的步骤是按照一个特征图分割的多个图块从左到右,从上到下的顺序。6.根据权利要求1中所述的卷积硬件加速方法,其特征在于,按顺序读入所述一个图块在进行卷积运算所需的数据的步骤是从第一个特征图的第一个图块,如果水平方向有分块,则从左到右依次读取该特征图的图块数据,然后再读取下一个特征图的图块,直到最后一个特征图;如果垂直方向有分块,再从第一个特征图的下一个垂直分块开始,依次读取。7.根据权利要求1中所述的卷积硬件加速方法,其特征在于,所述卷积硬件加速方法更包括:扩展所述一个图块的边界数据,当所述卷积核的尺寸大于1时,如果所述一个图块的边界同时是所述一个特征图的边界,那么所述一个图块的边界数据是通过添加固定值进行扩展;以及如果所述一个图块的边界在所述一个特征图的内部,那么所述一个图块的边界数据是通过读取相邻的图块的数据进行扩展。8.根据权利要求1中所述的卷积硬件加速方法,其特征在于,依次提取所述一个图块和所述对应的卷积核的提取数据的步骤更包括:根据一个图块的宽度、卷积运算的步长和所述MAC运算单元的数量,决定所述提取数据的行数据的数量。9.根据权利要求8中所述的卷积硬件加速方法,其特征在于,所述行数据的数量为2的指数。10.根据权利要求9中所述的卷积硬件加速方法,其特征在于,依次提取所述一个图块和所述对应的卷积核的提取数据的步骤更包括:
改组所述提取数据,改组数据的数据量与MAC运算单元的数量相一致;当提取的每行数据量与MAC运算单元的数量相等时,则将提取的数据依次按行改组成一组改组数据;当提取的每行数据量比M...
【专利技术属性】
技术研发人员:沈强,陆金刚,方伟,
申请(专利权)人:浙江芯昇电子技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。