トップページ -> インストール,設定,利用 -> Linux の C/C++ プログラミング用ツールとライブラリ -> Linux で GotoBLAS2 バージョン 1.13 と CBLAS と LAPACK バージョン 3.4.1 のダウンロードとビルドとインストール
[サイトマップへ], [サイト内検索へ]

Linux で GotoBLAS2 バージョン 1.13 と CBLAS と LAPACK バージョン 3.4.1 のダウンロードとビルドとインストール

GotoBLAS2 とは,ATLAS と並んで,BLAS 実装の決定版です. (無料で使えるソフトウエアの範囲では,そう言い切ってしまって良いと考えています.ライセンス条項は各自でよく確認すること.どちらも素晴らしいソフトウエアです).

CBLAS は,それらの BLAS 実装を,C 言語から使えるようにするためのプログラムです(本来の BLAS 実装は FORTRAN).

この Web ページでは, Linux での GotoBLAS2 バージョン 1.13 と CBLAS のインストール手順を説明する.

※ GotoBLAS2 を octave に組み込む方法は,別の Web ページで説明する.

※ 関連Webページ: Linux で開発環境やツールを整備

GotoBLAS2 は, ダウンロード前に,ライセンス条項をよく確認すること.ライセンス条項には, 再配布には許可が必要.商用・業務利用には許可が必要などと定められているはずです. 確認すること. その場合、バイナリやソースコードを人にあげることはできません. (「パソコンを借りてインストールしてあげる」こともNGでしょう).

BLAS の機能の概要(ごく一部)

参考 Web ページ

◆ この Web ページで行うコマンドの概略 (Ubuntu の場合の例)

ライセンス条項の確認は必ず行うこと

# GotoBLAS2 のビルドとインストール
cd /tmp
sudo rm -rf GotoBLAS2
tar -xvzof GotoBLAS2-1.13.tar.gz

sudo cpufreq-selector -g performance

cd GotoBLAS2 
if [ `arch` = 'i686' ]; then
  make BINARY=32 FC=gfortran SMP=1 USE_THREAD=1 USE_OPENMP=1 NO_CBLAS=1 REFBLAS_ANTILOGY=1
elif [ `arch` = 'x86_64' ]; then
  make BINARY=64 FC=gfortran SMP=1 USE_THREAD=1 USE_OPENMP=1 NO_CBLAS=1 REFBLAS_ANTILOGY=1
fi

sudo cp *.a /usr/lib

# CBLAS のダウンロードとビルドとインストール
cd /tmp
if [ ! -f cblas.tgz ]; then 
    wget http://www.netlib.org/blas/blast-forum/cblas.tgz
fi 

cd /tmp
sudo rm -rf /tmp/CBLAS
tar -xvzof cblas.tgz
cd /tmp/CBLAS
if [ `arch` = 'i686' ]; then
  make CC="gcc -fopenmp -m32" FC="gfortran -fopenmp -m32" CBDIR=/tmp/CBLAS BLLIB="-lgoto2 -lpthread -lgomp" all
elif [ `arch` = 'x86_64' ]; then
  make CC="gcc -fopenmp -m64" FC="gfortran -fopenmp -m64" CBDIR=/tmp/CBLAS BLLIB="-lgoto2 -lpthread -lgomp" all
fi

sudo cp lib/cblas_LINUX.a /usr/lib/libcblas.a
sudo cp include/cblas.h /usr/include/cblas.h
cd examples
gcc -o a.out cblas_example1.c -L/usr/lib -lcblas -lgoto2  -lpthread -lgomp
./a.out

# LAPACK バージョン 3.4.1 のダウンロードとビルドとインストール (Download lapack 3.4.1 and build it and install it) 
sudo cpufreq-selector -g performance

cd /tmp
if [ ! -f lapack-3.4.1.tgz ]; then 
    wget http://www.netlib.org/lapack/lapack-3.4.1.tgz
