推理引擎电路架构制造技术

技术编号:36065716 阅读:9 留言:0更新日期:2022-12-24 10:32
公开了一种推理引擎电路架构,其包含矩阵

【技术实现步骤摘要】
【国外来华专利技术】推理引擎电路架构
[0001]相关申请的交叉引用
[0002]本申请要求专利技术人Aliasger Zaidy等人于2020年3月29日提交的标题为“推理引擎电路架构(Inference Engine Circuit Architecture)”的第16/833,610号美国专利申请的权益和优先权,所述美国专利申请与本文共同转让,并且所述美国专利申请特此以全文引用的方式整体并入本文中,其全部效力和效果与本文中所全文阐述的相同。


[0003]本专利技术大体上涉及计算电路系统,且更具体地说,涉及一种能够实行逐矩阵乘法运算(matrix

by

matrix multiplication)的电子电路架构,所述电子电路架构可用于实施卷积神经网络,用于例如人工智能、机器学习、和图像识别等应用程序。

技术介绍

[0004]神经网络运算的核心是大量乘法运算。卷积神经网络(“CNN”)是具有多个互连的阶层式层的前馈神经网络,所述前馈神经网络通常用于例如人工智能、机器学习和图像识别等多种应用程序。CNN层的输入和输出通常是三维(“3D”)的。例如,典型的CNN可以使用具有红色通道、绿色通道和蓝色通道的图像输入,所述通道中的每一者是单独的二维(2D)输入特征图。对这些输入特征图中的每一者实行二维卷积以产生三个输出,然后逐像素以相加方式组合所述输出以产生多个输出图,然后将所述输出图作为输入馈送到下一CNN层,直到产生最终结果为止。一组此类输入数据,如输入特征图,称为输入“映射”。接着将输入映射映像数据与对应的权重进行卷积,所述权重被称为卷积“内核”。因此,对于此类神经网络,大部分原子操作是输入(映射)与权重(内核)之间的乘法运算。
[0005]为了运行消费者通常使用的深度学习应用程序,例如在Facebook中给照片加标签,或向Alexa提问,或在Google中将一种语言翻译成另一种语言,计算机必须实行大量此类输入或神经激活与权重的乘法运算。神经网络使用大量的权重参数,多达1.5亿个,更典型的是在3000

6000万个权重之间。这意味着,每次使用神经网络时,它都必须针对每个输入实行数百万次乘法运算。并且所述神经网络应尽可能快地完成,这是因为人们通常不愿意或不会花超过约200毫秒来等待结果。
[0006]因此,例如但不限于,对于能够为CNN应用程序,为例如人工智能、机器学习、图像识别等应用程序和需要数学计算的其它推理应用程序,提供高性能的计算架构(“引擎”)存在持续需求。此类计算架构应具有相对高的效率,含显著的利用率,并且应具有相对低的带宽用于访问存储映射数据和内核数据的任何存储器集成电路。为了提供此类性能,此类计算架构应能够实行完整的逐矩阵乘法运算。

技术实现思路

