摘要
稀疏矩阵向量乘法(spMVM)是许多数值算法中最耗时的内核,在所有现代处理器和加速器体系结构中都得到了广泛的研究。然而,最佳稀疏矩阵数据存储格式是高度特定于硬件的,这在使用异构系统时可能会成为一个障碍。此外,如果矩阵的稀疏模式中没有结构,那么目前尚不清楚如何最有效地使用当前多核处理器中的宽单指令多数据(SIMD)单元。我们建议使用SELL-C-sigma,它是Sliced ELLPACK的一种变体,作为一种SIMD友好的数据格式,它结合了通用图形处理单元(GPGPU)和矢量计算机编程的长期思想。我们讨论了SELL-C-sigma与现有格式(如压缩行存储(CRS)和ELLPACK)相比的优势,并展示了它在各种硬件平台(Intel Sandy Bridge、Intel Xeon Phi和Nvidia Tesla K20)上对不同应用领域的各种测试矩阵的适用性。使用适当的性能模型,我们可以深入了解SELL-C-sigma spMVM内核的数据传输属性。SELL-C-sigma带有两个调谐参数,研究了这两个参数在测试矩阵范围内的性能影响,并提出了合理的选择。这导致了硬件相关(“catch-all”)稀疏矩阵格式,它在所有硬件平台上为所有测试矩阵实现了非常高的效率。