1

どちらの場合も、すべてのデフォルト オプションを使用して GSL と OpenBLAS をソースからコンパイルしました。私の GSL ライブラリは /usr/local/lib に、OpenBLAS は /opt/OpenBLAS/lib にインストールされています。C++ の GSL で OpenBLAS を使用するにはどうすればよいですか?

私がこれを行っている主な理由は、OpenBLAS が Atlas がデフォルト構成で使用していないすべてのコアを使用するためです。私の主な目的は、2 つの大きな行列 (10000 x 10000) を乗算し、2D 畳み込みを実行することです。これには、OpenBLAS または GSL に代わるより良い方法はありますか?

私は使っている:

  • Linux ミント 17.2
  • GCC バージョン 4.8.4
  • 20 コア インテル CPU

OpenBLASを使用してOctaveで同じことを試しています。C++ を使用すると、パフォーマンスが大幅に向上しますか?

4

1 に答える 1

2

Armadilloのような既存の線形代数ライブラリを使用します。私の知る限り、行列乗算のために BLAS 実装をラップします。Matlab や Octave のものと非常によく似た構文を提供するので、気に入っています。

Eigen などの他の線形代数ライブラリも機能します。

しかし、基礎となるライブラリへの呼び出しが同じままである限り、Octave や Matlab よりも (はるかに) 優れたパフォーマンスを発揮するとは思いません。また、matlab が非常に高速である理由と、armadillo がどのように並列化されているかについても確認してください。

于 2016-03-25T00:47:56.120 に答える