flannは、高次元空間での近似最近傍探索(approximate nearest neighbor searches)を行うライブラリ.マイクロソフト C++ ビルドツールを使用する.GPUを利用するように設定する手順も説明する.
【目次】
※ flann の利用条件などは、利用者が確認すること。次のWeb ページを活用してください
https://github.com/flann-lib/flann
謝辞
flann の作者に感謝します
Build Tools for Visual Studio は,Windows で動くMicrosoft の C++ コンパイラーである.
ダウンロードページ
https://visualstudio.microsoft.com/ja/downloads/
詳細説明
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)のインストール: 別ページで説明している.
インストール手順の概要
Git のページ https://git-scm.com/ からダウンロードしてインストール:
cmake のダウンロードページ: https://cmake.org/download/
GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある. NVIDIA CUDA ツールキット は,NVIDIA社が提供している GPU 用のプラットフォームである.
【インストール手順の詳細説明】
Windows のスタートメニューで「設定」,「アプリ」と操作して,「NVIDIA ・・・」を削除
hwinfo (URL: https://www.hwinfo.com) を使って調べることができる.
あとで、NVIDIA CUDA ツールキットをインストールするので、そのときに、NVIDIA ドライバもインストールすることにする.次へ進む.
但し, NVIDIA CUDA ツールキットの古いバージョンを使う場合には,次のページから,最新のNVIDIA ドライバをダウンロードして,インストールする.
NVIDIA ドライバのダウンロードページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
NVIDIA ドライバのインストールが必要な場合は,このときに,同時にインストールする
次のページからダウンロードし,インストールする.
NVIDIA CUDA ツールキットのページ: https://developer.nvidia.com/cuda-toolkit-archive
NVIDIA CUDA クイックスタートの公式ページ: https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html
管理者として実行した コマンドプロンプトで,次のコマンドを実行.
v11.7」のところは,実際にインストールされているバージョンを確認し,読み替えてください.
cd "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin" curl -O http://www.winimage.com/zLibDll/zlib123dllx64.zip call powershell -command "Expand-Archive zlib123dllx64.zip" copy zlib123dllx64\dll_x64\zlibwapi.dll .
Windows で 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときの対処:
ここの説明を参考に ZLIB DLL をインストールする.
cuDNN のダウンロードのため.
「Join now」をクリック.その後,画面の指示に従う. 利用者本人が,電子メールアドレス,表示名,パスワード,生年月日を登録.利用条件等に合意.
「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7」に展開(解凍)した場合は, すでに パスは通っているので,何もしなくてよい.
Windowsのコマンドプロンプトを開き,次のコマンドを実行.エラーメッセージが出ないことを確認.
where cudnn64_8.dll
システム環境変数 CUDNN_PATH の設定
管理者として実行した コマンドプロンプトで,次のコマンドを実行.
「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7」は, 実際に展開(解凍)したディレクトリに読み替えること.
call powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDNN_PATH\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\", \"Machine\")"
起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.
「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がないとき:
C++ ビルドツール (Build Tools) のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がインストールされる.その手順は,別ページで説明している
cd %LOCALAPPDATA% rmdir /s /q flann
cd %LOCALAPPDATA% git clone https://github.com/mariusmuja/flann
cmake でのオプションについて
cmake のオプションの 「Visual Studio 16 2019」のところは, 使用する Visual Studio のバージョンにあわせること. Visual Studio 2022 のときは,「Visual Studio 17 2022」. Visual Studio 2019 のときは,「Visual Studio 16 2019」
cmake の実行手順例は次の通り
cd %LOCALAPPDATA% cd flann del CMakeCache.txt rmdir /s /q build mkdir build cd build del CMakeCache.txt cmake -G "Visual Studio 16 2019" -T host=x64 ^ -DCMAKE_INSTALL_PREFIX="c:\flann" ^ -DBUILD_EXAMPLES=ON ^ -DBUILD_PYTHON_BINDINGS=OFF ^ -DBUILD_CUDA_LIB=ON ^ -DHDF5_C_INCLUDE_DIR="%LOCALAPPDATA%\CMake-hdf5-1.10.4\hdf5-1.10.4\c++\src" ^ -DHDF5_DIFF_EXECUTABLE="%LOCALAPPDATA%\CMake-hdf5-1.10.4\build\bin\Release\h5diff.exe" ^ -DHDF5_DIR="%LOCALAPPDATA%\CMake-hdf5-1.10.4\hdf5-1.10.4" ^ -DHDF5_hdf5_LIBRARY_RELEASE="%LOCALAPPDATA%\CMake-hdf5-1.10.4\build\bin\Release\hdf5.lib" ^ ..
※ 下図のとおりになるとは限らない.自動設定がうまくいっていない場合は、1つ上の「cmake の実行」のところを、設定を変えてやり直す.
cmake --build . --config RELEASE --target INSTALL
エラーメッセージが出ていないことを確認.最後のほうに「0 エラー」のように表示されるのを確認.
※ 黄色の警告メッセージは無視しても良い
忘れていた場合には、 zlib のインストールを行った後、 「cmake の実行」からやり直す
忘れていた場合には、 liblz4 のインストールを行った後、 「cmake の実行」からやり直す
忘れていた場合には、 hdf5 のインストールを行った後、 「cmake の実行」からやり直す
次のように設定する
%LOCALAPPDATA%\flann
次のように追加する
%LOCALAPPDATA%\flann\lib
https://usermanual.wiki/Document/flannmanual184.1650808969/html の PDF ファイルに掲載のプログラムを動作確認に使用
VS 2017用 x64 Native Tools コマンドプロンプトで、次を実行する。エラーメッセージが出なければOKとする
cd %LOCALAPPDATA%\flann\examples cl flann_example.cpp ^ /I %LOCALAPPDATA%\flann\include ^ /I %LOCALAPPDATA%\CMake-hdf5-1.10.4\hdf5-1.10.4\src ^ /I %LOCALAPPDATA%\CMake-hdf5-1.10.4\build ^ -o flann_example_cpp.exe ^ libhdf5.lib liblz4.lib zlib.lib msvcrt.lib
ビルドでエラーメッセージが出たときは、
を確認する
cd %LOCALAPPDATA%\flann\examples g++ flann_example.cpp ^ -I %LOCALAPPDATA%\flann\include ^ -o flann_example_cpp.exe ^ %LOCALAPPDATA%\CMake-hdf5-1.10.4\build\bin\Release\hdf5.lib-llz4