基于卷积神经网络加速器的数据重用方法与流程

文档序号:16507178发布日期:2019-01-05 09:06阅读:712来源:国知局
基于卷积神经网络加速器的数据重用方法与流程

本发明涉及卷积神经网络加速器技术领域,具体涉及一种基于卷积神经网络加速器的数据重用方法。



背景技术:

卷积神经网络加速器在两个主要输入上操作,即“输入激活和权重。ia数据(输入激活,inputactivation,简称ia)有3个维度,即w、h、c。权重数据有4个维度,即r、s、c、k。w、h、c、k可以是高达1024的大值。r、s可以是小值(最高到5或7)。每个元素通常是16位数据。ia和权重数据需要有乘数和积累操作。典型的cnn加速器有大约1k个mac单元。有了这种计算能力,它将需要大约50,000到3,000,000个周期才能完成cnn层的计算。加速器必须为mac单元提供每个周期所需的所有输入ia和权重。系统的内存总线可以提供更少的带宽,因此它要求输入数据在加速器内部有很好的重用。



技术实现要素:

本发明所要解决的技术问题是针对上述现有技术的不足提供一种基于卷积神经网络加速器的数据重用方法,本基于卷积神经网络加速器的数据重用方法可以节省内存总线带宽和功耗,在有限的缓存大小中最大化数据重用。

为实现上述技术目的,本发明采取的技术方案为:

一种基于卷积神经网络加速器的数据重用方法,包括执行数据重用方法的命令模块、瓦片扫描模块、内存请求模块、内存模块、输入激活权重缓存单元和计算处理单元pe;

包括以下步骤:

(1)瓦片扫描模块接收命令模块的命令信息,所述命令信息包括需要将cnn作业分割成瓦片块的尺寸;

(2)瓦片扫描模块根据瓦片块的尺寸生成瓦片块的坐标,并将瓦片块的坐标信息发送给内存请求模块中;

(4)内存请求模块根据瓦片块的坐标生成内存读取请求,并将内存读取请求发送到内存模块中;

(5)内存模块依次返回瓦片块数据到输入激活权重缓存单元中,输入激活权重缓存单元保存接收到的瓦片块数据从而实现数据重用并将接收到的瓦片块数据发送到计算处理单元pe。

作为本发明进一步改进的技术方案,所述的瓦片块的尺寸包括宽度维度上的尺寸、高度维度上的尺寸和权重维度上的尺寸。

作为本发明进一步改进的技术方案,所述的瓦片块的坐标包括宽度信息、高度信息和通道信息。

作为本发明进一步改进的技术方案,所述的步骤(2)还包括:瓦片扫描模块为瓦片块配置不同的计算处理单元pe;

配置方法包括:将相同的宽度信息、相同的高度信息且不同的通道信息的瓦片块对应的瓦片块数据分配给相同的计算处理单元pe。

作为本发明进一步改进的技术方案,所述的步骤(5)还包括:数据缓存单元保存接收到的瓦片块数据,并根据与接收到的瓦片块数据对应的瓦片块的配置方法将接收到的瓦片块数据发送到对应的计算处理单元pe中。

作为本发明进一步改进的技术方案,所述的cnn作业包括输入激活数据。

本发明的有益效果为:本发明可以通过对数据进行瓦片块分割处理,可以最大限度地重用输入激活权重缓存单元中的数据,并实现最小的内存访问带宽;在有限的缓存大小中最大化数据重用。

附图说明

图1为本发明的结构示意图。

图2为本发明的计算处理单元pe的分配图。

图3为本发明的瓦片块的w值权重图。

具体实施方式

下面根据图1至图3对本发明的具体实施方式作出进一步说明:

本发明在卷积神经网络加速器中设计一个瓦片扫描模块(tilescan,简称ts)。将输入激活数据分割为瓦片块并发送到后续的执行引擎pe(即计算处理单元pe)。该分割发生在ia和权重的w、h、c和k维度上。ts有多种扫描序列选择来分割瓦片。瓦片调度程序提供了可配置的序列,可以最大限度地重用数据缓存中的数据,并实现最小的内存访问带宽。具有最佳性能和功率的序列可能因层而异,并取决于输入激活(inputactivation,简称ia)数据的缓存和w缓存的大小。

参见图1,一种基于卷积神经网络加速器的数据重用方法,包括执行数据重用方法的命令模块、瓦片扫描模块、内存请求模块、内存模块、输入激活权重缓存单元和计算处理单元pe;本实施例中的计算处理单元pe包括4个,即pe0、pe1、pe2、pe3。

包括以下步骤:

(1)瓦片扫描模块接收命令模块的命令信息,所述命令信息包括需要将cnn作业分割成瓦片块的尺寸;具体地,该命令信息包括ia和w的表面尺寸和一些配置寄存器值;

