Ubuntuからビルド済みパッケージをインストールするよりも、ソースからLAPACKをコンパイルする利点はありますか?


13

ATLASはコンパイル対象のマシンに合わせて最適化できることを知っているため、ソースからコンパイルすることで最大のメリットが得られます。ソースからLAPACKをコンパイルすることに利点はありますか?ビルド済みのパッケージをインストールする方がはるかに簡単です。


時間を費やしている理由を確認するには、この手法を試す価値があります。大きくない行列で多くの作業をしている場合、ライブラリルーチンは入力文字フラグの分類やその他の入力分類に時間の半分以上を費やしているので、ライブラリを拡張することで大幅な高速化を実現できます。いくつかの適切に選択された手動コーディングルーチンを使用します。
マイクダンラベイ

回答:


9

OpenBlasは非常に高速なので、LAPACKにリンクできます。CPUベンダーのLAPACK / BLASのプリコンパイルバージョンを試しましたか?たとえば、AMD ACML(無料)またはIntel MKL(Linuxで非営利および非学術的使用に無料)インストールファイルを展開して実行するだけです。

私の意見では、ATLASを使用する唯一の利点は、異常なCPUを使用する場合です。それ以外の場合は、CPUベンダーのものを使用してください。また、nVIDIA CUDAとAMD OpenCLのバージョンがありますが、これらは本当に素晴らしいものです。

編集:ソースからソフトウェアをコンパイルするよりもはるかに簡単なソースからUbuntu DEBパッケージをいつでもビルドできることを覚えておいてください。


私はあなたの提案に従ってMKLをインストールするつもりだと思います。また、DEBパッケージの構築に関するヒントのおかげで、それが可能であることに気づきませんでした。
OSE

2
ld(これらのライブラリを見つけることができるように動的ライブラリリンカー)を構成する必要があることに注意してください。インテルMKLのBLASとLAPACKは、libmkl_rt.so通常、次のファイルを使用してリンクされています-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery

2
Intelの非営利ライセンスはリリースごとにますます制限が厳しくなり、研究のための資金を得るとすぐにアカデミックな使用がカバーされないことについて非常に明確になった点を指摘する必要があります。
クリスチャンクラソン

はい、それは言及する価値があります。ただし、無料でテストできます:]そして、それが有用であることが証明されれば、それは世界で最も高価なものではありません。
不幸

7

リポジトリパッケージは、コンパイル方法が原因で、スレッドで使用するのは安全ではありません。Lapackフォーラムでバグを報告しましたが、回避策または解決策がリポジトリに浸透するまでに長い時間がかかります。自分でコンパイルする場合は、gfortranに「-frecursive」を追加してください。


6

私の経験では、ubuntuの最新バージョンでblas / lapackを使用する最良の方法は、パッケージ化されたopenblasを使用することです。

それが価値があるものとして、私は主にpython numpy / scipyを介してblas / lapackを使用します。openblasを使用すると、線形代数の一部がデフォルトの200xのように高速化されます。私はカスタムATLASを使用しようとしましたが、それは大きな苦痛であり、openblasと比べてスピードアップしてもあまり意味がありませんでしたが、間違っていたのかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.