13

ソース コードから ATLAS を構築するのに膨大な時間を費やした後、OpenSUSE 13.1 リポジトリに libopenblas と libatals があることを発見しました。私の質問は

  1. リポジトリに簡単にインストールできる (自分のコンピューターでチューニングする必要がない) "libatlas" は、本当に計算パフォーマンスを向上させますか?

  2. OpenBLAS は ATLAS よりも優れていますか、それとも Linux のフレーバーのリポジトリにある簡単にインストールできる "libatlas" より優れているだけですか? For fast R use OpenBLAS instead: better than ATLAS, trivial to switch on Ubuntu を参照してください。

  3. この投稿Compiling Numpy with OpenBLASに従いましたが、「numpy.core._dotblas」モジュールが見つかりません。さらに、ATLAS と OpenBLAS を同時に使用して Numpy をビルドすることはできませんでした。

  4. ATLAS と OpenBLAS を比較するための .py ファイルまたは bash コードを誰かが投稿できますか? 例えば。

  5. 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>
4

2 に答える 2

6

update-alternatives を使用して、システム BLAS と LAPACK の実装を切り替えることができます。例えば:

/usr/sbin/update-alternatives --config libblas.so.3

http://en.opensuse.org/openSUSE:Science_Linear_algebra_libraries

atlas パッケージについてはわかりませんが、openblas に multiarch サポートを提供しています。数学カーネルには、すべてのプロセッサ固有の最適化が含まれており、適切なバリアントを動的に設定します。openblas ライブラリには、serial、pthreads、openmp の 3 つのバージョンがあることに注意してください。pthreads または openmp を使用する必要があります。

于 2014-09-14T07:46:53.523 に答える