我现在在处理稀疏矩阵,我必须比较稀疏矩阵乘法和全矩阵乘的计算时间。问题是稀疏矩阵计算比全矩阵计算慢。
我用压缩的行存储压缩我的矩阵,乘以2个矩阵非常耗时(循环四倍),所以我想知道是否有更好的压缩格式更适合矩阵-矩阵操作(CRS非常方便矩阵向量计算)。
提前感谢!
发布于 2013-09-26 08:25:39
它通常被称为“压缩稀疏行”(CSR),而不是CRS。转置、压缩稀疏列(CSC)也是常用的,包括CSparse包,它最终成为包括MatLAB和SciPy在内的许多系统的后端(我认为)。
组合BLAS也使用了一种不太常见的双压缩稀疏列(DCSC)格式。它再次压缩列索引,对于矩阵是超解析的情况很有用。超解析矩阵的大多数列都是空的,这是2D矩阵分解的结果。
尽管如此,是的,有更多的开销。然而,您的操作现在被非零的数量所支配,而不是维度。所以你的失败可能会少一些,但你还是能更快地得到答案。
发布于 2014-01-13 22:49:01
您可以查看使用着色1.pdf的有效稀疏矩阵产品,以讨论如何使用稀疏矩阵产品实现高性能。
https://stackoverflow.com/questions/19022226
复制相似问题