我对Eigen和Blas做了一些基本的阅读。两个库都支持矩阵矩阵,矩阵向量乘法。我不明白在哪种情况下我应该使用哪一个?对我而言,两者的表现几乎相同。如果有人能给我一些资源或者只是告诉我一个图书馆对另一个图书馆有什么好处,那将会很好?或者在矩阵和向量操作的情况下,这两者有何不同?提前致谢。
答案 0 :(得分:3)
使用Eigen,它更完整,更容易使用。然后,如果您想知道另一个完全优化的BLAS实现是否可以提供更高的性能,那么只需使用-DEIGEN_USE_BLAS
重新编译代码并链接到您最喜欢的blas并自己查看。
此外,使用Eigen时,不要忘记启用编译器优化,例如-O3
和指令设置硬件支持,例如,-mavx -mfma
使用最新的Eigen时。
答案 1 :(得分:1)
所以这个问题的答案就在这里。
http://eigen.tuxfamily.org/index.php?title=FAQ#How_does_Eigen_compare_to_BLAS.2FLAPACK.3F
或多或少,我主要使用Eigen,因为它有一个舒适的界面。如果您需要速度和多核并行性或者代码中只有很少但耗时的线性代数,请转到GotoBlas2。通常它在Intel机器上最快。