面向资源受限存算一体芯片的DNN推理加速系统及方法

未命名 07-20 阅读:138 评论:0

面向资源受限存算一体芯片的dnn推理加速系统及方法
技术领域
1.本发明涉及存算一体芯片技术领域,尤其涉及一种面向资源受限存算一体芯片的dnn推理加速系统及方法。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.深度神经网络(deep neural network,dnn)已被广泛应用于图像识别、自然语言处理及目标检测等技术,但这些dnn在带来高精度的同时也伴随着数以亿计的权重需要存储及计算。例如,vgg16是一个典型的dnn模型,top-5准确率高达92.7%,但其权重大小约为548mb,每识别一张图片需要1.5
×
10
10
次乘法。对于以传统的冯
·
诺依曼结构为基础的现代计算机系统,运行如此大规模的dnn模型,需要在存储单元和计算单元之间反复传输大量数据,造成巨大的延迟和能量损耗,从而限制了数据处理的效率。
4.存内计算(process-in-memory,pim)技术是为了克服传统冯
·
诺依曼结构带来的计算限制而被提出的,其不需要将数据从存储器传输到处理器,而是直接将运算部分整合到存储阵列内部执行计算。这种技术消除了内存和处理器之间的数据传输,因此,其在ai各个领域的应用正在被广泛探索。
5.新型非易失存储器(non-volatile memory,nvm),包括静态随机存储器(static random-access memory,sram)、相变存储器(phase change memory,pcm)、磁阻式存储器(magnetoresistive random access memory,mram)、电阻式/阻变存储器(resistive random access memory,reram)等,都可以用于存内计算技术。其中reram具有与dram相似的访问性能,同时支持矩阵向量乘法(matrix-vector multiplication,mvm)的就地计算,在过去几年中,已有多项工作对基于reram的dnn加速器进行了探索。
6.随着对基于reram的dnn加速器的探索不断深入,reram加速dnn的潜力也持续被发掘:从基于reram的微体系结构的设计,到符合reram特点的神经网络推理甚至训练过程流水线的设计,再到针对reram的dnn权重的剪枝量化与重用,优化方法由浅入深,层出不穷。然而,这些方法都理想化的认为可以在一个时钟周期内进行整个crossbar的计算。实际上,reram各个单元中的电流在累积过程中产生的偏差会严重影响神经网络的推理精度,因此,有工作提出了一种更实际的结构,每个周期只激活每个crossbar的一小片区域(也称为operation unit,ou)。之后又有作者进一步提出了基于ou的剪枝及重用方法,来减少基于此结构的reram的面积需求及计算开销。
7.然而,过去所有工作都假设reram的资源足够大,以至于dnn的权重可以一次性全部编程到reram中,且编程时延可以忽略不计。但集成电路设计领域的最新的研究显示,面积受限的嵌入式设备或边缘设备上的reram的芯片容量远远小于当前dnn的权重大小。
8.发明人发现,在进行dnn的推理之前,不可能在离线状态下将神经网络的所有权重全部部署到芯片上,而是需要在线多次部署,每次只能部署一部分权重;权重多次在线部署
过程的开销,可能会降低dnn在reram中的推理速度。


技术实现要素:

