2016-05-25 12 views
2

私はEigenとBlasについて基本的な読み方をしました。どちらのライブラリも行列行列、行列ベクトル乗法をサポートしています。私はどちらの場合に使用すべきか理解できません。私にとっては、どちらもほぼ同じ性能を持っているようです。もし誰かが私に資源を与えてくれたり、あるライブラリが持っている利点が何であるか教えてくれればいいですね。または、行列とベクトルの操作の場合、これらの2つの違いはどのようになりますか?前もって感謝します。固有値を使うときとBlasを使うとき

答えて

1

この質問に対する回答はここにあります。

http://eigen.tuxfamily.org/index.php?title=FAQ#How_does_Eigen_compare_to_BLAS.2FLAPACK.3F

多かれ少なかれ、それはcomforableインタフェースを持っているので、私は、主に固有を使用しています。速度とマルチコアの並列処理が必要な場合や、時間がかかりますがコード内に線形代数を入れる必要がある場合は、GotoBlas2を使用してください。通常、Intelマシン上では最も高速です。

3

Eigenを使用すると、より完全で使いやすくなります。次に、完全に最適化された別のBLAS実装がより高いパフォーマンスをもたらすかどうか疑問に思うなら、コードを-DEIGEN_USE_BLASで再コンパイルし、お気に入りのblasにリンクして自分で見てください。

また、Eigenを使用する場合、コンパイラーの最適化を有効にすることを忘れないでください。 -O3、最新のEigenを使用している場合は-mavx -mfmaなど、ハードウェアがサポートする命令セットを設定します。

関連する問題