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