本发明专利技术公开了转置的稀疏矩阵乘以稠密矩阵用于神经网络训练。实现神经网络的机器学习系统通常以推理模式或训练模式操作。在训练模式中,执行推理操作以帮助指导训练过程。推理模式操作通常涉及向前传播和对被编码为一组向量的某些稀疏矩阵的密集访问。反向传播和对相同稀疏矩阵的转置版本的密集访问提供了训练改进。生成稀疏矩阵的转置版本可能消耗大量额外的存储器和计算资源。在一个实施例中,生成两个附加编码向量,提供对稀疏矩阵和同一稀疏矩阵的转置表示的高效操作。在神经网络中,有效的操作可以减少反向传播所需的存储器量并降低功耗。
Transposed sparse matrix multiplied by dense matrix for neural network training
【技术实现步骤摘要】
转置的稀疏矩阵乘以稠密矩阵用于神经网络训练
本公开涉及矩阵运算,并且更具体地涉及转置的稀疏矩阵乘以稠密矩阵用于神经网络训练。
技术介绍
机器学习中的训练和推理操作通常涉及对大矩阵的乘法运算。一些矩阵是稀疏的并且可以以压缩格式存储,以相对于未压缩的存储格式显著降低总体存储器利用率。但是,访问压缩的稀疏矩阵中的数据元素会引入额外的计算工作,从而降低整体系统性能和效率。因此,需要解决与现有技术相关的这些问题和/或其他问题。附图说明图1A示出了根据一个实施例的神经网络的框图。图1B示出了根据一个实施例的用于确定乘积矩阵中的位置的方法的流程图。图1C示出了根据一个实施例的用于计算和存储稀疏参数更新矩阵的方法的流程图。图1D示出了根据一个实施例的用于计算稀疏参数更新矩阵的方法的流程图。图1E示出了根据一个实施例的示例性稀疏矩阵和相关编码向量。图1F示出了根据一个实施例的指示乘积矩阵中的项累积位置的编码向量。图2A示出了根据一个实施例的用于初始化稀疏矩阵编码函数的示例性代码块。图2B示出了根据一个实施例的用于稀疏矩阵编码函数的示例性代码块。图2C示出了根据一个实施例的用于调用稀疏矩阵编码函数的示例性代码块。图3示出了根据一个实施例的并行处理单元。图4A示出了根据一个实施例的图3的并行处理单元内的通用处理集群。图4B示出了根据一个实施例的图3的并行处理单元的存储器分区单元。图5A示出了根据一个实施例的图4A的流式多处理器。图5B是根据一个实施例的使用图3的PPU实现的处理系统的概念图。图5C示出了可以实现各种先前实施例的各种架构和/或功能的示例性系统。详细描述在一个实施例中,提供稀疏矩阵(sparsematrix)的编码,用于对稀疏矩阵和稀疏矩阵的转置表示两者有效地执行运算。这些应用包括但不限于使用给定稀疏矩阵执行训练和推理操作两者的机器学习系统。在一个实施例中,编码补充了具有附加索引映射的压缩稀疏行(CSR)矩阵格式,以消除对矩阵转置运算的需要,例如在神经网络系统中的后向传播期间。传统的稀疏矩阵转置运算(加载操作和存储操作)要求分配的存储器大约等于输入矩阵中的非零值数目的两倍。相反,在一个实施例中,需要较少的存储(非零值的1倍大小,而传统技术为2倍大小)以执行本文公开的技术。图1A示出了根据一个实施例的神经网络100的框图。尽管在处理单元的上下文中描述了神经网络100,但是神经网络100的一个或更多个子单元可以实现为程序、定制电路或者定制电路和程序的组合。例如,神经网络100或神经网络100的一个或更多个子单元可以由GPU(图形处理单元)、CPU(中央处理单元)或能够实现各自功能的任何处理器实现。在一个实施例中,图3的并行处理单元(PPU)300配置成实现神经网络100。此外,本领域普通技术人员将理解,执行神经网络100的操作的任何系统都在本公开的实施例的精神和范围内。如图所示,神经网络100包括一组m个层120、一组权重125、权重更新函数115、索引映射函数105、损失函数135和校正函数140。在一个实施例中,每个层120包括配置成在神经网络100的给定评估深度内操作的节点的集合。该组权重125可以包括被配置成存储权重矩阵w1至wm的存储器子系统中的存储电路和/或存储器分配。在一个实施例中,权重更新函数115可以包括被配置成存储w的更新权重值以及值(到)的存储电路和/或存储器分配。在一个实施例中,可以将权重更新函数115写入或复制到权重集125,例如在训练之后。此外,在一个实施例中,权重更新函数115可以为每一层120计算新的权重矩阵。在一个实施例中,神经网络100可以配置成在训练模式和推理模式两者下操作。当神经网络100以推理模式操作时,层120从稀疏激活输入矩阵x计算特征y和/或从先前层120计算特征y,以及从一组权重125计算输入权重矩阵w。在一个实施例中,层120(1)基于一个或更多个稀疏激活输入矩阵x1和输入权重矩阵w1生成特征y2。在一个实施例中,层120(2)通过一组附加层120基于特征y2和输入权重矩阵w2生成特征y3,诸如此类,以产生神经网络输出ym。在一个实施例中,稀疏激活输入矩阵x以例如CSR格式的压缩格式表示。当神经网络100在训练模式下操作时,层120根据推理模式计算来计算输出特征y以生成神经网络输出ym。此外,在一个实施例中,通过损失函数135将神经网络输出ym与期望输出132(例如,真值(groundtruth))进行比较以生成损失值L。损失函数135可以实现任何技术上可行的损失函数,诸如各个误差函数的总和、距离函数的总和等。在一个实施例中,损失函数135包括欧几里德距离函数。还可以将损失函数135计算为误差函数或成本函数。校正函数140生成差值信号校正函数140可以考虑损失值L相对于输出(诸如y)的梯度。在一个实施例中,损失值L用于通过层120计算反向传播路径的输入为其中L是根据损失函数135计算的损失,并且是L相对于yi的导数。在一个实施例中,在训练期间,通过层120反向传播,使由层120对x1执行的操作反转。在一个实施例中,将层120的输出计算为对于具有输入x1和w1的第一层120(1),在一个实施例中,特征y2和转置输入用于计算也稀疏的在一个实施例中,权重更新函数115计算并更新每个权重:其中η是学习速率。如图1A所示,未压缩的稀疏激活输入矩阵x'1由索引映射函数105处理,以生成补充压缩的稀疏激活输入矩阵x1的两个附加向量130。生成附加向量130在图2B中示出。在一个实施例中,权重更新函数115使用附加向量130来有效地访问(例如,以行主要顺序)代表相应的稀疏激活输入矩阵x1的转置版本的一个或更多个转置输入矩阵在一个实施例中,为了计算以行主要顺序读取稀疏激活输入矩阵x1。附加向量的第一向量通过指示应当写入的压缩表示中的哪些行位置来使能的压缩。附加向量的第二向量指定包含至少一个非零值的稀疏激活输入矩阵x1的列(或行)的索引,并且使能有效地解压缩以更新权重矩阵w的参数。在一个实施例中,神经网络100包括利用至少一个稀疏矩阵(例如,x1)和稀疏矩阵的相应转置版本(例如,)的系统。神经网络100可以使用至少一个稀疏矩阵(x1)和相应的转置版本在训练和推理操作之间交替变化。虽然在神经网络100的上下文中描述了各种实施例,但是使用和/或访问稀疏矩阵和使用两个附加向量130的相同稀疏矩阵的转置版本的其他系统均在各种实施例的范围和精神内。注意,可以以相同的顺序读取输入数据以用于前向(推理)和后向(学习)传播。此外,通过附加向量130明确地提供要更新的矩阵中的元素的位置,从而实现关于矩阵的有效压缩、解压缩和访问。图1B示出了根据一个实施例的用于确定乘积矩阵中的位置的方法150的流程图。尽管在神经网络100的上下文中描述了方法150,但是方法150也可以由程序、定制电路或定制电路和程序的组合来执行。在一个实施例中,方法150可本文档来自技高网...
【技术保护点】
1.一种计算机实现的方法,包括:/n使得至少部分地基于稀疏矩阵索引图对稀疏矩阵和稠密矩阵的元素执行一个或更多个乘法运算,所述稀疏矩阵索引图标识要对其执行所述一个或更多个乘法运算的元素;以及/n使得根据所述稀疏矩阵索引图,将所述一个或更多个乘法运算的结果累加到一个或更多个相应的存储位置中。/n
【技术特征摘要】
20181114 US 16/191,2011.一种计算机实现的方法,包括:
使得至少部分地基于稀疏矩阵索引图对稀疏矩阵和稠密矩阵的元素执行一个或更多个乘法运算,所述稀疏矩阵索引图标识要对其执行所述一个或更多个乘法运算的元素;以及
使得根据所述稀疏矩阵索引图,将所述一个或更多个乘法运算的结果累加到一个或更多个相应的存储位置中。
2.如权利要求1所述的计算机实现的方法,其中所述稀疏矩阵索引图包括用于所述稀疏矩阵的列或行的转置索引,以及所述存储位置是至少部分地使用所述转置索引而确定的。
3.如权利要求1所述的计算机实现的方法,其中所述结果包括乘积矩阵的元素,所述乘积矩阵等于所述稀疏矩阵的转置版本与所述稠密矩阵的乘积。
4.如权利要求1所述的计算机实现的方法,进一步包括:
由神经网络将参数矩阵应用到所述稀疏矩阵以产生输出;
根据损失函数处理所述输出以产生所述稠密矩阵,其中所述稠密矩阵减少所述输出和真值输出之间的差异;以及
读取所述稀疏矩阵的非零值以计算所述结果。
5.如权利要求4所述的计算机实现的方法,进一步包括通过组合所述参数矩阵和所述学习率与所述乘积矩阵的乘积来更新所述参数矩阵。
6.如权利要求5所述的计算机实现的方法,其中从所述参数矩阵中减去所述乘积。
7.如权利要求4所述的计算机实现的方法,其中所述损失函数包括距离函数的总和。
8.如权利要求4所述的计算机实现的方法,其中所述输出和所述真值输出之间的差异由校正函数计算。
9.如权利要求4所述的计算机实现的方法,其中所述神经网络包括输入层和输出层,以及所述输入层接收所述参数矩阵和所述稀疏矩阵,所述输出层生成所述输出。
10.如权利要求1所述的计算机实现的方法,其中所述稀疏矩阵索引图包括第二向量,所述第二向量指示包含至少一个非零值的所述稀疏矩阵中的列的索引。
11.如权利要求10所述的计算机实现的方法,进一步包括基于所述第二向量访问所述存储位置,以使用所述乘积矩阵更新神经网络的参数。
12.如权利要求1所述的计算机实现的方法,其中避免矩阵转置操作以累积所述结果。
13.如权利要求1所述的计算机实现的方法,其中所述结果包括乘积矩阵的元素,以及所述稀疏矩阵索引图包括指示所述乘积矩阵中的元素的第一向量。
14.如权利要求1所述的计算机实现的方法,其中所述结果包括乘积矩阵的元素,以及所述乘积矩阵的压缩格式只包括非零值。
15.如权利要求1所述的计算机实现的方法,其中所述结果中的每个乘积项从所述稀疏矩阵索引图中的数据向量的不同条目计算得到,并且每个存储位置由所述稀疏矩阵索引图内的列中的相应条目标识为非零列向量。
16.一种系统,包括:
并行处理单元,配置成:
至少部分地基于稀疏矩阵索引图对稀疏矩阵和稠密矩阵的元素执行乘法运算,所述稀疏矩阵索引图标识要对其执行一个...
【专利技术属性】
技术研发人员:吴昊,
申请(专利权)人:辉达公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。