C ++中是否有比MATLAB eig函数更快的特征值分解方法?

时间:2013-10-04 14:09:37

标签: matlab eigen blas intel-mkl eigen3

为什么MATLAB中的eig()运行得如此之快?它是如何制作的?我使用Eigen的EigenSolver,它比MATLAB慢得多。使用Intel-MKL?我们能否实现与MATLAB相同或更高的性能?还是BLAS / LAPACK / ATLAS / ARPACK / OpenBLAS / GotoBLAS / ACML?什么是特征值分解的工业解?

1 个答案:

答案 0 :(得分:3)

Matlab使用MKL作为BLAS和LAPACK后端。 MKL是英特尔CPU上用于BLAS和LAPACK的最快(几乎所有情况下)库。

您可以使用这些命令检查Matlab使用的MKL版本

>> version -blas
>> version -lapack

请参阅此链接,了解英特尔自己完成的一些基准测试结果。

http://software.intel.com/en-us/intel-mkl#pid-12780-836