一种提高卷积运算效率的数据摆放方法技术

技术编号:28560514 阅读:19 留言:0更新日期:2021-05-25 17:55
本发明专利技术公开一种提高卷积运算效率的数据摆放方法,包括以下步骤:w方向数据缓存模块从块数据缓存sram中取出特定数量的w方向特征值、h方向特征值和c方向特征值,根据第一预设数目将w方向特征值依次摆放到sram子模块中,根据第二预设数目将h方向特征值依次摆放到sram子模块中,根据第三预设数目将c方向特征值依次摆放到sram子模块中,通过迭代展开为一维数据保存在n个sram子模块中;将sram子模块中的一维数据发送到fifo缓存模块;将一维数据从fifo缓存模块发送到数据拼凑模块,根据filter窗口的尺寸对一维数据进行对应的重排序。本发明专利技术的有益效果是:通过多级缓存加速并重排序需要取进的数据,将数据输入划成更细的输入块,提高卷积的运算效率。

【技术实现步骤摘要】
一种提高卷积运算效率的数据摆放方法
本专利技术涉及神经网络加速芯片卷积
,尤其涉及一种提高卷积运算效率的数据摆放方法。
技术介绍
随着人工智能的快速发展,人们对人工智能加速芯片的运算速度的要求也越来越高。而人工智能加速芯片中普遍采用的是神经网络结构,而卷积神经网络又是其核心的一种神经网络类型。在卷积神经网络的实现中,卷积的运算时间占了很大的一部分,所以如何提高卷积的运算效率,成为了提高神经网络加速芯片运算速度的关键。目前也有很多提高卷积运算效率的方法,但从卷积的数据输入的摆放角度还没有更好的方法。
技术实现思路
针对上述问题,本专利技术提出一种提高卷积运算效率的数据摆放方法,旨在改进数据摆放方法,以提高卷积运算效率。为解决上述技术问题,本专利技术的技术方案如下:一种提高卷积运算效率的数据摆放方法,包括以下步骤:w方向数据缓存模块从块数据缓存sram中取出特定数量的w方向特征值、h方向特征值和c方向特征值,根据第一预设数目将所述w方向特征值依次摆放到sram子模块中,根据第二预设数目将所述h方向特征值依次摆放到sram子模块中,根据第三预设数目将所述c方向特征值依次摆放到sram子模块中,通过迭代展开为一维数据保存在n个sram子模块中;将sram子模块中的一维数据发送到fifo缓存模块;将一维数据从fifo缓存模块发送到数据拼凑模块,根据filter窗口的尺寸对所述一维数据进行对应的重排序;其中,w为输入宽度,h为输入高度,c为通道数量,kw为卷积核的宽度,kh为卷积核的高度,sh为卷积核高度方向的步长,sw为卷积核宽度方向的步长。在一些实施方式中,所述特定数量根据所述摆放的处理速度、kw、kh、c、sw和sh的支持范围,以及平均每个周期要求完成的卷积核乘累加运算组数的最低要求共同决定。在一些实施方式中,所述第一预设数目、所述第二预设数目和所述第三预设数目在迭代过程数目变化或不变化。在一些实施方式中,所述sram子模块和所述fifo缓存模块的数量一致。在一些实施方式中,filter窗口的尺寸包括kw、kh和sh,且定义sw=1。在一些实施方式中,所述重排序具体为:所述一维数据根据filter窗口的尺寸排序,分为c=1、c=4、c=8和c=16*n四类,当c=1,根据kw方向的特征值的不同数目,从每个所述fifo缓存模块中取出对应数目a的特征值,以拼凑出最大m个pixel特征值为限,且拼凑kw方向相邻的特征值;当c=4,根据kw方向的特征值的不同数目,从每个所述fifo缓存模块中取出对应数目a1的特征值,a1为c的倍数,以拼凑出最大m个pixel特征值为限,且拼凑kw方向相邻的特征值,当kw=3,取出对应的数目a2,a2=(m/3)取整数;当c=8或c=16*n,根据kw方向的特征值的不同数目,从每个所述fifo缓存模块中取出对应数目a3或a4的特征值,拼凑出最大m个pixel特征值,且拼凑kw方向相邻的两个特征值。在一些实施方式中,若所述sram子模块的数量不足以重排序出wa_max个特征值组;对于当c=16n,wa≤(wa_max/2)且wa>(wa_max/4),在c通道方向按照g1个特征值进行将特征值组拆分;当c<16,wa≤(wa_max/2),ha>1,在kernal的h方向将两个特征值组同时输入卷积乘累加阵列;当c=16n,ha>1,wa≤(wa_max/4),在c通道方向按g1个特征值划分并且在kernal的h方向将两个特征值组同时输入卷积乘累加阵列;其中,wa为b个sram子模块的组合出来的特征值个数,wa_max为卷积每个周期能处理最大的wa数目,ha为每个sram子模块能组合出来h方向的特征值个数。在一些实施方式中,若wa的数目不是2或者4的倍数,当wa<(wa_max/2),且当ha≥n1,将下一周期处理的kernal的h方向的部分wa数目,放到当前周期处理;若wa的数目不是2或者4的倍数,当wa<(wa_max/4),且当ha≥n1,将下一周期处理的kernal的h方向的部分wa数目,放到当前周期处理,同时在c通道方向按照g1个特征值进行将特征值组拆分。本专利技术的有益效果为:通过多级缓存加速并重排序需要取进的数据,将数据输入划成更细的输入块,提高卷积的运算效率。附图说明图1为本专利技术实施例公开的提高卷积运算效率的数据摆放方法的流程图;图2为、卷积特征值的摆放示意图;图3为、filter对应的特征值沿channel方向划分的示意图;图4为h方向的两个kernal对应的特征值以虚线划分的示意图;图5为h方向的两个kernal并在c方向进行划分的示意图;图6为特殊数目wa的处理过程的示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚、明确,下面结合附图和具体实施方式对本专利技术的内容做进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。如图1所示,本实施例提出了一种提高卷积运算效率的数据摆放方法,包括以下步骤:步骤一,w方向数据缓存模块从块数据缓存sram中取出特定数量的w方向特征值、h方向特征值和c方向特征值,特定数量根据摆放的处理速度、kw、kh、c、sw和sh的支持范围,以及平均每个周期要求完成的卷积核乘累加运算组数的最低要求共同决定。根据第一预设数目将w方向特征值依次摆放到sram子模块(sram子模块属于w方向数据缓存模块的子模块)中,根据第二预设数目将h方向特征值依次摆放到sram子模块中,根据第三预设数目将c方向特征值依次摆放到sram子模块中,通过迭代展开为一维数据保存在n个sram子模块中,这样的设计主要是能同时从n个sram子模块取出n个w方向特征值,加快取数速度。更进一步的,每一个sram子模块的数据摆放格式如图2所示,先摆c方向,从c0,c1等一直到ct。摆完ct后,接着摆ht方向,一个sram子模块能存ht*ct方向的特征值。然后n个sram之间按照wt方向存数据。这样就把一个三维的特征值,展开成一维数据保存在n个sram中。上述的第一预设数目、第二预设数目和第三预设数目均用t表示,三者的t都不一定相等的,只是描述这个过程仅仅处理整个三维特征值数据中的其中一个三维块数据,在迭代过程数目变化或不变化。步骤二,将sram子模块中的一维数据发送到fifo缓存模块;sram子模块和fifo缓存模块的数量一致。fifo缓存模块的设置有利于在sh重组特征数据,不用重新访问sram子模块,可以直接从第一级输入fifo缓存模块中获得,能缓存sram子模块取出来的固定数目的特征值。在控制的设计上,能提前预读n个w方向特征值,并保证这部分特征值,大于或等于卷积运算乘累加单元的一个cycle消耗特征值的数目。这样就使得在整个数本文档来自技高网...

