Skip to content

ふかうら王のビルド手順

yaneurao edited this page May 9, 2024 · 10 revisions

ふかうら王のビルド手順

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版のふかうら王のビルド

を参考に、CUDAをインストールして、TensorRT、cuDNNを以下のように展開して配置します。

ビルドに必須なのはこのうちCUDAとTensorRTのみですが、cuDNNも以下のように配置すれば、ビルド先に実行に必要な.dllファイルを適宜コピーします。

- 🗄️ C:\
  - 📁 ProgramData (隠しフォルダ)
    - 📁 YaneuraOu
      - 📁 cudnn-windows-x86_64-8.9.7.29_cuda12-archive
        - 📁 bin
        - 📁 include
        - 📁 lib
      - 📁 TensorRT-8.6.1.6
        - 📁 bin
        - 📁 include
        - 📁 lib
        - ...

上記以外のファイル配置やバージョンで使いたい、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でビルドするまでのコマンドが書かれていますので、それを参考にすると良いと思います。

例) ビルド用のmakeコマンド

make clean YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU
make -j8 tournament COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU ENGINE_NAME="FukauraOuV8.20" TARGET_CPU=AVX2
cp ./YaneuraOu-by-gcc ~

GPU 32個までに対応。

make clean YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU
make -j8 tournament COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU ENGINE_NAME="FukauraOuV8.20" TARGET_CPU=AVX2 EXTRA_CPPFLAGS="-DMAX_GPU=32"
cp ./YaneuraOu-by-gcc ~

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                                                 |
+-----------------------------------------------------------------------------+

ビルド時のMAX_GPUの指定について

また、ふかうら王をビルドする時に MAX_GPU = 32のように指定すると、GPUは16個までではなく32個まで扱えるようになります。(DNN_Model17~32, DNN_Batch_Size17~32, UCT_Threads17~32という思考エンジンオプションが追加されます。)

Macでふかうら王

Macでは、GPU(機械学習専用チップNeural Engine搭載機種ではNeural Engine)を使用するためCore ML版をビルドします。

macOS Montereyでビルド・動作します。Core MLが実装されていれば、もう少し古い環境でもビルド可能と思われます。ビルドには、Xcode Command Line Toolsのインストールが必要です。サードパーティ製ライブラリは不要です。

プロジェクトルートで以下のコマンドを実行することでビルドできます。

make -C source YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_COREML TARGET_CPU=APPLEM1

Macは2020年以降のM1チップと、それ以前のIntelチップでCPUアーキテクチャに互換性がありません。TARGET_CPUを書き換えることで対象CPUアーキテクチャを切り替えます。

ターゲット環境 TARGET_CPU
M1 Mac APPLEM1
Intel Mac APPLEAVX2
Clone this wiki locally