(2)瓦片扫描模块根据瓦片块的尺寸生成瓦片块的坐标,并将瓦片块的坐标信息发送给内存请求模块中;

(4)内存请求模块根据瓦片块的坐标生成内存读取请求,并将内存读取请求发送到内存模块中;

(5)内存模块依次返回瓦片块数据到输入激活权重缓存单元中,输入激活权重缓存单元保存接收到的瓦片块数据从而实现数据重用并将接收到的瓦片块数据发送到计算处理单元pe。

所述的瓦片块的尺寸包括宽度维度上的尺寸、高度维度上的尺寸和权重维度上的尺寸。

所述的瓦片块的坐标包括宽度信息、高度信息和通道信息。

所述的步骤(2)还包括:瓦片扫描模块为瓦片块配置不同的计算处理单元pe;配置方法包括:将相同的宽度信息、相同的高度信息且不同的通道信息的瓦片块对应的瓦片块数据分配给相同的计算处理单元pe。

所述的步骤(5)还包括:数据缓存单元保存接收到的瓦片块数据,并根据与接收到的瓦片块数据对应的瓦片块的配置方法将接收到的瓦片块数据发送到对应的计算处理单元pe中。

所述的cnn作业包括输入激活数据。

本实施例中的瓦片扫描块将整个cnn作业分割成更小的作业(即瓦片块)并将这些作业分配给可配置数量的处理引擎(processingengine,简称pe),又称为计算处理单元pe。

pe作业是去计算多个输出激活像素数。ia数据的大小和瓦片的权重是可编程的。通常情况下,ia瓦片块数据的大小为8x8x8,权重的大小为rxsx8x16。ia瓦片块数据大小也可以是8x16、4x16等。权重大小也可以是rxsx8x8。瓦片块的deltac和k值也可能小于8。

具有相同w/h(宽度信息/高度信息)但不同c(通道信息)的作业应分配给相同的pe,以便pe可累积完整的oa而不生成部分总和。

w广播模式下的瓦片扫描分区序列示例:

首先将4个8x8x8(w方向元素数xh方向元素数xc方向元素数)瓦片块对应的瓦片块数据分配给4个pe。它们有不同的w/h坐标,但有相同的权重k=0~15。当其中一个pe完成瓦片块数据时,ts分配另一个具有相同w/h和更高通道的8x8x8的瓦片块对应的瓦片块数据给它,直到8x8xc在同一个pe中完成。然后分配另一个8x8x8与下一个w/h到pe。

所有pe同时处理相同的16k权重。这称作w值广播。

还有另一种模式,即ia广播,其中所有pe在相同ia和不同权重下工作。在这种情况下,一个pe工作在16k的权重上,4个pe可以同时执行权重k=0〜63。给定一定缓存大小的ia或w广播的选择可以根据不同的cnn层而不同,并且取决于ia/w大小、缓存大小以及随之而来的整体存储器带宽。

完成权重k=0~15的一定数量瓦片块的所有通道后,ts重新进行具有下一个16k权重的ia数据分割,直到所有重量都成了一个循环为止,然后切换到下一组ia瓦片块。

这样一组瓦片块数据的最佳数量应该使得在k循环中的ia数据全部可以保存在ia数据高速缓存(输入激活权重缓存单元)中,从而不需要ia数据重新加载。

如图2所示,该图中的每个瓦片柱由3个具相同w坐标(宽度信息)和h坐标(高度信息)但不同c坐标(通道信息)的瓦片块(图2中的方块)所组成。在本图中,瓦片柱0至3被ts指派给pe0至pe3。pe完成计算后,瓦片柱4至7被指派给pe0至pe3。最后一个瓦片柱8随后被指派给pe0。即具有相同w/h(宽度信息/高度信息)但不同c(通道信息)的作业应分配给相同的pe。

如图3所示,图中的每个立方体代表一个瓦片块的w(权重)。pe一次可以用瓦片块的ia来计算16w。图中为32w(k=0~31),其分为2组:k=0~15,k=16~31。在w广播(w值权重)模式下,ts以以下顺序用某个w组分割ia瓦片块:

(1)以wk0~k15运行ia瓦片块0~11;

(2)以wk16~k31运行ia瓦片块0~11;

(3)以wk0~k15运行ia瓦片块12~23;

(4)以wk16~k31运行ia瓦片块12~23。

权重是每4个瓦片柱圈起来,而瓦片柱的数量是可编程的。

本发明实现了各种数据分割序列用于数据重用和存储带宽节省。不同的缓存大小和不同的层可以选择不同的序列。

本发明的保护范围包括但不限于以上实施方式,本发明的保护范围以权利要求书为准,任何对本技术做出的本领域的技术人员容易想到的替换、变形、改进均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1