选择稀疏矩阵乘法最优存储格式的研究
发布时间:2019-07-29 10:13
【摘要】:稀疏矩阵向量乘法(sparse matrix vector multiplication,SpMV)是科学和工程领域中重要的核心子程序之一,也是稀疏基本线性代数子程序(basic linear algebra subprograms,BLAS)库的重要函数.目前很多SpMV的优化工作在不同程度上获得了性能提升,但大多数优化工作针对特定存储格式或一类具有特定特征的稀疏矩阵缺乏通用性.因此高性能的SpMV实现并没有广泛地应用于实际应用和数值解法器中.另外,稀疏矩阵具有众多存储格式,不同存储格式的SpMV存在较大性能差异.根据以上现象,提出一个SpMV的自动调优器(SpMV auto-tuner,SMAT).对于一个给定的稀疏矩阵,SMAT结合矩阵特征选择并返回其最优的存储格式.应用程序通过调用SMAT来得到合适的存储格式,从而获得性能提升,同时随着SMAT中存储格式的扩展,更多的SpMV优化工作可以将性能优势在实际应用中发挥作用.使用佛罗里达大学的2 366个稀疏矩阵作为测试集,在Intel上SMAT分别获得9.11GFLOPS(单精度)和2.44GFLOPS(双精度)的最高浮点性能,在AMD平台上获得了3.36GFLOPS(单精度)和1.52GFLOPS(双精度)的最高浮点性能.相比Intel的核心数学函数库(math kernel library,MKL)数学库,SMAT平均获得1.4~1.5倍的性能提升.
【图文】:
模桑粒剑危危?(Ndiags×M).(1)我们对这2个参数在子矩阵集DIA_mats上测试其SpMV性能(如图3、图4所示).1)对角线条数(Ndiags):DIA-SpMV中写Y的次数为Ndiags,随着对角线条数增多,对向量Y的重复读写次数增加,对SpMV性能造成影响.图3给出了Ndiags与DIA-SpMV性能的关系.图3中Fig.3TheinfluenceofNdiagsonDIA-SpMV.图3Ndiags对DIA-SpMV性能的影响Fig.4TheinfluenceofER_DIAonDIA-SpMV.图4ER_DIA对DIA格式SpMV性能的影响横坐标为Ndiags的数目,分为9个取值区间;纵坐标为矩阵所占比例.其中“GOOD”指DIA为最优格式的矩阵所占比例,可知所有的GOOD矩阵集合即表3中的“good_DIA_mats”;而“BAD”指DIA未能获得最好性能的矩阵比例.从图3看出,当对角线条数大于300时,DIA格式基本在绝大多数矩阵上不再获得最高性能.结论1.当稀疏矩阵的对角线条数较少时,SpMV使用DIA格式具有性能优势.2)DIA格式中非零元所占比例(ER_DIA):即使一条对角线上只有一个非零元,DIA格式也需要存储整条对角线,,包含存储额外的零元素.大量的补零操作降低了非零元所占比例,增加了SpMV的额外计算,从而影响其性能.ER_DIA与DIA-SpMV的性能如
能(如图3、图4所示).1)对角线条数(Ndiags):DIA-SpMV中写Y的次数为Ndiags,随着对角线条数增多,对向量Y的重复读写次数增加,对SpMV性能造成影响.图3给出了Ndiags与DIA-SpMV性能的关系.图3中Fig.3TheinfluenceofNdiagsonDIA-SpMV.图3Ndiags对DIA-SpMV性能的影响Fig.4TheinfluenceofER_DIAonDIA-SpMV.图4ER_DIA对DIA格式SpMV性能的影响横坐标为Ndiags的数目,分为9个取值区间;纵坐标为矩阵所占比例.其中“GOOD”指DIA为最优格式的矩阵所占比例,可知所有的GOOD矩阵集合即表3中的“good_DIA_mats”;而“BAD”指DIA未能获得最好性能的矩阵比例.从图3看出,当对角线条数大于300时,DIA格式基本在绝大多数矩阵上不再获得最高性能.结论1.当稀疏矩阵的对角线条数较少时,SpMV使用DIA格式具有性能优势.2)DIA格式中非零元所占比例(ER_DIA):即使一条对角线上只有一个非零元,DIA格式也需要存储整条对角线,包含存储额外的零元素.大量的补零操作降低了非零元所占比例,增加了SpMV的额外计算,从而影响其性能.ER_DIA与DIA-SpMV的性能如图4所示.可知,当矩阵中非零元所占比例过小(<20%)时,DIA格式的SpMV不会取得较好的性能.结论
【作者单位】: 计算机体系结构国家重点实验室(中国科学院计算技术研究所);中国科学院大学;
【基金】:国家自然科学基金项目(61272134,61033009,61003062,60925009) 国家“九七三”重点基础研究发展计划基金项目(2011CB302502,2012CB316502)
【分类号】:TP333;TP311.1
【图文】:
模桑粒剑危危?(Ndiags×M).(1)我们对这2个参数在子矩阵集DIA_mats上测试其SpMV性能(如图3、图4所示).1)对角线条数(Ndiags):DIA-SpMV中写Y的次数为Ndiags,随着对角线条数增多,对向量Y的重复读写次数增加,对SpMV性能造成影响.图3给出了Ndiags与DIA-SpMV性能的关系.图3中Fig.3TheinfluenceofNdiagsonDIA-SpMV.图3Ndiags对DIA-SpMV性能的影响Fig.4TheinfluenceofER_DIAonDIA-SpMV.图4ER_DIA对DIA格式SpMV性能的影响横坐标为Ndiags的数目,分为9个取值区间;纵坐标为矩阵所占比例.其中“GOOD”指DIA为最优格式的矩阵所占比例,可知所有的GOOD矩阵集合即表3中的“good_DIA_mats”;而“BAD”指DIA未能获得最好性能的矩阵比例.从图3看出,当对角线条数大于300时,DIA格式基本在绝大多数矩阵上不再获得最高性能.结论1.当稀疏矩阵的对角线条数较少时,SpMV使用DIA格式具有性能优势.2)DIA格式中非零元所占比例(ER_DIA):即使一条对角线上只有一个非零元,DIA格式也需要存储整条对角线,,包含存储额外的零元素.大量的补零操作降低了非零元所占比例,增加了SpMV的额外计算,从而影响其性能.ER_DIA与DIA-SpMV的性能如
能(如图3、图4所示).1)对角线条数(Ndiags):DIA-SpMV中写Y的次数为Ndiags,随着对角线条数增多,对向量Y的重复读写次数增加,对SpMV性能造成影响.图3给出了Ndiags与DIA-SpMV性能的关系.图3中Fig.3TheinfluenceofNdiagsonDIA-SpMV.图3Ndiags对DIA-SpMV性能的影响Fig.4TheinfluenceofER_DIAonDIA-SpMV.图4ER_DIA对DIA格式SpMV性能的影响横坐标为Ndiags的数目,分为9个取值区间;纵坐标为矩阵所占比例.其中“GOOD”指DIA为最优格式的矩阵所占比例,可知所有的GOOD矩阵集合即表3中的“good_DIA_mats”;而“BAD”指DIA未能获得最好性能的矩阵比例.从图3看出,当对角线条数大于300时,DIA格式基本在绝大多数矩阵上不再获得最高性能.结论1.当稀疏矩阵的对角线条数较少时,SpMV使用DIA格式具有性能优势.2)DIA格式中非零元所占比例(ER_DIA):即使一条对角线上只有一个非零元,DIA格式也需要存储整条对角线,包含存储额外的零元素.大量的补零操作降低了非零元所占比例,增加了SpMV的额外计算,从而影响其性能.ER_DIA与DIA-SpMV的性能如图4所示.可知,当矩阵中非零元所占比例过小(<20%)时,DIA格式的SpMV不会取得较好的性能.结论
【作者单位】: 计算机体系结构国家重点实验室(中国科学院计算技术研究所);中国科学院大学;
【基金】:国家自然科学基金项目(61272134,61033009,61003062,60925009) 国家“九七三”重点基础研究发展计划基金项目(2011CB302502,2012CB316502)
【分类号】:TP333;TP311.1
【参考文献】
相关期刊论文 前1条
1 宋庆增;顾军华;;稀疏矩阵向量乘的FPGA设计与实现[J];计算机工程;2011年23期
【共引文献】
相关期刊论文 前1条
1 彭宇;仲雪洁;王少军;;基于FPGA线性方程组的存储优化设计[J];计算机工程;2013年04期
相关博士学位论文 前2条
1 陈锐;CSAMT三维交错采样有限差分数值模拟并行算法研究[D];中国地质大学(北京);2012年
2 张芡;大规模稀疏线性系统的稀疏近似逆预处理技术[D];清华大学;2013年
【二级参考文献】
相关期刊论文 前1条
1 张承畅;严单贵;杨力生;齐怀龙;杨宏;;基于XCF32P的多FPGA配置方案[J];计算机工程;2010年15期
【相似文献】
相关期刊论文 前10条
1 王敏;;稀疏矩阵快速转置算法的分析与优化[J];计算机应用与软件;2010年08期
2 田翔;周凡;陈耀武;刘莉;陈耀;;基于FPGA的实时双精度浮点矩阵乘法器设计[J];浙江大学学报(工学版);2008年09期
3 袁娥;张云泉;孙相征;;RAM(h)模型下SpMV存储访问复杂度的分析[J];计算机工程与设计;2009年03期
4 卢s
本文编号:2520436
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2520436.html