存内计算装置、神经网络加速器和电子设备
未命名
08-01
阅读:138
评论:0

1.本公开涉及存储技术领域,尤其涉及一种存内计算装置、神经网络加速器和电子设备。
背景技术:
2.随着人工智能等技术的广泛应用,数据的处理需求日益增加,而基于冯诺依曼架构的现代计算系统的计算性能和功耗受限于数据在存储部分和计算部分间的搬移,存内计算是解决这个问题的一种尝试,它试图减少数据的搬移活动来降低能耗提升性能。传统存储单元是针对存储进行优化,没有考虑到计算的代价,因此一个可大规模应用的存内计算系统是在考虑成本、功耗、性能、可拓展性和稳定性等条件下,将计算部分和存储部分进行结合且接口便利的实现。
3.由于静态随机存取存储器(static random-access memory,sram)具有快速的读写速度,较低的读写能耗,良好的耐久度和现有的成熟工艺等优势,近些年来涌现出很多基于sram的存内计算设计。现存的某些设计采用了代工厂提供的6个晶体管(6transistors,6t)组成的sram单元,由于代工厂使用了更加紧凑的版图规则和更小的晶体管,这种单元面积比其他类型的非6t的sram单元面积更小。但是这种6t sram单元在做计算时,位线电压的摆动幅度受限,因此存在读干扰和信号边缘过小等问题。因此某些设计选择牺牲一定的面积效率,使用更多晶体管组成的sram作为计算单元。
4.计算单元的面积将会很大程度上影响芯片的总体成本,因此在边缘人工智能终端中是一个十分重要的问题,在实际的工业应用中,面积效率是存内计算设计的核心指标之一。即使采用代工厂提供的6t sram作为计算单元,存内计算设计仍然面临着面积效率不足的困境。对于较大的神经网络,基于sram的存内计算设计很难在片上存储所有的权重值,因此需要反复从动态随机存取存储器(dynamic random access memory,dram)中读取权重值,这就造成了巨大的能耗和延时,因此进一步提高基于sram存内计算的面积效率十分必要。
技术实现要素:
5.根据本公开的一方面,提供了一种存内计算装置,所述装置包括:
6.计算阵列,包括多个计算模块,所述计算模块包括至少一个存储单元、复位开关、电容,所述存储单元包括至少一个存储开关,其中:
7.所述存储开关包括存储控制端、存储检测端和存储端,所述存储端连接于一存储状态电平线,用于接收存储状态电平以存储与该存储状态电平对应的信息;所述控制端连接于一控制字线,用于接收控制电压,以调整所述检测端和存储端之间的阻抗特性,
8.所述复位开关包括复位控制端、复位检测端和复位端,所述复位控制端连接于一控制字线,用于接收复位电压以调整所述复位检测端和所述复位端之间的阻抗特性;所述复位端连接于一复位状态电平线,用于接收复位状态电平;所述复位检测端和所述电容的
第一端连接于所述存储单元的输出端,所述电容的第二端连接于计算位线;
9.控制模块,连接于所述计算阵列,用于控制所述计算阵列进行存储操作、读取操作、计算操作中的至少一种操作。
10.在一种可能的实施方式中,所述存储单元包括第一存储开关、第二存储开关,所述第一存储开关、所述第二存储开关的存储检测端均连接于所述存储单元的输出端。
11.在一种可能的实施方式中,所述计算模块还包括选择开关,所述选择开关包括选择控制端、第一检测端和第二检测端,其中,
12.所述选择控制端连接于一控制位线,用于接收控制电压以调整所述第一检测端和所述第二检测端之间的阻抗特性;
13.所述第一检测端连接于所述存储单元的输出端,所述第二检测端连接于各个存储检测端。
14.在一种可能的实施方式中,所述存储单元包括第一选择开关、第二选择开关、第三存储开关、第四存储开关、第五存储开关、第六存储开关,
15.所述第一选择开关及所述第二选择开关的第一检测端均连接于所述存储单元的输出端,所述第一选择开关的第二检测端连接于所述第三存储开关的存储检测端及所述第四存储开关的存储检测端,所述第一选择开关的选择控制端连接于第一控制位线,所述第二选择开关的选择控制端连接于第二控制位线,
16.所述第三存储开关的存储控制端、所述第五存储开关的存储控制端连接于第二控制字线,所述第三存储开关的存储端、所述第四存储开关的存储端均连接于第一存储状态电平线,所述第四存储开关的存储控制端、所述第六存储开关的存储控制端均连接于第三控制字线,所述第五存储开关的存储端、所述第六存储开关的存储端均连接于第二存储状态电平线。
17.在一种可能的实施方式中,所述计算操作包括乘累加操作,所述控制模块还用于:
18.激活目标计算模块中的存储单元中的存储开关的存储控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该被激活的存储开关的存储端的存储状态电平对应的信息进行与逻辑操作;
19.从计算位线获得乘累加计算的结果。
20.在一种可能的实施方式中,所述计算操作包括乘累加操作,所述控制模块还用于:
21.激活目标计算模块中的存储单元中的存储开关的存储控制端及与该存储开关连接的选择开关的选择控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该存储开关的存储端的存储状态电平对应的信息进行与逻辑操作;
22.从计算位线获得乘累加计算的结果。
23.在一种可能的实施方式中,所述计算操作包括与逻辑操作,所述控制模块还用于:
24.激活目标计算模块中复位开关的复位控制端和计算位线,使所述目标计算模块中的电容两端保持一定电压差;
25.关闭所述复位控制端并且使所述计算位线电气悬空;
26.通过所述复位控制端、与存储开关的存储控制端相连的控制字线、与存储开关的存储端相连的存储状态电平线输入与逻辑计算的一组操作数据;
27.通过计算位线获得该组操作数据的与逻辑运算结果。
28.在一种可能的实施方式中,所述计算阵列中同一列的至少一个计算模块的控制位线、计算位线相连,同一行的至少一个计算模块的控制字线、至少一个存储状态电平线和复位状态电平线相连。
29.在一种可能的实施方式中,所述计算操作包括乘累加操作,所述控制模块还用于:
30.控制所述计算阵列的一列或多列的计算模块进行乘累加操作,和/或,控制连接在同一计算位线的部分或全部计算模块进行乘累加操作。
31.在一种可能的实施方式中,所述控制模块还用于:
32.控制不同计算位线连接的计算模块进行流水线式计算操作。
33.在一种可能的实施方式中,所述控制模块还用于:
34.控制各个控制字线、控制位线、计算位线、存储状态电平线和复位状态电平线接地以使得所述计算阵列进入空闲模式。
35.根据本公开的一方面,提供了一种神经网络加速器,所述神经网络加速器包括至少一个神经网络模块,所述神经网络模块包括至少一个原始卷积层,所述原始卷积层包括权重固定的主干层、权重可调的分支层,所述主干层由一个或多个卷积层组成,所述分支层至少包括顺序连接的第一分支卷积层、第二分支卷积层和第三分支卷积层构成,所述第一分支卷积层的输入通道数与所述主干层的输入通道数相等;所述第三分支卷积层的输出通道数与所述主干层的输出通道数相等;所述第二分支卷积层的输入通道数小于所述主干层的输入通道数;所述第二分支卷积层的输出通道数小于所述主干层的输出通道数,
36.其中,所述主干层、所述分支层中的卷积层利用所述的存内计算装置实现。
37.在一种可能的实施方式中,所述主干层、所述第一分支卷积层用于接收神经网络的输入,所述神经网络模块的输出由所述主干层的输出及所述第三分支卷积层的输出聚合而得到。
38.在一种可能的实施方式中,所述神经网络加速器在训练过程中,各个主干层的权重固定;和/或在训练过程的反向传递阶段,所述主干层的权重梯度为0,对各个分支层进行梯度下降调整。
39.根据本公开的一方面,提供了一种电子设备,所述电子设备包括所述的存内计算装置,或,包括所述的神经网络加速器。
40.本公开实施例提出的存内计算装置包括计算阵列及控制模块,计算阵列包括多个计算模块,所述计算模块包括至少一个存储单元、复位开关qf、电容,所述存储单元包括至少一个存储开关,其中:所述存储开关包括存储控制端、存储检测端和存储端,所述存储端连接于一存储状态电平线,用于接收存储状态电平以存储与该存储状态电平对应的信息;所述控制端连接于一控制字线,用于接收控制电压,以调整所述检测端和存储端之间的阻抗特性,所述复位开关qf包括复位控制端、复位检测端和复位端,所述复位控制端连接于一控制字线,用于接收复位电压以调整所述复位检测端和所述复位端之间的阻抗特性;所述复位端连接于一复位状态电平线,用于接收复位状态电平;所述复位检测端和所述电容的第一端连接于所述至少一个存储单元的输出端,所述电容的第二端连接于计算位线;控制模块控制所述计算阵列进行存储操作、读取操作、计算操作中的至少一种操作,本公开实施例的存储单元最少只需一个存储开关,而相关技术的存储单元至少有6个晶体管,因此,本公开实施例的存储单元具有较高的面积效率,且本公开实施例使用存储状态电平的方式存
储数据,利用一个存储开关就可以实现多比特的存储,这进一步提高了面积效率,并显著降低了存取数据、存内计算的功耗。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
43.图1食示出了根据本公开实施例的存内计算装置的示意图。
44.图2示出了根据本公开实施例的存储单元的示意图。
45.图3示出了根据本公开实施例的存储单元的示意图。
46.图4示出了根据本公开一实施例的存储单元的示意图。
47.图5示出了根据本公开实施例的存内计算装置的示意图。
48.图6a、图6b分别示出了根据本公开实施例的mim电容和mom电容的结构示意图。
49.图7a示出了根据本公开实施例的金属-氧化物半导体场效应晶体管的电路符号示意图,图7b示出了根据本公开实施例的金属-氧化物半导体场效应晶体管漏源电流-栅源电压滞回特性曲线的示意图。
50.图8示出了利用本公开实施例的计算模块进行与逻辑运算的示意图。
51.图9示出了根据本公开实施例的存内计算装置的示意图。
52.图10示出了根据图9所示电路进行乘累加运算时需要充电的等效电容的示意图。
53.图11示出了利用本公开实施例的计算阵列进行乘累加操作的示意图。
54.图12示出了根据本公开实施例的存内计算装置的空闲模式的设置示意图。
55.图13示出了利用本公开实施例的计算阵列实现流水式计算操作的示意图。
56.图14示出了根据本公开实施例的神经网络加速器的示意图。
57.图15示出了利用所述神经网络加速器组成的神经网络加速器系统。
58.图16示出了根据本公开实施例的一种电子设备的框图。
具体实施方式
59.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
60.在本公开的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。
61.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
62.在本公开中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
63.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
64.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
65.另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
66.存内计算的相关技术方案中的存储单元至少包括6个晶体管,因此相关技术的面积效率较低、功耗较高。
67.本公开实施例提出的存内计算装置包括计算阵列及控制模块,计算阵列包括多个计算模块,所述计算模块包括至少一个存储单元、复位开关qf、电容,所述存储单元包括至少一个存储开关,其中:所述存储开关包括存储控制端、存储检测端和存储端,所述存储端连接于一存储状态电平线,用于接收存储状态电平以存储与该存储状态电平对应的信息;所述控制端连接于一控制字线,用于接收控制电压,以调整所述检测端和存储端之间的阻抗特性,所述复位开关qf包括复位控制端、复位检测端和复位端,所述复位控制端连接于一控制字线,用于接收复位电压以调整所述复位检测端和所述复位端之间的阻抗特性;所述复位端连接于一复位状态电平线,用于接收复位状态电平;所述复位检测端和所述电容的第一端连接于所述至少一个存储单元的输出端,所述电容的第二端连接于计算位线;控制模块控制所述计算阵列进行存储操作、读取操作、计算操作中的至少一种操作,本公开实施例的存储单元最少只需一个存储开关,而相关技术的存储单元至少有6个晶体管,因此,本公开实施例的存储单元具有较高的面积效率,且本公开实施例使用存储状态电平的方式存储数据,利用一个存储开关就可以实现多比特的存储,这进一步提高了面积效率,并显著降低了存取数据、存内计算的功耗。
68.请参阅图1,图1食示出了根据本公开实施例的存内计算装置的示意图。
69.如图1所示,所述装置包括:
70.计算阵列10,包括多个计算模块110,所述计算模块110包括至少一个存储单元1110、复位开关qf、电容cm,所述存储单元1110包括至少一个存储开关,其中:
71.所述存储开关包括存储控制端、存储检测端和存储端,所述存储端连接于一存储状态电平线v《k》,用于接收存储状态电平以存储与该存储状态电平对应的信息;所述控制端连接于一控制字线(wl2),用于接收控制电压,以调整所述检测端和存储端之间的阻抗特
性,
72.所述复位开关qf包括复位控制端、复位检测端和复位端,所述复位控制端连接于一控制字线(wl1),用于接收复位电压以调整所述复位检测端和所述复位端之间的阻抗特性;
73.所述复位端连接于一复位状态电平线,用于接收复位状态电平vpre;所述复位检测端和所述电容cm的第一端连接于所述存储单元1110的输出端,所述电容cm的第二端连接于计算位线cbl;
74.控制模块20,连接于所述计算阵列10,用于控制所述计算阵列10进行存储操作、读取操作、计算操作中的至少一种操作。
75.其中,k可以为任意正整数。
76.本公开实施例对存储单元的具体实现方式不做限定,本领域技术人员可以根据实际情况及需要选择合适的方式实现,下面对存储单元的可能实现方式进行示例性介绍。
77.请参阅图2,图2示出了根据本公开实施例的存储单元的示意图。
78.在一种可能的实现方式中,本公开实施例的存储单元最少可包括一个存储开关,如图2所示,所述存储单元可以包括第零存储开关q0,所述第零存储开关q0的存储控制端连接于一控制字线wl(例如图1中的wl2),所述第零存储开关q0的存储端连接于存储电平状态线v《k》,以接收并存储对应的存储电平状态,所述第零存储开关q0的存储检测端p0连接于存储单元的输出端。如前所述,目前存内计算设计使用的存储单元至少有6个晶体管,而本公开实施例最少只需要使用一个存储开关,因此在面积效率方面远远超过现有的设计。示例性的,若只使用两个个存储状态电平,存储单元的面积只为6t sram的0.07x,而且本公开实施例可以通过使用多个存储状态电平的方式,只用1个存储开关就可以实现多比特的存储,进一步提高面积效率。
79.请参阅图3,图3示出了根据本公开实施例的存储单元的示意图。
80.在一种可能的实施方式中,如图3所示,所述存储单元1110可以包括第一存储开关q1、第二存储开关q2,所述第一存储开关q1、所述第二存储开关q2的存储检测端均连接于所述存储单元1110的输出端,所述第一存储开关q1、所述第二存储开关q2的存储控制端分别连接于控制字线wl1《2》及控制字线wl1《3》,复位开关qf的复位控制端连接于控制字线wl1《1》。
81.在一种可能的实施方式中,所述计算模块110还可以包括选择开关,所述选择开关包括选择控制端、第一检测端和第二检测端,其中,
82.所述选择控制端连接于一控制位线,用于接收控制电压以调整所述第一检测端和所述第二检测端之间的阻抗特性;
83.所述第一检测端连接于所述存储单元1110的输出端,所述第二检测端连接于各个存储检测端。
84.本公开实施例通过在计算模块中设置选择开关,可以实现存储单元的选择,以根据需要选择对应的存储单元进行计算操作,通过设置选择开关,本公开实施例的计算模块具有较高的灵活性、可扩展性。
85.请参阅图4,图4示出了根据本公开一实施例的存储单元的示意图。
86.在一种可能的实施方式中,如图4所示,所述存储单元1110可以包括第一选择开关
qs1、第二选择开关qs2、第三存储开关q3、第四存储开关q4、第五存储开关q5、第六存储开关q6,
87.所述第一选择开关qs1的第一检测端及所述第二选择开关qs2的第一检测端均连接于所述存储单元1110的输出端(即电容cm的一端),所述第一选择开关qs1的第二检测端连接于所述第三存储开关q3的存储检测端及所述第四存储开关q4的存储检测端,所述第一选择开关qs1的选择控制端连接于第一控制位线bl《1》,所述第二选择开关qs2的选择控制端连接于第二控制位线bl《2》,
88.所述第三存储开关q3的存储控制端、所述第五存储开关q5的存储控制端连接于第二控制字线wl《2》,所述第三存储开关q3的存储端、所述第四存储开关q4的存储端均连接于第一存储状态电平线v《1:2》,所述第四存储开关q4的存储控制端、所述第六存储开关q6的存储控制端均连接于第三控制字线wl《3》,所述第五存储开关q5的存储端、所述第六存储开关q6的存储端均连接于第二存储状态电平线v《1:2》。
89.以上对存储单元的可能实现方式进行了示例性介绍,但不应视为是对本公开实施例的限定,本公开实施例的存储单元中存储开关的数目可以是任意的,并且,计算模块中存储单元的数目也可以是任意的。
90.请参阅图5,图5示出了根据本公开实施例的存内计算装置的示意图。
91.在一种可能的实施方式中,如图5所示,计算阵列可以包括多个计算模块,每个计算模块均可以包括至少一个存储单元,每个存储单元可以包括至少一个存储开关,且每个存储单元可以设置选择开关qs,也可以不设置选择开关qs。
92.在一个示例中,如图5所示的存内计算装置可以用于实现定点数神经网络加速器,其中,神经网络的权重可以存在晶体管和存储状态电平的电气连接中,特征图可以通过控制字线输入,乘累加运算的结果可以通过输出检测接口输出以进行后续其他操作。
93.在一个示例中,如图5所示,计算阵列中多个计算模块以多行多列形式排列,同一列的部分或全部计算模块的控制位线、计算位线电气相连,同一行的部分或全部计算模块的控制字线电气相连、部分或全部计算模块的存储状态电平和复位状态电平电气连接,支持按计算位线进行信息的乘累加操作,乘累加操作可支持多根计算位线的并行计算。
94.请参阅图6a、图6b,图6a、图6b分别示出了根据本公开实施例的mim电容和mom电容的结构示意图。
95.本公开实施例的电容cm可通过如图6a所示的金属-绝缘体-金属电容(metal-insulator-metal capacitor,mim)、如图6b所示的金属-氧化物-金属电容(metal-oxide-metal capacitor,mom)、晶体管的栅极电容或其他形式的电容实现,在此不做具体限定。
96.请参阅图7a、7b,图7a示出了根据本公开实施例的金属-氧化物半导体场效应晶体管的电路符号示意图,图7b示出了根据本公开实施例的金属-氧化物半导体场效应晶体管漏源电流-栅源电压滞回特性曲线的示意图。
97.本公开实施例的存储开关、选择开关、复位开关可以为金属-氧化物半导体场效应晶体管mosfet(电路符号如图7a所示,其漏源电流-栅源电压滞回特性曲线如图7b所示),需要说明的是,在本公开实施例中,金属-氧化物半导体场效应晶体管仅是一个示例,所有具有开关特性的有高通断比的器件理论上都可以用于搭建本公开实施例中提出的计算模块。
98.本公开实施例可以使用金属-氧化物半导体场效应晶体管等器件作为只读存储器
件,利用器件的电气连接存储信息,不进行写操作,在电荷域进行计算的存内计算工作,金属-氧化物半导体场效应晶体管工艺是目前最常见的集成电路工艺,工艺应用广泛,高度成熟。
99.本公开实施例采用金属-氧化物半导体场效应晶体管具有操作方便的优点。以n型金属-氧化物半导体场效应晶体管为例,单个金属-氧化物半导体场效应晶体管可以通过控制栅极电压和源极电压的差值的方式来改变金属-氧化物半导体场效应晶体管源极和漏极之间的阻抗特性,当电压差在一定范围内时,金属-氧化物半导体场效应晶体管源极和漏极之间为低阻态,源极和漏极之间电路导通。漏极连接不同的存储状态电平,以只有两个存储状态电平为例,连接高电平的相当于存储
‘1’
,连接低电平的相当于存储
‘0’
;在实际应用中,也可以用连接低电平的代表
‘1’
、用连接高电平的代表
‘0’
;另外可以连接多个存储状态电平,实现一个晶体管存储多个比特。对单个金属-氧化物半导体场效应晶体管进行读操作时,保持栅极电压和源极电压的差值在一定范围内,源极加一个低电压,根据漏极和源极间电流的大小分辨漏极连接的电源线的电压,从而获得存储的信息。
100.关于金属-氧化物半导体场效应晶体管mosfet的具体描述请参考相关技术的介绍,在此不做赘述。
101.下面将以存储开关采用mosfet为例,对图4所示的计算模块中各个器件的连接关系进行示例性介绍。
102.再次参考图4,如图4所示,第一选择开关qs1、第二选择开关qs2、第三存储开关q3、第四存储开关q4、第五存储开关q5、第六存储开关q6、复位开关qf均可以为mosfet,本公开实施例均可以通过对栅极电流电压进行控制,以调整第一选择开关qs1、第二选择开关qs2、第三存储开关q3、第四存储开关q4、第五存储开关q5、第六存储开关q6、复位开关qf漏极和源极之间阻抗特性。
103.在一个示例中,如图4所示,电容cm的一端和第一选择开关qs1、第二选择开关qs2的漏极、复位开关qf的漏极相连,电容cm另一端和计算位线cbl相连;第三存储开关q3、第四存储开关q4的漏极和第一选择开关qs1的源极相连,第三存储开关q3、第五存储开关q5的栅极和控制字线wl《2》相连,第五存储开关q5、第六存储开关q6的漏极和第二选择开关qs2的源极相连,第四存储开关q4、第六存储开关q6的栅极和控制字线wl《3》相连,第三存储开关q3、第四存储开关q4、第五存储开关q5、第六存储开关q6的源极和某个存储装状态电平相连,并且信息通过所述存储器件和存储状态电平的连接关系进行存储;第一选择开关qs1的栅极和控制位线bl《1》相连,第二选择开关qs2的栅极和控制位线bl《2》相连;复位开关qf的源极和复位状态电平vpre相连,复位开关qf的栅极和所述控制字线wl《1》相连。
104.在一种可能的实施方式中,所述计算操作包括与逻辑操作,所述控制模块20还可以用于:
105.激活目标计算模块110中复位开关qf的复位控制端和计算位线,使所述目标计算模块110中的电容cm两端保持一定电压差;
106.关闭所述复位控制端并且使所述计算位线cbl电气悬空;
107.通过所述复位控制端、与存储开关的存储控制端相连的控制字线、与存储开关的存储端相连的存储状态电平线输入与逻辑计算的一组操作数据;
108.通过计算位线获得该组操作数据的与逻辑运算结果。
109.本公开实施例通过激活目标计算模块中复位开关的复位控制端和计算位线,使所述目标计算模块中的电容两端保持一定电压差,关闭所述复位控制端并且使所述计算位线电气悬空,通过所述复位控制端、与存储开关的存储控制端相连的控制字线、与存储开关的存储端相连的存储状态电平线输入与逻辑计算的一组操作数据,可以快速、高效地实现该组操作数据的与逻辑运算,并可以通过计算位线获得该组操作数据的与逻辑运算结果。
110.其中,本文所称“激活”,也可称为“使能”,例如使被激活端至高电平,使得被激活的器件使能。
111.下面以图4所示的计算模块为例对与逻辑运算操作方式进行示例性介绍,当然,本公开实施例不限于此,具有其他实现方式的存储单元的计算模块也可以实现与逻辑运算操作。
112.请参阅图8,图8示出了利用本公开实施例的计算模块进行与逻辑运算的示意图。
113.在一个示例中,如图8的左图所示,本公开实施例可以首先将控制字线wl《1》设置为高电平vdd,将控制字线wl《2:3》、控制位线bl《1:2》均设为低电平vss,以将计算位线cbl和电容cm下极板先清空电荷,然后将控制字线wl《1》设置为低电平vss、将计算位线cbl保持悬浮态;
114.然后,如图8的右图所示,本公开实施例可以将控制字线wl《3》、控制位线bl《2》保持为低电平vss,将控制位线bl《1》设为vdd以导通选择开关qs1,并根据输入值的不同将控制字线wl《2》设置为不同的电压值(in),并可以设置控制字线wl《1》电压和控制字线wl《2》电压互补,实现控制字线wl《2》上的输入值和第三存储开关q3连接的存储状态电平代表的权重值的与逻辑操作。
115.根据本公开实施例提出的基于只读存储器件在电荷域进行存内计算的计算模块,具有高面积效率、低计功耗的优点,并可以有效地改善闲置状态下的漏电问题,是一类可以实现极大提高面积效率、降低功耗的存内计算电路。
116.在一种可能的实施方式中,所述计算操作包括乘累加操作,所述控制模块20还可以用于:
117.激活目标计算模块110中的存储单元1110中的存储开关的存储控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该被激活的存储开关的存储端的存储状态电平对应的信息进行与逻辑操作;
118.从计算位线获得乘累加计算的结果。
119.本公开实施例通过激活目标计算模块110中的存储单元1110中的存储开关的存储控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该被激活的存储开关的存储端的存储状态电平对应的信息进行与逻辑操作,并从计算位线获得乘累加计算的结果,可见对于不包括选择开关的计算模块,可以快速、高效地实现乘累加计算。
120.在一种可能的实施方式中,所述计算操作包括乘累加操作,所述控制模块20还用于:
121.激活目标计算模块110中的存储单元1110中的存储开关的存储控制端及与该存储开关连接的选择开关的选择控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该存储开关的存储端的存储状态电平对应的信息进行与逻辑操作;
122.从计算位线获得乘累加计算的结果。
123.本公开实施例通过激活目标计算模块110中的存储单元1110中的存储开关的存储控制端及与该存储开关连接的选择开关的选择控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该存储开关的存储端的存储状态电平对应的信息进行与逻辑操作,并从计算位线获得乘累加计算的结果,可见对于包括选择开关的计算模块,可以快速、高效地实现乘累加计算。
124.下面对基于计算阵列的乘累加计算进行示例性介绍。
125.请参阅图9,图9示出了根据本公开实施例的存内计算装置的示意图。
126.在一种可能的实施方式中,如图9所示,该包括多个计算模块的计算阵列,至少采用了一个如前所述电路结构的计算模块,且所述阵列电路的部分或全部单元通过电气连接的方式组合成多行多列的布局方式,且所述电气连接方式为:同一列的部分或全部计算模块的控制位线、计算位线电气相连,同一行的部分或全部计算模块的控制字线电气相连、部分或全部计算模块的存储状态电平和复位状态电平线电气连接。
127.可以理解的是,本公开实施例的存内计算装置的计算阵列能耗在于给电容充电,本公开实施例的等效电容不会随着与逻辑运算结果为“1”的比例增长而线性增长,在与逻辑运算结果为
‘1’
的单元个数所占比例超过一定数值后,本公开实施例可以极大的减少计算过程中的功耗。
128.请参阅图10,图10示出了根据图9所示电路进行乘累加运算时需要充电的等效电容的示意图。
129.如图10所示,本公开实施例可以极大的减少计算过程中的功耗,图10中,单元电容为1.2ff,阵列大小为128x128。此外,在闲置状态下,本公开实施例中的存内计算电路几乎没有漏电,能极大地改善sram存储单元在闲置状态下的漏电问题。
130.在一种可能的实施方式中,在对计算阵列电路进行乘累加操作时,本公开实施例可以控制一根或多根计算位线同时进行(控制所述计算阵列10的一列或多列的计算模块110进行乘累加操作),和/或,同一计算位线连接的单元进行与逻辑操作,通过评估对计算位线的电气特性的影响分辨乘累加计算的结果。
131.请参阅图11,图11示出了利用本公开实施例的计算阵列进行乘累加操作的示意图。
132.首先,如图11的左图(a)所示,本公开实施例可以首先将控制字线wl《1》设置为高电平vdd,将控制字线wl《2:3》、控制位线bl《1:2》均设为低电平vss,以将计算位线cbl和电容cm下极板先清空电荷,然后将控制字线wl《1》设置为低电平vss、将计算位线cbl保持悬浮态;
133.然后,如图11的左图(b)所示,本公开实施例可以将控制字线wl《3》、控制位线bl《2》保持为低电平vss,将控制位线bl《1》设为vdd,导通存储开关m1、存储开关m8,控制字线wl《2》根据输入值的不同设置为不同的电压值,控制字线wl《1》电压与控制字线wl《2》电压互补,实现控制字线wl《2》上的输入值和存储开关m2、m9连接的存储状态电平代表的权重值的与逻辑操作,然后将整根计算位线cbl所连接电路做归一化的乘累加操作,示例性的,若v《2》电压为vdd,v《1》电压为vss,则cbl得到一个vdd到vss的电压值。
134.在一种可能的实施方式中,所述控制模块20还可以用于:
135.控制各个控制字线、控制位线、计算位线、存储状态电平线和复位状态电平线接地
以使得所述计算阵列10进入空闲模式。
136.示例性的,本公开实施例的存内计算装置支持工作模式和空闲模式,其中,在工作模式下进行写操作、与逻辑运算或乘累加操作,在空闲模式下通过控制字线和位线的电压,电路单元存储的信息具备非易失特性。
137.请参阅图12,图12示出了根据本公开实施例的存内计算装置的空闲模式的设置示意图。
138.在一个示例中,如图12所示,本公开实施例通过将所有字线、所有位线均接地(vss),可以控制所述存内计算装置进入空闲模式,从而减少阵列功耗,并且,存储单元存储的信息具备非易失特性,不会出现信息丢失的现象。
139.在一个示例中,工作模式下可以按照前述的介绍,按相应乘累加操作、与逻辑操作等计算操作配置各字线和位线的电压。
140.在一种可能的实施方式中,所述控制模块20还可以用于:
141.控制不同计算位线连接的计算模块110进行流水线式计算操作。
142.请参阅图13,图13示出了利用本公开实施例的计算阵列实现流水式计算操作的示意图。
143.在一个示例中,本公开实施例利用如图5所示的存内计算装置,配合其他电路(如在计算模块之间设置一个或多个mosfet晶体管),在对其中所述阵列电路进行乘累加操作时,通过调整控制字线、控制位线等信号的时序,可以实现不同计算位线所连接计算模块的计算和输出检测部分电路之间的流水线操作。
144.示例性的,流水线操作可以是指将前一个计算模块的计算结果通过计算位线cbl传输到当前计算模块,参与到当前计算模块的计算操作,并将当前计算模块的计算结果通过计算位线cbl传输到下一个计算模块执行计算操作。
145.当然,本公开实施例对进行流水线操作时控制字线、控制位线等信号的具体时序不做限定,本领域技术人员可以根据实际情况及需要设置。
146.请参阅图14,图14示出了根据本公开实施例的神经网络加速器的示意图。
147.如图14所示,所述神经网络加速器包括至少一个神经网络模块,所述神经网络模块包括至少一个原始卷积层,所述原始卷积层包括权重固定的主干层、权重可调的分支层,所述主干层由一个或多个卷积层组成,所述分支层至少包括顺序连接的第一分支卷积层(残差压缩层)、第二分支卷积层(残差卷积层)和第三分支卷积层(残差解压层)构成,所述第一分支卷积层的输入通道数(n)与所述主干层的输入通道数(n)相等;所述第三分支卷积层的输出通道数(m)与所述主干层的输出通道数(m)相等;所述第二分支卷积层的输入通道数(n/d)小于所述主干层的输入通道数;所述第二分支卷积层的输出通道数(m/u)小于所述主干层的输出通道数,
148.其中,所述主干层、所述分支层中的卷积层利用所述的存内计算装置实现。
149.其中,n、m、d、u均为整数。
150.在一个示例中,如图14所示,神经网络加速器被配置为残差分支的形式,可以克服制造好的芯片上的神经网路的权重不可修改的问题。
151.在一个示例中,如图14所示,残差分支方案将神经网络中的至少一层转换为并行计算的主干和分支。其中,主干是一个或多个具有固定参数的深度卷积层。分支层由至少一
个且参数固定的残差压缩层、至少一个且参数固定的残差解压缩层及至少一个参数可变的残差卷积层组成,残差压缩层用于变换输入激活值的通道数,用于降低残差卷积层的输入通道数;残差解压缩层用于变化输出激活值的通道数,用于降低残差卷积层的输出通道数;残差卷积层用于执行卷积操作。
152.通过所述神经网络加速器,本公开实施例可以将深度神经网络模型转换成适用于固定权重神经网络加速器的模型,大量参数的主干层部署在高密度的固定权重加速器中,而少量参数的分支层部署在低密度的灵活权重加速器中,在任务发生变化时,只训练分支层而固定主干层。
153.示例性的,分支卷积层可以比主干层小16倍,可见,本公开实施例可以减小神经网络加速器的大小。
154.本公开实施例的神经网络加速器,可以是基于定点数的神经网络,在卷积神经网络(convolutional neural network,cnn)中,乘累加操作是推断过程的关键操作和主要能耗来源。根据现有研究工作的报道,权重和输入多比特定点数的神经网络,可以把乘法按位分解为与操作和加法操作。定点数神经网络已经在众多数据集上显示了它的成功之处,相比浮点数的网络获得了很小的准确率损失和很低的能耗。
155.本公开实施例通过利用前述的存内计算装置或计算阵列或存储单元实现神经网络加速器,由于前述的存内计算具有高面积效率、低功耗的优点,可以用于神经网络运算的加速等多种应用,可以一定程度上解决涉及高面积效率存内计算设计以及低功耗存内计算设计相关技术中的技术问题。
156.在一种可能的实施方式中,所述主干层、所述第一分支卷积层用于接收神经网络的输入,所述神经网络模块的输出由所述主干层的输出及所述第三分支卷积层的输出聚合而得到。
157.示例性的,聚合可以由带权加法完成。
158.在一种可能的实施方式中,所述神经网络加速器在训练过程中,各个主干层的权重固定;和/或在训练过程的反向传递阶段,所述主干层的权重梯度为0,对各个分支层进行梯度下降调整。
159.在一个示例中,本公开实施例的固定权重的只读存储计算阵列在制造后可以被微调。所述神经网络加速器可以在硬件部署后,适应卷积神经网络识别目标的变化。
160.请参阅图15,图15示出了利用所述神经网络加速器组成的神经网络加速器系统。
161.在一个示例中,如图15所示,所述神经网络加速器系统包括片上架构、软件部分,片上架构包括缓存、控制器、高密度的固定权重计算阵列、低密度的可变权重计算阵列,软件部分包括骨干网络及预测网络,骨干网络中包括固定权重、可变权重,预测网络中包括可变权重。
162.在一个示例中,本公开实施例可以将大型神经网络的参数全部存储在片上。其中,缓存用于临时存储计算过程中的中间值,控制器用于调度数据流和执行非神经网络的计算。采用这种方案,只有一小部分权重被部署在低密度的可变权重计算阵列中,大部分(如90%以上)的参数都可以存储在高密度的固定权重计算阵列中。同时,这种方案在芯片部署后,仍然可以对网络权重进行微调,从而实现任务的迁移。
163.本公开实施例的存内计算装置,具有高面积效率、低功耗的优点,并可以有效地改
善sram存储单元闲置状态下的漏电问题,是一类可以实现极大提高面积效率、降低功耗的存内计算电路。
164.根据本公开的一方面,提供了一种电子设备,所述电子设备包括所述的存内计算装置,或,包括所述的神经网络加速器。
165.电子设备可以被提供为终端、服务器或其它形态的设备。
166.请参阅图16,图16示出了根据本公开实施例的一种电子设备的框图。
167.例如,电子设备1900可以被提供为一服务器。参照图16,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
168.电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(windows server
tm
),苹果公司推出的基于图形用户界面操作系统(mac os x
tm
),多用户多进程的计算机操作系统(unix
tm
),自由和开放原代码的类unix操作系统(linux
tm
),开放原代码的类unix操作系统(freebsd
tm
)或类似。
169.在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
170.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
171.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
172.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
173.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、
机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
174.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
175.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
176.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
177.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
178.该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
179.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
技术特征:
1.一种存内计算装置,其特征在于,所述装置包括:计算阵列,包括多个计算模块,所述计算模块包括至少一个存储单元、复位开关、电容,所述存储单元包括至少一个存储开关,其中:所述存储开关包括存储控制端、存储检测端和存储端,所述存储端连接于一存储状态电平线,用于接收存储状态电平以存储与该存储状态电平对应的信息;所述控制端连接于一控制字线,用于接收控制电压,以调整所述检测端和存储端之间的阻抗特性,所述复位开关包括复位控制端、复位检测端和复位端,所述复位控制端连接于一控制字线,用于接收复位电压以调整所述复位检测端和所述复位端之间的阻抗特性;所述复位端连接于一复位状态电平线,用于接收复位状态电平;所述复位检测端和所述电容的第一端连接于所述至少一个存储单元的输出端,所述电容的第二端连接于计算位线;控制模块,连接于所述计算阵列,用于控制所述计算阵列进行存储操作、读取操作、计算操作中的至少一种操作。2.根据权利要求1所述的装置,其特征在于,所述存储单元包括第一存储开关、第二存储开关,所述第一存储开关、所述第二存储开关的存储检测端均连接于所述存储单元的输出端。3.根据权利要求1所述的装置,其特征在于,所述计算模块还包括选择开关,所述选择开关包括选择控制端、第一检测端和第二检测端,其中,所述选择控制端连接于一控制位线,用于接收控制电压以调整所述第一检测端和所述第二检测端之间的阻抗特性;所述第一检测端连接于所述存储单元的输出端,所述第二检测端连接于各个存储检测端。4.根据权利要求3所述的装置,其特征在于,所述存储单元包括第一选择开关、第二选择开关、第三存储开关、第四存储开关、第五存储开关、第六存储开关,所述第一选择开关及所述第二选择开关的第一检测端均连接于所述存储单元的输出端,所述第一选择开关的第二检测端连接于所述第三存储开关的存储检测端及所述第四存储开关的存储检测端,所述第一选择开关的选择控制端连接于第一控制位线,所述第二选择开关的选择控制端连接于第二控制位线,所述第三存储开关的存储控制端、所述第五存储开关的存储控制端连接于第二控制字线,所述第三存储开关的存储端、所述第四存储开关的存储端均连接于第一存储状态电平线,所述第四存储开关的存储控制端、所述第六存储开关的存储控制端均连接于第三控制字线,所述第五存储开关的存储端、所述第六存储开关的存储端均连接于第二存储状态电平线。5.根据权利要求1或2任一项所述的装置,其特征在于,所述计算操作包括乘累加操作,所述控制模块还用于:激活目标计算模块中的存储单元中的存储开关的存储控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该被激活的存储开关的存储端的存储状态电平对应的信息进行与逻辑操作;从计算位线获得乘累加计算的结果。
6.根据权利要求3或4所述的装置,其特征在于,所述计算操作包括乘累加操作,所述控制模块还用于:激活目标计算模块中的存储单元中的存储开关的存储控制端及与该存储开关连接的选择开关的选择控制端,使得与被激活的存储开关的存储控制端相连的控制字线携带的信息和该存储开关的存储端的存储状态电平对应的信息进行与逻辑操作;从计算位线获得乘累加计算的结果。7.根据权利要求1所述的装置,其特征在于,所述计算操作包括与逻辑操作,所述控制模块还用于:激活目标计算模块中复位开关的复位控制端和计算位线,使所述目标计算模块中的电容两端保持一定电压差;关闭所述复位控制端并且使所述计算位线电气悬空;通过所述复位控制端、与存储开关的存储控制端相连的控制字线、与存储开关的存储端相连的存储状态电平线输入与逻辑计算的一组操作数据;通过计算位线获得该组操作数据的与逻辑运算结果。8.根据权利要求1所述的装置,其特征在于,所述计算阵列中同一列的至少一个计算模块的控制位线、计算位线相连,同一行的至少一个计算模块的控制字线、至少一个存储状态电平线和复位状态电平线相连。9.根据权利要求8所述的装置,其特征在于,所述计算操作包括乘累加操作,所述控制模块还用于:控制所述计算阵列的一列或多列的计算模块进行乘累加操作,和/或,控制连接在同一计算位线的部分或全部计算模块进行乘累加操作。10.根据权利要求8所述的装置,其特征在于,所述控制模块还用于:控制不同计算位线连接的计算模块进行流水线式计算操作。11.根据权利要求8所述的装置,其特征在于,所述控制模块还用于:控制各个控制字线、控制位线、计算位线、存储状态电平线和复位状态电平线接地以使得所述计算阵列进入空闲模式。12.一种神经网络加速器,其特征在于,所述神经网络加速器包括至少一个神经网络模块,所述神经网络模块包括至少一个原始卷积层,所述原始卷积层包括权重固定的主干层、权重可调的分支层,所述主干层由一个或多个卷积层组成,所述分支层至少包括顺序连接的第一分支卷积层、第二分支卷积层和第三分支卷积层构成,所述第一分支卷积层的输入通道数与所述主干层的输入通道数相等;所述第三分支卷积层的输出通道数与所述主干层的输出通道数相等;所述第二分支卷积层的输入通道数小于所述主干层的输入通道数;所述第二分支卷积层的输出通道数小于所述主干层的输出通道数,其中,所述主干层、所述分支层中的卷积层利用权利要求1-11任一项所述的存内计算装置实现。13.根据权利要求12所述的神经网络加速器,其特征在于,所述主干层、所述第一分支卷积层用于接收神经网络的输入,所述神经网络模块的输出由所述主干层的输出及所述第三分支卷积层的输出聚合而得到。14.根据权利要求12或13所述的神经网络加速器,其特征在于,所述神经网络加速器在
训练过程中,各个主干层的权重固定;和/或在训练过程的反向传递阶段,所述主干层的权重梯度为0,对各个分支层进行梯度下降调整。15.一种电子设备,其特征在于,所述电子设备包括如权利要求1-11任一项所述的存内计算装置,或,包括权利要求12-14任一项所述的神经网络加速器。
技术总结
本公开涉及一种存内计算装置、神经网络加速器和电子设备,所述装置包括:计算阵列,包括多个计算模块,计算模块包括至少一个存储单元、复位开关、电容,存储单元包括至少一个存储开关,存储开关包括存储控制端、存储检测端和存储端,存储端用于接收存储状态电平以存储与该存储状态电平对应的信息;控制端用于接收控制电压,以调整检测端和存储端之间的阻抗特性,复位开关包括复位控制端、复位检测端和复位端,复位控制端用于接收复位电压;复位端用于接收复位状态电平;控制模块,用于控制计算阵列进行存储操作、读取操作、计算操作中的至少一种操作。本公开实施例具有较高的面积效率,显著降低了存取数据、存内计算的功耗。存内计算的功耗。存内计算的功耗。
技术研发人员:李学清 尹国栋 陈一鸣 周沐风 杨泽坤 李旻谚 刘勇攀 杨华中
受保护的技术使用者:清华大学
技术研发日:2022.06.30
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/