ふかうら王のビルド手順 - mizar/YaneuraOu GitHub Wiki

ふかうら王のビルド手順

Windowsでふかうら王

DirectML版ふかうら王のビルド

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でコンパイルエラーになる場合は、これが原因です。

関連記事

TensorRT版のふかうら王のビルド

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"となっている。

Ubuntuでふかうら王

Docker環境でふかうら王のDockerfileの方にUbuntuでビルドするまでのコマンドが書かれていますので、それを参考にすると良いと思います。

Docker環境でふかうら王

Docker環境でふかうら王を起動するものはMizarさんが公開されています。

💡 Windowsから上記のDocker環境を構築し、起動するコマンドを以下のように書いて、後者を将棋所やShogiGUIに登録すると思考エンジンとして使えます。

  1. 事前準備

  2. Dockerのビルド

@echo off
cd %~dp0
docker build . -f fukauraou_dlshogi.dockerfile -t fukauraou
  1. Dockerの思考エンジン起動コマンド
@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                                                 |
+-----------------------------------------------------------------------------+
⚠️ **GitHub.com Fallback** ⚠️