トップページインストール,使い方Windows の種々のソフトウェア(インストール,使い方)OpenBLAS (BLAS, CBLAS, LAPACK, LAPACKE)のインストール(ソースコードを使用)(MSYS2 ,make を利用 )(Windows 上)

OpenBLAS (BLAS, CBLAS, LAPACK, LAPACKE)のインストール(ソースコードを使用)(MSYS2 ,make を利用 )(Windows 上)

BLAS(Basic Linear Algebra Subprograms)は,行列演算,ベクトル演算の機能をもったプログラム群である.

OpenBLAS のインストールを行う. Build Tools for Visual Studio でも gcc でも使えるようにすることを目標とする.

目次

  1. 前準備
  2. Windows で OpenBLAS のインストール(ソースコードを使用)
  3. OpenBLAS のプログラムをコンパイルし,実行する

Windows での OpenBLAS のインストール(サイト内のページ)】

複数の方法がある.方法を問わない場合には,Build Tools for Visual Studio を利用するのが簡単である.

サイト内の関連ページ

謝辞

OpenBLAS の作者に感謝します


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

前準備

Git のインストール(Windows 上)

Git のページ https://git-scm.com/ からダウンロードしてインストール:

MSYS2 の C/C++/Fortran

Windows でのMSYS2 と GNU ツールチェーン類 (gcc, g++, gfortran, gdb, make, ccache, svn 等) のインストール: 別ページで説明している.

OpenBLAS のインストール(Windows 上)

参考 Web ページ https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide

  1. OpenBLAS のウェブページを開く

    https://www.openblas.net/

  2. このウェブページで利用条件などを確認

    必ず、最新情報を確認すること

    [image]
  3. Windows のコマンドプロンプトを実行する.
  4. OpenBLAS の作業ディレクトリを削除する(以前作業したときのものが残っていたら削除したいため)
    C:
    cd %HOMEPATH%
    rmdir /s /q OpenBLAS
    

    [image]
  5. ソースコードのダウンロード
    cd %HOMEPATH%
    git clone --recursive https://github.com/xianyi/OpenBLAS.git
    

    [image]
  6. gcc, gfortran のフルパスの確認
    where gcc
    where gfortran
    

    [image]
  7. cmake の実行

    https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide の記述による

    cd %HOMEPATH%
    cd OpenBLAS
    make FC=gfortran BINARY=64
    

    [image]
  8. make の結果の確認

    エラーメッセージが出なければ OK.

    [image]
  9. インストール

    「make install」でインストール.

    make PREFIX="C:/OpenBLAS" install
    

    [image]
  10. 終了の確認

    エラーメッセージが出なければ OK.

    [image]
  11. C:\OpenBLAS の下にファイルができるので確認する
    dir C:\OpenBLAS
    dir C:\OpenBLAS\include
    dir C:\OpenBLAS\lib
    dir C:\OpenBLAS\bin
    

    [image]
  12. Windowsシステム環境変数 Path に次の値を追加することにより,パスを通す

    管理者として実行した コマンドプロンプトで,次のコマンドを実行する.

    call powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\OpenBLAS\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

    [image]
  13. Windows のシステム環境変数 OpenBLAS, OpenBLAS_ROOTC:\OpenBLAS を設定

    管理者として実行した コマンドプロンプトで,次のコマンドを実行する.

    call powershell -command "[System.Environment]::SetEnvironmentVariable(\"OpenBLAS\", \"C:\OpenBLAS\", \"Machine\")"
    call powershell -command "[System.Environment]::SetEnvironmentVariable(\"OpenBLAS_ROOT\", \"C:\OpenBLAS\", \"Machine\")"
    

    [image]

OpenBLAS のプログラムをコンパイルし,実行する

https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用

gcc による動作確認

Windows での確認手順と結果は次の通り

  1. Windows で,コマンドプロンプトを実行
  2. プログラムの準備

    https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用. hoge.cのようなファイル名で保存.

  3. ビルドして実行
    gcc -I"C:\OpenBLAS\include" -c -o hoge.o hoge.c
    gcc -L"C:\OpenBLAS\lib" -o a.exe hoge.o -lopenblas
    .\a.exe
    

    [image]

Build Tools for Visual Studio による動作確認

https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用

Windows での確認手順と結果は次の通り

  1. Windows では,Visual Studio の x64 Native Tools コマンドプロンプトを使う.(Windows のスタートメニューで起動できる).
  2. プログラムの準備

    https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用. hoge.cのようなファイル名で保存.

  3. ビルドして実行
    cl /I"C:\OpenBLAS\include" hoge.c /link /LIBPATH:"C:\OpenBLAS\lib" libopenblas.dll.a
    .\hoge.exe
    

    [image]

LAPACK のプログラムをコンパイルし,実行する

eig_lapack.c を使用

gcc による動作確認

Windows での確認手順と結果は次の通り

  1. Windows で,コマンドプロンプトを実行
  2. プログラムの準備

    eig_lapack.c を使用

  3. ビルドして実行
    gcc -I"C:\OpenBLAS\include" -c -o eig_lapack.o eig_lapack.c
    gcc -L"C:\OpenBLAS\lib" -o a.exe eig_lapack.o -lopenblas
    .\a.exe
    

    [image]

Build Tools for Visual Studio による動作確認

https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用

Windows での確認手順と結果は次の通り

  1. Windows では,Visual Studio の x64 Native Tools コマンドプロンプトを使う.(Windows のスタートメニューで起動できる).
  2. プログラムの準備

    eig_lapack.c を使用

  3. ビルドして実行
    cl /I"C:\OpenBLAS\include" eig_lapack.c /link /LIBPATH:"C:\OpenBLAS\lib" libopenblas.dll.a
    .\eig_lapack.exe
    

    [image]