用于集成电路的一维计算单元的制作方法
- 国知局
- 2024-07-31 22:47:37
背景技术:
1、本说明书总体涉及用于执行机器学习计算的集成电路。
2、神经网络是采用一层或多层节点来针对所接收的输入生成输出(例如分类)的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。一些神经网络可以是被配置用于图像处理的卷积神经网络(cnn)或被配置用于语音和语言处理的循环神经网络(rnn)。不同类型的神经网络架构可以用于执行与分类或模式识别、涉及数据建模的预测和信息聚类相关的各种任务。
3、神经网络层可以具有对应的参数或权重集合。权重用于处理通过神经网络层的输入(例如,一批输入)以生成该层的对应输出来计算神经网络推理。一批输入和核集合可以表示为输入和权重的张量,即多维阵列。硬件加速器是用于实现神经网络的专用集成电路。该电路包括存储器,其位置与可以使用电路的控制逻辑来遍历或访问的张量的元素相对应。
技术实现思路
1、本说明书描述了针对用于实现专用集成硬件电路的改进的电路架构的技术。电路架构包括超级小芯片(super tile)阵列、超级一维计算单元阵列和路由网络。每个超级小芯片可以包括多个单独的计算小芯片。超级小芯片的单独的计算小芯片可以用于顺序地或同时为机器学习工作负载执行较大计算的不同部分。类似地,每个超级一维计算单元可以包括多个单独的一维计算单元。
2、单独的一维计算单元可以被配置为对从例如超级小芯片或至少一个单独的计算小芯片接收的值的矢量进行操作的矢量处理器或矢量计算单元。电路架构可以用于实现多层神经网络模型的专用处理器中,并且一维计算单元可以针对给定的神经网络任务执行各种类型的算术运算。例如,一维计算单元可以对神经网络的某一层的超级小芯片处计算的部分和值执行点乘积累加,并且将激活函数应用于累加值的矢量。
3、路由网络是可动态配置的并且包括多个数据路径。数据路径可以是在超级小芯片阵列与超级一维计算单元阵列之间提供互连的可控总线线路。例如,路由网络提供以下各者之间的互连:i)超级小芯片与超级一维计算单元;ii)单独的计算小芯片与单独的一维计算单元;iii)两个或更多个超级小芯片;iv)两个或更多个超级一维计算单元;或v)这些的各种组合。路由网络还提供超级小芯片的各个计算小芯片之间以及超级一维计算单元的各个一维计算单元之间的互连。
4、一般而言,在一些方面,本技术的主题可以体现在一种用于实现神经网络的集成电路中,该神经网络包括多个神经网络层,其中该电路包括:多个计算小芯片,所述多个计算小芯片被配置为处理用于生成神经网络层的输出的数据;第一矢量单元,该第一矢量单元被配置为对从该多个计算小芯片的第一子集沿着该集成电路的第一维度提供的第一数据值执行操作;第二矢量单元,该第二矢量单元被配置为对从该多个计算小芯片的第二子集沿着该集成电路的该第一维度提供的第二数据值执行操作;数据路径集合,该数据路径集合被配置为耦合给定矢量单元和特定的计算小芯片子集,使得数据值能够在该给定矢量单元与该特定的计算小芯片子集之间路由;以及矢量数据路径集合,该矢量数据路径集合被配置为耦合该第一矢量单元和该第二矢量单元以支持使用该多个计算小芯片中的一个或多个执行的神经网络计算。
5、集成电路的实现方式可以包括以下特征中的一个或多个。例如,在一些实现方式中,该多个计算小芯片以及该第一矢量单元和该第二矢量单元协作来基于使用该数据路径集合和该矢量数据路径集合路由的数据值而为该多个神经网络层中的每一层生成相应输出。
6、在一些实现方式中,该电路包括:第一数据路径集合,该第一数据路径集合被配置为耦合该第一矢量单元和该第一计算小芯片子集,使得该第一数据值能够在该第一矢量单元与该第一计算小芯片子集之间路由;以及第二数据路径集合,该第二数据路径集合被配置为耦合该第二矢量单元和该第二计算小芯片子集,使得该第二数据值能够在该第二矢量单元与该第二计算小芯片子集之间路由。
7、在一些实现方式中,该电路包括:第一矢量数据路径集合,该第一矢量数据路径集合被配置为沿着该集成电路的该第一维度耦合该第一矢量单元和该第二矢量单元,以支持使用该多个计算小芯片中的一个或多个执行的该神经网络计算。
8、在一些实现方式中,该电路包括:第二矢量数据路径集合,该第二矢量数据路径集合被配置为沿着该集成电路的第二维度将该第一矢量单元或该第二矢量单元耦合到另一个矢量单元,以支持使用该多个计算小芯片中的一个或多个执行的该神经网络计算。
9、在一些实现方式中,该集成电路是被配置为基于使用一个或多个时钟信号集合执行的多个预定指令来执行确定性操作的神经网络处理器;并且该第一数据路径集合和该第二数据路径集合以及该第一矢量数据路径集合和该第二矢量数据路径集合是该神经网络处理器的动态地路由由该神经网络处理器处理的数据的可动态配置的路由网络。
10、在一些实现方式中,该第一数据路径集合中的数据路径是被配置为当执行该神经网络计算时将部分和的第一部分从该第一计算小芯片子集提供给该第一矢量单元的部分和总线,并且该第二数据路径集合中的数据路径是被配置为当执行该神经网络计算时将部分和的第二部分从该第二计算小芯片子集提供给该第二矢量单元的部分和总线。
11、在一些实现方式中,该数据包括:第一多个输入,该第一多个输入在该神经网络层处处理以生成表示该神经网络层的该输出的第一多个激活值;或者第二多个输入,该第二多个输入在第二神经网络层处处理以生成表示该第二神经网络层的输出的第二多个激活值。
12、在一些实现方式中,该神经网络层的该输出作为输入提供给该第二神经网络层,使得该第一多个激活值和该第二多个输入是相同的。
13、在一些实现方式中,该电路还包括:功能存储器单元,该功能存储器单元被配置为执行算术运算,该算术运算使得能够对从可加载值表获得的数据值进行插值,其中该可加载表是在该集成电路处可访问的。
14、在一些实现方式中,该多个计算小芯片中的每一个包括被配置为计算一个或多个部分和的相应的多维计算芯元(compute cell)阵列。
15、一般而言,在一些方面,本公开的主题可以体现在一种或多种用于使用集成电路的多个计算小芯片生成神经网络层的输出的方法中,该集成电路实现包括多个神经网络层的神经网络,该方法包括:使用该多个计算小芯片从输入数据集计算多个数据值;由该集成电路的第一矢量单元处理从该多个计算小芯片的第一子集沿着该集成电路的第一维度提供的第一数据值;由该集成电路的第二矢量单元处理从该多个计算小芯片的第二子集沿着该集成电路的该第一维度提供的第二数据值;当正在处理该第一数据值或该第二数据值时,使用耦合该第一矢量单元和该第二矢量单元的矢量数据路径来在该第一矢量单元与该第二矢量单元之间路由不同类型的数据值;以及基于对该第一数据值或该第二数据值的该处理以及经由矢量数据路径集合在该第一矢量单元与该第二矢量单元之间路由的该不同类型的数据值来生成该神经网络层的该输出。
16、一种或多种方法的实现方式可以包括以下特征中的一个或多个。例如,在一些实现方式中,处理该第一数据值包括:响应于经由第一数据路径集合从该第一计算小芯片子集沿着该第一维度接收该第一数据值而处理该第一数据值,该第一数据路径集合被配置为耦合该第一计算小芯片子集和该第一矢量单元,使得该第一数据值能够在该第一计算小芯片子集与该第一矢量单元之间路由。
17、在一些实现方式中,处理该第二数据值包括:响应于经由第二数据路径集合从该第一计算小芯片子集沿着该第一维度接收该第二数据值而处理该第二数据值,该第二数据路径集合被配置为耦合该第二计算小芯片子集和该第二矢量单元,使得该第二数据值能够在该第二计算小芯片子集与该第二矢量单元之间路由。
18、在一些实现方式中,该第一数据路径集合中的数据路径是部分和总线,并且该一种或多种方法包括:当在该集成电路处执行神经网络计算时,经由该第一数据路径集合将部分和的第一部分从该第一计算小芯片子集提供给该第一矢量单元。
19、在一些实现方式中,该第二数据路径集合中的数据路径是部分和总线,并且该一种或多种方法包括:当在该集成电路处执行该神经网络计算时,经由该第二数据路径集合将部分和的第二部分从该第二计算小芯片子集提供给该第二矢量单元。
20、在一些实现方式中,该多个计算小芯片以及该第一矢量单元和该第二矢量单元协作来基于使用该第一数据路径集合和该第二数据路径集合以及该矢量数据路径路由的数据值而为该多个神经网络层中的每一层生成相应输出。
21、在一些实现方式中,该集成电路是被配置为基于使用一个或多个时钟信号集合执行的多个预定指令来执行确定性操作的神经网络处理器;并且该一种或多种方法还包括:当执行该神经网络计算时动态地配置该神经网络处理器的路由网络以动态地路由由该神经网络处理器处理的数据。
22、在一些实现方式中,该路由网络包括该第一数据路径集合和该第二数据路径集合以及该矢量数据路径;并且该矢量数据路径包括:第一矢量数据路径集合,该第一矢量数据路径集合被配置为沿着该集成电路的该第一维度耦合该第一矢量单元和该第二矢量单元;以及第二矢量数据路径集合,该第二矢量数据路径集合被配置为沿着该集成电路的第二维度将该第一矢量单元或该第二矢量单元耦合到另一个矢量单元。
23、一般而言,在一些方面,本公开的主题可以体现在一种系统中,该系统包括:处理装置;集成电路,该集成电路实现包括多个神经网络层的神经网络;以及非暂时性机器可读存储装置,该非暂时性机器可读存储装置存储用于使用该集成电路的多个计算小芯片生成神经网络层的输出的指令,该指令能够由该处理装置执行以引起包括以下各者的操作的执行:使用该多个计算小芯片从输入数据集计算多个数据值;由该集成电路的第一矢量单元处理从该多个计算小芯片的第一子集沿着该集成电路的第一维度提供的第一数据值;由该集成电路的第二矢量单元处理从该多个计算小芯片的第二子集沿着该集成电路的该第一维度提供的第二数据值;当正在处理该第一数据值或该第二数据值时,使用耦合该第一矢量单元和该第二矢量单元的矢量数据路径来在该第一矢量单元与该第二矢量单元之间路由不同类型的数据值;以及基于对该第一数据值或该第二数据值的该处理以及经由矢量数据路径集合在该第一矢量单元与该第二矢量单元之间路由的该不同类型的数据值来生成该神经网络层的该输出。
24、这一方面和其他方面的其他实现方式包括对应的系统、设备和计算机程序,该计算机程序被配置为执行一种或多种方法的动作、编码在计算机存储装置上。一个或多个计算机的系统可以借助于在系统上安装的在操作中使该系统执行动作的软件、固件、硬件或它们的组合而如此配置。一个或多个计算机程序可以借助于具有在由数据处理设备执行时使该设备执行动作的指令而如此配置。
25、可以在特定实施例中实现本说明书中描述的主题,以便实现以下优势中的一个或多个优势。相对于用于执行机器学习应用的先前的电路设计,所公开的电路架构和数据处理技术提供了用于对如何跨计算小芯片和一维计算单元并行化和/或扩展计算进行优化的方法的不同组合。所描述的电路架构和技术可以集成在一个或多个专用处理器中,以提高处理器针对各种类型的机器学习模型执行任务并执行计算的速度和效率。
26、所描述的技术可以用于实现相对于某些通用处理器提供成本和功率两者的改进的专属硬连线型数据累加管线。例如,这些技术可以用于实现具有专属且可控(例如,可配置)的总线线路的专用硬件神经网络处理器,该总线线路提供用于在集成电路中的不同资源阵列的各个计算单元或矢量单元之间路由数据的数据路径。这允许实现更有效率的处理装置,特别是在制造成本和功率消耗方面。
27、本说明书中描述的主题的一个或多个实现方式的细节在附图和以下描述中阐述。根据该描述、附图和权利要求书,本主题的其他潜在特征、方面和优势将变得显而易见。
本文地址:https://www.jishuxx.com/zhuanli/20240730/194642.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表