トップページ -> インストール,設定,利用 -> Windows ソフトウエア -> OpenBLAS をソースコードからビルドして、インストール(clang, flang を使用)(Windows 上)
[サイトマップへ], [サイト内検索へ]

OpenBLAS をソースコードからビルドして、インストール(clang, flang を使用)(Windows 上)

Windows で,OpenBLAS をソースコードからビルドしてインストールする手順をスクリーンショット等で説明する.clang, flang を使用する. BLAS(Basic Linear Algebra Subprograms)は,行列演算,ベクトル演算の機能をもったプログラム群.

【このページの目次】

  1. 前準備
  2. perl, nijna, clang, flang および関連パッケージのインストール(conda3 を使用)
  3. Windows で OpenBLAS をソースコードからビルドして,インストールする
  4. OpenBLAS の動作確認

サイト内の関連 Web ページ

謝辞

OpenBLAS の作者に感謝します


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


前準備

Python のインストール,pip と setuptools の更新,Python 開発環境のインストール(Windows 上)

  1. Python のインストール

    Python の URL: http://www.python.org/

    インストール手順の詳細は: 別ページで説明している.

  2. pip と setuptools の更新Python 開発環境(JupyterLab, spyder)のインストール

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

    python -m pip install -U pip setuptools
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    

Git, cmake のインストール

Git の URL: https://git-scm.com/

cmake の URL: https://cmake.org/download/

Visual C++ ビルドツール (Build Tools) のインストール

Windows での Visual C++ ビルドツール (Build Tools) のインストール手順は、 「別のページ」で説明している.

miniconda3 のインストール

Anaconda をすでにインストール済みのときは,miniconda をインストールしないこと(Anaconda の中の conda を使うことにする)

Windows での miniconda3 のインストール手順は, 別ページで説明している.


perl, nijna, clang, flang および関連パッケージのインストール(conda を使用)

  1. Windows で,コマンドプロンプトを管理者として実行

    [image]
  2. perl, nijna, clang, flang および関連パッケージのインストール

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

    kitware/nijna の説明は https://github.com/Kitware/ninja

    miniconda3 をインストールしたときに,パスを通していなかった場合は,「conda」と書く代わりに,「C:\tools\miniconda3\Library\bin\conda.bat」あるいは「C:\ProgramData\miniconda3\scripts\conda」のようにフルパスで指定する.

    conda install -y perl 
    conda install -y -c conda-forge flang clangdev libflang
    conda config --remove channels conda-forge
    conda install -y -c isuruf kitware-ninja
    conda config --remove channels isuruf
    
    [image]
  3. 新しく、 Windows のコマンドプロンプトを開く
  4. OpenBLAS のインストールの前に、perl, cmake の確認

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

    where perl
    where cmake
    

    [image]
  5. clang, flang のバージョン、インストールディレクトリ等の確認
    clang --version
    flang --version
    

    [image]
  6. システム環境変数 LIB先頭に次を追加

    miniconda3 の配下にインストールされたライブラリ等を有効にするため

    C:\tools\miniconda3」は実際のインストールディレクトリに置き換えること

    C:\tools\miniconda3\Library\lib
    

    [image]
  7. システム環境変数 CPATH先頭に次を追加

    Anaconda の配下にインストールされたインクルードファイル等を有効にするため

    C:\tools\miniconda3」は実際のインストールディレクトリに置き換えること

    C:\tools\miniconda3\Library\include
    

    [image]

Windows で OpenBLAS をソースコードからビルドして,インストールする

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

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

    https://www.openblas.net/

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

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

    [image]
  3. Visual Studio の x64 Native Tools コマンドプロンプトを開く.

    ※ 起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (Command Prompt)」(あるいは類似名のもの)を選ぶ

    ※ 「x64 Native Tools コマンドプロンプト (Command Prompt)」がないときは, Visual C++ ビルドツールのインストールを行う. Visual C++ ビルドツールのインストール手順は,別ページで説明している.

  4. OpenBLAS のインストールディレクトリを空にする
    mkdir C:\tools
    cd C:\tools
    rmdir /s /q OpenBLAS
    

    [image]
  5. ソースコードのダウンロード
    cd C:\tools
    git clone https://github.com/xianyi/OpenBLAS.git
    

    [image]
  6. cmake の実行

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

    cd C:\tools
    cd OpenBLAS
    rmdir /s /q build
    mkdir build
    cd build
    del CMakeCache.txt
    cmake .. -G "Ninja" ^
        -DCMAKE_C_COMPILER=clang-cl ^
        -DCMAKE_Fortran_COMPILER=flang ^
        -DNOFORTRAN=0 -DDYNAMIC_ARCH=OFF ^
        -DCMAKE_INSTALL_PREFIX="C:\tools\OpenBLAS" ^
        -DCMAKE_BUILD_TYPE=Release
    

    [image]
  7. cmake の結果の確認

    エラーメッセージが出ていないこと

    ※ ここでエラーが出た場合には、 「x64 Native Tools コマンドプロンプト」を使っていることを確認する ※ ここでエラーが出て、 「x64 Native Tools コマンドプロンプト」を使っている場合は、 システム環境変数 LIBシステム環境変数 CPATHを確認する

    [image]
  8. ビルド
    cmake --build . --config Release --target install 
    

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

    [image]
  10. C:\tools\OpenBLAS の下にファイルができるので確認する

    [image]

    [image]

    [image]
  11. Windows のシステム環境変数 CPATHC:\tools\OpenBLAS\include追加

    [image]
  12. Windows のシステム環境変数 LIBC:\tools\OpenBLAS\lib追加

    [image]
  13. Windows のシステム環境変数 PathC:\tools\OpenBLAS\bin追加

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

    これは OpenCV のビルドのときに利用される環境変数

    [image]

    [image]

OpenBLAS の動作確認

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

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

  1. Visual Studio の x64 Native Tools コマンドプロンプトを開く.

    ※ 起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (Command Prompt)」(あるいは類似名のもの)を選ぶ

    ※ 「x64 Native Tools コマンドプロンプト (Command Prompt)」がないときは, Visual C++ ビルドツールのインストールを行う. Visual C++ ビルドツールのインストール手順は,別ページで説明している.

  2. プログラムの準備

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

  3. ビルドして実行

    ビルド時にエラーが出たときは、システム環境変数 LIB を確認すること

    cl hoge.c /I "C:\tools\OpenBLAS\include\openblas" openblas.lib
    .\hoge.exe
    

    [image]

    次のように「コンピュータに openblas.dllがないため、プログラムを開始できません。」と表示される場合がある

    [image]

    このときは、 Windows のシステム環境変数 Path に C:\tools\OpenBLAS\bin を追加しているか、確認すること


サンプルプログラム

OpenBLASを用いて行列の積を求める.実行結果は何も表示されない.

#include "stdafx.h"
#include <stdlib.h>
#include <cblas.h>
#define N 2000

int main()
{
	// C = AB
	int i;
	double *A, *B, *C;

	A = (double *)malloc(sizeof(double) * N * N);
	B = (double *)malloc(sizeof(double) * N * N);
	C = (double *)malloc(sizeof(double) * N * N);

	for (i = 0; i < N * N; i++) {
		A[i] = (double)rand() / RAND_MAX;
		B[i] = (double)rand() / RAND_MAX;
	}
	cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, N, N, N, 1.0, A, N, B, N, 0.0, C, N);

	free(A);
	free(B);
	free(C);

	return 0;
}

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

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