用于在神经网络中处理数据的静态生成的经编译表示制造技术

技术编号:30529826 阅读:18 留言:0更新日期:2021-10-30 12:26
一种电子装置,包括:存储器,其存储输入矩阵A和B;高速缓存存储器;以及处理器。所述处理器生成经编译表示,所述经编译表示包括用于在通过神经网络处理输入数据实例时从输入矩阵A获取数据的值,所述值包括输入矩阵A中针对多个线程中的每个线程的基址和相对偏移,所述相对偏移是将由所述线程处理的输入矩阵A的元素之间的距离。然后,所述处理器在所述本地高速缓存存储器中存储包括针对每个线程的所述基址和所述相对偏移的所述经编译表示。址和所述相对偏移的所述经编译表示。

【技术实现步骤摘要】
用于在神经网络中处理数据的静态生成的经编译表示

技术介绍

[0001]相关技术
[0002]一些电子装置执行人工神经网络或者更简单地说“神经网络”的操作。一般地,神经网络是一种计算结构,其包括与生物神经网络具有相似性的内部元件,诸如与生物的大脑相关的那些内部元件。可以通过使用训练数据的已知实例来配置神经网络的内部元件来训练神经网络以执行指定的任务,使得神经网络可以在输入数据的未知实例上执行指定的任务。例如,由神经网络执行的一项任务是识别图像是否包括诸如面部或车辆的图像元素。当训练神经网络以执行图像识别时,通过神经网络处理已知包括(或不包括)图像元素的图像,以配置内部元件,从而在随后处理未知图像以识别图像元素是否存在于未知图像中时生成适当的输出。
[0003]一种类型的神经网络是“完全连接的”神经网络。完全连接的神经网络在其内部元件中包括人工神经元或“节点”集,其以某种布置彼此互连,所述布置与生物大脑中通过突触使神经元互连的方式具有某种相似性。完全连接的神经网络可以被可视化为一种加权图结构形式,其中节点包括输入节点、中间(或“隐藏”)节点和输出节点。图1呈现了示出完全连接的神经网络100的框图,该神经网络100包括输入节点102、层110和112中的中间节点104、输出节点106和定向边108(为了清楚起见,仅标记了两个定向边和层)。在完全连接的神经网络内,除输出节点106之外的每个节点都通过具有相关联权重的定向边连接到一个或多个下游节点。在操作期间,完全连接的神经网络100的第一层中的输入节点102接收来自外部源的输入,并处理所述输入以产生输入值。输入节点102将输入值转发到完全连接的神经网络100的下一层110中的中间节点104。接收中间节点104基于对应的定向边的权重对接收的输入进行加权,即,调整接收的输入,诸如乘以加权值等。每个中间节点104将对应的经加权的接收的输入和可能的偏置值求和以生成内部值,并使用内部值评估该中间节点104的激活函数以产生结果值。中间节点104然后将结果值作为输入值转发给完全连接的神经网络100的下一层112中的中间节点104,其中输入值用于生成内部值并评估激活函数,如上所述。以这种方式,值前进通过完全连接的神经网络100的各层中的中间节点104,直到最后一层的中间节点104将结果值转发到完全连接的神经网络100的输出节点106,输出节点106为完全连接的神经网络100生成输出。继续上面的示例,由输出节点106产生的输出——并因此从完全连接的神经网络100产生的输出——可以是呈指示图像是否可能包括(或不包括)指定图像元素的形式,例如0-1之间的数字。
[0004]如上所述,根据与每条定向边相关联的权重来对沿着完全连接的神经网络(例如,完全连接的神经网络100)中的节点之间的定向边转发的值进行加权。通过在训练过程期间设置与定向边相关联的权重使得由完全连接的神经网络生成期望的输出,可以对完全连接的神经网络进行训练以生成预期的输出,诸如上述对图像中的图像元素的识别。当训练完全连接的神经网络时,在完全连接的神经网络中处理具有预期输出的众多训练数据实例,以从输出节点产生实际输出。继续上面的示例,训练数据实例将包括已知包括(或不包括)特定图像元素的数字图像,并且因此针对其预期完全连接的神经网络产生指示图像元素可
能存在(或不存在)于图像中的输出。在完全连接的神经网络中处理了每个训练数据实例以产生实际输出之后,使用均方误差、对数损失或另一种算法来计算出实际输出与对应的预期输出之间的误差值或“损失”。然后,通过完全连接的神经网络反向处理该损失,或者通过完全连接的神经网络“反向传播”该损失,并且使用该损失调整与完全连接的神经网络中的定向边相关联的权重以便减少针对训练数据实例的误差。反向传播操作针对该特定训练数据实例和输入数据的所有后续实例调整完全连接的神经网络的响应。例如,一种反向传播技术(可以称为梯度下降)涉及为完全连接的神经网络中的每条定向边计算损失相对于权重的梯度。然后将每个梯度乘以训练系数或“学习率”以计算权重调整值。权重调整值接下来用于计算对应权重的更新值,例如,加到对应权重的现有值。
[0005]另一种类型的神经网络是“卷积”神经网络。图2呈现了示出卷积神经网络200的框图。如在图2中可看到,可以将卷积神经网络200的内部元件分组为特征处理元件202和分类元件204。特征处理元件202处理输入数据实例216(例如,数字图像、数字音频记录等)中的特征以为在分类元件204中对特征分类做准备。特征处理元件202包括用于卷积、归一化和池化的内部元件。在卷积208内部元件中,使用过滤器集根据输入数据实例生成特征图。然后在归一化210内部元件中将特征图归一化(例如,使用整流线性单元)。在归一化210内部元件中进行处理之后,在池化212内部元件中对特征图进行进一步处理(例如,二次采样、降采样等)以生成降维特征图。平坦化214内部元件接下来准备来自池化212内部元件的降维特征图,以输入到完全连接的206内部元件中。分类元件204包括完全连接的206神经网络(类似于上述完全连接的神经网络),其将输入(即,平坦化的降维特征图)分类为包括指定元件(或不包括)并产生表示分类的输出218。与完全连接的神经网络一样,可使用反向传播(即梯度下降等)通过调整过滤器集中的值以及特征处理元件202的内部元件中的可能的其他值来训练卷积208内部元件。
[0006]简化了图1和图2中所示的完全连接的神经网络和卷积神经网络的示例。在几乎所有情况下,完全连接的神经网络包括更多层和/或节点。在实践中,对于许多应用,完全连接的神经网络可以有成千上万的节点布置成大量的层。此外,用于卷积神经网络的特征处理元件可以具有卷积、归一化和池化内部元件的多个/重复层。图1和图2中的示例也是通用的;完全连接的神经网络和/或卷积神经网络可以包括图1至图2中未示出的内部元件的不同布置和/或内部元件。一般地,通过完全连接的神经网络或卷积神经网络处理输入数据实例涉及大量内部元件,且因此在计算上是密集的。
[0007]由于许多神经网络中的元件(例如,特征处理元件、节点等)的布置,因此通常使用矩阵数学运算来执行操作诸如在完全连接的神经网络中计算梯度用于训练和计算激活函数的内部值以及在卷积神经网络中使用过滤器以生成特征图。换句话说,将输入数据、权重、过滤器值等布置在矩阵中,然后使用矩阵数学运算来执行上述计算。在许多情况下,使用通用矩阵乘法(GEMM)运算(其是众所周知的基本线性代数子程序(BLAS)规范的一部分)来执行矩阵数学运算。根据BLAS规范,GEMM运算需要二维输入。因为用于神经网络计算的矩阵通常具有更高的维数(即,三维或更多维)和/或具有可以以多种不同方式组织的数据,所以必须将这类矩阵从存储在存储器中的更高维格式转换或转译成用于GEMM运算的二维格式。为此,设计者开发了定制的程序代码,有时称为“内核”,用于处理更高维的输入矩阵和/或输入矩阵中的数据组织。程序代码/内核将值的矩阵转换或转译为GEMM运算所需的二维
格式,然后执行GEMM运算。开发、维护本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种电子装置,其包括:本地高速缓存存储器;存储器,所述存储器存储输入矩阵A,输入矩阵A具有在通过神经网络处理输入数据实例时将使用的值;以及处理器,所述处理器被配置为:生成经编译表示,所述经编译表示包括用于在通过所述神经网络处理输入数据实例时从输入矩阵A获取数据的值,所述值包括输入矩阵A中针对多个线程中的每个线程的基址和相对偏移,所述相对偏移是将由所述线程处理的输入矩阵A的元素之间的距离;以及在所述本地高速缓存存储器中存储包括针对每个线程的所述基址和所述相对偏移的所述经编译表示。2.如权利要求1所述的电子装置,其中当生成所述经编译表示时,所述处理器被配置为:根据每个线程的线程标识符(ID)、输入矩阵A和/或输出矩阵C的维数、输入矩阵A和/或输出矩阵C的元素的性质以及卷积过滤器性质中的一些或全部来计算输入矩阵A中针对所述线程的所述基址。3.如权利要求1所述的电子装置,其中当生成所述经编译表示时,所述处理器被配置为:根据输入矩阵A和/或输出矩阵C的维数、输入矩阵A和/或输出矩阵C的元素的性质以及过滤器性质中的一些或全部来计算所述相对偏移。4.如权利要求1所述的电子装置,其中:所述存储器存储输入矩阵B,输入矩阵B具有在通过神经网络处理输入数据实例时将使用的值;以及所述处理器还被配置为:使用所述线程中的每个来处理输入矩阵A,所述处理包括使用所述本地高速缓存存储器中的所述经编译表示来识别存储器中的位置,将从所述位置获取的输入矩阵A的元素中的值与来自输入矩阵B的对应位置处的元素的值一起用作通过所述线程的一个或多个通用矩阵乘法(GEMM)运算的输入。5.如权利要求4所述的电子装置,其中在使用所述线程中的每个来处理输入矩阵A时,所述处理器被配置为:从所述本地高速缓存存储器中的输入矩阵A的所述经编译表示中获取用于输入矩阵A的每个线程的所述基址;在输入矩阵A的元素有待处理时,对于所述线程中的活动线程:从所述经编译表示获取下一个相对偏移;将所述活动线程的基址增加所述下一个相对偏移;从所述存储器中由所述活动线程的基址识别的位置处的输入矩阵A的元素中读取第一值;从与输入矩阵A的所述元素相关联的存储器位置处的输入矩阵B的元素中读取第二值;将所述第一值和所述第二值用作GEMM运算的输入;以及将所述GEMM运算的结果存储在所述存储器中的输出矩阵C中。
6.如权利要求5所述的电子装置,其中所述处理器还被配置为使用索引来与输入矩阵B的基址相结合地获取所述相对偏移以从输入矩阵B读取所述第二值。7.如权利要求5所述的电子装置,其中在将所述GEMM运算的所述结果存储在输出矩阵C中时,所述处理器还被配置为:将每个结果存储在输出矩阵C中基于输入矩阵A中读取所述第一值的位置确定的输出矩阵C中的位置处。8.如权利要求4所述的电子装置,其中输入矩阵A和输入矩阵B中的所述值分别包括与输入数据实例相关联的输入值和权重,所述输入值和权重将用于通过所述神经网络处理所述输入数据实例。9.如权利要求4所述的电子装置,其中输入矩阵A和输入矩阵B的维数大于用于所述GEMM运算的维数。10.如权利要求1所述的电子装置,其中所述本地高速缓存存储器通过快速访问接口耦合到处理电路,所述快速访问接口实现比所述存储器的访问更快的访问。11.一种用于在电子装置中生成经编译表示的方法,所述电子装置包括:本地高速缓存存储器;存储器,所述存储器存储输入矩阵A,输入矩阵A具有在通过神经网络处理输入数据实例时将使用的值;以及处理器,所述方法包括:由所述处理器生成经编译表示,所述经编译表示包括用于在通过所述神经网络处理输入数据实例时从输入矩阵A获取数据的值,所述值包括输入矩阵A中针对多个线程中的每个线程的基址和相对偏移,所述相对偏移是将由所述线程处理的输入矩阵A的元素之间的距离;以及由所述处理器在所述本地高速缓存存储器中存储包括针对每个线程的所述基址和所述相对偏移的所述经编译表示。12.如权利要求11所述的方法,其中生成所述经编译表示包括:由所述处理器根据每个线程的线程标识符(ID)、输入矩阵A和/或输出矩阵C的维数、输入矩阵A和/或输出矩阵C的元素的性质以及卷积过滤器性质中的一些或全部来计算输入矩阵A中针对所述线程的所述基址。13.如权利要求11所述的方法,其中生成所述经编译表示包括:由所述处理器根据输入矩阵A和/或输出矩阵C的维数、输入矩阵A和/或输出矩阵C的元素的性质以及过滤器性质中的一些或全部来计算所述相对偏移。14.如权利要求11所述的方法,其中:所述存储器存储输入矩阵B,输入矩阵B具有在通过神经网络处理输入数据实例时将使用的值;以及所述方法还包括:由所述处理器使用所述线程中的每个来处理输入矩阵A,所述处理包括使用所述本地高速缓存存储器中的所述经编译表示来识别存储器中的位置,将从所述位置获取的输入矩阵A的元素中的值与来自输入矩阵B的对应位置处的元素的值一起用作通过所述线程的一个或多个通用矩阵乘法(GEMM)运算的输入。15.如权利要求14所述的方法,其中使用所述线程中的每个来处理输入矩阵A包括:由所述处理器从所述本地高速缓存存储器中的输入矩阵A的所述经编译表示中获取用
于输入矩阵A的每个线程的所述基址和所述相对偏移;在输入矩阵A的元素有...

【专利技术属性】
技术研发人员:李修宇杨建
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1