このページでは, ATLAS と CBLAS と LAPACK のインストール手順を図解で説明する.
<BLAS の主な機能(ごく一部を紹介)>
<ATLAS と LAPACK のインストールの要点>
ATLAS は BSD ライセンスとなっているようです.ライセンス条項は,各自でよく確認してください.
※ Windows の Cygwin での手順は,別のページで説明している
※ Linux での手順は,別のページで説明している
ATLAS のビルドと同時に,LAPACK 3.2.1 をソースコードからビルドするのですが,GNU の FORTRAN コンパイラ・バージョン 3 を使うことはできないためです.
■ ATLAS バージョン 3.9.12 以上
../configure -t 2 -m 3160 -b 64 -Fa alg -fPIC -D c -DPentiumCPS=3000 -D c -DWALL -Si nof77 0 -Si nocygwin 1 --prefix=/usr/atlas \ -Ss flapack /tmp/lapack-3.2.1/SRC -Si latune 1
■ ATLAS バージョン 3.9.11 以下 (バージョン 3.8.ほにゃらら, 3.9.ほにゃららのとき)
../configure -t 2 -m 3160 -b 64 -Fa alg -fPIC -D c -DPentiumCPS=3000 -D c -DWALL -Si nof77 0 -Si nocygwin 1 --prefix=/usr/atlas \ --with-netlib-lapack=/usr/ports/math/lapack/work/lapack-3.2.1//lapack_FREEBSD.a
【設定の要点】
64 ビットの FreeBSD (amd)では「-b 64」のようになる
CPU の種類によって設定すべき引数値
※ 例えば,Intel Core2 Duo E8500 は 2 つの物理コアを持ち,Intel Core2 Quad Q9550は 4 つの物理コアを持つ.Corei7 のように物理コアは 4個だが論理コアは 8個(物理コア数と論理コア数が違う)という場合がありますが,-t ... には物理コア数を指定した方がよいみたいです(未確認の情報)
<この Web ページについて>
情報共有のために,この Web ページを公開している.ATLAS の情報減としては、 ATLAS errata ファイルや,ATLAS の説明書を読みきっていない等の問題を自覚している. 参考情報としてお使いください.
Octave や ATLAS に関しては,「octave for windowsメモの筆者」様が, http://c.2ch.net/ の「データ解析ツールoctaveを語ろう」掲示板 に書かれた内容を読み,掲示板での議論を通して,いくつかの貴重な示唆,ヒントを頂きました.この掲示板の匿名の投稿者の方々からも,やはり,重要な示唆を頂きました. この掲示板が無ければ,この Web ページはなかったでしょう. ありがとうございました.この場を借りてお礼申し上げます. ごく一部を以下に紹介しておく(私の判断で,大胆にまとめると次のようになる.詳しくは掲示板をご覧下さい).
ここで,敬意を込めて, 「octave for windowsメモの筆者」様の URL を記しておく. http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html (当時の URL,現存しない) (「リンクの許可は要りません」に甘えまして,リンクを張っています) ⇒ この Web ページは,分かりやすく,また,Octave に関係する種々の有益な情報が載ったページです.この Web ページからもたくさんの情報を得ました. (ごく一部紹介しますと,Octave の MinGW ライブラリキットのリリース等々で,昔から継続的に多大な貢献をされておられます).
※ 本 Web ページに残っているであろうミスは,掲示板等のミスではなく,本 Web ページの作者である私の責任です.
http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html (当時の URL,現存しない) のように,Octave については,すでに多数の優れた情報源があります, Octave を使いたい方は,そちらを見ていただきたいと考えています.例えば,ATLAS の性能をより引き出す方法(そのヒント)なども得られることでしょう.
cd /usr/ports/math/lapack; make clean; make; make install pkgdb -F
このとき gcc43 などもインストールされる.
CPU のビット数は,「32」か「64」のいずれか.必ず調べておく.
CPU の周波数と論理コア数は,「cat /proc/cpuinfo」を使って,簡単に分かる.
# cd /usr/ports/emulators/linux_base-fc4 make clean; make; make install mount -t linprocfs linprocfs /compat/linux/proc cat /compat/linux/proc/cpuinfo
ここでの説明は,CPU の種類,物理コア数,クロック周波数,ビット数が下記の通りであるとして説明を続けるので, 適切に読み替えてください.
【本 Web ページでの設定】
■ Intel E8500 の場合
⇒ 各自,読み替えてください.
http://math-atlas.sourceforge.net/atlas_install/atlas_install.html
最新のファイル が欲しいので,一番上の altlas.ほにゃらら.tar.bz2をクリック ※最新の Stable が欲しいという場合には,下の方の Stable を展開して,ダウンロードする. ※ 但し,Core i7 のように新しい CPU を使う場合には,Stable よりも,最新のファイル(たとえ unstable であっても)うまくいく可能性がある.
クリックすると,ダウンロードが始まる.
LAPACK のビルドのために ATLAS が欲しい.ATLAS のビルドのために LAPACK が欲しい,という状況なので, 先に ATLAS をビルド.後で LAPACK をビルドし,その後,ATLAS を再度ビルドという手順を踏むことにする.
cd /tmp tar -xvjof altas3.9.13.tar.bz2
【本 Web ページでの設定】
■ Intel E8500 の場合
⇒ 各自,読み替えてください.
cd ATLAS3.9.13 mkdir B1 cd B1 export CC=gcc43 export CXX=g++43 export F77=gfortran43 ../configure --cc=gcc43 -C acg gcc43 -C ic gcc43 -C xc gcc43 -C dk gcc43 -C dm gcc43 -C if gfortran43 -t 2 -m 3160 -b 64 -Fa alg -fPIC -D c -DPentiumCPS=3160 -D c -DWALL -Si nof77 0 -Si nocygwin 1 --prefix=/usr/atlas \ -Ss flapack /tmp/lapack-3.2.1/SRC -Si latune 1
※ 「-t ... -m ...」のところは,コア数と周波数を正しく設定すること.
※ 例えば,Corei7 のように物理コアは 4個だが論理コアは 8個(物理コア数と論理コア数が違う)という場合がありますが,-t ... には物理コア数を指定した方がよいみたいです(未確認の情報)
ATLAS バージョン 3.9.11 以下のときは, 「-Ss flapack /usr/ports/math/lapack/work/lapack-3.2.1/SRC -Si latune 1」とは書かずに, 「--with-netlib-lapack=/usr/ports/math/lapack/work/lapack-3.2.1//lapack_FREEBSD.a 」を付けます
<説明>
作業用のディレクトリの作成.「B1」のところは好きな名前でよい.
マルチコアの CPU では,「-t <コア数>」を引数に含めます. 「-t 2 」は、「コア数が 2 個」というような意味.コア数が 4 個のときは -t 4 になる. 「-t <コア数>」を付けると,ATLAS のシングルスレッド版とマルチスレッド版の両方のライブラリファイルがビルドされる.
マルチコアの CPU でない場合には,「-t <コア数>」を付けないで下さい. ATLAS のシングルスレッド版のライブラリファイルだけがビルドされる.
周波数 (MHz 単位)
32 ビットの時は -b 32 になる.
「1」にしているので,「CYGWIN でない」という意味になる.
使用するコンパイラを明示的に指定.
--cc=gcc43 -C acg gcc43 -C ic gcc43 -C xc gcc43 -C dk gcc43 -C dm gcc43 -C if gfortran43
configure コマンドの引数に「-Ss flapack /usr/ports/math/lapack/work/lapack-3.2.1/SRC -Si latune 1」を付けます.
make
make check
「make check」 の結果,エラーメッセージが出ないことを確認しておく.
make ptcheck
「make ptcheck」 の結果,エラーメッセージが出ないことを確認しておく.
make time
「make time」 の結果,エラーメッセージが出ないことを確認しておく.
make install
エラーメッセージが出ていないことを確認する.
cd lib make ptshared cptshared cp *.so /usr/atlas/lib
cd /tmp/CBLAS gcc -I/usr/atlas/include cblas_example1.c -L/usr/atlas/lib -lptcblas -lptf77blas -latlas -lpthread -L/usr/local/lib/gcc43 -lgfortran ./a.out
cblas_example1.c を引用すると次の通り。