2013年8月23日金曜日

64bit Windows の SDPA 用に OpenBLAS をコンパイル



SDPA の 64bit Windows バイナリを生成するために OpenBLAS をコンパイルしているが、以下のような make コマンドを実行すると mingw64 でコンパイルがうまくできることが分かった。

ただ、これだと CBLAS, WARMUP, LAPACKE を使用しておらず、また DYNAMIC_ARCH なので生成されるファイルも大きなものになる。

    rm -rf OpenBLAS
    git clone https://github.com/xianyi/OpenBLAS.git
    cd OpenBLAS
    make \
CFLAGS="-static" CXXFLAGS="-static" FCFLAGS="-static" FFLAGS="-static" \
DYNAMIC_ARCH=1 \
HOSTCC=gcc \
CC=x86_64-w64-mingw32-gcc \
FC=x86_64-w64-mingw32-gfortran \
CROSS_SUFFIX=x86_64-w64-mingw32- \
BINARY=64 \
USE_OPENMP=0 \
NO_CBLAS=1 \
NO_WARMUP=1 \
NO_LAPACKE=1 \
libs netlib
  # この上までが make コマンドの引数
    ln -s libopenblas.a libopenblas.lib
    x86_64-w64-mingw32-ranlib libopenblas.lib
   

これを利用して、SDPA をコンパイルすると
$ file ./sdpa.exe
./sdpa.exe: PE32+ executable (console) x86-64, for MS Windows
となって、たしかに 64bit Windows バイナリが生成できる。
また、Windows で実行しているときにタスクマネージャで確認しても *32 が表示されないので、64bit バイナリとなっている。

今日の作業内容:SDPA コンパイル 2h + 資料作成 2h
今日のランチ:食堂 ライスS + わかめの味噌汁 + 野菜たっぷりハンバーグ + ほうれん草ごま和え
明日の予測作業時間:3h

0 件のコメント:

コメントを投稿