ソース コードから ATLAS を構築するのに膨大な時間を費やした後、OpenSUSE 13.1 リポジトリに libopenblas と libatals があることを発見しました。私の質問は
リポジトリに簡単にインストールできる (自分のコンピューターでチューニングする必要がない) "libatlas" は、本当に計算パフォーマンスを向上させますか?
OpenBLAS は ATLAS よりも優れていますか、それとも Linux のフレーバーのリポジトリにある簡単にインストールできる "libatlas" より優れているだけですか? For fast R use OpenBLAS instead: better than ATLAS, trivial to switch on Ubuntu を参照してください。
この投稿Compiling Numpy with OpenBLASに従いましたが、「numpy.core._dotblas」モジュールが見つかりません。さらに、ATLAS と OpenBLAS を同時に使用して Numpy をビルドすることはできませんでした。
ATLAS と OpenBLAS を比較するための .py ファイルまたは bash コードを誰かが投稿できますか? 例えば。
Numpy-1.9 を独自のATLASでビルドし、ソース コードからOpenBLASをコンパイルして、OpenSUSE 13.1 のリポジトリに "libopenblaso" (OpenMP バージョン) と "libopenblasp" (pthreads バージョン) をインストールしました。Numpy-1.9 パッケージを再構築せずに、ATLAS の代わりに OpenBLAS を使用するように Numpy-1.9 に指示できるように、リンクとライブラリを構成する方法。
注:リポジトリに「libatlas」をインストールすると、ATLAS はお使いのコンピューターに合わせて調整されていないため、計算パフォーマンスが大幅に向上しません。したがって、最初に ATLAS をビルドして調整し、次に独自の ATLAS で Numpy をビルドしました。その後、OpenBLAS を Numpy にリンクしようとしましたが失敗しました。
よろしくお願いします!
迅速な返信をありがとう@Dmitry!しかし疑問は解決しない…
インストール
$ sudo zypper in libopenblasp0
The following NEW package is going to be installed:
libopenblasp0
1 new package to install.
Overall download size: 3.0 MiB. After the operation, additional 30.3 MiB will be used.
Continue? [y/n/? shows all options] (y):
Retrieving package libopenblasp0-0.2.11-11.1.x86_64 (1/1), 3.0 MiB ( 30.3 MiB unpacked)
Retrieving: libopenblasp0-0.2.11-11.1.x86_64.rpm ...........................[done (2.1 MiB/s)]
(1/1) Installing: libopenblasp0-0.2.11-11.1 ............................................[done]
Additional rpm output:
/sbin/ldconfig: Can't link /usr/lib64//usr/local/atlas/lib/libtatlas.so to libopenblas.so.0
Q: なぜおかしな二重スラッシュ "..64//usr.." があるのですか?
ライブラリをリンクする
$ /usr/sbin/update-alternatives --config libblas.so.3
Selection Path Priority Status
------------------------------------------------------------
0 /usr/local/atlas/lib/libtatlas.so 70 auto mode
1 /usr/lib64/blas/libblas.so.3 50 manual mode
2 /usr/lib64/libopenblasp.so.0 20 manual mode
3 /usr/local/atlas/lib/libcblas.a 50 manual mode
4 /usr/local/atlas/lib/libptcblas.a 60 manual mode
5 /usr/local/atlas/lib/libsatlas.so 65 manual mode
* 6 /usr/local/atlas/lib/libtatlas.so 70 manual mode
Q: いくつかのスタティック ライブラリ ".a" がリンクされているため、この構成は問題ありませんか?
注: 「libopenblasp.so.0」は「zypper in」の後に自動的にリンクされますが、すべての「atlas」ライブラリはコマンドによって手動で作成されます。
$ /usr/sbin/update-alternatives --install /usr/lib64/blas/libblas.so.3 libblas.so.3 /usr/local/atlas/lib/libxxxx.x <Integer>