FreeBSD で ATLAS と LAPACK をビルドとインストール

このページでは, ATLASCBLASLAPACKインストール手順を図解で説明する.

<BLAS の主な機能(ごく一部を紹介)>

<ATLAS と LAPACK のインストールの要点>

<この 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 の性能をより引き出す方法(そのヒント)なども得られることでしょう.

前準備

前もってインストールしておくべきソフトウェア

事前に決めておく事項

CPU の論理コア数,クロック周波数,ビット数の確認

ATLAS と LAPACK のビルドとインストール

ここでの説明は,CPU の種類,物理コア数,クロック周波数,ビット数が下記の通りであるとして説明を続けるので, 適切に読み替えてください.

【本 Web ページでの設定】

* Intel E8500 の場合

⇒ 各自,読み替えてください.

ATLAS のダウンロード

  1. ATLAS の「インストール概要」の Web ページを開く.

    http://math-atlas.sourceforge.net/atlas_install/atlas_install.html

  2. この Web ページの「Turn off CPU throttling when installing ATLAS」にあるように, CPU の周波数を落として節電する,というような機能があれば無効にしておく.
  3. ATLAS の Web ページを開く

    http://math-atlas.sourceforge.net/

  4. SourceForge Summary Page」をクリック
  5. Files」をクリック
  6. ファイルの選択

    最新のファイル が欲しいので,一番上の altlas.ほにゃらら.tar.bz2をクリック *最新の Stable が欲しいという場合には,下の方の Stable を展開して,ダウンロードする. * 但し,Core i7 のように新しい CPU を使う場合には,Stable よりも,最新のファイル(たとえ unstable であっても)うまくいく可能性がある.

    クリックすると,ダウンロードが始まる.

ATLAS のビルドとインストール(1回目)

LAPACK のビルドのために ATLAS が欲しい.ATLAS のビルドのために LAPACK が欲しい,という状況なので, 先に ATLAS をビルド.後で LAPACK をビルドし,その後,ATLAS を再度ビルドという手順を踏むことにする.

  1. ダウンロードしたファイルを /tmp に移動
  2. tar コマンドを用いて解凍
    cd /tmp
    tar -xvjof altas3.9.13.tar.bz2
    
  3. 解凍終了の確認
  4. mv ATLAS ATLAS3.9.13」の実行
  5. configure コマンドの実行

    【本 Web ページでの設定】

    * Intel E8500 の場合

    • CPU の物理コア数: 2
    • CPU のクロック周波数: 3160
    • CPU のビット数(ポインタの幅): 64

    ⇒ 各自,読み替えてください.

    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 以下 (バージョン 3.8.ほにゃらら, 3.9.ほにゃららのとき)

    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 」を付けます

    <説明>

    • mkdir B1  

      作業用のディレクトリの作成.「B1」のところは好きな名前でよい.

    • CPU のコア数: -t 2  

      マルチコアの CPU では,「-t <コア数>」を引数に含めます. 「-t 2 」は、「コア数が 2 個」というような意味.コア数が 4 個のときは -t 4 になる. 「-t <コア数>」を付けると,ATLAS のシングルスレッド版とマルチスレッド版の両方のライブラリファイルがビルドされる.

      マルチコアの CPU でない場合には,「-t <コア数>」を付けないで下さい. ATLAS のシングルスレッド版のライブラリファイルだけがビルドされる.

    • CPU のクロック周波数: -m 3160 

      周波数 (MHz 単位)

    • CPU のビット数(ポインタの幅): -b 64 

      32 ビットの時は -b 32 になる.

    • -D c -DWALL:
    • -Si nocygwin 1:

      「1」にしているので,「CYGWIN でない」という意味になる.

    • (オプション)コンパイラを変えたいときの設定例

      使用するコンパイラを明示的に指定.

      --cc=gcc43 -C acg gcc43 -C ic gcc43 -C xc gcc43 -C dk gcc43 -C dm gcc43 -C if gfortran43
      
    • LAPACK のソースコードの指定

      configure コマンドの引数に「-Ss flapack /usr/ports/math/lapack/work/lapack-3.2.1/SRC -Si latune 1」を付けます.

  6. configure コマンドの結果の確認
  7. make」 の実行
    make
    
  8. make」の結果,エラーメッセージが出ないことを確認しておく.
  9. make check」 の実行
    make check
    

    「make check」 の結果,エラーメッセージが出ないことを確認しておく.

  10. make ptcheck」 の実行
    make ptcheck
    

    「make ptcheck」 の結果,エラーメッセージが出ないことを確認しておく.

  11. make time の実行
    make time
    
  12. make time の結果の確認

    「make time」 の結果,エラーメッセージが出ないことを確認しておく.

  13. make install」 の実行
    make install
    
  14. make install」 の結果の確認

    エラーメッセージが出ていないことを確認する.

  • ファイルの確認
  • 共有オブジェクト (.so) の生成とインストール
    cd lib
    make ptshared cptshared
    cp *.so /usr/atlas/lib
    

    CBLAS のテスト

    1. BLAS Technical Forum の Web ページを開く

      http://www.netlib.org/blas/blast-forum/

    2. Reference implementation for the C interface to the Legacy BLAS」をクリック.ダウンロードが始まる.
    3. ダウンロードしたソースコードを,/tmp の下に展開./tmp/CBLAS ができる
    4. Reference implementation for the C interface to the Legacy BLAS」に同梱のサンプルプログラムのテスト実行
      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 を引用すると次の通り。