数据存储管理方法和装置以及卷积计算硬件加速器制造方法及图纸

技术编号:29791984 阅读:12 留言:0更新日期:2021-08-24 18:11
公开了一种用于卷积计算的数据存储管理方法和装置以及卷积计算硬件加速器。将特征图的较低层级分块存储到较低层级存储器。从较低层级存储器中的较低层级分块中读取较高层级分块,并将较高层级分块存储到较高层级存储器。较高层级分块是所述较低层级分块的一部分较高层级存储器的存储层级高于较低层级存储器的存储层级。由此,在针对卷积计算的硬件加速中,显著降低了数据访存开销和存储空间需求。

【技术实现步骤摘要】
数据存储管理方法和装置以及卷积计算硬件加速器
本公开涉及深度神经网络计算,特别涉及用于卷积计算的数据存储管理。
技术介绍
卷积是当今深度神经网络中的核心运算。近年来,人们期望基于芯片进行高效的卷积运算,以提升人工智能(AI)运算性能。目前多数AI芯片加速卷积运算的方法是,将卷积计算转换为矩阵乘法,用专门计算矩阵乘法的芯片(IP)硬件进行高速运算。矩阵乘法运算方便快捷,且容易在芯片上实现。然而,将卷积转换为矩阵乘法,需要进行数据展开(im2col)操作。图1示意性地示出了特征图(featuremap)的im2col数据展开操作。如图1左图所示,假设特征图(featuremap)的尺寸为4×4,各行数据分别为:0,1,2,3;4,5,6,7;8,9,A,B;C,D,E,F。原始数据量为4×4=16。在卷积核尺寸为3×3的3×3卷积计算中,需要进行4次卷积计算。每次卷积计算中用到的数据分别为:0,1,2,4,5,6,8,9,A;1,2,3,5,6,7,9,A,B;4,5,6,8,9,A,C,D,E;5,6,7,9,A,B,D,E,F。对上述原始数据进行im2col展开,每一列中包括一次卷积计算所需要用到的9个数据,得到分别对应于4次卷积计算的4列数据,如图1右图所示。这样,可以将特征图与卷积核的卷积计算转换为展开矩阵与改写为1×9行矩阵的卷积核之间的矩阵乘法计算。然而,数据量从4×4=16扩展为9×4=36。这样,需要耗用更多的数据存储空间,数据访存开销也相应提升。特别是在卷积核较大,例如7×7卷积乃至更大卷积核的卷积运算的情况下,会导致巨大的数据访存开销和存储空间需求。虽然目前在神经网络运算中,1×1卷积和3×3卷积更为普遍,但是在某些特定模型中,7×7卷积乃至更大的卷积在计算上也占有不可忽视的比重。在一些场景中,7×7卷积计算占比已超过25%。因此,亟需一种卷积计算硬件加速方案,避免上述巨大的数据访存开销和存储空间需求。
技术实现思路
本公开要解决的一个技术问题是提供一种用于卷积计算的硬件加速方案,其可以降低数据访存开销和存储空间需求。根据本公开的第一个方面,提供了一种用于卷积计算的数据存储管理方法,包括:将特征图的较低层级分块存储到较低层级存储器;从较低层级存储器中的所述较低层级分块中读取较高层级分块,并将所述较高层级分块存储到较高层级存储器,所述较高层级分块是所述较低层级分块的一部分,较高层级存储器的存储层级高于较低层级存储器的存储层级。可选地,将特征图逐级划分为多级分块,分别存储到相应存储层级的存储器,其中,更高层级的分块存储到更高存储层级的存储器中。可选地,更高存储层级的存储器具有更短的访存延迟。可选地,该方法还可以包括:对于每一级分块,当完成其所对应的全部卷积计算处理之后,从存储层级较低的上一级分块所在的上一级存储器中读取新的本级分块数据,并将新的本级分块数据存储到对应的本级存储器中。可选地,该方法还可以包括:使用最高层级存储器中存储的最高层级分块执行卷积计算处理。可选地,最高层级分块的数据数量大于卷积核行数或列数;并且/或者次高层级分块的行数和列数大于卷积核的行数和列数。可选地,最高层级分块包括特征图中一行或一列数据中的多个数据,以用于当前的卷积计算处理;并且/或者次高层级分块映射到图形处理单元的线程块,以用于执行卷积计算。可选地,该方法还可以包括:基于图形处理单元的处理能力和/或各级存储器的性能和/或特征图的尺寸,确定各级分块的尺寸。可选地,该方法还可以包括:将较低层级分块划分为多个子块,其中,较高层级分块包括一个子块以及一个子块周围的若干行及若干列。可选地,该方法还可以包括:将卷积核存储在次高层级存储器中;以及将卷积核中当前卷积计算处理所需的一行或一列存储在最高层级存储器中。根据本公开的第二个方面,提供了一种一种卷积计算硬件加速方法,包括:使用根据上述第一个方面的方法存储特征图和/或卷积核;以及使用最高层级存储器中存储的卷积核的一行或一列数据和最高层级存储器中存储的特征图中一行或一列数据中的多个数据,进行卷积计算。根据本公开的第三个方面,提供了一种卷积计算硬件加速器,包括:多级存储系统,包括多个存储层级的存储器,在较低层级存储器中存储特征图的较低层级分块,在较高层级存储器中存储从较低层级存储器中的较低层级分块中读取的较高层级分块,较高层级分块是较低层级分块的一部分;以及计算单元,使用存储层级最高的最高层级存储器中存储的最高层级分块执行卷积计算处理。可选地,特征图被逐级划分为多级分块,分别存储到相应存储层级的存储器,其中,更高层级的分块存储到更高存储层级的存储器中。可选地,更高存储层级的存储器具有更短的访存延迟。可选地,对于每一级分块,当完成其所对应的全部卷积计算处理之后,从存储层级较低的上一级分块所在的上一级存储器中读取新的本级分块数据,并将新的本级分块数据存储到对应的本级存储器中。可选地,在最高层级存储器中存储的最高层级分块包括特征图中一行或一列数据中的多个数据,以用于当前的卷积计算处理;并且/或者在次高层级存储器中存储的次高层级分块映射到图形处理单元的线程块,以用于执行卷积计算;并且/或者在次高层级存储器中存储卷积核;并且/或者在最高层级存储器中存储卷积核中当前卷积计算处理所需的一行或一列。根据本公开的第四个方面,提供了一种用于卷积计算的数据存储管理装置,包括写入装置和读取装置,写入装置将特征图的较低层级分块存储到较低层级存储器;读取装置从较低层级存储器中的较低层级分块中读取较高层级分块,并由写入装置将较高层级分块存储到较高层级存储器,较高层级分块是较低层级分块的一部分,较高层级存储器的存储层级高于较低层级存储器的存储层级。可选地,特征图被逐级划分为多级分块,分别存储到相应存储层级的存储器,其中,更高层级的分块存储到更高存储层级的存储器中。可选地,更高存储层级的存储器具有更短的访存延迟。可选地,对于每一级分块,当完成其所对应的全部卷积计算处理之后,读取装置从存储层级较低的上一级分块所在的上一级存储器中读取新的本级分块数据,并由写入装置将新的本级分块数据存储到对应的本级存储器中。可选地,在最高层级存储器中存储的最高层级分块包括特征图中一行或一列数据中的多个数据,以用于当前的卷积计算处理;并且/或者在次高层级存储器中存储的次高层级分块映射到图形处理单元的线程块,以用于执行卷积计算;并且/或者在次高层级存储器中存储卷积核;并且/或者在最高层级存储器中存储卷积核中当前卷积计算处理所需的一行或一列。由此,在根据本公开的卷积计算的硬件加速中,显著降低数据访存开销和存储空间需求。另外,本公开的实施例通过发掘卷积的内在数据复用性(特别是7×7卷积乃至更大的卷积),结合例如GPU芯片的多级存储特性,能够更加本文档来自技高网
...