9.为了解决上述问题,本发明提出了一种面向资源受限存算一体芯片的dnn推理加速系统及方法,综合考虑符合现实情况的reram芯片资源以及reram芯片自身的编程特点,极大的提高了资源受限下dnn在reram上的推理速度。
10.在一些实施方式中,采用如下技术方案:
11.一种面向资源受限存算一体芯片的dnn推理加速系统,包括:
12.权重分配模块,用于在离线状态下获取神经网络信息和reram结构信息,生成一个ou大小的权重块到物理ou的映射表,映射表用来存储神经网络权重在reram上每次部署时,各个ou位置的权重块信息;
13.ou调度模块,用于在离线状态下将神经网络信息、reram结构及映射表信息输入到ou调度器,生成调度表;ou调度器对每个神经网络层的输入特征向量进行排序,并转换为相应crossbar的输入电压;所述调度表用来保存每个ou的运行次数及运行顺序,并控制特征向量的输入以及运行后结果的输出位置;
14.权重编程模块,用于在线状态下根据生成的映射表,将ou大小的权重块写入指定的物理ou中;
15.推理模块,用于在线状态下读取所述调度表,用相应的输入特征向量激活ou上的计算;
16.所述权重编程模块和推理模块迭代运行,直到对所有给定的输入数据完成dnn推理。
17.进一步地,所述权重编程模块每次编程reram设备容量大小的神经网络权重到硬件设备上,硬件设备含有多个crossbar,每个crossbar每个权重部署阶段都有一个相应的映射表。
18.reram上的各个crossbar是并行运行的,每个crossbar在同一时刻只有一个ou被激活进行计算,且每个crossbar在每个推理阶段都有一个相应的调度表。
19.reram上的各个crossbar通过读取调度表中的数据,获取需要激活的ou位置以及该ou本次计算的输入特征向量,通过将输入特征向量转换为电压输入到该ou的位线上,得到本次计算的结果,获取调度表中的输出特征向量信息,将计算结果传输到相应的位置存储。
20.在另一些实施方式中,采用如下技术方案:
21.一种面向资源受限存算一体芯片的dnn推理加速系统的dnn推理加速方法,包括:
22.基于reram的编程时延模型,得到编程时延的优化策略;所述优化策略包括:相似度匹配策略、均衡映射策略和距离感知策略;
23.将训练后的神经网络的权重量化为整数,将神经网络权重划分为reram大小的部署层,并将每个部署层的权重以ou为单位分成权重块;
24.基于相似度匹配策略、均衡映射策略和距离感知策略,生成每一个权重块到物理ou的映射表;
25.基于神经网络结构及量化后的权重信息、reram结构以及映射表信息,生成调度
表;
26.上述过程在离线状态下实现。
27.进一步地,所述reram的编程时延模型具体为:将reram的编程时延单位由小到大分解为单次编程时延、单ou编程时延、单crossbar编程时延和整个reram的编程时延;
28.其中,单ou编程时延为该ou中所有单次编程时延的总和,单crossbar编程时延为该crossbar中所有ou编程时延的总和,整个reram的编程时延为编程时延最大的单crossbar编程时延。
29.所述相似度匹配策略具体为:利用ou的相似性减少全局reset操作次数:在单次编程操作中,并行操作的所有单元都不需要从1到0的reset操作时,该操作可省略。
30.所述均衡映射策略具体为:
31.通过调整ou的相似度匹配顺序,实现各个crossbar编程时延的均衡。
32.所述距离感知策略具体为:对完成相似度匹配的ou的位置进行调整,将操作频繁的ou调整到该crossbar中reset编程时延较小的位置,从而降低单crossbar编程时延。
33.与现有技术相比,本发明的有益效果是:
34.(1)本发明提供了一种面向资源受限存算一体芯片的dnn推理加速系统,利用权重分配模块生成的映射表和ou调度模块生成的调度表的信息,合理安排ou的激活顺序、次数及输入输出数据的传输,从而实现dnn在资源受限的reram芯片上的准确高速推理。
35.(2)在资源受限的reram加速器上部署整个dnn是不切实际的。单个神经网络的推理需要进行多次权重部署,而权重部署过程非常耗时。因此,本发明通过对reram编程时延进行分解,深入探究影响编程时延的因素,对reram的编程时延进行了建模。基于reram编程时延的建模公式,提出了面向资源受限存算一体芯片的dnn推理加速方法,该方法包括相似度匹配策略、平衡映射策略和距离感知策略,这三个策略分别对单ou编程时延、单crossbar编程时延和整个reram的编程时延进行了优化,极大的加速了dnn在资源受限的reram芯片上的推理。
36.本发明的其他特征和附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本方面的实践了解到。
附图说明
37.图1为本发明实施例中的面向资源受限存算一体芯片的dnn推理加速系统结构示意图;
38.图2为本发明实施例中的dnn推理加速方法过程示意图;
39.图3为本发明实施例中的ou调度器的实例流程图。
具体实施方式
40.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
41.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式
也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
42.术语解释:
43.crossbar:reram常见的架构之一,也是物理上reram用于计算的基本单元,crossbar由字线和位线以及字线和位线所连接的电阻(也叫单元)组成,通过将输入转换为电压输入到字线,权重以电导(电阻的倒数)的形式存在字线和位线所连接的电阻中,基于欧姆定律,在位线上形成电流,即进行了一次乘法操作;各电阻并连,位线上的电流累积,完成加法操作。crossbar外围有采样保持器、移位加等外围电路,用于辅助多位数的乘加操作。一个crossbar通常由64*64~1024*1024个单元组成。
44.ou:过去的工作观察到,crossbar计算过程中每个单元的电流偏差在位线上不断累积将严重影响推理准确率,故提出每次只激活crossbar的一小部分(通常在4*4~32*32之间),即一个ou(operation unit)。
45.set:在crossbar的每个单元中,高阻表示0,低阻表示1,通过通电压将单元从高阻转换为低阻的过程称之为set操作。
46.reset:通过通电压将单元从低阻转换为高阻的过程称之为reset操作。
47.编程时延:神经网络在reram上进行推理的过程中,需要将神经网络的权重以电导的形式写入到crossbar的各个单元中,这个写入的过程称为编程过程,写入过程所需要的时延称为编程时延。
48.实施例一
49.在一个或多个实施方式中,公开了一种面向资源受限存算一体芯片的dnn推理加速系统,结合图1,分为离线阶段和在线阶段。
50.离线阶段主要包括权重分配器模块和ou调度器模块,具体如下:
51.(1)权重分配模块,用于在离线状态下获取神经网络信息和reram结构信息,生成一个ou大小的权重块到物理ou的映射表,映射表用来存储神经网络权重在reram上每次部署时,各个ou位置的权重块信息;
52.其中,神经网络信息包括已训练的神经网络权重以及神经网络结构;reram结构信息包括crossbar大小、ou大小等信息。
53.在资源受限的reram中,神经网络部署所需的资源往往超出了硬件资源,因此,需要将神经网络分成多个权重块进行多次部署,才能完成神经网络的推理过程;而部署过程中硬件中原有数据和新数据的变化会造成不同的编程时延,权重分配模块的任务是生成一个总体编程时延较低的ou大小的权重块到物理ou的映射表,映射表用来存储神经网络权重在reram上每次部署时,各个ou位置的权重块信息。
54.(2)ou调度模块,用于在离线状态下将神经网络结构、reram结构及映射表信息输入到ou调度器,生成调度表;ou调度器对每个神经网络层的输入特征向量进行排序,并转换为相应crossbar的输入电压;调度表用来保存每个ou的运行次数及运行顺序,并控制特征向量的输入以及运行后结果的输出位置。在权重分配器生成的映射表中,我们允许将一个权重块映射到任意物理ou,以减少运行时的权重编程成本。为了保证dnn推理的准确高效运行,本实施例在所提出架构的离线阶段设计了一个“ou调度器”模块。
55.在基于ou的reram中,单个crossbar中的多个ou串行运行,ou调度器对每个dnn层
的输入特征向量进行合理的排列,并将其转换为相应crossbar的输入电压,调度表用来保存每个ou的运行次数及运行顺序,并控制特征向量的输入以及运行后结果的输出位置。
56.在线阶段主要包括权重编程模块和推理模块,具体如下:
57.(3)权重编程模块,用于在线状态下根据生成的映射表,将ou大小的权重块写入指定的物理ou中。
58.具体地,权重编程模块根据reram设备的容量为后续推理阶段准备权重。权重编程模块每次编程reram设备容量大小的神经网络权重到硬件设备上,硬件设备含有多个crossbar,每个crossbar每个权重部署阶段都有一个相应的映射表。根据离线阶段生成的映射表,将ou大小的权重块写入指定的物理ou中。
59.需要注意的是,在资源受限的reram设备上,不能在dnn推理之前一次性将整个权重编程到硬件上,在线权重编程成本必须计算在端到端推理时延中。
60.(4)推理模块,用于在线状态下读取所述调度表,用相应的输入特征向量激活ou上的计算;
61.在推理阶段,reram上的各个crossbar是并行运行的,每个crossbar在同一时刻只有一个ou被激活进行计算,且每个crossbar在每个推理阶段都有一个相应的调度表。
62.reram上的各个crossbar通过读取调度表中的数据,获取需要激活的ou位置以及该ou本次计算的输入特征向量,通过将输入特征向量转换为电压输入到该ou的位线上,得到本次计算的结果,获取调度表中的输出特征向量信息,将计算结果传输到相应的位置存储。
63.上述权重编程模块和推理模块迭代运行,直到对所有给定的输入数据完成dnn推理。考虑到reram的实际容量和神经网络权重的大小,要进行一次神经网络推理需要将神经网络权重拆分并多次部署到硬件上进行计算,通过暂存中间计算结果,实现一次完成的神经网络推理过程。因此在资源受限的reram设备上,要完成一次神经网络推理计算,需要多次迭代推理阶段和权重编程阶段,具体迭代次数取决于reram的容量及神经网络权重的大小。对于需要推理多个输入数据的情况,如推理多张图片,就需要不断迭代执行推理阶段和权重编程阶段,直到对所有给定的输入数据完成dnn推理。
64.实施例二
65.基于实施例一中的dnn推理加速系统,本实施例公开了一种面向资源受限存算一体芯片的dnn推理加速方法,结合图2,具体包括如下过程:
66.(1)基于reram的编程时延模型,得到编程时延的优化策略;所述优化策略包括:相似度匹配策略、均衡映射策略和距离感知策略;
67.具体地,通过对reram编程时延进行分解,深入探究影响编程时延的因素,对reram的编程时延进行建模;本实施例将reram的编程时延单位由小到大分解为单次编程时延、单ou编程时延、单crossbar编程时延和整个reram的编程时延。
68.单次编程时延包括该次编程过程中由0编程为1的set时延和由1编程为0的reset时延,set和reset以串行的方式进行。
69.需要注意的是,由于压降和潜流的影响,reset时延随编程单元在crossbar中的位置变化,具体来说,靠近crossbar电压驱动器的单元在编程时所需要的reset时延相对较短,而远离crossbar电压驱动器的单元所需的reset时延相对较长。
70.一个ou中包含多个单次编程时延,各个单次编程串行进行,具体个数受ou大小及单次编程的并行单元数影响,故单ou编程时延为该ou中所有单次编程时延的总和。
71.单crossbar编程时延为该crossbar中所有ou编程时延的总和,单crossbar中的多个ou串行编程。
72.整个reram中包含多个crossbar,各个crossbar并行运行,所以整个reram的编程时延为编程时延最大的crossbar的编程时延。
73.最终得到reram的编程时延的建模公式:
[0074][0075]
其中,cb表示crossbar的数量,ouj表示crossbar中某个位置的ou,ou表示crossbar中可以容纳的ou的数量,表示第i个crossbar的第j个ou需要的reset操作次数,表示第i个crossbar的第j个ou需要的set操作次数,表示在ouj中进行单次reset操作的延迟,表示在ouj中进行单次set操作的延迟。
[0076]
如上述公式所示,单个ou的编程延迟取决于set和reset操作的数量及其位置。reset操作在ou内的时延随ou与电压驱动器的距离不同而不同。整个交叉条的编程延迟是其所有ou的编程延迟之和。最后,整个权重区域的编程延迟取决于最慢的交叉条。
[0077]
本实施例中,根据建好的reram的编程时延模型,结合reram的物理特性,分级提出优化策略;具体策略分别为:相似度匹配策略、均衡映射策略和距离感知策略。
[0078]
其中相似度匹配策略针对reram中reset时延远大于set时延,并在总编程时延中占主导地位的特点,通过利用ou的相似性减少全局reset操作次数,从而减少编程时延,实现神经网络推理过程的加速。
[0079]
具体来说,当单次编程操作中,并行操作的所有单元都不需要从1到0的reset操作时,该操作即可省略,从而降低该次编程操作的时延。通过与reram中的原有数据进行对比,可以匹配到reset操作较少甚至完全不需要reset操作的新数据,将匹配到的新数据部署到原有数据的相应位置的编程时延远低于常见的顺序部署。
[0080]
当新权重块基于某个ou中的旧权重块进行编程时,需要的reset操作次数越少,我们称之为相似度越高,反之,需要的reset操作次数越多,相似度越低。
[0081]
均衡映射策略利用了reram的编程时延取决于编程时延最大的crossbar的编程时延的特点,通过调整相似度匹配顺序,实现各个crossbar编程时延的均衡,从而达到降低整个reram的编程时延的目的。
[0082]
需要注意的是,首先完成相似度匹配的ou由于匹配空间较大,更容易匹配到reset操作较少的新数据,因而相似度匹配顺序会影响单crossbar编程时延,从而影响整个reram的编程时延。均衡映射策略提出更合理的相似度匹配顺序,从而使各个crossbar的编程时延更加均衡,降低整个reram的编程时延。
[0083]
本实施例基于相似性为所有逻辑ou匹配到合适的权重块,实现整体的最优的整体结果,采用贪心算法进行相似性匹配,第一个进行相似性匹配搜索的逻辑ou,可以在下一个
部署层的所有权重块中进行选择,故该逻辑ou的搜索空间最大。随着匹配算法的进行,越来越多已被匹配的权重块会被踢出搜索空间(已被匹配的权重块不能再匹配给其他ou)。因为搜索空间变得越来越小,这时进行匹配搜索的逻辑ou很难匹配到完全不需要reset操作的理想权重块,被匹配的顺序越往后,所匹配到的权重块所需要的编程时延越糟糕,因此对比匹配顺序将严重影响各个crossbar的总编程时延。
[0084]
如果采用天真的相似度匹配方法,对一个crossbar的所有ou依次进行匹配搜索,然后再对下一个crossbar的所有ou依次进行匹配搜索,最后一个crossbar的编程时延将是第一个编程时延的十几倍甚至几十倍,由于每个神经网络层的权重平均分配到各个crossbar,各个crossbar并行执行推理计算,不同crossbar的编程时延差异过大将导致编程时延小的所有crossbar不得不空等编程时延长的crossbar完成推理计算,否则无法得到下一个神经网络层的输入,这将严重影响dnn在reram中的推理速度。
[0085]
然而如果是简单的对所有crossbar执行轮训搜索匹配,由于在每一轮中第一个crossbar都是最先被匹配的,而最后一个crossbar都是最后被匹配的,虽然这两个crossbar的编程时延差距会比天真的顺序方法小很多,但不同crossbar之间的编程时延还是会有明显差异。
[0086]
本实施例为了实现各个crossbar编程时延的平衡,即降低各个crossbar编程时延的方差,提出了平衡映射策略,该策略在上述简单轮训搜索匹配算法的基础上做了改进,具体做法如下:在单数轮的轮训搜索匹配中,对所有crossbar采用顺序轮训策略,在偶数轮中,对所有crossbar采用倒序轮训策略。基于这种方法,第一个crossbar中的ou在单数轮中最先被匹配,获得较大的搜索空间,在偶数轮中最后被匹配,获得较小的搜索空间,各个crossbar的编程时延每经过两轮轮训都将达到一个相对平衡的状态。
[0087]
距离感知策略针对reram中reset时延随编程单元在crossbar中的位置而变化的特点,通过调整完成相似度匹配的ou的位置,将操作频繁的ou调整到该crossbar中reset编程时延较小的位置,从而降低单crossbar编程时延。
[0088]
考虑到crossbar中不同位置的ou的编程延时差异较大,距离感知策略在完成相似度匹配后,将操作频繁的ou调整到该crossbar中reset编程时延较小的位置,在降低单crossbar编程时延的同时,实现和前面两种优化策略的完美兼容。
[0089]
(2)将训练后的神经网络的权重量化为整数,将神经网络权重划分为reram大小的部署层,并将每个部署层的权重以ou为单位分成权重块;
[0090]
常见的reram架构的外围电路决定了reram更适合做整数运算,因此神经网络权重需要被量化为整数,需要注意的,量化虽然会适合reram计算的同时减少计算量,但也会带来神经网络推理精度的损失,实验中,我们采用后训练量化的方法将权重量化为8bits整数,并把精度损失控制在2%以内。
[0091]
量化后整数的位数,取决于使用的量化方法,神经网络以及数据集,理论上讲,相同的条件,在考虑精度损失的前提下,位数越低推理速度越快。
[0092]
(3)基于相似度匹配策略、均衡映射策略和距离感知策略,生成每一个权重块到物理ou的映射表;
[0093]
为了最小化神经网络运行时的总权重编程开销,本实施例提出一种搜索策略,在权重分配模块中找到一个接近最优的权重块映射到ou,该模块从训练好的dnn模型中获取
权重数据信息,以及reram结构。
[0094]
权重分配模块主要包含前面提到的三种优化策略,通过输入神经网络架构以及reram具体参数,将神经网络权重划分为reram大小的多个部署层,并将每个部署层的权重以ou为单位分成权重块,权重块所在的部署层决定了其在第几次部署。
[0095]
reram中的第一个部署层的数据将暂时进行顺序部署,然后为每一个已部署ou在第二个部署层的权重块里进行相似度搜索匹配,需要注意的是,第二个部署层中已被前面ou匹配的权重块将不参与之后ou的相似度匹配过程。
[0096]
为实现均衡映射策略,相似度匹配过程将遵循以下顺序:
[0097]
设reram中有四个crossbar,编号为1、2、3、4,相似度匹配顺序为1,2,3,4,4,3,2,1,以此循环。具体来说,优先匹配第一个crossbar中的第一个ou,然后是第二个crossbar中的第一个ou
……
该匹配顺序可以使各个crossbar的编程时延较为均衡,加速reram总体编程时延。
[0098]
对每一层需要部署的权重块完成相似度匹配策略后,为每一个ou位置生成一个有序权重块组,权重块组中包含每一个部署层需要部署到该ou位置上的权重块。距离感知策略通过计算每个权重块组所需要的总编程时延,以crossbar为单位将reset操作数多的权重块组调整到距离电压驱动器近的位置,也就是reset操作时延较小的位置;反之,将reset操作数少的权重块组放在reset操作时延大的位置。
[0099]
上述操作都将在离线状态下完成,完成之后生成一个映射表,映射表的作用是指出线上推理过程中每个ou每次部署的权重块。需要注意的是,reram中的每一个crossbar的每个部署层都有一个映射表,如表1所示,映射表使用
[0100]
《filter_id,channel_id,block_id》来指出该权重块所属的滤波器号,通道号和块号。
[0101]
表1映射表示例
[0102]
filter_idchannel_idblock_id1261108412316
………
[0103]
(4)基于神经网络结构及量化后的权重信息、reram结构以及映射表信息,生成调度表;
[0104]
为了保证dnn推理的正确性,我们在所提出的架构的离线阶段设计了一个“ou调度器”模块。ou调度器的工作过程如图3所示,“ou调度器”的输入是输入特征向量和每次推理迭代中包含权重块到ou映射的“映射表”。基于这些信息,“ou调度器”模块将生成一个调度表,指导ou在运行时的激活顺序及次数、相应的输入特征映射的选择以及计算结果的存储位置,如表2所示,激活次数,ou信息,输入特征映射信息和输出特征映射信息分别由《activation,ou_id,ifm_id,ofm_id》来表示。
[0105]
表2调度表示例
[0106][0107]
上述的过程均是在离线状态下实现的,通过映射表和调度表中信息的指导,在线阶段可以不断迭代权重编程和推理过程直到dnn推理过程的全部完成。本实施例方法充分利用reram编程特性,通过优化编程时延,极大的改进了资源受限存算一体芯片上的dnn推理速度。
[0108]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

