数据处理方法及设备技术

技术编号:20819525 阅读:19 留言:0更新日期:2019-04-10 05:50
本发明专利技术提供的数据处理方法及设备,通过对确定待计算向量中的非零元素;获取数据处理指令,数据处理指令携带有第一基地址与列号,第一基地址为与待计算向量相乘的稀疏矩阵在内存中存储的首地址,列号为目标列在稀疏矩阵中的位置;解码数据处理指令,并根据数据处理指令对待计算向量中的非零元素与目标列中的目标元素进行乘法计算;其中,内存中存储有稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,目标元素包括该列存在的非零元素以及符合预设条件的零元素;根据待计算向量中每个非零元素的乘法计算结果构造待计算向量和稀疏矩阵的乘法计算结果的方案,通过减少稀疏矩阵中零元素与另一向量相乘的次数,以提高运算资源和内存资源的利用率。

【技术实现步骤摘要】
数据处理方法及设备
本专利技术涉及一种计算机技术,尤其涉及一种数据处理方法及设备。
技术介绍
对数据的处理和应用涉及到各行各业,例如机器学习、科学计算以及各种信息处理。在对数据进行处理的过程中,经常会遇到需要对数据矩阵进行运算的情况。特别的,在对稀疏矩阵进行向量乘法运算时,其处理效率成为影响整个数据处理效率的重要因素。稀疏矩阵向量乘法指的是一个m×n的稀疏矩阵乘以一个n个元素的向量,得到一个m个元素的结果向量的过程。在现有技术中,CPU对稀疏矩阵向量乘法是按照普通矩阵向量乘法的计算方法进行的,即需要将稀疏矩阵中全部零元素和非零元素均存在内存里,然后按照矩阵乘法的乘法规则针对每一元素进行计算。但是,由于稀疏矩阵中存在大量的零元素,当该零元素与另一向量的元素进行相乘时,其得到的结果零也将作为结果向量的一部分。这就浪费了大量的内存资源和运算资源,从而使得资源的利用率和数据的处理效率低。因此需要利用稀疏矩阵的特点,提出新的方法来提高对包括有稀疏矩阵的数据进行乘法运算时的处理效率。
技术实现思路
针对现有的对稀疏矩阵向量乘法的运算中,需要对每一元素均进行计算,从而导致的运算资源、内存资源的浪费,进而造成的效率数据处理效率成为影响整个数据处理效率的低技术问题,本专利技术提供了一种数据处理方法及设备。一方面,本专利技术提供了一种数据处理方法,包括:确定待计算向量中的非零元素;获取数据处理指令,所述数据处理指令携带有第一基地址与列号,所述第一基地址为与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址,所述列号为所述目标列在所述稀疏矩阵中的位置;解码所述数据处理指令,并根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算;其中,所述内存中存储有所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;根据待计算向量中每个非零元素的乘法计算结果构造所述待计算向量和所述稀疏矩阵的乘法计算结果。在其中一种可选的实施方式中,所述根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算,包括:根据所述第一基地址与所述列号确定与所述非零元素相乘的稀疏矩阵的目标列,在内存中读取所述目标列中的目标元素的值及所述目标元素在所述目标列中的位置;根据所述目标元素在所述目标列中的位置,对所述待计算向量中的非零元素与所述目标元素进行乘法计算。在其中一种可选的实施方式中,该数据处理方法还包括:确定所述稀疏矩阵中每列中的目标元素以及该目标元素与该列前一个目标元素之间的零元素的个数;将该目标元素与该列前一个目标元素之间的零元素的个数作为所述目标元素在该列中的位置,并将所述目标元素的值与对应的所述位置关联存储在内存中。在其中一种可选的实施方式中,所述将所述目标元素的值与对应的所述位置关联存储在内存中,包括:将每列中任一目标元素的值及其在该列中的位置存储在一个内存单元中,该列中的各目标元素的值按其在该列中的位置存储在连续的内存单元中。在其中一种可选的实施方式中,所述内存中还存储有所述稀疏矩阵的索引,所述索引用于表示所述稀疏矩阵中每列中的目标元素值的个数;所述在内存中读取所述目标列中的目标元素的值及所述目标元素在所述目标列中的位置,包括:根据所述索引确定所述目标列中的目标元素的个数,并根据所述目标列中的目标元素的个数在所述内存中读取所述目标列中的目标元素的值及在所述目标列中的位置。在其中一种可选的实施方式中,所述索引包括:所述稀疏矩阵中各列对应的目标元素个数,每列对应的所述目标元素个数为:从第一列逐列累加到当前列的目标元素个数。在其中一种可选的实施方式中,所述确定待计算向量中的非零元素,包括:获取待计算向量中非零元素的值、所述非零元素在所述待计算向量中的位置以及与所述非零向量对应的索引。在其中一种可选的实施方式中,所述数据处理指令还携带有第二基地址,所述第二基地址为所述索引在内存中存储的首地址:所述方法还包括:根据所述数据处理指令获取所述非零向量对应的索引。另一方面,本专利技术提供了一种数据处理设备,包括:内存,与所述内存连接的缓存,以及与所述内存和所述缓存分别连接的处理器;所述内存中存储有待计算向量、与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址以及所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;所述缓存用于从内存中读取所述待计算向量,并确定待计算向量中的非零元素;所述处理器用于执行前述任一项所述的数据处理方法。在其中一种可选的实施方式中,所述处理器包括:至少两个计算单元;所述缓存包括至少两个缓存区,每个缓存区与一个所述计算单元连接;所述每个缓存区用于从内存中读取所述待计算向量中的各向量单元,并确定每个向量单元中的非零元素;其中,所述向量单元是将所述待计算向量根据行或列进行划分获得的;各所述计算单元用于获取并解码数据处理指令,并根据所述数据处理指令对与其连接的缓存区中的向量单元的非零元素与所述目标列中的目标元素进行乘法计算;根据向量单元中每个非零元素的乘法计算结果构造所述待计算向量单元和所述稀疏矩阵的乘法计算结果;所述内存还用于对各计算单元构造的乘法计算结果进行存储。本专利技术提供的数据处理方法及设备,通过对确定待计算向量中的非零元素;获取数据处理指令,所述数据处理指令携带有第一基地址与列号,所述第一基地址为与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址,所述列号为所述目标列在所述稀疏矩阵中的位置;解码所述数据处理指令,并根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算;其中,所述内存中存储有所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;根据待计算向量中每个非零元素的乘法计算结果构造所述待计算向量和所述稀疏矩阵的乘法计算结果,从而通过减少稀疏矩阵中零元素与另一向量的元素进行相乘的次数,进而提高了运算资源和内存资源的利用率。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1为本专利技术实施例一提供的一种数据处理方法的流程示意图;图2为本专利技术实施例二提供的一种数据处理方法的流程示意图;图3为本专利技术实施例三提供的一种数据处理设备的硬件结构示意图。通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。对数据的处理和应用涉及到各行各业,例如机器学习、科学计算以及各种信息处理。在对数据进行处理的过程中,经常会遇到需要对数据矩阵进行运算的情况。特别的,在对稀疏矩阵进行向量乘法运算时,其处理效率本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:确定待计算向量中的非零元素;获取数据处理指令,所述数据处理指令携带有第一基地址与列号,所述第一基地址为与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址,所述列号为所述目标列在所述稀疏矩阵中的位置;解码所述数据处理指令,并根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算;其中,所述内存中存储有所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;根据待计算向量中每个非零元素的乘法计算结果构造所述待计算向量和所述稀疏矩阵的乘法计算结果。

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:确定待计算向量中的非零元素;获取数据处理指令,所述数据处理指令携带有第一基地址与列号,所述第一基地址为与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址,所述列号为所述目标列在所述稀疏矩阵中的位置;解码所述数据处理指令,并根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算;其中,所述内存中存储有所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;根据待计算向量中每个非零元素的乘法计算结果构造所述待计算向量和所述稀疏矩阵的乘法计算结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算,包括:根据所述第一基地址与所述列号确定与所述非零元素相乘的稀疏矩阵的目标列,在内存中读取所述目标列中的目标元素的值及所述目标元素在所述目标列中的位置;根据所述目标元素在所述目标列中的位置,对所述待计算向量中的非零元素与所述目标元素进行乘法计算。3.根据权利要求1或2所述的方法,其特征在于,还包括:确定所述稀疏矩阵中每列中的目标元素以及该目标元素与该列前一个目标元素之间的零元素的个数;将该目标元素与该列前一个目标元素之间的零元素的个数作为所述目标元素在该列中的位置,并将所述目标元素的值与对应的所述位置关联存储在内存中。4.根据权利要求3所述的方法,其特征在于,所述将所述目标元素的值与对应的所述位置关联存储在内存中,包括:将每列中任一目标元素的值及其在该列中的位置存储在一个内存单元中,该列中的各目标元素的值按其在该列中的位置存储在连续的内存单元中。5.根据权利要求2所述的方法,其特征在于,所述内存中还存储有所述稀疏矩阵的索引,所述索引用于表示所述稀疏矩阵中每列中的目标元素值的个数;所述在内存中读取所述目标列中的目标元素的值及所述目标元素在所述目标列中的位置,包...

【专利技术属性】
技术研发人员:杨灿邢金璋汪文祥
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京,11

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

1