一种缓存空间动态分配的卷积神经网络硬件加速装置制造方法及图纸

技术编号:35267036 阅读:25 留言:0更新日期:2022-10-19 10:31
本发明专利技术公开了一种缓存空间动态分配的卷积神经网络硬件加速装置,包括:参数存储模块,用于缓存卷积神经网络及其每层卷积层的结构参数和空间分配参数;输入缓存模块,用于根据空间分配参数缓存卷积核的权重数据和输入特征图数据;权重数据转换模块,用于获取卷积核的权重数据并进行格式转换;特征图数据转换模块,用于获取输入特征图数据并进行格式转换;运算阵列模块,用于对格式转换后的权重数据和输入特征图数据进行乘累加运算,输出结果作为对应层的输出特征图数据;输出缓存模块,用于缓存输出特征图数据,输出特征图数据作为下一卷积层的输入特征图数据。该装置降低了计算过程的外部输入数据量,适用于各种卷积神经网络硬件加速,便于部署。便于部署。便于部署。

【技术实现步骤摘要】
一种缓存空间动态分配的卷积神经网络硬件加速装置


[0001]本专利技术属于计算机
,具体涉及一种缓存空间动态分配的卷积神经网络硬件加速装置。

技术介绍

[0002]近年来,人工智能已经在众多领域得到广泛应用,给人们的生活带来很多便利。在图像处理领域,相比传统机器学习算法,深度卷积神经网络具有更高的精度,甚至超越人类的准确性。
[0003]通常卷积神经网络层数参数越多推理的结果就越准确。但与此同时,网络参数越多意味着所消耗的缓存带宽也就越多。在卷积神经网络结构中,层内计算是独立不相关的,而层间计算类似于流水线结构,使用通用处理器实现效率不高。由于卷积神经网络的特殊计算模式,尤其适合硬件加速实现。
[0004]但是卷积深度神经网络有着庞大数据量,因此如何减少卷积深度神经网络硬件加速器的外部存储访问带宽一直是人工智能领域的热门研究方向。如何在兼容各种深度神经网络算法,使用有限的硬件加速器内部缓存,保持流水、并行的简单硬件结构,降低外部数据访问量,是目前硬件加速的难点。

技术实现思路

[0005]本专利技术的目的在于针对上述问题,提出一种缓存空间动态分配的卷积神经网络硬件加速装置,降低了神经网络计算过程中整体从外部输入的数据量,大大提升硬件加速性能,并适用于各种卷积神经网络的硬件加速,便于部署。
[0006]为实现上述目的,本专利技术所采取的技术方案为:
[0007]本专利技术提出的一种缓存空间动态分配的卷积神经网络硬件加速装置,包括参数存储模块、输入缓存模块、权重数据转换模块、特征图数据转换模块、运算阵列模块和输出缓存模块,其中:
[0008]参数存储模块,用于缓存卷积神经网络及其每层卷积层的结构参数和空间分配参数K,空间分配参数K通过判断对应卷积层的卷积核和输入特征图数据的大小确定;
[0009]输入缓存模块,包括N个缓存单元,并用于根据结构参数从数据总线获取对应地址的卷积核的权重数据和输入特征图数据,然后根据空间分配参数K进行卷积核的权重数据和输入特征图数据的缓存,其中,K个缓存单元用于缓存卷积核的权重数据,N

K个缓存单元用于缓存输入特征图数据;
[0010]权重数据转换模块,用于从输入缓存模块获取卷积核的权重数据并进行格式转换;
[0011]特征图数据转换模块,用于从输入缓存模块获取输入特征图数据并进行格式转换;
[0012]运算阵列模块,用于对格式转换后的权重数据和输入特征图数据进行乘累加运
算,输出卷积运算结果作为对应层的输出特征图数据;
[0013]输出缓存模块,用于缓存输出特征图数据,输出特征图数据作为下一层的输入特征图数据。
[0014]优选地,运算阵列模块按层为粒度进行卷积运算,每层卷积运算处理的数据量为:对当前卷积层大小为C*R*CN的输入特征图数据和大小为W*H*CN*G的卷积核进行卷积运算;
[0015]其中,C表示输入特征图数据的宽度,R表示输入特征图数据的高度,CN表示通道数,W表示卷积核的宽,H表示卷积核的高,G表示卷积核组数。
[0016]优选地,每个缓存单元为存储空间为M的随机存储器。
[0017]优选地,空间分配参数K通过判断对应卷积层的卷积核和输入特征图数据的大小确定,具体如下:
[0018]若卷积核的大小W*H*CN*G≤(N

1)*M,则该层卷积运算,K设置为N

