ふかうら王のビルド手順 - mizar/YaneuraOu GitHub Wiki
- ふかうら王のインストール手順
- やねうら王のビルド手順 も参考にしてください。
DirectML版のビルドは、Visual Studioでは、NuGetを用いてOnnxRuntimeをインストールするのが手軽です。
Visual StudioのNuGetの使い方
クイック スタート: Visual Studio にパッケージをインストールして使用する (Windows のみ)
https://docs.microsoft.com/ja-jp/nuget/quickstart/install-and-use-a-package-in-visual-studio
Visual StudioのNuGetでインストールするときのpackage名
- Microsoft.AI.DirectML
- Microsoft.ML.OnnxRuntime.DirectML
また、Windows SDKが必要です。DirectML.hのincludeでコンパイルエラーになる場合は、これが原因です。
関連記事
Version | Zip/Installer Filename | |
---|---|---|
CUDA | 11.6 (ふかうら王V7.61) 11.7 (ふかうら王開発版) |
cuda_11.6.2_511.65_windows.exe (ふかうら王V7.61) cuda_11.7.0_516.01_windows.exe (ふかうら王開発版) |
TensorRT | 8.2.4.2 (8.2 GA Update 3) (ふかうら王V7.61) 8.2.5.1 (8.2 GA Update 4) (ふかうら王開発版) |
TensorRT-8.2.4.2.Windows10.x86_64.cuda-11.4.cudnn8.2.zip (ふかうら王V7.61) TensorRT-8.2.5.1.windows10.x86_64.cuda-11.4.cudnn8.2.zip (ふかうら王開発版) NVIDIA TensorRT Download |
cuDNN | 8.4.0.27 | cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip cuDNN Download (最新版) / cuDNN Archive (旧版) |
zlib | 1.2.3 | zlib123dllx64.zip |
を参考に、CUDAをインストールして、TensorRT、cuDNN、zlibを以下のように展開して配置します。
ビルドに必須なのはこのうちCUDAとTensorRTのみですが、cuDNNとzlibも以下のように配置すれば、ビルド先に実行に必要な.dllファイルを適宜コピーします。
- 🗄️ C:\
- 📁 ProgramData (隠しフォルダ)
- 📁 YaneuraOu
- 📁 cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive
- 📁 bin
- 📁 include
- 📁 lib
- 📁 TensorRT-8.2.5.1
- 📁 bin
- 📁 include
- 📁 lib
- ...
- 📁 zlib123dllx64
- 📁 dll_x64
- 📁 static_x64
- 📄 readme.txt
上記以外のファイル配置やバージョンで使いたい、Visual Studioをお使いの方は、
- source/prop/YaneuraOuEdition-Deep-ORT-TRT.prop
- source/prop/YaneuraOuEdition-Deep-TensorRT.prop
というプロパティシートでCUDA、TensorRTのフォルダを追加のinclude/libフォルダとして指定してあるのでそこを適宜修正して使ってください。
- include = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\【CUDAのバージョン番号】\include
- lib path = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\【CUDAのバージョン番号】\lib\x64
💡 ↑は、x64(64bit)版の時。32bit版なら"lib\x86"となっている。
Docker環境でふかうら王のDockerfileの方にUbuntuでビルドするまでのコマンドが書かれていますので、それを参考にすると良いと思います。
Docker環境でふかうら王を起動するものはMizarさんが公開されています。
- 将棋AIエンジン ふかうら王,dlshogi (TensorRT版) 構築 : https://github.com/mizar/docker-jupyter-dlshogi/tree/main/engine_fukauraou_dlshogi
- Dockerfile : https://github.com/mizar/docker-jupyter-dlshogi/blob/main/engine_fukauraou_dlshogi/fukauraou_dlshogi.dockerfile
💡 Windowsから上記のDocker環境を構築し、起動するコマンドを以下のように書いて、後者を将棋所やShogiGUIに登録すると思考エンジンとして使えます。
-
事前準備
- Docker imageのビルドのために必要なCUDA等のライブラリの用意。
- こちらの手順通りに。 👉 https://github.com/mizar/docker-jupyter-dlshogi#docker-desktop-%E7%92%B0%E5%A2%83%E3%81%AA%E3%81%A9%E3%81%AE%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99
-
Dockerのビルド
- 以下の .cmdファイルを思考エンジン起動コマンドの前に実行。
- 引用元 👉 https://github.com/mizar/docker-jupyter-dlshogi/blob/main/engine_fukauraou_dlshogi/fukauraou_dlshogi_build.cmd
@echo off
cd %~dp0
docker build . -f fukauraou_dlshogi.dockerfile -t fukauraou
- Dockerの思考エンジン起動コマンド
- この.cmdファイルを将棋所やShogiGUIに思考エンジンとして登録して使う。
- 引用元 👉 https://github.com/mizar/docker-jupyter-dlshogi/blob/main/engine_fukauraou_dlshogi/engine_fukauraou_avx2.cmd
@echo off
cd %~dp0
docker run -i --rm --gpus all -v %CD%:/workspace --ipc=host fukauraou FukauraOu-avx2 %1 %2 %3 %4 %5 %6 %7 %8 %9
🖋 Docker環境のなかでNVIDIAのGPUが認識できているかは、例えば次のようにすればわかります。
■ dockerコマンド
docker run -i --rm --gpus all nvidia/cuda:11.7.0-base-ubuntu20.04 nvidia-smi
■ 出力例
Unable to find image 'nvidia/cuda:11.7.0-base-ubuntu20.04' locally
11.7.0-base-ubuntu20.04: Pulling from nvidia/cuda
d5fd17ec1767: Already exists
2acb984f1135: Pull complete
558be3b594fb: Pull complete
acebc65b4885: Pull complete
6d5b0e795a9b: Pull complete
Digest: sha256:88754a02905efb25dacdc749ec5020875d7048012957c68f957541fcff7e251d
Status: Downloaded newer image for nvidia/cuda:11.7.0-base-ubuntu20.04
Sat May 21 01:49:31 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.43.01 Driver Version: 516.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 On | N/A |
| 0% 39C P8 31W / 350W | 2592MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce ... On | 00000000:21:00.0 Off | N/A |
| 0% 31C P8 17W / 350W | 8MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+