[发明专利]稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置有效
申请号: | 202011508930.X | 申请日: | 2020-12-18 |
公开(公告)号: | CN112507284B | 公开(公告)日: | 2022-08-12 |
发明(设计)人: | 尹首一;杨轲翔;谷江源;韩慧明;刘雷波;魏少军 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F7/523 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 薛平;周晓飞 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 稀疏 矩阵 乘法 可重构 处理器 阵列 实现 方法 装置 | ||
1.一种稀疏矩阵乘法在可重构处理器阵列上的实现方法,其特征在于,包括:
采用列压缩格式存储待乘法运算的第一稀疏矩阵和第二稀疏矩阵,得到第一稀疏矩阵和第二稀疏矩阵中非零元素的数值数组、行号数组和列偏移数组;
通过可重构处理器阵列中的多个处理器,采用列优先法对第一稀疏矩阵和第二稀疏矩阵中的非零元素执行乘法运算,得到多个压缩列,其中,每个压缩列包括一个数值数组和一个行号数组;
通过可重构处理器阵列中的多个处理器,采用双调排序归并法对执行乘法运算后的多个压缩列进行归并处理,得到第一稀疏矩阵和第二稀疏矩阵的乘法运算结果;
其中,通过可重构处理器阵列中的多个处理器,采用列优先法对第一稀疏矩阵和第二稀疏矩阵中的非零元素执行乘法运算,包括:通过第一处理器读取待运算两个元素的数值,通过第二处理器对待运算元素执行乘法运算,通过第三处理器将运算结果存储到可重构处理器阵列的共享存储器中;通过第四处理器读取待运算元素的行号,通过第五处理器对待运算元素进行路由,通过第六处理器将路由后的行号存储到可重构处理器阵列的共享存储器中;其中,第一处理器、第三处理器、第四处理器和第六处理器为可重构处理器阵列中处于边缘位置的处理器;第二处理器和第五处理器为可重构处理器阵列中处于内部位置的处理器。
2.如权利要求1所述的方法,其特征在于,采用列压缩格式存储待乘法运算的第一稀疏矩阵和第二稀疏矩阵,得到第一稀疏矩阵和第二稀疏矩阵中非零元素的数值数组、行号数组和列偏移数组,包括:
按照先增加行号后增加列号的顺序遍历第一稀疏矩阵或第二稀疏矩阵;
使用数值数组与行号数组分别顺序存储第一稀疏矩阵或第二稀疏矩阵中遍历到的非零元素的数值和行号;
根据第一稀疏矩阵或第二稀疏矩阵中非零元素的数值数组和行号数组,生成第一稀疏矩阵或第二稀疏矩阵的列偏移数组,其中,所述列偏移数组中包含:所述第一稀疏矩阵或第二稀疏矩阵中每一列首个非零元素在数值数组和行号数组中的位置,以及所述第一稀疏矩阵或第二稀疏矩阵中非零元素的个数。
3.如权利要求1所述的方法,其特征在于,通过可重构处理器阵列中的多个处理器,采用双调排序归并法对执行乘法运算后的多个压缩列进行归并处理,包括:
将对执行乘法运算后的多个压缩列两两反向拼接,得到多个双调序列;
通过可重构处理器阵列中的多个处理器,对每个双调序列中的各个元素按照数值大小进行排序,得到每个双调序列对应的有序序列;
针对各个有序序列,将相同行号的数值相加,实现多个压缩列的归并处理。
4.如权利要求3所述的方法,其特征在于,通过可重构处理器阵列中的多个处理器,对每个双调序列中的各个元素按照数值大小进行排序,得到每个双调序列对应的有序序列,包括:
通过第一处理器和第二处理器读取待比较的两个元素的数值;
通过第三处理器对读取的两个元素执行比较运算;
将比较后的两个元素分别存储到第四处理器和第五处理器中;
通过第六处理器和第七处理器分别将第四处理器和第五处理器的元素存储到可重构处理器阵列的共享存储器中;
通过第八处理器和第九处理器分别对第一处理器和第二处理器读取的元素进行路由;
其中,第一处理器、第二处理器、第三处理器、第四处理器、第五处理器、第六处理器、第七处理器、第八处理器和第九处理器为可重构处理器阵列中处于边缘位置的处理器;所述第九处理器为可重构处理器阵列中处于内部位置的处理器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011508930.X/1.html,转载请声明来源钻瓜专利网。