具有驻留在芯片上的参数的神经网络加速器的制作方法

摘要: 本申请涉及具有驻留在芯片上的参数的神经网络加速器。背景技术:1、本说明书大体涉及用于深度神经网络(“dnn”)层的计算的神经网络(“nn”)计算瓦片(tile)...
具有驻留在芯片上的参数的神经网络加速器的制作方法

本申请涉及具有驻留在芯片上的参数的神经网络加速器。

背景技术:

1、本说明书大体涉及用于深度神经网络(“dnn”)层的计算的神经网络(“nn”)计算瓦片(tile)。

技术实现思路

1、一般而言,在本说明书中所描述的主题的一个创新方面能够被包含在将神经网络的参数存储在加速器上。神经网络偏离典型的计算工作量,因为其工作集即对于全部计算所要求的总存储量是实际上有限的。该工作集主要地对应于参数的数量,通常地从几十万到几十亿。该存储量与现有的硬件存储技术兼容。

2、虽然这样,当前的加速器包含用于参数的本地存储,其中参数穿过本地存储转送,即参数未永久地驻留在芯片上。反而是,对于每个新推理,参数都从外部存储器流输(stream)。

3、外部存储器带宽因此是所有神经网络(“nn”)加速器的关键限制。在本说明书中所描述的实施例利用用于参数的永久存储替换用于参数的暂时性本地存储,即,实施例保持nn的所有参数驻留在加速器,并且使它们不再从外部存储器流输。

4、将参数存储在芯片上的益处包括:克服nn加速器的性能限制;显著促进乘法累加(“mac”)运算器的数量的增加,因为性能限制已经被克服;并且提供低功率神经网络加速器,因为外部存储器访问通常需要比本地存储器访问至少高一个数量级的能量。

5、在某些实施例中,加速器包括计算单元。该计算单元包括:第一存储器组,其用于存储输入激活或者输出激活;第二存储器组,其用于存储在执行计算中使用的神经网络参数,第二存储器组被配置成将足够数量的所述神经网络参数存储在计算单元上以允许针对给定nn模型和架构的低于指定水平的延时以及高于指定水平的吞吐量;至少一个cell,其包括至少一个mac运算器,其从第二存储器组接收参数并且执行计算;至少与所述第一存储器组数据通信的第一遍历单元,第一遍历单元被配置成将控制信号提供到第一存储器组以使得输入激活被提供到由mac运算器可访问的数据总线;并且其中,加速器执行与数据阵列的至少一个元素相关联的一个或多个计算,一个或多个计算由mac运算器执行,并且部分地包括从数据总线接收到的输入激活和从第二存储器组接收到的参数的乘法运算。如果用于参数的存储足以保持所有神经网络参数,则加速器的性能将不由存储器带宽确定。在该情况下,每周期利用参数馈送所有mac是可能的。

6、本说明书中所描述的主题的另一创新方面能够被包含在用于加速张量计算的计算机实现的方法中。该计算机实现的方法包括:由第一存储器组响应于第一存储器组接收到控制信号而发送第一输入激活,其中,第一输入激活由数据总线传送;通过至少一个mac运算器从用于存储在执行计算中使用的神经网络参数的第二存储器组接收一个或多个参数,第二存储器组将足够数量的神经网络参数存储在计算单元上以允许针对给定nn模型和架构的低于指定阈值的延时和高于指定阈值的吞吐量;并且通过mac运算器执行与数据阵列的至少一个元素相关联的一个或多个计算,其中,一个或多个计算部分地包括至少从数据总线访问的第一输入激活和从第二存储器组接收到的至少一个参数的乘法运算。

7、本说明书中所描述的主题的另一创新方面能够被包含在用于加速计算的方法中。该方法包括:在执行之前,将神经网络权重参数加载到神经网络加速器;并且在执行期间,基本上在未访问加速器外部的神经网络权重参数的情况下,处理对加速器的输入。该方法还能够包括:如果神经网络权重参数的数量太大以致于不能适配在单个加速器模具上,则将神经网络权重参数加载到多个紧密连接的加速器模具中;并且基本上在未访问在紧密连接的加速器模具外部的神经网络权重参数的情况下,处理对加速器模具的输入。

