[发明专利]稀疏矩阵数据结构有效
申请号: | 201480047872.1 | 申请日: | 2014-08-29 |
公开(公告)号: | CN105593843B | 公开(公告)日: | 2018-11-16 |
发明(设计)人: | K·斯特劳斯;J·福韦尔斯;K·奥夫恰罗夫 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 蔡悦 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 稀疏 矩阵 数据结构 | ||
1.一种用于将稀疏矩阵编码成数据结构的方法,所述数据结构包括第一阵列,所述方法包括:
在具有包括多个并行处理单元的计算设备的计算系统上:
接收所述稀疏矩阵;
根据确定性顺序遍历所述稀疏矩阵中的一组指定行,直到所述稀疏矩阵中的所有非零元素已被放置在所述第一阵列中;
每当根据所述确定性顺序遍历所述组中的一行时,将该行中的下一个非零元素放置在所述第一阵列中,其中所述组中的每一行将第一个非零元素放置在所述第一阵列中,接着将来自该行的第二个元素放置在所述第一阵列中;
如果所述一组指定行的给定行的所有非零元素都已被放置在所述第一阵列中,则将所述一组指定行中的该给定行替换为所述稀疏矩阵的下一个未经处理的行;以及
输出所述稀疏矩阵被编码于其中的数据结构,
其中所述稀疏矩阵被计算设备用于同时利用所述计算设备的多个并行处理单元执行计算,并且所述组中指定行的数目对应于所述计算设备的并行处理单元的数目。
2.如权利要求1所述的方法,其特征在于,所述数据结构还包括第二阵列,并且所述方法还包括:
将稀疏向量的元素和对应索引映射到数据缓冲器的地址,其中所述稀疏向量被选择以利用所述计算设备的多个并行处理单元执行与所述稀疏矩阵的计算;以及
每当下一个非零元素被放置在所述第一阵列中时,将所述数据缓冲器中该下一个非零元素的列索引处的向量值所映射的地址放置在所述第二阵列中的对应位置。
3.如权利要求2所述的方法,其特征在于,所述组中的指定行的数目、所述数据缓冲器的寻址方案、以及所述向量的结构是预先知晓的。
4.如权利要求1所述的方法,其特征在于,所述数据结构还包括第二阵列,并且所述方法还包括每当下一个非零元素被放置在所述第一阵列中时,将该下一个非零元素的列索引放置在所述第二阵列的对应位置。
5.如权利要求4所述的方法,其特征在于,进一步包括:
将无效元素放置在所述第一阵列和/或所述第二阵列中以维持对应于所述组中的行的数目的条目数目。
6.如权利要求1所述的方法,其特征在于,所述数据结构进一步包括第三阵列,并且所述方法进一步包括对于所述稀疏矩阵的每一行,将对应于该行中非零元素的数目的值放置在所述第三阵列中。
7.如权利要求1所述的方法,其特征在于,所述数据结构进一步包括第三阵列,并且所述方法进一步包括对于所述稀疏矩阵的每一行,将对应于该行中的第一个非零元素在所述第一阵列中的位置的值放置在所述第三阵列中。
8.如权利要求1所述的方法,其特征在于,进一步包括:
在将非零元素放置在所述第一阵列中之前对所述稀疏矩阵的一个或多个行重新排序。
9.一种用于将稀疏矩阵编码成数据结构的计算系统,所述数据结构包括第一阵列,所述计算系统具有包括多个并行处理单元的计算设备,所述计算系统包括:
用于接收所述稀疏矩阵的装置;
用于根据确定性顺序遍历所述稀疏矩阵中的一组指定行,直到所述稀疏矩阵中的所有非零元素已被放置在第一阵列中的装置;
用于每当根据所述确定性顺序遍历所述组中的一行时,将该行中的下一个非零元素放置在所述第一阵列中的装置,其中所述组中的每一行将第一个非零元素放置在所述第一阵列中,接着将来自该行的第二个元素放置在所述第一阵列中;以及
用于如果所述一组指定行的给定行的所有非零元素都已被放置在所述第一阵列中,则将所述一组指定行中的该给定行替换为所述稀疏矩阵的下一个未经处理的行的装置;以及
用于输出所述稀疏矩阵被编码于其中的数据结构的装置,
其中所述稀疏矩阵被计算设备用于同时利用所述计算设备的多个并行处理单元执行计算,并且所述组中指定行的数目对应于所述计算设备的并行处理单元的数目。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480047872.1/1.html,转载请声明来源钻瓜专利网。