[0007]如下文更详细地论述,代表性设备(电路)和系统(集成电路或“IC”)提供一种推理引擎电路架构。例如但不限于,代表性推理引擎电路架构作为系统是能够为CNN应用程序,
为例如人工智能、机器学习、图像识别等应用程序和需要数学计算的其它推理应用程序,提供高性能的计算架构。推理引擎电路架构(或系统)具有相对高的效率,含显著的利用率(约95%),并且具有相对低的带宽用于访问存储映射数据和内核数据的任何存储器集成电路。推理引擎电路架构系统能够实行完整的逐矩阵乘法运算。
[0008]推理引擎电路架构系统在大多数深度神经网络层中达到99.9%的效率,从而去除未使用的电路系统(死(dead)硅或“暗(dark)”硅)并提供高效的功耗,尤其适用于移动应用程序。推理引擎电路架构还可以提供显著的缩放,如下文更详细地论述。
[0009]公开了一种加速电路架构的代表性实施例,所述加速电路架构包括:第一缓冲器电路,其存储映射数据;第一数据网络,其耦合到所述第一缓冲器电路;第二缓冲器电路,其存储内核数据;第二串行数据网络,其耦合到所述第二缓冲器电路;第一多个乘法和累加电路,其布置在第一阵列中并且通过所述第一数据网络耦合到所述第一缓冲器电路且通过所述第二串行数据网络耦合到所述第二缓冲器电路,所述第一多个乘法和累加电路中的每个乘法和累加电路包括:乘法器电路,其用以将映射数据和内核数据相乘以生成乘积;以及第一加法器电路,其耦合到所述乘法器;其中所述加速电路架构进一步包括:移位寄存器,其耦合到所述第一多个乘法和累加电路;第一控制多路复用器,其适用于响应于第一模式控制字而提供所选择输出,所述所选择输出包括偏置参数或者第一或下一累加和;以及第二加法器电路,其耦合到所述移位寄存器和所述第一控制多路复用器,所述第二加法器电路适用于将所述乘积与所述偏置参数或所述第一累加和相加以生成第二或下一累加和。
[0010]在代表性实施例中,响应于第一模式控制字指定独立模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出。在代表性实施例中,响应于第一模式控制字指定协作模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于第一周期且提供所述第一或下一累加和作为所述所选择输出用于多个后续周期。在代表性实施例中,响应于第一模式控制字指定组合式独立和协作模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于第一周期且提供所述第一或下一累加和作为所述所选择输出用于第一多个后续周期;并且在所述第一多个后续周期之后,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于下一周期且提供所述第一或下一累加和作为所述所选择输出用于第二多个后续周期。
[0011]在代表性实施例中,所述第二串行数据网络将第一内核数据提供到第一多个乘法和累加电路,接着循序将所述第一内核数据提供到第二多个乘法和累加电路。
[0012]在代表性实施例中,所述加速电路架构可以进一步包括:映射缓冲器仲裁器电路,其耦合到所述第一缓冲器电路和所述第一数据网络,所述映射缓冲器仲裁器电路适用于确定访问所述第一缓冲器电路时的冲突,并且响应于所述冲突而实施用于访问所述第一缓冲器电路的优先级协议。在代表性实施例中,所述映射缓冲器仲裁器电路进一步适用于接收用于所述第一缓冲器电路中的所选择映射数据的地址,并且作为响应,获得并提供所述所选择映射数据。
[0013]在代表性实施例中,所述加速电路架构可以进一步包括:张量解码器电路,其耦合到所述第一数据网络,所述张量解码器电路适用于生成并输出地址序列,所述地址序列从基地址开始并使所述基地址递增直到输出地址等于所述基地址加上张量长度。在代表性实施例中,所述张量解码器电路可以进一步包括:操作数收集器,其耦合到所述第一数据网
络,所述操作数收集器适用于将所述输出地址传送到映射缓冲器仲裁器电路或所述第二缓冲器电路,获得对应于所述输出地址的数据,并将所获得数据传送到所述第一多个乘法和累加电路。在代表性实施例中,所述加速电路架构可以进一步包括:张量缓冲器,其耦合到所述张量解码器电路;以及控制核心,其耦合到所述张量解码器电路和所述第一数据网络,所述控制核心适用于接收并解码多个指令,并且将张量指令传送到所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种加速电路架构,其包括:第一缓冲器电路,其存储映射数据;第一数据网络,其耦合到所述第一缓冲器电路;第二缓冲器电路,其存储内核数据;第二串行数据网络,其耦合到所述第二缓冲器电路;第一多个乘法和累加电路,其布置在第一阵列中并且通过所述第一数据网络耦合到所述第一缓冲器电路且通过所述第二串行数据网络耦合到所述第二缓冲器电路,所述第一多个乘法和累加电路中的每个乘法和累加电路包括:乘法器电路,其用以将映射数据和内核数据相乘以生成乘积;以及第一加法器电路,其耦合到所述乘法器;移位寄存器,其耦合到所述第一多个乘法和累加电路;第一控制多路复用器,其适用于响应于第一模式控制字而提供所选择输出,所述所选择输出包括偏置参数或者第一或下一累加和;以及第二加法器电路,其耦合到所述移位寄存器和所述第一控制多路复用器,所述第二加法器电路适用于将所述乘积与所述偏置参数或所述第一累加和相加以生成第二或下一累加和。2.根据权利要求1所述的加速电路架构,其中响应于第一模式控制字指定独立模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出。3.根据权利要求1所述的加速电路架构,其中响应于第一模式控制字指定协作模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于第一周期且提供所述第一或下一累加和作为所述所选择输出用于多个后续周期。4.根据权利要求1所述的加速电路架构,其中响应于第一模式控制字指定组合式独立和协作模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于第一周期且提供所述第一或下一累加和作为所述所选择输出用于第一多个后续周期;并且在所述第一多个后续周期之后,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于下一周期且提供所述第一或下一累加和作为所述所选择输出用于第二多个后续周期。5.根据权利要求1所述的加速电路架构,其中所述第二串行数据网络将第一内核数据提供到第一多个乘法和累加电路,接着循序将所述第一内核数据提供到第二多个乘法和累加电路。6.根据权利要求1所述的加速电路架构,其进一步包括:映射缓冲器仲裁器电路,其耦合到所述第一缓冲器电路和所述第一数据网络,所述映射缓冲器仲裁器电路适用于确定访问所述第一缓冲器电路时的冲突,并且响应于所述冲突而实施用于访问所述第一缓冲器电路的优先级协议。7.根据权利要求6所述的加速电路架构,其中所述映射缓冲器仲裁器电路进一步适用于接收用于所述第一缓冲器电路中的所选择映射数据的地址,并且作为响应,获得并提供所述所选择映射数据。8.根据权利要求1所述的加速电路架构,其进一步包括:张量解码器电路,其耦合到所述第一数据网络,所述张量解码器电路适用于生成并输出地址序列,所述地址序列从基地址开始并使所述基地址递增直到输出地址等于所述基地
址加上张量长度。9.根据权利要求8所述的加速电路架构,其中所述张量解码器电路进一步包括:操作数收集器,其耦合到所述第一数据网络,所述操作数收集器适用于将所述输出地址传送到映射缓冲器仲裁器电路或所述第二缓冲器电路,获得对应于所述输出地址的数据,并将所获得数据传送到所述第一多个乘法和累加电路。10.根据权利要求1所述的加速电路架构,其进一步包括:模式控制电路,其适用于提供或生成所述第一模式控制字。11.根据权利要求1所述的加速电路架构,其进一步包括:MAX电路,其包括多个比较器,所述多个比较器适用于确定多个第二或下一累加和的最大值。12.根据权利要求1所述的加速电路架构,其进一步包括:多个第二控制多路复用器,所述多个第二控制多路复用器中的每个第二控制多路复用器耦合到所述第一多个乘法和累加电路中的乘法和累加电路的第一加法器电路,所述多个第二控制多路复用器中的每个第二控制多路复用器适用于响应于第二模式控制字而提供所选择输出,所述所选择输出包括偏置参数或第一累加和。13.一种加速电路架构,其包括:第一缓冲器电路,其存储映射数据;第一数据网络,其耦合到所述第一缓冲器电路;多个第二缓冲器电路,其存储内核数据,所述多个第二缓冲器电路中的每个第二缓冲器电路存储与所述多个第二缓冲器电路中的另一第二缓冲器电路不同的内核数据;多个第二串行数据网络,所述多个第二串行数据网络中的每个第二串行数据网络耦合到所述多个第二缓冲器电路中的对应第二缓冲器电路;以及多个向量

