所以我想在C ++中对大矩阵(1000-25000 x 4096)进行SVD分解。我尝试过LAPACKE dgesdd,Armadillo svd / svd_econ和Eigen,但它们似乎都是单线程且非常慢。我目前也正在尝试实施基于redsvd的解决方案。
对于如何实现快速SVD分解,您是否有任何建议,最好使用多线程。我注意到Matlab正在使用多线程SVD,所以它应该是可能的。
另外,我在64位Linux机器上运行g ++,如果这样做有任何重要性。
提前谢谢。
答案 0 :(得分:3)
英特尔的数学核心库提供LAPACKE的并行实现。它们也适用于Linux。