CN115712506B 一种资源分配方法以及加速器 (中国科学院计算技术研究所)_第1页
CN115712506B 一种资源分配方法以及加速器 (中国科学院计算技术研究所)_第2页
CN115712506B 一种资源分配方法以及加速器 (中国科学院计算技术研究所)_第3页
CN115712506B 一种资源分配方法以及加速器 (中国科学院计算技术研究所)_第4页
CN115712506B 一种资源分配方法以及加速器 (中国科学院计算技术研究所)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(19)国家知识产权局(12)发明专利(10)授权公告号CN115712506B(65)同一申请的已公布的文献号(73)专利权人中国科学院计算技术研究所南路6号(74)专利代理机构北京泛华伟业知识产权代理有限公司11280专利代理师王勇GO6N3/063(2023.01)US2020019851A1,2020.0一种资源分配方法以及加速器本发明提供了一种资源分配方法以及加速获取待加速的卷积神经网络的结构参数以及加速器的架构参数;基于所述结构参数和架构参数确定所述卷积神经网络模型的每个卷积层的最小需求量,所述最小需求量为在该加速器上存储对应卷积层中所有权重参数所需的最小忆阻器阵列数;根据预定的约束条件,以每个卷积层在其最小需求量的基础上的分配倍数为调整对象,确定所述卷积神经网络在该加速器上运行的总处理时延最优的资源分配策略,其中,所述最优的资源分配策略指示每个卷积层最终的分配倍获取待加速的卷积神经网络的结构参数以及加速器的架构参数基于所述结构参数和架构参数确定所述卷积神经网络模型的每个卷积层的最小需求量,所述最小需求量为在该加速器上存储对应卷积层中所有权重参数所需的最小忆阻器阵列数根据预定的约束条件,以每个卷积层在其最小需求量的基础上的分配倍数为调整对象,确定所述卷积神经网络在该加速器上运行的总处理时延最优的资源分配策略,其中,所述最优的资源分配策略指示每个卷积层最终的分配倍数根据每个卷积层最终的分配倍数和最小需求量,确定该卷积层分配的忆阻器阵2获取待加速的卷积神经网络的结构参数以及加速器中与忆阻器阵列相关的架构参数,基于所述结构信息和架构参数确定所述卷积神经网络模型的每个卷积层的最小需求根据预定的约束条件,以每个卷积层在其最小需求量的基础上的分配倍数为调整对根据每个卷积层最终的分配倍数和最小需求量,确定该卷积层分配的忆阻器阵列数获取各卷积层在对应的资源分配策略下计算一次的周期大小和访存周期大小中最大Op¹=max{Normal0p²+PreO3层i计算的周期数,PreOp²表示卷积层i等待被激活所经过的周期数,Op¹-1表示卷积层i的上一个卷积层运行的周期数,Tail'表示卷积层i在其上一个卷积层停止计算后仍需运行的周期数。8.根据权利要求1-7任一项所述的方法,其特征在于,所述预定的约束条件包括:所有卷积层分配的忆阻器阵列数小于等于加速器所含的忆阻器阵列总数;或者所述预定的约束条件包括:所有卷积层分配的忆阻器阵列数量之和小于等于加速器所含的忆阻器阵列总数,以及任意一个卷积层的分配倍数小于等于该卷积层输出特征图的宽乘以高。9.一种加速器,该加速器包括多个芯片,每个芯片包括一个或者多个忆阻器阵列,其特获取按照权利要求1-8任一项的方法为待加速的卷积神经网络的每个卷积层分配的忆阻器阵列数量;在所述多个芯片中根据每个卷积层分配的忆阻器阵列数量为所述卷积神经网络分配所需的忆阻器阵列数量以执行对应的卷积运算。10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序可被处理器执行以实现权利要求1至8中任一项所述方法的步骤。存储器,其中存储器用于存储可执行指令;所述一个或多个处理器被配置为经由执行所述可执行指令以实现权利要求1至8中任一项所述方法的步骤。4一种资源分配方法以及加速器技术领域[0001]本发明涉及存内计算领域,具体来说,涉及基于存内计算的硬件资源分配技术领背景技术[0002]随着人工智能技术的发展,卷积神经网络已经被广泛地应用到了很多领域中,例算,且多是乘法和求和运算的重复组合,现有的处理器虽然计算能力相比以前而言有很大提升,但在神经网络模型的计算过程中的并行计算效率仍研究对神经网络模型计算的硬件加速器,使得神经网络加速成为了现如今技术的热点。[0003]其中,基于存内计算(或者称忆阻器)的卷积神经网络加速器便是当前的一种热门技术。存内计算作为一种新型的计算技术,其本身的结构有利于支持对卷积神经网络的加速需求。顾名思义,存内计算指的是存储计算一体化,它可以消除计算部件与存储器之间不必要的数据访存,从而大大减少访存带来的能量与性能损失。在存内计算领域,忆阻器是常见的存内计算器件之一,可以将数据以电阻形式进行存储。为便于理解,图1展示了常见的基于忆阻器的交叉阵列图。其中,交叉阵列的每条位线通过忆阻器单元与字线相连。假设第单元将V×G:,1传递至第一列的位线;根据基尔霍夫定律,第一列的位线上的电流累加之叉阵列各列之间并行计算,得到第二列对应的I₂,第三列对应的I₃。因此忆阻器单元构成的交叉阵列可以在0(1)的时间内完成一组矩阵向量乘,这也为加速卷积神经网络运算提供了良好的支持。[0004]在基于忆阻器的卷积神经网络加速器中,权重以阻值的形式存储在忆阻器中,通过交叉阵列的结构,与输入完成高并行的矩阵向量乘操作。忆阻器同时充当了计算资源以及存储资源。这不仅减少了权重的数据访存,同时也显著提高了计算密度。这样的特点为卷积神经网络多层并行计算提供了支持。不同于传统加速器中,卷积层被顺序计算的过程,忆阻器加速器的计算资源可以支持不同卷积层在满足计算条件之时同时进行计算。因此,不同卷积层之间计算资源的分配成为限制加速器性能的关键因素。在目前的忆阻器构成的卷积神经网络加速器中,忆阻器作为待分配的计算资源,在各卷积层以启发式的分配方式进行分配,得到可行但可能非最优的解,对加速器性能的提升无法完全保证。而且,针对不同卷积神经网络,提取的用于分配资源所需的参数形式不统一,没有通用的准则,导致每种卷积神经网络都需要单独设计资源分配策略,通用性不强。因此,有必要对现有技术进行改发明内容[0005]因此,本发明的目的在于克服上述现有技术的缺陷,提供一种资源分配方法以及5中所有权重参数所需的最小忆阻器阵列数;根据预定的约束所述池化层的核尺寸和/或池化层的步长分别计算据最大的周期大小和最后一个卷积层运行的周期数确定该期数。6[0020]根据本发明的第二方面,提供一种加速器,该加速器包括多个芯片,每个芯片包括一个或者多个忆阻器阵列,该加速器被配置为:获取按照第一方面的方法为待加速的卷积神经网络的每个卷积层分配的忆阻器阵列数量;在所述多个芯片中根据每个卷积层分配的忆阻器阵列数量为所述卷积神经网络分配所需的忆阻器阵列数量以执行对应的卷积运算。[0021]根据本发明的第三方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,其中存储器用于存储可执行指令;所述一个或多个处理器被配置为经由执行所述可执行指令以实现权利要求第一方面所述方法的步骤。[0023]本发明通过预定的参数提取格式,提取待加速的卷积神经网络的结构参数以及加速器的架构参数,并基于此确定所述卷积神经网络模型的每个卷积层的最小需求量,以每个卷积层在其最小需求量的基础上的分配倍数为调整对象,求解出在预定的约束条件下总处理时延最优的资源分配策略。由此,通过对卷积神经网络和加速器分别基于预定的参数提取格式提取出进行资源分配时所需的通用的参数,并基于此确定最小需求量,利用最小需求量对应的分配倍数作为调整对象,高效地确定卷积神经网络在该加速器上运行的总处理时延最优的资源分配策略。附图说明[0024]以下参照附图对本发明实施例作进一步说明,其中:[0025]图1为现有的忆阻器阵列的局部示意图;[0026]图2为现有的加速器的模块示意图;[0027]图3为根据本发明的实施例的资源分配方法的流程示意图;[0028]图4为根据本发明的实施例的卷积层运行的周期数及相关参数的示意图;[0029]图5为根据本发明的实施例的基于动态规划的求解器求解的流程示意图;[0030]图6为根据本发明的实施例的示意性的计算总处理时延的流程示意图。具体实施方式[0031]为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。[0032]如在背景技术部分提到的,现有技术对忆阻器构成的卷积神经网络加速器中计算资源的分配是启发式的,能得到可行但可能非最优的解,对加速器性能的提升无法完全保发明通过提取待加速的卷积神经网络的结构参数以及加速器的架构参数,并基于此确定所述卷积神经网络模型的每个卷积层的最小需求量,以每个卷积层在其最小需求量的基础上的分配倍数为调整对象,求解出在预定的约束条件下总处理时延最优的资源分配策略。由此,通过对卷积神经网络和加速器分别基于预定的参数提取格式提取出进行资源分配时所需的通用的参数,并基于此确定最小需求量,利用最小需求量对应的分配倍数作为调整对象,高效地确定卷积神经网络在该加速器上运行的总处理时延最优的资源分配策略。[0033]首先,为了便于理解本发明的实施背景,参照图2介绍一下常规的基于忆阻器的卷7积神经网络的加速器(后面简称卷积神经网络加速器或者加速器)的结构。该加速器包括多个芯片,每个芯片包括控制器和一个或者多个忆阻器阵列,控制器用于控制该芯片的整体器阵列即用于对卷积层卷积运算进行加速的部件,亦为本发明所关注的需要分配的资源。一般而言,加速器会由多个芯片构成,各芯片所含的忆阻器资源相同。对任一卷积层而言,其需要的忆阻器资源数量不同,可能需要一个或多个芯片。不同卷积层通常分布在不同芯片,不同卷积层之间数据交换需要通过总线完成。为了完成卷积神经网络中除卷积运算以外的其他类型的运算,每个芯片还包括部件:数字模拟转换器、模拟数字转换器、采样保持[0035]数字模拟转换器,用于对卷积运算相关的输入数据(本发明为样本数据或者对样本数据处理得到的特征图)进行数字模拟转换处理以得到模拟电压信号;这些数据经过数字模拟转换器后转换为模拟电压信号,加载到忆阻器阵列的每一行(字线)。[0036]忆阻器阵列,用于对卷积运算相关的权重(即卷积层中的权重参数)进行存储以及基于相应的模拟电压信号完成输入数据与对应权重数据的卷积运算(或者称矩阵向量乘),得到中间的运算结果。换言之,卷积神经网络的权重需要提前映射到忆阻器阵列的阻值中进行存储(再次参见图1),输入数据通过忆阻器阵列完成与权重的矩阵向量乘,其指示中间的运算结果的结果电流会在位线产生。[0037]采样保持电路,用于将位线上的结果电流转换为指示中间的运算结果的模拟电压。通过采样保持电路转换为模拟电压。[0038]模拟数字转换器,用于将指示中间的运算结果的模拟电压转换为指示中间的运算结果的数字信号。[0039]移位累加电路,基于中间的运算结果进行移位累加处理,得到卷积运算的运算结果。本领域技术人员所知晓的,每次计算的比特位数取决于数字模拟转换器的精度,为了得到卷积运算的运算结果,输入分比特进行运算后的结果(中间的运算结果)要通过移位累加电路进行相加,以得到卷积运算的运算结果。[0040]非线性电路(或者称激活函数电路),用于根据卷积神经网络中设定的激活函数对卷积运算的运算结果进行激活处理,得到激活处理后的特征图(一个卷积层的输出)。非线[0041]池化电路,用于根据卷积神经网络中设定的池化层对相应的特征图(通常为其前一个卷积层输出的特征图)进行池化处理,得到池化后的特征图。池化处理后的结果存回输[0042]输出缓存,用于存储运算的结果。其中,若一个芯片仅进行卷积运算,则卷积运算后的特征图存回输出缓存;若芯片还对卷积运算后的特征图进行池化处理,则将池化后的特征图存回输出缓存。如果输出缓存后的结果要作为其他卷积层的输入,则会通过总线传递到相应的芯片的输入缓存以进行后续计算。[0043]应当理解,上述结构仅是示意性的,在原理不冲突的情况下,本发明可以应用在其他结构形式的改进的加速器(比如加一些额外的处理部件以执行对应的任务)或者现有的任何加速器上,本发明对此不作任何限制。8[0044]其次,介绍本发明的资源分配方法的流程,根据本发明的一个实施例,参照图3,提供一种用于对基于忆阻器的卷积神经网络的加速器中的资源进行分配的方法(或者称一种资源分配方法),包括步骤S1、S2、S3、S4,为了更好地理解本发明,下面结合具体的实施例针对每一个步骤分别进行详细说明。[0045]步骤S1:获取待加速的卷积神经网络的结构参数、加速器的架构参数。[0046]根据本发明的一个实施例,根据预定的参数提取格式,获取待加速的卷积神经网络的结构参数以及加速器的架构参数。优选的,预定的参数提取格式中限定了对不同的卷积神经网络统一提取的结构参数以及需要获取的加速器的架构参数。由此,本发明可以采用该结构参数对不同的卷积神经网络的结构进行格式统一的描述,并结合加速器的架构参数,以更快地确定资源分配方案,提高资源分配效率,节约时间成本,以及降低实施难度以及实施者的劳动强度。[0047]根据本发明的一个实施例,预定的参数提取格式中,指定结构参数所含的信息。优选的,结构参数包括每个卷积层相关的以下结构信息:卷积层的输入通道数、输出通道数、积层的填充的尺寸、池化层的填充的尺寸,其中,每个卷积层的结构信息中记录该卷积层的后一个池化层的核尺寸、池化层的步长。由于现有的卷积神经网络中,一些卷置池化层以缩小特征图尺寸,降低计算量,而某些卷积层之后又没有设置池化层,如果分情一个卷积层没有后一个池化层时将所述卷积层的结构信息中的池化层的核尺寸和/或池化层的步长设置为1。该实施例的技术方案至少能够实现以下有益技术效果:本发明可以采用预定的结构参数的形式描述卷积神经网络的结构,有助于高效、统一地表征各卷积神经网络的网络结构,以及便于后续高效地基于该网络结构计算资源分配策略对应的总处理时延以及确定最优的资源分配策略。[0048]根据本发明的一个实施例,为了更清楚说明本发明的结构参数,此处以将VGG-A卷积神经网络为例进行说明。VGG-A卷积神经网络各卷积层每种参数的数值如下所示:的信息卷积层的输入通道数Ci卷积层的输出通道数Co输出特征图的9长Wo卷积层的输出卷积层的核大池化层的核的大小Kp卷积层的步长池化层的步长卷积层的填充的尺寸Pc池化层的填充的尺寸Pp神经网络的第一个卷积层为例,其结构信息可以由上表中2-10行的第二列中的第一个数值表示,即卷积层的输入通道数C为3,卷积层的输出通道数C₀为64,输出特征图的长W₀为224,卷积层的输出特征图的高H₀为224,卷积层的核大小Kc为3,池化层的核的大小Kp为2,卷积层的步长Sc为1,池化层的步长Sp为2,卷积层的填充的尺寸Pc为1,池化层的填充的尺寸Pp为0。可以看到,第三个卷积层对应的信息中,池化层的核的大小K、池化层的步长Sp的数值被设置为1;而实际情况下,池化层的核的大小、步长均不可能为1,而某个卷积层后邻接有池化层时,则用该池化层的实际参数填充,比如2;由此,上述结构参数的格式可区分有无池化的情况。该实施例的技术方案至少能够实现以下有益技术效果:对于卷积神经网络参数,本发明将卷积神经网络中的卷积层、池化层用一套通用的参数进行描述,以此方便对卷积神经网络任务的描述,具体包括{C,Co,W₀,H₀,Kc,Kp,Sc,Sp,Pc,Pp},其参数分别指的是卷积层的由此以统一的结构参数的形式描述了卷积神经网络的结构。[0052]根据本发明的一个实施例,参数提取格式中,指定架构参数所含的信息。架构参数包括忆阻器阵列的总数量Total、忆阻器阵列的尺寸M×N,该尺寸指示一个忆阻器阵列的字每个忆阻器阵列的尺寸均为128×128;对应的,则忆阻器阵列的总数量为20×4=80,一个[0053]步骤S2:基于所述结构参数和架构参数确定所述卷积神经网络模型的每个卷积层的最小需求量,最小需求量为在该加速器上存储对应卷积层中所[0057]步骤S3:根据预定的约束条件,以每个卷积层在其最小需求量的基础上的分配倍的分配问题即可归纳为在一定的约束条件下,求解各卷积层的R使得阻器的卷积神经网络加速器的性能与其忆阻器分配策略之间的量化关系。基于以上模型,[0068]通过遍历卷积层i所分配的忆阻器个数j,Ropt[i,G]由使前i层卷积层计算时间最数,它等于第i-1层卷积层的准备周期数加上第i层卷积层和第i-1层卷积层被激活的周期层i计算的周期数,PreOp¹表示卷积层i等待被激活所经过的周期数,PreOp²=PreOpi-¹+interval(i,i-1),Opi⁻¹表示卷积层i的上一个卷积层运行的周期数,Tail表示卷积层i在10/12页10/12页[0090]K15、输出Rpt[L-1,Total];其中,含有总的L层每一层需要的R,即第0-(L-1)层每一层的分配倍数。[0091]根据本发明的一个实施例,总处理时延还涉及每一层的周期大小,对于每一层的周期大小,可在不考虑访存周期大小的情形下实现。对此,根据本发明的一个实施例,按照以下方式确定总处理时延:获取各卷积层计算一次的周期大小中最大的周期大小,并根据最大的周期大小和最后一个卷积层运行的周期数确定总处理时延。[0092]需要说明的是,不考虑访存周期大小可能会在卷积层的输入数据量较大时造成影响,让加速器的实际性能与预期性能存在较大差异。对此,本发明还提供一种考虑访存周期大小的总处理时延计算方案。根据本发明的一个实施例,按照以下方式确定所述卷积神经网络在该加速器上运行的总处理时延:基于忆阻器阵列的总个数和尺寸确定相应的资源分配策略;获取各卷积层在对应的资源分配策略下计算一次的周期大小和访存周期大小中最大的周期大小,并根据最大的周期大小和最后一个卷积层运行的周期数确定该资源分配策略的总处理时延。例如,求解共含有L层卷积层的卷积神经网络完成一次推断操作需要的时间需要对各层进行遍历。对每一层而言,需要分别计算每一层的Normal0p、PreOp和Tail的数量。其中,对准备操作数(对应于输入数据)而言,需要遍历该层之前的各卷积层,从而精确求解准备操作数的个数。每一层需要的操作数是由其上一层需要的操作数与本层的情况共同决定的。同时,假设TA、Tc和Tyc1e分别代表了忆阻器计算一次所需要的访存周期的大小、计算周期的大小以及时钟周期的大小。其中带宽对性能的影响体现在T对Tyc1e的影响中。对本框架而言,Tc是由加速器架构决定的,对于给定加速器架构的任务,此数值为一常数。T与各层分配的忆阻器阵列组数紧密相关。具体而言,在本实施例中,不同卷积层可能占据一至多个芯片。当前卷积层需要从上一卷积层所在的所有芯片中收集输入数据,当前卷积层还需在自身所在芯片内向各阵列分发数据(例如中间的运算结果)。因此,TA与当前层以及上一层分配的忆阻器阵列资源数目同时正相关。示意性的,考虑访存周期大小的情[0093]A1、根据输入的任务参数(即本发明的结构参数、架构参数),开始计算总处理时[0096]A4、PreOp⁰=0,0p¹=0,Tail⁰=0,转至步骤A10;[0098]A6、k=k+1,转至步骤A7;转至步骤A12;[0104]A12、i=i+1,并将k置0,转至步骤A13;步长是否为1采取对应的方式计算总处理时延。其中,若一个卷积层对应池化层的核尺寸和/或池化层的步长为1,则总处理时延中不计算该卷积层的池化的时延;若一个卷积层对[0109]步骤S4:根据每个卷积层最终的分配倍数和最小需求量,确定该卷积层分配的忆前述实施例的资源分配方法为待加速的卷积神经网络的每个卷积层分配的忆阻器阵列数发明求解得出的分配策略可以使加速器的性能达到准最优解的94%,与现有的启发式分配[0114]综上所述,该发明提出的针对基于忆阻器的卷积神经网络加速器的资源分配方[0115]本发明的一些实施例通过预定的参数提取格式将不同的场景与任务统一为通用的结构参数和架构参数,针对每一个卷积层运行的周期数提出了相对应的求解公式或方[0117]本发明的一些实施例在分析观察的基础上,提出了一种基于动态规划的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论