[发明专利]数据处理方法及设备有效
申请号: | 201811440502.0 | 申请日: | 2018-11-29 |
公开(公告)号: | CN109597647B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | 杨灿;邢金璋;汪文祥 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F17/16 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 张子青;刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 设备 | ||
1.一种数据处理方法,其特征在于,包括:
确定待计算向量中的非零元素;
获取数据处理指令,所述数据处理指令携带有第一基地址与列号,所述第一基地址为与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址,所述列号为目标列在所述稀疏矩阵中的位置;
解码所述数据处理指令,并根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算;其中,所述内存中存储有所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;根据待计算向量中每个非零元素的乘法计算结果构造所述待计算向量和所述稀疏矩阵的乘法计算结果;
所述将所述目标元素的值与对应的所述位置关联存储在内存中,包括:
将每列中任一目标元素的值及其在该列中的位置存储在一个内存单元中,该列中的各目标元素的值按其在该列中的位置存储在连续的内存单元中;
其中,内存单元的地址通过以下公式表示:
base_address为首地址,M_width为稀疏矩阵M中每个元素的元素宽度,w为目标元素在所属列中的位置的比特宽,N为大于等于0的整数,N为目标元素的顺序序号;
当前计算的稀疏矩阵中的每个非零元素所对应的乘法计算结果所在的行数为0+pos[0]+(pos[1]+1)+(pos[2]+1)+……+(pos[i]+1),其中,pos[i]为当前计算的稀疏矩阵的目标元素在所属列中的位置。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据处理指令对所述待计算向量中的非零元素与所述目标列中的目标元素进行乘法计算,包括:
根据所述第一基地址与所述列号确定与所述非零元素相乘的稀疏矩阵的目标列,在内存中读取所述目标列中的目标元素的值及所述目标元素在所述目标列中的位置;
根据所述目标元素在所述目标列中的位置,对所述待计算向量中的非零元素与所述目标元素进行乘法计算。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
确定所述稀疏矩阵中每列中的目标元素以及该目标元素与该列前一个目标元素之间的零元素的个数;
将该目标元素与该列前一个目标元素之间的零元素的个数作为所述目标元素在该列中的位置。
4.根据权利要求2所述的方法,其特征在于,所述内存中还存储有所述稀疏矩阵的索引,所述索引用于表示所述稀疏矩阵中每列中的目标元素值的个数;
所述在内存中读取所述目标列中的目标元素的值及所述目标元素在所述目标列中的位置,包括:
根据所述索引确定所述目标列中的目标元素的个数,并根据所述目标列中的目标元素的个数在所述内存中读取所述目标列中的目标元素的值及在所述目标列中的位置。
5.根据权利要求4所述的方法,其特征在于,所述索引包括:所述稀疏矩阵中每列中的目标元素值的个数为:从第一列逐列累加到当前列的目标元素个数。
6.根据权利要求5所述的方法,其特征在于,所述确定待计算向量中的非零元素,包括:获取待计算向量中非零元素的值、所述非零元素在所述待计算向量中的位置以及与非零向量对应的索引。
7.根据权利要求5所述的方法,其特征在于,所述数据处理指令还携带有第二基地址,所述第二基地址为所述索引在内存中存储的首地址:所述方法还包括:
根据所述数据处理指令获取非零向量对应的索引。
8.一种数据处理设备,其特征在于,包括:内存,与所述内存连接的缓存,以及与所述内存和所述缓存分别连接的处理器;
所述内存中存储有待计算向量、与所述待计算向量相乘的稀疏矩阵在内存中存储的首地址以及所述稀疏矩阵中每一列的目标元素的值及其在所属列中的位置,所述目标元素包括该列存在的非零元素以及符合预设条件的零元素;
所述缓存用于从内存中读取所述待计算向量,并确定待计算向量中的非零元素;
所述处理器用于执行权利要求1-7任一项所述的数据处理方法。
9.根据权利要求8所述的数据处理设备,其特征在于,所述处理器包括:至少两个计算单元;所述缓存包括至少两个缓存区,每个缓存区与一个所述计算单元连接;
所述每个缓存区用于从内存中读取所述待计算向量中的各向量单元,并确定每个向量单元中的非零元素;其中,所述向量单元是将所述待计算向量根据行或列进行划分获得的;
各所述计算单元用于获取并解码数据处理指令,并根据所述数据处理指令对与其连接的缓存区中的向量单元的非零元素与目标列中的目标元素进行乘法计算;根据向量单元中每个非零元素的乘法计算结果构造所述待计算向量单元和所述稀疏矩阵的乘法计算结果;
所述内存还用于对各计算单元构造的乘法计算结果进行存储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811440502.0/1.html,转载请声明来源钻瓜专利网。