8、本说明书中所描述的主题能够被实现在特定实施例中以便实现以下优点中的一个或多个。使用寄存器跟踪存储器地址值允许程序利用一个指令迭代深度嵌套循环。在单个计算瓦片中从窄存储器和宽存储器单元可访问的张量基于从寄存器所检索的存储器地址值来遍历。存储器地址值对应于张量的元素。张量计算基于深度循环嵌套的执行在单独的计算瓦片中发生。计算能够跨多个瓦片分布。计算效率基于跨若干计算瓦片分布用于多层神经网络的张量计算来增强和加速。张量能够被遍历并且张量计算能够利用减少数量的指令来执行。

9、本说明书中所描述的实施例对神经网络(“nn”)加速器操作和设计产生影响。实施例对神经网络加速器设计的显著限制和低延时和高吞吐量的组合中的一个起作用。给定高吞吐量和给定nn模型和架构,在芯片上驻留放置参数则显著地减少延时。加速器不需要高存储器带宽并且能量下降。

10、具有如在本说明书中所描述的瓦片布置提供编译类型本地性。例如,靠近sram放置完全连接的模型导致对比高速缓存模型更大的内部带宽。本说明书中所描述的实施例比常规神经网络加速器更快地操作。某些实施例具有更多运算器;为了馈送运算器,加速器需要更多内部带宽。为了解决该需要,所述架构分布存储器并且将参数带到加速器上。

11、本说明书中所描述的主题也可能被实现在特定实施例中以便实现其它优点。例如,通过采用将窄低带宽存储器与高带宽宽存储器耦合的存储器层次,能够针对非常不同的尺寸和位置的dnn层实现mac运算器的高利用率。窄低带宽存储器能够允许以任何次序遍历多维阵列的寻址灵活性。

12、该方面和其它方面的其它实施方式包括对应的系统、装置和计算机程序,其被配置成执行在计算机存储设备上编码的方法的动作。一个或多个计算机的系统可以借助于在操作中使得系统执行动作的被安装在系统上的软件、固件、硬件或其组合这样配置。一个或多个计算机程序可以借助于具有当由数据处理装置执行时使得装置执行动作的指令这样配置。

13、在附图和以下描述中阐述本说明书中所描述的主题的一个或多个实现的细节。主题的其它潜在特征、方面和优点将从描述、附图和权利要求变得显而易见。

1.一种用于在加速器上加速张量计算的计算机实现的方法,

2.根据权利要求1所述的方法,其中,所述至少一个cell包括多个乘法累加运算器,所述多个乘法累加运算器从所述第二存储器组接收参数并且执行计算,并且其中发送包括:向所述数据总线提供输入激活的逐个广播以使得所述至少一个cell的每个乘法累加运算器接收输入激活。

3.根据权利要求1所述的方法,其中,所述第二存储器组被配置成将足够数量的所述神经网络参数存储在所述计算单元上以允许针对给定神经网络模型和架构的低于指定水平的延时以及高于指定水平的吞吐量。

4.根据权利要求1所述的方法,其中,所述第二存储器组被配置成存储超过100,000个参数。

5.根据权利要求1所述的方法,其中,所述第二存储器组被配置成存储超过1,000,000个参数。

6.根据权利要求1所述的方法,其中,所述第二存储器组被配置成存储超过100,000,000个参数。

7.根据权利要求1所述的方法,其中,所述第二存储器组包括 sram。

8.根据权利要求1所述的方法,其中,所述第二存储器组包括3d sram。

9.一种用于在加速器上加速张量计算的系统,所述系统包括:

10.一种存储指令的非暂时性计算机可读存储介质,所述指令在由数据处理装置执行时使得所述数据处理装置执行根据权利要求1至8中的任一项所述的方法。