向量加速电路,其布置在多个阵列中,所述多个阵列中的所选择阵列中的所述多个向量

向量加速电路中的每个向量

向量加速电路通过所述第一数据网络耦合到所述第一缓冲器电路,并且所述多个向量

向量加速电路中的每个向量

向量加速电路通过所述多个第二串行数据网络中的对应第二串行数据网络耦合到所述多个第二缓冲器电路中的第二缓冲器电路,所述多个向量

向量加速电路中的每个向量

向量加速电路包括:多个乘法和累加电路,所述多个乘法和累加电路中的每个乘法和累加电路包括:乘法器电路,其用以将映射数据和内核数据相乘以生成乘积;以及第一加法器电路,其耦合到所述乘法器;移位寄存器,其耦合到所述多个乘法和累加电路;第一控制多路复用器,其适用于响应于第一模式控制字而提供所选择输出,所述所选择输出包括偏置参数或者第一或下一累加和;以及第二加法器电路,其耦合到所述移位寄存器和所述第一控制多路复用器,所述第二加法器电路适用于将所述乘积与所述偏置参数或所述第一累加和相加以生成第二或下一累加和。14.根据权利要求13所述的加速电路架构,其中响应于第一模式控制字指定独立模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出。15.根据权利要求13所述的加速电路架构,其中响应于第一模式控制字指定协作模式,
所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于第一周期且提供所述第一或下一累加和作为所述所选择输出用于多个后续周期。16.根据权利要求13所述的加速电路架构,其中响应于第一模式控制字指定组合式独立和协作模式,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于第一周期且提供所述第一或下一累加和作为所述所选择输出用于第一多个后续周期;并且在所述第一多个后续周期之后,所述第一控制多路复用器提供所述偏置参数作为所述所选择输出用于下一周期且提供所述第一或下一累加和作为所述所选择输出用于第二多个后续周期。17.根据权利要求13所述的加速电路架构...

【专利技术属性】
技术研发人员:A
申请(专利权)人:美光科技公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1