【技术保护点】
1.一种用于卷积计算的数据存储管理方法,包括:/n将特征图的较低层级分块存储到较低层级存储器;/n从较低层级存储器中的所述较低层级分块中读取较高层级分块,并将所述较高层级分块存储到较高层级存储器,所述较高层级分块是所述较低层级分块的一部分,较高层级存储器的存储层级高于较低层级存储器的存储层级。/n

【技术特征摘要】
1.一种用于卷积计算的数据存储管理方法,包括:
将特征图的较低层级分块存储到较低层级存储器;
从较低层级存储器中的所述较低层级分块中读取较高层级分块,并将所述较高层级分块存储到较高层级存储器,所述较高层级分块是所述较低层级分块的一部分,较高层级存储器的存储层级高于较低层级存储器的存储层级。


2.根据权利要求1所述的方法,其中,
将特征图逐级划分为多级分块,分别存储到相应存储层级的存储器,其中,更高层级的分块存储到更高存储层级的存储器中,并且/或者
更高存储层级的存储器具有更短的访存延迟。


3.根据权利要求2所述的方法,还包括:
对于每一级分块,当完成其所对应的全部卷积计算处理之后,从存储层级较低的上一级分块所在的上一级存储器中读取新的本级分块数据,并将新的本级分块数据存储到对应的本级存储器中。


4.根据权利要求2所述的方法,还包括:
使用最高层级存储器中存储的最高层级分块执行卷积计算处理。


5.根据权利要求4所述的方法,其中,
最高层级分块的数据数量大于卷积核行数或列数;并且/或者
次高层级分块的行数和列数大于卷积核的行数和列数。


6.根据权利要求5所述的方法,其中,
最高层级分块包括特征图中一行或一列数据中的多个数据,以用于当前的卷积计算处理;并且/或者
次高层级分块映射到图形处理单元的线程块,以用于执行卷积计算。


7.根据权利要求1所述的方法,还包括:
基于图形处理单元的处理能力和/或各级存储器的性能和/或特征图的尺寸,确定各级分块的尺寸。


8.根据权利要求1所述的方法,还包括:
将所述较低层级分块划分为多个子块,
其中,所述较高层级分块包括一个子块以及所述一个子块周围的若干行及若干列。


9.根据权利要求1所述的方法,还包括:
将卷积核存储在次高层级存储器中;以及
将卷积核中当前卷积计算处理所需的一行或一列存储在最高层级存储器中。


10.一种卷积计算硬件加速方法,包括:
使用根据权利要求1至9中任何一项所述的方法存储特征图和/或卷积核;以及
使用最高层级存储器中存储的卷积核的一行或一列数据和最高层级存储器中存储的特征图中一行或一列数据中的多个数据,进行卷积计算。


11.一种卷积计算硬件加速器,包括:
多级存储系统,包括多个存储层级的存储器,在较低层级存储器中存储特征图的较低层级分块,在较高层级存储器中存储从较低层级存储器中...

【专利技术属性】
技术研发人员:方民权吕倪祺游亮龙欣
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1