在C ++中通过相同的大型稀疏矩阵执行许多乘法

时间:2017-04-15 01:45:03

标签: c++ linear-algebra numerical-methods

我有一个迭代算法,需要在每次迭代时将一个向量乘以一个巨大的稀疏矩阵A.矩阵A占用几千兆字节的内存,提前给出,永不改变。 (如果有帮助,你可以假装我的算法是解决Ax = b的共轭梯度法。)

因为矩阵A永远不会改变,我认为必须有一些技巧可以让我非常有效地执行乘法。例如,我可以将A硬编码到我的代码中,以便编译器在执行编译时知道A的精确稀疏模式和值吗?如果它知道A的稀疏模式,我认为编译器能够做得更好。

在这种情况下可以使用哪些技巧将向量乘以A非常快?

顺便说一句,我目前正在使用Eigen3矩阵库。

0 个答案:

没有答案