fi 
rm -rf lapack-3.4.1
tar -xvzof lapack-3.4.1.tgz
cd /tmp/lapack-3.4.1
cp make.inc.example make.inc
if [ `arch` = 'i686' ]; then
  F1="-fPIC -fomit-frame-pointer -mfpmath=sse -msse3 -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize  -fno-tree-vectorize -fexceptions -funroll-all-loops -O3 -march=native"
  cp make.inc.example make.inc
  if [ `arch` = 'i686' ]; then
    make LOADER="gfortran -fPIC" FORTRAN="gfortran -m32 -mieee-fp $F1" BLASLIB="/tmp/BLAS/blas_LINUX.a -lgfortran -lgomp -lpthread -ldl"
  elif [ `arch` = 'x86_64' ]; then
    make LOADER="gfortran -fPIC" FORTRAN="gfortran -m64 -mieee-fp $F1" BLASLIB="/tmp/BLAS/blas_LINUX.a -lgfortran -lgomp -lpthread -ldl"
  fi
fi

sudo cp liblapack.a /usr/local/lib
sudo cp libtmglib.a /usr/local/lib
sudo chmod 755 /usr/local/lib/liblapack.a
sudo chmod 755 /usr/local/lib/libtmglib.a

# LAPACK の共有オブジェクト (LAPACK shared object)
cd /tmp/lapack-3.4.1
rm -rf hoge
mkdir hoge
cd hoge
ar x ../liblapack.a
gcc -shared -o liblapack.so *.o
sudo cp liblapack.so /usr/local/lib/liblapack.so

cd /tmp/lapack-3.4.1
rm -rf hoge
mkdir hoge
cd hoge
ar x ../libtmglib.a
gcc -shared -o libtmglib.so *.o
sudo cp libtmglib.so /usr/local/lib/libtmglib.so

前準備


■ Linux で GotoBLAS 2 バージョン 1.13 のソースコードのダウンロードとビルドとインストールを行う場合の手順 (Ubuntu や Fedora を使用)

