稀疏矩阵 - 矩阵乘法

时间:2013-09-26 07:42:47

标签: c performance matrix

我目前正在使用稀疏矩阵,我必须将稀疏矩阵 - 矩阵乘法的计算时间与全矩阵乘法进行比较。问题是稀疏矩阵计算比完全矩阵计算慢得多。

我正在使用压缩行存储压缩我的矩阵,并且乘以2个矩阵非常耗时(循环四倍),所以我想知道是否有更好的压缩格式更适合矩阵矩阵运算(CRS)矩阵向量计算非常方便。

提前致谢!

2 个答案:

答案 0 :(得分:4)

它通常被称为" Compressed Sparse Rows" (CSR),而不是CRS。转置,压缩稀疏列(CSC)也是常用的,包括CSparse包,它最终成为很多系统的后端,包括MatLAB和SciPy(我认为)。

组合BLAS还使用了一种不太常见的双压缩稀疏列(DCSC)格式。它再次压缩列索引,并且对于矩阵超分散的情况很有用。超稀疏矩阵使大多数列为空,这种情况发生在2D矩阵分解中。

那就是说,是的还有更多的开销。但是,您的操作现在由非零数量决定,而不是尺寸。所以你的FLOPS可能会更少,但你仍然可以更快地得到答案。

答案 1 :(得分:1)

您可以查看使用颜色的{EFFICIENT SPARSE MATRIX-MATRIX PRODUCTS http://www.mcs.anl.gov/papers/P5007-0813_1.pdf论文,讨论如何利用稀疏矩阵矩阵产品实现高性能。