一种支持多层神经网络层间并行处理的加速器
未命名
07-22
阅读:71
评论:0
1.本发明涉及神经网络处理器领域,具体来说涉及神经网络模型计算的硬件加速领域,更具体地说,涉及一种支持多层神经网络层间并行处理的加速器。
背景技术:
2.随着神经网络模型在机器人视觉、自然语言处理、医疗影像等领域的部署,使各类任务的预测效果相比于传统方法有了显著的提升。然而神经网络模型所带来的极大算量载荷,阻碍了其算法在算力与能耗资源受限终端设备上部署。对此,出现了神经网络加速器,其为一种加速神经网络模型算法的典型加速器。加速器有多种应用形式,比如:将加速器在嵌入在终端中,其以高能效特点嵌入终端设备完成并行运算;或者,将加速器作为一个外部设备连接至终端,对终端卸载的神经网络任务进行加速;又或者,在云端设置加速器,现有研究中在云端设置各种各样的加速器来加速神经网络的批量推理与运行。
3.在神经网络的并行计算中存在着一种常用的层间并行手段,即同时在加速器中运行多个网络层,用以提高加速器的运算单元利用率,现有的方法实现层间并行受限于一种限制条件,实现层间并行的限制条件是层间数据的依赖关系,及当前层的运行依赖上一层的输出,在这种情况下层与上层之间不能实现并行,这里的并行指的是以层为基本并行单位的一种粗粒度并行方式。
4.层间并行一般会在两种场景下出现:一种是残差结构的多分支情况,一个残差结构中间的多个并行分支(网络层)没有数据依赖关系,可以完全并行;另一种是多批(batch)数据一起推理,则每个批次之间没有数据依赖关系,从而完成网络的并行。
5.在实际应用场景中,上述两种情况的出现都较为苛刻,一方面多并行分支的结构出现是小概率事件,另一方面多批推理给用户和缓存开销等带来了不便和约束。当前经典的层间调度因为粗粒度限制导致需要占据大量的中间缓存,当中间的特征向量过大,导致缓存无法容纳时需要暂时将部分数据放置到外部存储中,从而会带来巨大的访存开销,难以保证其优势。
技术实现要素:
6.因此,本发明的目的在于克服上述现有技术的缺陷,提供一种支持多层神经网络的层间并行处理的加速器。
7.本发明的目的是通过以下技术方案实现的:
8.根据本发明的第一方面,提供一种支持多层神经网络的层间并行处理的加速器,其能用于对通用计算机卸载的包括多个网络层的多层神经网络任务进行处理,包括:用于执行多层神经网络中单层数据处理、层间数据并行处理的计算阵列;用于获取一个或者多个数据块上存储的多层神经网络中,已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权重矩阵的第一重排器;用于在计算阵列处理重组矩阵时获取重组数据矩阵
对应的预设重组粒度,指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理的扩展模块;用于在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出的第二重组器。
9.在本发明的一些实施例中,加速器还包括:用于将输入数据的重排完成的一个或者多个重组数据矩阵及其对应的重组权重矩阵、预设重组粒度被关联并集中存储在相应的数据块中的数据管理模块。
10.在本发明的一些实施例中,加速器还包括:用于根据加速器的硬件架构信息和数据处理延迟动态调整所述预设重组粒度的调度决策器。
11.在本发明的一些实施例中,硬件架构信息包括加速器的层次结构、各缓存的空间大小、缓存的数据块大小、访存带宽。
12.在本发明的一些实施例中,调度决策器包括:用于根据所述硬件架构信息和当前多层神经网络中已可用于后续计算的层内和/或层间数据生成搜索空间的搜索空间生成器,其中,所述搜索空间包括若干个调度模式,每个调度模式包括预设重组粒度、重组数据构成和各重组数据对应的原始数据块的存储位置;用于根据搜索空间生成调度模式并搜集根据生成的调度模式对应的历史数据以指导生成最小化处理时延的新的调度模式的模式生成器,所述历史数据包括对应调度模式在加速器上应用时各缓存的资源利用率以及对应重组数据的处理延迟。
13.在本发明的一些实施例中,加速器包括全局缓存、权重缓存和数据缓存,缓存层次结构指示全局缓存、权重缓存和数据缓存和计算阵列间的层级和连接关系,访存带宽包括全局缓存、权重缓存和数据缓存和计算阵列中各个具有连接关系的部件间的访问带宽。
14.在本发明的一些实施例中,重组数据矩阵的每一行对应一个卷积位置的卷积核所展开的行,重组数据矩阵的每一行的数据利用重组权重矩阵的对应行的权重进行卷积运算。
15.在本发明的一些实施例中,预设重组粒度小于重组数据原来所在矩阵的粒度。
16.在本发明的一些实施例中,扩展模块包括:宽寄存器,用于存储每行的宽度以指示当前计算阵列需按照预设重组粒度中每行的宽度读取对应的数据和权重进行运算;行寄存器,用于存储重组数据矩阵的总行数;累加寄存器,用于存储指示计算阵列对当前重组数据矩阵已处理的行数;加法器,用于在计算阵列每完成一行数据的计算之后,在累加寄存器存储的值的基础上加一完成累加操作,并更新累加寄存器存储的值;比较器,用于比较累加寄存器的值和行寄存器的值的大小以确定是否完成预设重组粒度的重组数据矩阵的计算。
17.根据本发明的第二方面,提供一种在第一方面所述的加速器上执行的计算方法,包括:s1、从通用计算机获取多层神经网络任务;s2、以层间并行的方式对多层神经网络任务进行调度,其中,由调度决策器根据当前加速器的硬件架构信息和历史数据确定最小化处理时延的调度模式,其中,硬件架构信息包括加速器的层次结构、各缓存的空间大小、缓存的数据块大小、访存带宽,历史数据包括对应历史的调度模式在加速器上应用时各缓存的资源利用率以及对应重组数据的处理延迟;s2、由第一重排器根据当前的调度模式中指示的预设重组粒度将已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权
重矩阵并生成控制码;s3、由扩展模块根据控制码控制指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理,处理完成之后其结果存入缓存并发起中断,等待处理下一个重组数据矩阵;s4、由第二重组器在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出;s5、重复步骤s2-s4,当多层神经网络任务的处理完成后,向通用计算机输出处理的结果。
18.与现有技术相比,本发明的优点在于:
19.本技术提出一种支持多层神经网络层间并行处理的加速器,其通过第一重排器将已可用于后续计算的层内和/或层间的数据及对应的权重进行重组为比重组数据原来所在矩阵的粒度更小的重组数据矩阵及对应的重组权重矩阵中,并利用扩展模块指示计算阵列按预设重组粒度进行工作以完成对应的处理,处理的结果通过第二重组器按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出。由此,以更细的粒度重组神经网络中已能用于后续计算的层内和/或层间数据及其对应的权重,减少因可用数据未被准备好而不能开展后续计算的情况,更高效地实现对神经网络任务的处理,降低处理延迟,提高加速器的加速效果。
附图说明
20.以下参照附图对本发明实施例作进一步说明,其中:
21.图1为根据本发明实施例的层间并行处理的原理示意图;
22.图2为根据本发明实施例的加速器的模块示意图;
23.图3为根据本发明实施例的加速器的模块结构示意图;
24.图4为根据本发明实施例的扩展模块的示意图。
具体实施方式
25.为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
26.如在背景技术部分提到的,当前经典的层间调度因为粗粒度限制导致需要占据大量的中间缓存,当中间的特征向量过大,导致缓存无法容纳时需要暂时将部分数据放置到外部存储中,从而会带来巨大的访存开销,难以保证其优势。对此,本技术提出一种支持多层神经网络层间并行处理的加速器,其通过第一重排器将已可用于后续计算的层内和/或层间的数据及对应的权重进行重组为比重组数据原来所在矩阵的粒度更小的重组数据矩阵及对应的重组权重矩阵中,并利用扩展模块指示计算阵列按预设重组粒度进行工作以完成对应的处理,处理的结果通过第二重组器按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出。由此,以更细的粒度重组神经网络中已能用于后续计算的层内和/或层间数据及其对应的权重,减少因可用数据未被准备好而不能开展后续计算的情况,更高效地实现对神经网络任务的处理,降低处理延迟,提高加速器的加速效果。
27.为了示意,参见图1,例如,假设神经网络的第l层网络层和第l+1层网络层的部分数据已经准备好可用于后续计算;但是,如果从单层来看,l层或第l+1层的数据均没有完全
准备好,则用现有技术难以开展后续计算。对此,针对该问题,本技术提出了一种支持多层神经网络的层间数据并行处理的加速器,其具有细粒度的层间并行神经网络加速器架构,通过分析前后层的依赖关系,将已可用于后续计算的层内和/或层间数据展开为行数据,从而将原本的层间并行拆分成行间并行,每次选择需要并行的行进行处理,实现更加细粒度的并行化调度,从获得了计算效率的提升。
28.根据本发明的一个实施例,提供一种支持多层神经网络的层间数据并行处理的加速器,参见图2,其包括:计算阵列101、第一重排器102、扩展模块103、第二重组器104、调度决策器105和数据管理模块106或者其组合,下面分别进行介绍。
29.根据本发明的一个实施例,计算阵列101,用于执行多层神经网络中单层数据处理、层间数据并行处理。计算阵列101,包含若干个处理单元,用于对输入的单层数据或者层间数据及其对应的权重实现乘累加运算。计算阵列101可采用现有的结构。或者,计算阵列101包括乘法单元和加法器,乘法单元的规模可选取典型配置如8乘以8、64乘以64、128乘以128等。加法器分为宽比特加法器与低比特加法器,可用于实现指定不同比特位数数据的加法。
30.根据本发明的一个实施例,第一重排器102,用于获取一个或者多个数据块上存储的多层神经网络中,已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权重矩阵。重组数据矩阵的每一行对应一个卷积位置的卷积核所展开的行,重组数据矩阵的每一行的数据利用重组权重矩阵的对应行的权重进行卷积运算。卷积位置的粒度可以根据实施者的需要定义,比如:一个卷积位置可以定义为卷积核在单个通道上卷积覆盖的区域;又或者,一个卷积位置可以定义为卷积核在预定数量的通道(如2个通道、3个通道等)上卷积覆盖的区域。第一重排器102可以将不同层的层间数据重组成重组数据矩阵,以此能够减少数据准备时间,避免下一层的数据没有完全准备好而不能开展后续计算的情况。应当理解,在某些情况下,当前可能单个层的待处理的数据也能填满一个重组数据矩阵,因此,也可能存在仅对层内数据进行重组以形成重组数据矩阵的情况。
31.根据本发明的一个实施例,扩展模块103,用于在计算阵列处理重组矩阵时获取重组数据矩阵对应的预设重组粒度,指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理。在重组后,本实施例通过扩展模块103来指示重组后的重组矩阵的预设重组粒度的大小以指示如何取重组数据矩阵中的数据及重排权重矩阵中对应的权重来完成卷积运算。
32.根据本发明的一个实施例,第二重组器104,用于在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出。在根据重组数据矩阵和重排权重矩阵完成处理后得到的结果与网络层原始的输出的结果的排布不同,因此,通过第二重组器104进行结果重组以还原网络层的输出。
33.根据本发明的一个实施例,调度决策器105,用于根据加速器的硬件架构信息和数据处理延迟动态调整所述预设重组粒度。硬件架构信息包括加速器的层次结构、各缓存的空间大小、缓存的数据块大小、访存带宽。优选的,调度决策器105包括:用于根据所述硬件架构信息和当前多层神经网络中已可用于后续计算的层内和/或层间数据生成搜索空间的
搜索空间生成器,其中,所述搜索空间包括若干个调度模式,每个调度模式包括预设重组粒度、重组数据构成和各重组数据对应的原始数据块的存储位置;用于根据搜索空间生成调度模式并搜集根据生成的调度模式对应的历史数据以指导生成最小化处理时延的新的调度模式的模式生成器,所述历史数据包括对应调度模式在加速器上应用时各缓存的资源利用率以及对应重组数据的处理延迟。
34.根据本发明的一个实施例,数据管理模块106,用于将输入数据的重排完成的一个或者多个重组数据矩阵及其对应的重组权重矩阵、预设重组粒度被关联并集中存储在相应的数据块中。数据管理模块106可以管理数据的传输和存储。
35.根据本发明的一个实施例,加速器还包括全局缓存、权重缓存和数据缓存,层次结构指示全局缓存、权重缓存和数据缓存和计算阵列间的层级和连接关系,访存带宽包括全局缓存、权重缓存和数据缓存和计算阵列中各个具有连接关系的部件间的访问带宽。全局缓存可以存储多层神经网络的数据处理相关的所有数据,包括所有权重、用户的输入、处理的中间结果。权重缓存包含若干个高速存储单元,是用以缓存权重参数的片上高速缓存。数据缓存包括输入缓存和输出缓存;其中,输入缓存用于存储输入的数据,输入缓存包含若干个高速存储单元,是用以缓存输入数据的片上高速缓存;输出缓存用于存储输出的数据,输出缓存包含若干个高速存储单元,是用以缓存输出数据的片上高速缓存,输出数据例如是中间结果或者最终结果。
36.参见图3,下面以一种示意性的加速器结构为例进行说明。
37.根据本发明的一个实施例,一种支持多层神经网络的层间数据并行处理的加速器,包括:
38.全局缓存301,用于存储多层神经网络的数据处理相关的所有数据,包括所有权重、用户的输入、处理的中间结果。
39.权重缓存302,其包含若干个高速存储单元,是用以缓存权重数据的片上高速缓存,其输入来全局缓存,其输出连接至计算阵列306,参与多层神经网络的相应运算。
40.输入缓存303,其包含若干个高速存储单元,是用以缓存输入数据的片上高速缓存,其输入来全局缓存,其输出连接至选择器305。
41.输出缓存304,其包含若干个高速存储单元,是用以缓存输出数据的片上高速缓存,其输入来计算阵列306的累加和输出和/或激活函数单元308的输出,通信连接至计算阵列305、累加和寄存器307、激活函数单元308和全局缓存301。
42.计算阵列305,包含若干个处理单元,用于对输入的单层数据或者层间数据及其对应的权重实现乘累加运算。计算阵列305可采用现有的结构。或者,计算阵列101包括乘法单元,乘法单元的规模可选取典型配置如8乘以8、64乘以64、128乘以128等。除了基本的乘法单元外,计算阵列101包含至少一种逻辑操作单元,不限于
‘
与’、
‘
或’、
‘
非’、
‘
异或’、
‘
对比’、
‘
移位’操作单元,用于从其输入数据执行逻辑运算;包含至少一个加法器单元,可执行至少一种比特位类型的加法运算,用于从其输入数据执行加法运算;在计算过程中需要进行累加和的计算,所以计算阵列的输出需要接入到累加和寄存器中。计算阵列可与数据连接管理单元相连,用于由数据连接管理单元控制从相应缓存输入数据与输出数据到输出缓存;当包含多个逻辑运算单元时,则还可包含选通单元,用于实现其中一种逻辑运算。
43.累加和寄存器307,累加寄存器用于保存计算阵列305运算的中间结果,由计算阵
列写入,当累加次数达到预期,则可以写回至输出缓存或者交给下一级的激活函数单元308完成计算。累加和寄存器307包含至少一种比特类型的若干寄存器单元,其内部还包含选通器模块,用于实现寄存器的选择,负责存储矩阵运算的中间结果,当累加和运算完毕,可将结果直接写回到高速的输出缓存304中。在本技术中,矩阵运算主要是指卷积算子,可以是直接的卷积运算,也可以是im2col的方式。
44.激活函数单元308,用于完成非线性激活函数的计算,包含但不限于relu函数、二值激活操作函数、sigmoid函数、tanh函数、leakyrelu函数、prelu函数、rrelu函数、hardsigmoid函数、hardswish函数、elu函数、mish函数或者其组合。当包含多个激活单元时,则还包含选通单元,用于选通所需激活函数的运算操作。激活函数单元308的输出连接至输出缓存304,以将激活函数单元308得到的中间结果存储至输出缓存304。
45.数据管理模块(图3未示出),用于将输入数据的重排完成的一个或者多个重组数据矩阵及其对应的重组权重矩阵、预设重组粒度被关联并集中存储在相应的数据块(如全局缓存、权重缓存、输入缓存的数据块)中。
46.参见图4,其示出了一个示意性的扩展模块,根据本发明的一个实施例,扩展模块包含宽寄存器401、行寄存器402、累加寄存器403、加法器404和比较器405,其中:
47.宽寄存器401,用于存储每行的宽度以指示当前计算阵列需按照预设重组粒度中每行的宽度读取对应的数据和权重进行运算;其包含至少一种比特类型的若干寄存器单元,其值可由运行时软件根据每次的重组数据矩阵对应的预设重组粒度动态设置,表示一行数据的宽度,计算阵列通过该寄存器获取一行数据的宽度,计算偏移地址,获取数据并完成计算;其中,运行时软件是控制模块,动态地调用加速器上的硬件资源完成一个或者多个重组数据矩阵的运算;
48.行寄存器402,用于存储重组数据矩阵的总行数;其值可由运行时软件根据每次的重组数据矩阵对应的预设重组粒度动态设置;
49.累加寄存器403,用于存储指示计算阵列对当前重组数据矩阵已处理的行数;其包含至少一种比特类型的若干寄存器单元,其初始值为0,由加法器404更新,累加寄存器403的输出接入到比较器405;
50.加法器404,用于在计算阵列每完成一行数据的计算之后,在累加寄存器403存储的值的基础上加一完成累加操作,并更新累加寄存器304存储的值。比如,计算阵列每完成一行数据的计算之后产生一个触发信号,加法器响应于触发信号在累加寄存器403存储的值基础上加1完成累加操作,并更新累加寄存器403存储的值。
51.比较器405,用于比较累加寄存器403的值和行寄存器402的值的大小以确定是否完成预设重组粒度的重组数据矩阵的计算,其中,累加寄存器403的值大于等于行寄存器402的值时确定当前重组数据矩阵的计算已完成。即,比较器负责比较两个输入值的大小,比较器405的输入分别是累加寄存器403和行寄存器402,当累加寄存器403的值大于等于行寄存器402,则比较器的输出为1,作为中断信号发送给运行时软件,运行时软件可以调度下一个重组数据矩阵的计算任务。
52.根据本发明的一个实施例,提供加速器上执行的计算方法,所述方法包括:s1、从通用计算机获取多层神经网络任务;s2、以层间并行的方式对多层神经网络任务进行调度,其中,由调度决策器根据当前加速器的硬件架构信息和历史数据确定最小化处理时延的调
度模式,其中,硬件架构信息包括加速器的层次结构、各缓存的空间大小、缓存的数据块大小、访存带宽,历史数据包括对应历史的调度模式在加速器上应用时各缓存的资源利用率以及对应重组数据的处理延迟;s2、由第一重排器根据当前的调度模式中指示的预设重组粒度将已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权重矩阵并生成控制码;s3、由扩展模块根据控制码控制指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理,处理完成之后其结果存入缓存并发起中断,等待处理下一个重组数据矩阵;s4、由第二重组器在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出;s5、重复步骤s2-s4,当多层神经网络任务的处理完成后,向通用计算机输出处理的结果。
53.需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
54.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
55.计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
56.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
技术特征:
1.一种支持多层神经网络的层间并行处理的加速器,其能用于对通用计算机卸载的包括多个网络层的多层神经网络任务进行处理,其特征在于,包括:用于执行多层神经网络中单层数据处理、层间数据并行处理的计算阵列;用于获取一个或者多个数据块上存储的多层神经网络中,已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权重矩阵的第一重排器;用于在计算阵列处理重组矩阵时获取重组数据矩阵对应的预设重组粒度,指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理的扩展模块;用于在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出的第二重组器。2.根据权利要求1所述的加速器,其特征在于,所述加速器还包括:用于将输入数据的重排完成的一个或者多个重组数据矩阵及其对应的重组权重矩阵、预设重组粒度被关联并集中存储在相应的数据块中的数据管理模块。3.根据权利要求1所述的加速器,其特征在于,所述加速器还包括:用于根据加速器的硬件架构信息和数据处理延迟动态调整所述预设重组粒度的调度决策器。4.根据权利要求3所述的加速器,其特征在于,所述硬件架构信息包括加速器的层次结构、各缓存的空间大小、缓存的数据块大小、访存带宽。5.根据权利要求4所述的加速器,其特征在于,所述调度决策器包括:用于根据所述硬件架构信息和当前多层神经网络中已可用于后续计算的层内和/或层间数据生成搜索空间的搜索空间生成器,其中,所述搜索空间包括若干个调度模式,每个调度模式包括预设重组粒度、重组数据构成和各重组数据对应的原始数据块的存储位置;用于根据搜索空间生成调度模式并搜集根据生成的调度模式对应的历史数据以指导生成最小化处理时延的新的调度模式的模式生成器,所述历史数据包括对应调度模式在加速器上应用时各缓存的资源利用率以及对应重组数据的处理延迟。6.根据权利要求4所述的加速器,其特征在于,所述加速器包括全局缓存、权重缓存和数据缓存,缓存层次结构指示全局缓存、权重缓存和数据缓存和计算阵列间的层级和连接关系,访存带宽包括全局缓存、权重缓存和数据缓存和计算阵列中各个具有连接关系的部件间的访问带宽。7.根据权利要求1-6之一所述的加速器,其特征在于,所述重组数据矩阵的每一行对应一个卷积位置的卷积核所展开的行,重组数据矩阵的每一行的数据利用重组权重矩阵的对应行的权重进行卷积运算。8.根据权利要求1-6之一所述的加速器,其特征在于,预设重组粒度小于重组数据原来所在矩阵的粒度。9.根据权利要求1-6之一所述的加速器,其特征在于,所述扩展模块包括:宽寄存器,用于存储每行的宽度以指示当前计算阵列需按照预设重组粒度中每行的宽度读取对应的数据和权重进行运算;行寄存器,用于存储重组数据矩阵的总行数;累加寄存器,用于存储指示计算阵列对当前重组数据矩阵已处理的行数;
加法器,用于在计算阵列每完成一行数据的计算之后,在累加寄存器存储的值的基础上加一完成累加操作,并更新累加寄存器存储的值;比较器,用于比较累加寄存器的值和行寄存器的值的大小以确定是否完成预设重组粒度的重组数据矩阵的计算。10.一种在权利要求1-9之一所述的加速器上执行的计算方法,其特征在于,所述方法包括:s1、从通用计算机获取多层神经网络任务;s2、以层间并行的方式对多层神经网络任务进行调度,其中,由调度决策器根据当前加速器的硬件架构信息和历史数据确定最小化处理时延的调度模式,其中,硬件架构信息包括加速器的层次结构、各缓存的空间大小、缓存的数据块大小、访存带宽,历史数据包括对应历史的调度模式在加速器上应用时各缓存的资源利用率以及对应重组数据的处理延迟;s2、由第一重排器根据当前的调度模式中指示的预设重组粒度将已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权重矩阵并生成控制码;s3、由扩展模块根据控制码控制指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理,处理完成之后其结果存入缓存并发起中断,等待处理下一个重组数据矩阵;s4、由第二重组器在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按多层神经网络中对应层输出的结果原始形式进行结果重组以还原网络层的输出;s5、重复步骤s2-s4,当多层神经网络任务的处理完成后,向通用计算机输出处理的结果。
技术总结
本发明提供了一种支持多层神经网络的层间并行处理的加速器,包括:计算阵列;用于获取一个或者多个数据块上存储的多层神经网络中,已可用于后续计算的层内和/或层间数据作为重组数据并重组成预设重组粒度的重组数据矩阵以及获取对重组数据矩阵处理所需的网络参数并重排成重组权重矩阵的第一重排器;用于在计算阵列处理重组矩阵时获取重组数据矩阵对应的预设重组粒度,指示计算阵列中各处理单元按照预设重组粒度获取重组数据矩阵中的数据和重排权重矩阵中对应的权重进行处理的扩展模块;用于在计算阵列对所述重组数据矩阵处理完成后,根据处理各数据得到的结果按结果原始形式进行结果重组以还原网络层的输出的第二重组器。组器。组器。
技术研发人员:闵丰 王磊 韩银和 许浩博 王颖 王郁杰
受保护的技术使用者:中国科学院计算技术研究所
技术研发日:2023.03.24
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