◆ GotoBLAS 2 バージョン 1.13 のソースコードのダウンロード

  1. 参考 Web ページ: http://jasp.ism.ac.jp/kinou2sg/contents/RTutorial_Goto1211.pdf
  2. GotoBLAS2 の Web ページ: http://www.tacc.utexas.edu/resources/software/ を開く
  3. TACC プロジェクトの Web ページにジャンプしたいので「click here」をクリック

    [image]
  4. GotoBLAS2」をクリック

    [image]
  5. ダウンロードしたいので,「Downloads」をクリック

    [image]
  6. ダウンロードしたいので,「login to this site」をクリック

    [image]
  7. ダウンロードしたいので, 「To download the sourcecode」の右横の 「click here」をクリック
  8. 登録

    [image]
  9. 登録が終わったらログイン
  10. ダウンロード前に,ライセンス条項をよく確認

    フリーソフトウエアでは無いので,全部よみ,よく確認し,納得する 

    ※ 再配布には許可が必要.商用・業務利用には許可が必要など

    [image]
    ライセンス条項の一部分.必ず全部読むこと
  11. ダウンロード

    [image]
  12. ダウンロードしたファイルを /tmp に移動
  13. ダウンロードしたファイルを展開(解凍)

    次のように「tar -xvzof ...」で解凍する.

    tar -xvzof GotoBLAS2-1.13.tar.gz
    

    [image]

    ◆ ソフトウエア開発環境などのインストール

    ◆ ビルドの前に決めておく事項

    ◆ GotoBLAS 2 のビルドとインストール

    1. CPU の種類の確認

      CPU の種類を確認するために「cat /proc/cpuinfo」を実行 下記のように「processor :」の行が複数あるときは,マルチプロセッサあるいはマルチコアという意味になる.

      cat /proc/cpuinfo
      

      [image]
    2. (オプション)「sudo cpufreq-selector -g performance」コマンドの実行

      ※ cpufreq-selector は Ubuntu にはある.他の Linux については未確認.

      sudo cpufreq-selector -g performance
      
    3. (オプション)Makefile.rule の設定

      ■ GotoBLAS2 バージョン 1.13 での設定例

      CC = gcc
      
      FC = gfortran
      
      USE_THREAD = 1
      
      USE_OPENMP = 1
      
    4. ビルド
      cd GotoBLAS
      ./quickbuild.32bit
      

      64 ビット Linux (x86_64) の場合には,次のように「./quickbuild.64bit」を実行する

      cd GotoBLAS
      ./quickbuild.64bit
      

      [image]

      ※ 64 ビット Linux であるかは,「uname -a」で簡単に調べることができる.

      [image]

      quickbuid.32bit や quickbuild.64bit ではなくて,make コマンドを手動で起動したい場合の手順の例 

      if [ `arch` = 'i686' ]; then
        make BINARY=32 FC=gfortran SMP=1 USE_THREAD=1 USE_OPENMP=1 NO_CBLAS=1 REFBLAS_ANTILOGY=1
      elif [ `arch` = 'x86_64' ]; then
        make BINARY=64 FC=gfortran SMP=1 USE_THREAD=1 USE_OPENMP=1 NO_CBLAS=1 REFBLAS_ANTILOGY=1
      fi
      
    5. ビルドの終了の確認

      Ubuntu 11.04 での実行結果例

      [image]

      うまくビルドできない場合には対処が必要(Google で情報を得ることはできる)

      ※ 参考 Web ページ:R と GotoBLAS のページ: http://www.okada.jp.org/RWiki/?R%A4%C8GotoBLAS

    6. インストール
      sudo cp *.a /usr/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」をクリック.ダウンロードが始まる.

      [image]
    3. ダウンロードしたソースコードを,/tmp の下に展開./tmp/CBLAS ができる

      [image]
    4. Makefile.in のリンクを作成
      cd /tmp/CBLAS
      ln -s Makefile.LINUX Makefile.in
      
    5. ビルド

      CC と FC については,GotoBLAS2 をビルドしたときに使われた C, FORTRAN コンパイラを指定する.

      ◆ 32 ビット OS の場合の実行手順例

      make CC="gcc -fopenmp -m32" FC="gfortran -fopenmp -m32" CBDIR=/tmp/CBLAS BLLIB="-lgoto2 -lpthread -lgomp"
      

      ◆ 64 ビット OS の場合の実行手順例

      「quickbuild.64bit」を使って GotoBLAS をビルドした場合には,CFLAGS と FFLAGS に「-m64」を付け加える

      make CC="gcc -fopenmp -m64" FC="gfortran -fopenmp -m64" CBDIR=/tmp/CBLAS BLLIB="-lgoto2 -lpthread -lgomp"
      

      [image]
    6. ビルド結果の確認

      [image]
    7. インストール

      sudo cp lib/cblas_LINUX.a /usr/lib/libcblas.a
      sudo cp include/cblas.h /usr/include/cblas.h
      
    8. サンプルプログラムのテスト実行

      cd /tmp/CBLAS
      cd examples
      gcc -o a.out cblas_example1.c -L/usr/lib -lcblas -lgoto2  -lpthread -lgomp
      ./a.out
      

    [image]

    cblas_example1.c を引用すると次の通り。

    [image]

    [image]

    LAPACK のダウンロードとビルドとインストール

    ビルド

    cd /tmp
    if [ ! -f lapack-3.4.1.tgz ]; then 
        wget http://www.netlib.org/lapack/lapack-3.4.1.tgz
    fi 
    rm -rf lapack-3.4.1
    tar -xvzof lapack-3.4.1.tgz
    cd /tmp/lapack-3.4.1
    cp make.inc.example make.inc
    if [ `arch` = 'i686' ]; then
      make LOADER="gfortran -fPIC" FORTRAN="gfortran -fPIC -mieee-fp -fomit-frame-pointer -mfpmath=sse -msse3 -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize  -fimplicit-none -g -m32 -fno-tree-vectorize -fexceptions -march=native" BLASLIB="-lgoto2 -lpthread -lgomp"
    elif [ `arch` = 'x86_64' ]; then
      make LOADER="gfortran -fPIC" FORTRAN="gfortran -fPIC -mieee-fp -fomit-frame-pointer -mfpmath=sse -msse3 -fno-schedule-insns2 -fopenmp -fno-tree-loop-optimize  -fimplicit-none -g -m64 -fno-tree-vectorize -fexceptions -march=native" BLASLIB="-lgoto2 -lpthread -lgomp"
    fi
    

    [image]

    インストール

    sudo cp liblapack.a /usr/local/lib
    sudo cp libtmglib.a /usr/local/lib
    sudo chmod 755 /usr/local/lib/liblapack.a
    sudo chmod 755 /usr/local/lib/libtmglib.a
    
    rm -rf hoge
    mkdir hoge
    cd hoge
    ar x ../liblapack.a
    gcc -shared -o liblapack.so *.o
    sudo cp liblapack.so /usr/local/lib/liblapack.so
    
    cd ..
    rm -rf hoge
    mkdir hoge
    cd hoge
    ar x ../libtmglib.a
    gcc -shared -o libtmglib.so *.o
    sudo cp libtmglib.so /usr/local/lib/libtmglib.so
    

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]