经由并行和片上存储器进行时间、空间和能量高效神经推断制造技术

技术编号:26610799 阅读:62 留言:0更新日期:2020-12-04 21:36
提供了经由并行和片上存储器提供时间,空间和能量高效的神经推断的神经推断芯片和核。在各种实施例中,神经推断芯片包括:多个神经核,所述多个神经核通过片上网络互连;第一片上存储器,用于存储神经网络模型,所述第一片上存储器通过所述片上网络连接到所述多个核中的每一个;第二片上存储器,用于存储输入和输出数据,所述第二片上存储器通过所述片上网络连接到所述多个核中的每一个。

【技术实现步骤摘要】
【国外来华专利技术】经由并行和片上存储器进行时间、空间和能量高效神经推断
技术介绍
本公开的实施例涉及神经网络,并且更具体地,涉及适于经由并行和片上(on-chip)存储器提供时间、空间和能量高效的神经推断的神经推断芯片和核。
技术实现思路
根据本公开的实施例,提供了神经推断芯片。在各种实施例中,神经推断芯片包括:多个神经核,所述多个神经核通过片上网络互连;第一片上存储器,用于存储神经网络模型,所述第一片上存储器通过所述片上网络连接到所述多个核中的每一个;第二片上存储器,用于存储输入和输出数据,所述第二片上存储器通过所述片上网络连接到所述多个核中的每一个。根据本公开的实施例,提供了用于操作神经网络的方法和计算机程序产品。从神经推断芯片上的第一片上存储器读取神经网络模型。根据神经网络模型配置神经推断芯片上的多个神经核。从神经推断芯片上的第二片上存储器读取输入。将输入提供给多个神经核。所述输入被多个神经核变换成输出。将输出写入神经推断芯片上的第二片上存储器。根据本公开的实施例,提供了用于配置神经推断芯片的方法和计算机程序产品。在运行时间之前,将神经网络模型加载到神经推断芯片上的第一片上存储器。在运行时间期间,根据神经网络模型配置神经推断芯片上的多个神经核。在运行时间期间,用输入数据更新神经推断芯片上的第二片上存储器。输入数据被多个神经核变换成输出数据。输出数据被写入神经推断芯片上的第二片上存储器。根据本公开的实施例,提供了用于操作神经推断芯片的方法和计算机程序产品。输入数据被写入神经推断芯片的第二存储器。在一些实施例中,输入数据由神经推断芯片的主机写入。将输入数据提供给神经推断芯片的多个神经核。对于由所述神经推断芯片的第一存储器中的神经网络模型定义的神经网络的多个层中的每一个:将所述神经网络模型的一部分从所述第一存储器提供给所述多个神经核;从神经推断芯片的第四存储器向神经核提供指令的一部分;并且,输入数据被多个神经核变换成输出数据。聚集来自多个神经核的输出数据。将所聚集的输出数据写入到第二存储器。在一些实施例中,在多个神经核之间传递中间结果。在一些实施例中,由神经推断芯片的主机从第二存储器读取聚合的输出数据。附图说明现在将参考附图仅通过示例的方式描述本专利技术的实施例,在附图中:图1描绘了根据本公开的实施例的神经推断芯片。图2描绘了根据本公开的实施例的神经推断芯片。图3描绘了根据本公开的实施例的神经推断芯片。图4描绘了根据本公开的实施例的神经推断芯片。图5描绘了根据本公开的实施例的神经推断芯片。图6描绘了根据本公开的实施例的神经推断芯片。图7描绘了根据本公开的实施例的神经推断芯片。图8描绘了根据本公开的实施例的用于操作神经推断芯片的方法。图9描述了根据本专利技术实施例的计算节点。具体实施方式人工神经元是其输出是其输入的线性组合的非线性函数的数学函数。如果一个神经元的输出是另一个神经元的输入,则两个神经元被连接。权重是对一个神经元的输出与另一个神经元的输入之间的连接的强度进行编码的标量值。神经元通过将非线性激活函数应用于其输入的加权和来计算其输出,称为激活。加权和是通过将每个输入乘以相应的权重并累加乘积而计算的中间结果。部分和是输入子集的加权和。所有输入的加权和可以通过累加一个或多个部分和而分阶段计算。神经网络是一个或多个神经元的集合。神经网络通常被分成称为层的神经元组。层是一个或多个神经元的集合,所述神经元全部从相同层接收输入并且全部向相同层发送输出,并且通常执行类似的功能。输入层是从神经网络外部的源接收输入的层。输出层是向神经网络外部的目标发送输出的层。所有其它层是中间处理层。多层神经网络是具有多于一层的神经网络。深度神经网络是具有多个层的多层神经网络。张量是数值的多维阵列。张量块是张量中的元素的连续子阵列。每个神经网络层与权重张量、参数张量、输入张量、输出张量和中间张量相关。权重张量包含将输入连接到层的所有权重。参数张量包含控制层中的神经元激活函数的所有参数。输入张量包含层作为输入消耗的所有数据。输出张量包含层作为输出计算的所有数据。中间张量包含层作为中间计算产生的任何数据,例如部分和。现在参考图1,描绘了根据本公开实施例的神经核。神经核100是计算输出张量的一个块的可平铺计算单元。神经核100具有M个输入和N个输出。在各种实施例中,M=N。为了计算输出张量块,神经核将M×1输入张量块101乘以M×N加权张量块102,并将乘积累加为加权和,该加权和存储在1×N中间张量块103中。U×N参数张量块包含U参数,其指定了N个神经元激活函数中的每一个,所述N个神经元激活函数被应用于中间张量块103以产生1×N输出张量块105。多个神经核可以平铺在神经核阵列中。在一些实施例中,阵列是2维的。神经网络模型是一组常数,其共同指定由神经网络执行的整个计算,包括神经元之间的连接图以及每个神经元的权重和激活函数参数。训练是修改神经网络模型以执行期望的函数的过程。推断是将神经网络应用于输入以产生输出而不修改神经网络模型的过程。推断处理单元是执行神经网络推断的一类处理器。神经推断芯片是推断处理单元的特定物理实例。现在参考图2,描述了根据本公开实施例的神经推断芯片。芯片200包括用于在芯片操作期间存储数据的数据存储器201。存储器201容纳输入211和输出212,在一些实施例中,它们可从片外寻址。芯片200包括计算逻辑202,其可以包括被配置为实现多层神经网络内的中间处理层的一个或多个神经核。芯片200包括用于存储神经网络模型的模型存储器203,该神经网络模型可以包括用于计算逻辑202的配置参数。模型存储器203容纳输入231,在一些实施例中,其可从芯片外寻址。芯片200包括控制器逻辑204,其定义变换操作并引导片上存储器和计算逻辑之间的数据流。芯片200包括用于存储由控制逻辑执行的指令的指令存储器205。指令存储器205包括输入251,在一些实施例中,其可从芯片外寻址。提供了用于互连这些组件的片上网络(未示出)。利用在芯片200上提供的用于神经网络模型、瞬态数据和控制器指令的存储器202、201、205,除了接收输入211和发送输出212之外,在计算期间不需要芯片外存储器访问。因此,与不提供这种片上存储器的替代方法相比,芯片200是快速且能量高效的。计算逻辑202可以包括一个或多个神经核。在这样的实施例中,核由片上网络连接以允许中间和最终计算到其他核的直接通信。如下所述,在各种实施例中,片上组件可以集中在核阵列之外,如图2所示,在其他实施例中,片上组件部分地分布在核之间。现在参考图3,描述了根据本公开实施例的神经推断芯片。芯片300包括用于在芯片操作期间存储数据的数据存储器301。存储器301容纳输入311和输出312,在一些实施例中,它们可从片外寻址。芯片300包括计算逻辑302,其包括被配置为实现多层神经网络内的中间处理层的一个或多个神经核321。芯片300包括本文档来自技高网...