技术特征:
1.一种面向资源受限存算一体芯片的dnn推理加速系统,其特征在于,包括:权重分配模块,用于在离线状态下获取神经网络信息和reram结构信息,生成一个ou大小的权重块到物理ou的映射表,映射表用来存储神经网络权重在reram上每次部署时,各个ou位置的权重块信息;ou调度模块,用于在离线状态下将神经网络信息、reram结构及映射表信息输入到ou调度器,生成调度表;ou调度器对每个神经网络层的输入特征向量进行排序,并转换为相应crossbar的输入电压;所述调度表用来保存每个ou的运行次数及运行顺序,并控制特征向量的输入以及运行后结果的输出位置;权重编程模块,用于在线状态下根据生成的映射表,将ou大小的权重块写入指定的物理ou中;推理模块,用于在线状态下读取所述调度表,用相应的输入特征向量激活ou上的计算;所述权重编程模块和推理模块迭代运行,直到对所有给定的输入数据完成dnn推理。2.如权利要求1所述的一种面向资源受限存算一体芯片的dnn推理加速系统,其特征在于,所述权重编程模块每次编程reram设备容量大小的神经网络权重到硬件设备上,硬件设备含有多个crossbar,每个crossbar每个权重部署阶段都有一个相应的映射表。3.如权利要求2所述的一种面向资源受限存算一体芯片的dnn推理加速系统,其特征在于,reram上的各个crossbar是并行运行的,每个crossbar在同一时刻只有一个ou被激活进行计算,且每个crossbar在每个推理阶段都有一个相应的调度表。4.如权利要求3所述的一种面向资源受限存算一体芯片的dnn推理加速系统,其特征在于,reram上的各个crossbar通过读取调度表中的数据,获取需要激活的ou位置以及该ou本次计算的输入特征向量,通过将输入特征向量转换为电压输入到该ou的位线上,得到本次计算的结果,获取调度表中的输出特征向量信息,将计算结果传输到相应的位置存储。5.一种如权利要求1-4任一项所述的面向资源受限存算一体芯片的dnn推理加速系统的dnn推理加速方法,其特征在于,包括:基于reram的编程时延模型,得到编程时延的优化策略;所述优化策略包括:相似度匹配策略、均衡映射策略和距离感知策略;将训练后的神经网络的权重量化为整数,将神经网络权重划分为reram大小的部署层,并将每个部署层的权重以ou为单位分成权重块;基于相似度匹配策略、均衡映射策略和距离感知策略,生成每一个权重块到物理ou的映射表;基于神经网络结构及量化后的权重信息、reram结构以及映射表信息,生成调度表;上述过程在离线状态下实现。6.如权利要求5所述的dnn推理加速方法,其特征在于,所述reram的编程时延模型具体为:将reram的编程时延单位由小到大分解为单次编程时延、单ou编程时延、单crossbar编程时延和整个reram的编程时延;其中,单ou编程时延为该ou中所有单次编程时延的总和,单crossbar编程时延为该crossbar中所有ou编程时延的总和,整个reram的编程时延为编程时延最大的单crossbar编程时延。7.如权利要求5所述的dnn推理加速方法,其特征在于,所述相似度匹配策略具体为:利
用ou的相似性减少全局reset操作次数:在单次编程操作中,并行操作的所有单元都不需要从1到0的reset操作时,该操作可省略。8.如权利要求5所述的dnn推理加速方法,其特征在于,所述均衡映射策略具体为:通过调整ou的相似度匹配顺序,实现各个crossbar编程时延的均衡。9.如权利要求5所述的dnn推理加速方法,其特征在于,所述距离感知策略具体为:对完成相似度匹配的ou的位置进行调整,将操作频繁的ou调整到该crossbar中reset编程时延较小的位置,从而降低单crossbar编程时延。

技术总结
本发明公开了一种面向资源受限存算一体芯片的DNN推理加速系统及方法,包括:权重分配模块,用于在离线状态下获取神经网络信息和ReRAM结构信息,生成一个OU大小的权重块到物理OU的映射表;OU调度模块,用于在离线状态下将神经网络信息、ReRAM结构及映射表信息输入到OU调度器,生成调度表;权重编程模块,用于在线状态下根据生成的映射表,将OU大小的权重块写入指定的物理OU中;推理模块,用于在线状态下读取调度表,用相应的输入特征向量激活OU上的计算;权重编程和推理迭代运行,直到对所有输入数据完成DNN推理。本发明对ReRAM的编程时延进行了优化,加速了DNN在资源受限的ReRAM芯片上的推理。片上的推理。片上的推理。


技术研发人员:鞠雷 王鸿跃 高鑫 申兆岩
受保护的技术使用者:山东大学
技术研发日:2023.03.13
技术公布日:2023/7/18
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