1;
[0019]若卷积核的大小W*H*CN*G>(N

1)*M,且输入特征图数据的大小C*R*CN≤(N

1)*M,则该层卷积运算,K设置为1;
[0020]若卷积核的大小W*H*CN*G>(N

1)*M,输入特征图数据的大小C*R*CN>(N

1)*M,且W*H*CN*G<C*R*CN,则该层卷积运算,K设置为N

1;
[0021]若卷积核的大小W*H*CN*G>(N

1)*M,输入特征图数据的大小C*R*CN>(N

1)*M,且W*H*CN*G>C*R*CN,则该层卷积运算,K设置为1;
[0022]若卷积核的大小W*H*CN*G>(N

1)*M,输入特征图数据的大小C*R*CN>(N

1)*M,且W*H*CN*G=C*R*CN,则该层卷积运算,K设置为1或N

1;
[0023]其中,C表示输入特征图数据的宽度,R表示输入特征图数据的高度,CN表示通道数,W表示卷积核的宽,H表示卷积核的高,G表示卷积核组数。
[0024]优选地,判断对应层的卷积核和输入特征图数据的大小由参数存储模块或外部CPU完成。
[0025]与现有技术相比,本专利技术的有益效果为:
[0026](1)本申请采用复用输入缓存模块的硬件结构,通过当前计算卷积层中卷积核或输入特征图数据的大小动态分配输入缓存,降低卷积神经网络计算过程中整体从外部输入的数据量,提升硬件加速性能;
[0027](2)本申请保持卷积神经网络的原始结构,仅通过调节缓存卷积核的权重数据或输入特征图数据的输入缓存大小,保证卷积神经网络运算消耗尽量小的外部缓存带宽,显著提高运算效率,不影响数据存储结构和计算方式,适合各种卷积神经网络的硬件加速,便于部署。
附图说明
[0028]图1为本专利技术卷积神经网络硬件加速装置的结构示意图;
[0029]图2为本专利技术的输入缓存模块的存储方式示意图;
[0030]图3为本专利技术的输入缓存模块优先存储卷积核的权重数据示意图;
[0031]图4为本专利技术的输入缓存模块优先存储输入特征图数据示意图。
具体实施方式
[0032]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0033]需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本申请。
[0034]本申请提供一种缓存空间动态分配的卷积神经网络硬件加速装置,解决目前卷积神经网络所消耗的外部缓存带宽多,通用处理器实现效率不高的问题。
[0035]如图1

4所示,一种缓存空间动态分配的卷积神经网络硬件加速装置,包括参数存储模块、输入缓存模块、权重数据转换模块、特征图数据转换模块、运算阵列模块和输出缓存模块,其中:
[0036]参数存储模块,用于缓存卷积神经网络及其每层卷积层的结构参数和空间分配参数K,空间分配参数K通过判断对应卷积本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓存空间动态分配的卷积神经网络硬件加速装置,其特征在于:所述缓存空间动态分配的卷积神经网络硬件加速装置包括参数存储模块、输入缓存模块、权重数据转换模块、特征图数据转换模块、运算阵列模块和输出缓存模块,其中:所述参数存储模块,用于缓存卷积神经网络及其每层卷积层的结构参数和空间分配参数K,所述空间分配参数K通过判断对应层的卷积核和输入特征图数据的大小确定;所述输入缓存模块,包括N个缓存单元,并用于根据结构参数从数据总线获取对应地址的卷积核的权重数据和输入特征图数据,然后根据空间分配参数K进行卷积核的权重数据和输入特征图数据的缓存,其中,K个缓存单元用于缓存卷积核的权重数据,N

K个缓存单元用于缓存输入特征图数据;所述权重数据转换模块,用于从输入缓存模块获取卷积核的权重数据并进行格式转换;所述特征图数据转换模块,用于从输入缓存模块获取输入特征图数据并进行格式转换;所述运算阵列模块,用于对格式转换后的权重数据和输入特征图数据进行乘累加运算,输出卷积运算结果作为对应层的输出特征图数据;所述输出缓存模块,用于缓存输出特征图数据,所述输出特征图数据作为下一层的输入特征图数据。2.如权利要求1所述的缓存空间动态分配的卷积神经网络硬件加速装置,其特征在于:所述运算阵列模块按层为粒度进行卷积运算,每层卷积运算处理的数据量为:对当前卷积层大小为C*R*CN的输入特征图数据和大小为W*H*CN*G的卷积核进行卷积运算;其中,C表示输入特征图数据的宽度,R表示输入特征图数据的高度,CN表示通道数,W表示卷积核的宽,H表示卷积核的高,G表示卷积核组数。3.如权利要求1所述的缓存空间动态分配的卷积神经网络硬件加速装置,其特征在于:每个所述缓存单元为存储空间为M的随机存储...

【专利技术属性】
技术研发人员:曹学成廖湘萍李盈盈丁永林李炜
申请(专利权)人:中国电子科技集团公司第五十二研究所
类型:发明
国别省市:

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

1