【技术保护点】
1.一种提高卷积运算效率的数据摆放方法,其特征在于,包括以下步骤:/nw方向数据缓存模块从块数据缓存sram中取出特定数量的w方向特征值、h方向特征值和c方向特征值,根据第一预设数目将所述w方向特征值依次摆放到sram子模块中,根据第二预设数目将所述h方向特征值依次摆放到sram子模块中,根据第三预设数目将所述c方向特征值依次摆放到sram子模块中,通过迭代展开为一维数据保存在n个sram子模块中;/n将sram子模块中的一维数据发送到fifo缓存模块;/n将一维数据从fifo缓存模块发送到数据拼凑模块,根据filter窗口的尺寸对所述一维数据进行对应的重排序;/n其中,w为输入宽度,h为输入高度,c为通道数量,kw为卷积核的宽度,kh为卷积核的高度,sh为卷积核高度方向的步长,sw为卷积核宽度方向的步长。/n

【技术特征摘要】
1.一种提高卷积运算效率的数据摆放方法,其特征在于,包括以下步骤:
w方向数据缓存模块从块数据缓存sram中取出特定数量的w方向特征值、h方向特征值和c方向特征值,根据第一预设数目将所述w方向特征值依次摆放到sram子模块中,根据第二预设数目将所述h方向特征值依次摆放到sram子模块中,根据第三预设数目将所述c方向特征值依次摆放到sram子模块中,通过迭代展开为一维数据保存在n个sram子模块中;
将sram子模块中的一维数据发送到fifo缓存模块;
将一维数据从fifo缓存模块发送到数据拼凑模块,根据filter窗口的尺寸对所述一维数据进行对应的重排序;
其中,w为输入宽度,h为输入高度,c为通道数量,kw为卷积核的宽度,kh为卷积核的高度,sh为卷积核高度方向的步长,sw为卷积核宽度方向的步长。


2.如权利要求1所述的提高卷积运算效率的数据摆放方法,其特征在于,所述特定数量根据所述摆放的处理速度、kw、kh、c、sw和sh的支持范围,以及平均每个周期要求完成的卷积核乘累加运算组数的最低要求共同决定。


3.如权利要求1所述的提高卷积运算效率的数据摆放方法,其特征在于,所述第一预设数目、所述第二预设数目和所述第三预设数目在迭代过程数目变化或不变化。


4.如权利要求1所述的提高卷积运算效率的数据摆放方法,其特征在于,所述sram子模块和所述fifo缓存模块的数量一致。


5.如权利要求1所述的提高卷积运算效率的数据摆放方法,其特征在于,filter窗口的尺寸包括kw、kh和sh,且定义sw=1。


6.如权利要求1所述的提高卷积运算效率的数据摆放方法,其特征在于,所述重排序具体为:所述一维数据根据filter窗口的尺寸排序,分为c=1、c=4、c=8和c=16*n四类,当c=1,根据kw方向的特征值的不同数目,从每个所述fif...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:珠海亿智电子科技有限公司
类型:发明
国别省市:广东;44

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

1