【技术保护点】
1.一种神经推断芯片,包括:/n多个神经核,所述多个神经核通过片上网络互连;/n第一片上存储器,用于存储神经网络模型,所述第一片上存储器通过所述片上网络连接到所述多个核中的每一个;/n第二片上存储器,用于存储输入和输出数据,所述第二片上存储器通过所述片上网络连接到所述多个核中的每一个。/n

【技术特征摘要】
【国外来华专利技术】20180420 US 15/958,5881.一种神经推断芯片,包括:
多个神经核,所述多个神经核通过片上网络互连;
第一片上存储器,用于存储神经网络模型,所述第一片上存储器通过所述片上网络连接到所述多个核中的每一个;
第二片上存储器,用于存储输入和输出数据,所述第二片上存储器通过所述片上网络连接到所述多个核中的每一个。


2.如权利要求1所述的神经推断芯片,还包括:
至少一个连接到所述多个神经核的控制器、所述第一片上存储器和所述第二片上存储器;
用于存储控制器指令的第三片上存储器,所述第三片上存储器连接到所述至少一个控制器。


3.如权利要求2所述的神经推断芯片,其中所述至少一个控制器经由所述片上网络连接到所述多个神经核、所述第一片上存储器和所述第二片上存储器。


4.如权利要求1所述的神经推断芯片,其中所述多个神经核中的每一个还包括:本地存储器,其用于存储所述神经网络模型的一部分。


5.如权利要求1所述的神经推断芯片,其中所述多个神经核中的每一个还包括:本地存储器,其用于存储所述输入和输出数据的一部分。


6.如权利要求1所述的神经推断芯片,其中所述多个神经核中的每一个还包括:本地存储器,其用于存储控制器指令。


7.如权利要求1所述的神经推断芯片,其中所述多个神经核中的每一个还包括:本地控制器。


8.如权利要求1所述的神经推断芯片,其中所述多个神经核形成阵列。


9.如权利要求4所述的神经推断芯片,其中所述多个核中的每一个通过所述片上网络连接到所述阵列内的相邻核。


10.一种神经推断芯片,包括:
一个或多个神经核的阵列;
第一存储器,用于存储神经网络模型;
第二存储器,用于存储输入和输出数据;
第三存储器,用于存储瞬态数据;
第四存储器,用于存储控制器指令;以及
至少一个片上网络,其中
神经网络模型包括一个或多个适于将输入数据转换成输出数据的互连处理层,
一个或多个神经核的阵列中的每一个适于经由至少一个片上网络将中间数据直接传送至一个或多个神经核的阵列中的另一个,
神经推断芯片适于执行控制器指令以控制由一个或多个神经核的阵列应用的转换操作并且引导一个或多个神经核的阵列与存储器之间的数据流。


11.如权利要求10所述的神经推断芯片,其中所述神经核中的每一个至少包括所述第一存储器、所述第二存储器、所述第三存储器、或所述第四存储器的局部部分。


12.如权利要求10所述的神经推断芯片,其中所述第一存储器、所述第二存储器、所述第三存储器或所述第四存储器分布在所述神经核之间。


13.如权利要求10所述的神经推断芯片,其中所述第一存储器、所述第二存储器、所述第三存储器或所述第四存储器包括神经核本地的部分和集中部分。


14.如权利要求10所述的神经推断芯片,其...

【专利技术属性】
技术研发人员:D·莫德哈J·V·亚瑟J·萨瓦达S·K·埃塞尔R·阿普斯瓦米B·S·塔巴A·S·卡西迪P·达塔M·弗利克纳H·佩纳J·克拉莫
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1