Windows で,OpenBLAS をソースコードからビルドしてインストールする. このとき, FORTRAN は使わないように設定してインストールする
【目次】
OpenBLAS はオープンソースの BLAS(Basic Linear Algebra Subprograms)ライブラリである.行列演算や線形代数計算のための関数を提供する.
主な機能:行列乗算(DGEMM)などの関数,マルチスレッド対応,自動的にCPUを検出してコンパイル,
BLAS を用いたプログラムは, https://gist.github.com/xianyi/6930656 などで公開されている.
【BLAS の主な関数】
【関連する外部ページ】
【インストールの判断】 Build Tools for Visual Studio は,開発ツールセットである. Visual Studio は統合開発環境であり,いくつかの種類があり,Build Tools for Visual Studioの機能を含むか連携して使用するものである.インストールは以下の基準で判断してください:
Visual Studio 2022 をインストールする際に,「C++ によるデスクトップ開発」を選択することで, Build Tools for Visual Studio 2022 の機能も一緒にインストールされる.
不明な点がある場合は,Visual Studio 全体をインストール を行う方が良い.
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Build Tools for Visual Studio 2022と VC2015 再配布可能パッケージをインストールするものである.
起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Visual Studio Community 2022と VC2015 再配布可能パッケージをインストールするものである.
起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.
Gitは,分散型のバージョン管理システム. CMakeは,クロスプラットフォームのビルドシステム生成ツール.
【手順】
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,GitとCMakeをインストールし,Gitにパスを通すものである.
次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.
winget install --scope machine Git.Git powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")" winget install --scope machine Kitware.CMake powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\CMake\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
【関連する外部ページ】
【関連項目】 Git バージョン管理システム, Git の利用, CMake ビルドシステム生成ツール, CMake の使用方法
【関連する外部ページ】 https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide
前もって,OpenBLAS をインストールするディレクトリを決めておく
このページでは,c:\OpenBLAS 下にインストールするものとして説明する.
必ず、最新情報を確認すること
コマンドプロンプトを管理者として実行: 別ページ »で説明
https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide の記述を参考にした.
cd c:\ rmdir /s /q OpenBLAS git clone --recursive https://github.com/xianyi/OpenBLAS.git cd OpenBLAS rmdir /s /q build mkdir build cd build del CMakeCache.txt rmdir /s /q CMakeFiles\ cmake .. -G "Visual Studio 17 2022" -A x64 -T host=x64 ^ -DNOFORTRAN=ON ^ -DDYNAMIC_ARCH=OFF ^ -DCMAKE_INSTALL_PREFIX="c:/OpenBLAS" ^ -DCMAKE_BUILD_TYPE=Release
エラーメッセージが出なければ OK.
終わるまでしばらく待つ
エラーメッセージが出なければ OK.
dir C:\OpenBLAS dir C:\OpenBLAS\include dir C:\OpenBLAS\lib
powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\OpenBLAS\lib\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
これは OpenCV のビルドのときに利用される環境変数
powershell -command "[System.Environment]::SetEnvironmentVariable(\"OpenBLAS\", \"C:\OpenBLAS\", \"Machine\")" powershell -command "[System.Environment]::SetEnvironmentVariable(\"OpenBLAS_ROOT\", \"C:\OpenBLAS\", \"Machine\")"
https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用
Windows での確認手順と結果は次の通り
* その起動は,Windows のスタートメニューで「Visual Studio 2022」の下の「x64 Native Tools Command Prompt for VS 2022」で起動する.(あるいは類似のものを探す)
「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がないとき:
C++ ビルドツール (Build Tools) のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がインストールされる.その手順は,別ページ »で説明
https://gist.github.com/xianyi/6930656 に掲載の プログラムを利用. hoge.cのようなファイル名で保存.
cl /I"C:\OpenBLAS\include\openblas" hoge.c /link /LIBPATH:"C:\OpenBLAS\lib" openblas.lib .\hoge.exe
eig_lapack.c を使用
Windows での確認手順と結果は次の通り
* その起動は,Windows のスタートメニューで「Visual Studio 2022」の下の「x64 Native Tools Command Prompt for VS 2022」で起動する.(あるいは類似のものを探す)
「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がないとき:
C++ ビルドツール (Build Tools) のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がインストールされる.その手順は,別ページ »で説明
eig_lapack.c を使用
cl /I"C:\OpenBLAS\include\openblas" eig_lapack.c /link /LIBPATH:"C:\OpenBLAS\lib" openblas.lib .\eig_lapack.exe