[发明专利]面向众核架构的稀疏矩阵向量乘众核优化方法在审

专利信息
申请号: 201910919675.9 申请日: 2019-09-26
公开(公告)号: CN112560356A 公开(公告)日: 2021-03-26
发明(设计)人: 郭恒;陈鑫;刘鑫;陈德训;李芳;徐金秀;孙唯哲 申请(专利权)人: 无锡江南计算技术研究所
主分类号: G06F30/28 分类号: G06F30/28;G06F113/08;G06F119/14
代理公司: 苏州创元专利商标事务所有限公司 32103 代理人: 王健
地址: 214083 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 面向 架构 稀疏 矩阵 向量 乘众核 优化 方法
【权利要求书】:

1.一种面向众核架构的稀疏矩阵向量乘众核优化方法,其特征在于:已知行数为m、列数为n的稀疏矩阵A,长为n的向量x;求解长度为m的向量y,y=Ax为稀疏矩阵A与向量x的点积;

所述稀疏矩阵向量乘众核优化方法包括以下步骤:

S1、定义x向量块大小blk_x_size,根据x向量元素下标对x向量元素进行分块;

S2、根据x向量的分块信息,即S1中得到的x向量元素所在的x向量块编号信息,统计原始稀疏矩阵,即稀疏矩阵A中每一行非零元所在列号对应的x向量块的编号,由此统计出稀疏矩阵向量乘时稀疏矩阵每一行所需要的x向量块的编号信息;

S3、合并在稀疏矩阵向量乘中需求的x向量块编号完全相同的各矩阵行,组成各个small_block;

S4、取block做Spmv时的性能评价函数,在依赖的x向量块的个数不超过阈值的前提下,合并部分small_block形成big_block;

S5、跟据big_block信息,包含稀疏矩阵A中的多行,以及在进行稀疏矩阵向量乘计算时需求的x向量块信息,建立稀疏矩阵A',按照big_block数组顺序将A中的行映射到A'中,按照big_block数组顺序,将A中的行写入到A'中;

S6、按照以上预处理阶段S1~S5分块后的矩阵信息进行Spmv众核加速,即稀疏矩阵A'中,非零元按照big_block数组顺序排布,Spmv众核加速算法中,计算单元为big_block,在一个核中,导入big_block中非零元数据,导入big_block中需求的x向量块数据,然后计算结果并写回主存;

所述big_block为众核内每个计算核心处理的基本数据单元。

2.根据权利要求1所述的面向众核架构的稀疏矩阵向量乘众核优化方法,其特征在于:所述步骤S1中x向量块大小blk_x_size为256或512,x向量中下标ind_x位置的元素划分到的x块的编号为ind_x/blk_x_size,然后ind_x/blk_x_size向下取整。

3.根据权利要求1所述的面向众核架构的稀疏矩阵向量乘众核优化方法,其特征在于:所述步骤S2中统计方式为:假设稀疏矩阵A中某一个非零元所在列的列号为c,那么这个非零元在进行稀疏矩阵向量乘时需求的x向量块编号为由此可以计算出A中每一行非零元对应的x向量块的编号信息,矩阵A的一行中,如果多个非零元计算得到的x向量块编号相同,记录A中这一行所需要的x向量块编号时,这个编号只记录一次。

4.根据权利要求1所述的面向众核架构的稀疏矩阵向量乘众核优化方法,其特征在于:所述步骤S3中small_block为S2中计算得到了矩阵A中每一行非零元在进行稀疏矩阵向量乘计算时需求的x向量块编号信息,small_block为小块,一个小块中记录矩阵A中多行的行号,一个小块small_block中这些行号对应的A中的这些行在进行稀疏矩阵向量乘时需求的x向量块编号信息完全相同。

5.根据权利要求1所述的面向众核架构的稀疏矩阵向量乘众核优化方法,其特征在于:所述步骤S4中具体操作为:

S41、对于一个small_block,假设它包含稀疏矩阵A中k行,A中这k行包含的非零元总数为sum,而该small_block中的这些行在做稀疏矩阵向量乘计算时需求的x向量块数量为n_blk_x,对该small_block,定义性能评价函数value=sum/(n_blk_x*blk_x_size),设定x向量块数量上限的阈值为10,也就是说,如果n_blk_x10,那么value=0;

S42、对原来的这些small_block进行遍历,遍历到第i个small_block时,计算该small_block与剩下的未参与合并的small_block合并后的value值,选择能够使得value值达到最大的第j个small_block,然后将第i个small_block与第j个small_block合并形成新的small_block;

S43、遍历一次small_block数组,形成新的small_block数组,然后在新的small_block数组基础上,再进行遍历,重复3~10次,这样最终形成的small_block数组重新命名为大块即big_block数组。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910919675.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top