検索条件
全1件
(1/1ページ)
sudo apt-get install libatlas-base-dev sudo apt-get install libatlas-doc
sudo apt-get install libopenblas-base sudo apt-get install libopenblas-devこれで3種類のBLASがインストールされたことになりますが、これらは差し替えて使うことを意図しているのでshared libraryとして同一のファイル名になっています。Ubuntuでは、これらをsymbolic linkを張り直すことによって使い分ける仕組みがあります。
sudo update-alternatives --config libblas.so.3と入力すると、
% sudo update-alternatives --config libblas.so.3 alternative libblas.so.3 (/usr/lib/libblas.so.3 を提供) には 3 個の選択肢があり>ます。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/openblas-base/libblas.so.3 40 自動モード 1 /usr/lib/atlas-base/atlas/libblas.so.3 35 手動モード 2 /usr/lib/libblas/libblas.so.3 10 手動モード 3 /usr/lib/openblas-base/libblas.so.3 40 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:のように表示され、どのBLASを使うか選択することができます。単にインストールした場合はUbuntuが定めた優先度に従って選ばれるようで、openblasが選択された状態でした。
% python >>> from numpy import * >>> from time import * >>> a=random.rand(5000,5000); t=time(); a=linalg.inv(a); time()-t 241.60200095176697このように241秒かかりました。
% python >>> from numpy import * >>> from time import * >>> a=random.rand(5000,5000); t=time(); a=linalg.inv(a); time()-t 32.5946981906890932秒に高速化されました。しかし、topでCPUを見ると100%となっており、どうやら一つのコアしか使っていないようです。
% python >>> from numpy import * >>> from time import * >>> a=random.rand(5000,5000); t=time(); a=linalg.inv(a); time()-t 6.0147957801818856秒まで高速化されました。topのCPU表示は400%となり、4コア使って計算しているようです。
% sudo update-alternatives --config liblapack.so.3 alternative liblapack.so.3 (/usr/lib/liblapack.so.3 を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/lapack/liblapack.so.3 10 自動モード 1 /usr/lib/atlas-base/atlas/liblapack.so.3 5 手動モード 2 /usr/lib/lapack/liblapack.so.3 10 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:しかし、このように優先度が低くなっており、デフォルトでは使われていません。これがUbuntuの(というかDebianの)開発チームの見解ということでしょうか。