Windows で,OpenBLAS をソースコードからビルドしてインストールする手順をスクリーンショット等で説明する.clang, flang を使用する. BLAS(Basic Linear Algebra Subprograms)は,行列演算,ベクトル演算の機能をもったプログラム群.
【このページの目次】
サイト内の関連 Web ページ
謝辞
OpenBLAS の作者に感謝します
BLAS の機能の概要(ごく一部)
Python の URL: http://www.python.org/
インストール手順の詳細は: 別ページで説明している.
コマンドプロンプトを管理者として実行し,次のコマンドを実行.
python -m pip install -U pip setuptools python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
Git の URL: https://git-scm.com/
cmake の URL: https://cmake.org/download/
sudo apt -yV install git cmake cmake-curses-gui cmake-gui
Windows での Visual C++ ビルドツール (Build Tools) のインストール手順は、 「別のページ」で説明している.
Anaconda をすでにインストール済みのときは,miniconda をインストールしないこと(Anaconda の中の conda を使うことにする)
Windows での miniconda3 のインストール手順は, 別ページで説明している.
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
エラーメッセージが出なければ OK.
where perl where cmake
clang --version flang --version
miniconda3 の配下にインストールされたライブラリ等を有効にするため
「C:\tools\miniconda3」は実際のインストールディレクトリに置き換えること
C:\tools\miniconda3\Library\lib
Anaconda の配下にインストールされたインクルードファイル等を有効にするため
「C:\tools\miniconda3」は実際のインストールディレクトリに置き換えること
C:\tools\miniconda3\Library\include
参考 Web ページ https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide
必ず、最新情報を確認すること
※ 起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (Command Prompt)」(あるいは類似名のもの)を選ぶ
※ 「x64 Native Tools コマンドプロンプト (Command Prompt)」がないときは, Visual C++ ビルドツールのインストールを行う. Visual C++ ビルドツールのインストール手順は,別ページで説明している.
mkdir C:\tools cd C:\tools rmdir /s /q OpenBLAS
cd C:\tools git clone https://github.com/xianyi/OpenBLAS.git
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
エラーメッセージが出ていないこと
※ ここでエラーが出た場合には、 「x64 Native Tools コマンドプロンプト」を使っていることを確認する ※ ここでエラーが出て、 「x64 Native Tools コマンドプロンプト」を使っている場合は、 システム環境変数 LIB、システム環境変数 CPATHを確認する
cmake --build . --config Release --target install
これは OpenCV のビルドのときに利用される環境変数
https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用
Windows での確認手順と結果は次の通り
※ 起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (Command Prompt)」(あるいは類似名のもの)を選ぶ
※ 「x64 Native Tools コマンドプロンプト (Command Prompt)」がないときは, Visual C++ ビルドツールのインストールを行う. Visual C++ ビルドツールのインストール手順は,別ページで説明している.
https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用. hoge.cのようなファイル名で保存.
ビルド時にエラーが出たときは、システム環境変数 LIB を確認すること
cl hoge.c /I "C:\tools\OpenBLAS\include\openblas" openblas.lib .\hoge.exe
次のように「コンピュータに openblas.dllがないため、プログラムを開始できません。」と表示される場合がある
このときは、 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ページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ) ![]()