Skip to content

世界コンピュータ将棋オンライン大会バージョン

Compare
Choose a tag to compare
@TadaoYamaoka TadaoYamaoka released this 08 May 14:52
· 723 commits to master since this release

dlshogiの世界コンピュータ将棋オンライン大会のWindows版ビルド済みファイルです。
アピール文章

実行環境

実行するには以下の環境が必要

ハードウェア

以下のハードウェアが必要
・AVX命令に対応したx86-64 CPU
・CUDA 10.2以上に対応したGPU(GeForce 2080など)
※TensorCoreを搭載したGPUを推奨

OS

Windows 10 64bit

CUDA

CUDA 10.2をインストールする。
https://developer.nvidia.com/cuda-downloads

cuDNN

cuDNN 7.6をダウンロードして、cudaディレクトリの中身(cudaディレクトリごとではないので注意)をCUDAのインストールディレクトに上書きコピーする。
インストールディレクトリはデフォルトでは以下のパスになる。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
※cuDNNのダウンロードにはユーザ登録が必要
https://developer.nvidia.com/cudnn

TensorRT

TensorRT 7.0をダウンロードして、適当なディレクトリに解凍する。
https://developer.nvidia.com/tensorrt

環境変数PATHの設定

環境変数PATHに、CUDAのbinディレクトリを追加する。
デフォルトのインストールディレクトリの場合、以下のパスになる。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin

環境変数PATHに、TensorRTのlibディレクトリを追加する。
C:\に解凍した場合、以下のパスになる。
C:\TensorRT-7.0.0.11\lib

インストール

このページの下のAssetsからダウンロードしたdlshogi-wcsoc2020.zipを任意のディレクトリに解凍する。
※モデルファイルがあるディレクトリにキャッシュを作成するため、書き込み権限がある必要がある。そのため、C:\Program Files配下にはモデルファイルを配置できない。

対局方法

エンジン登録

usi.exeを将棋所などのUSIに対応したGUIソフトに登録する。

エンジン設定

パラメータ 設定値
Book_File Apery形式のbookファイルが使用可能。デフォルトは大会で使用したbook_wcsoc2020.binになっている。
OwnBook 定跡を使用する場合オンにする。
DNN_Model 解凍したディレクトリにあるmodel_rl_val_wideresnet10_selfplay_320.onnxのパス。TensorCoreを搭載していないGPUの場合、for_learningディレクトリにあるmodel_rl_val_wideresnet10_selfplay_320を使用する。
DNN_Model2~DNN_Model8 GPUが複数枚あり、GPUごとに異なるモデルを設定する場合にモデルのパスを設定する。GPUが1枚の場合、空欄にする。
DNN_Batch_Size 推論のバッチサイズ。NPSが最大になるように調整する。128が推奨値。
DNN_Batch_Size2~DNN_Batch_Size8 GPUが複数枚ある場合、GPUごとにバッチサイズを変える場合に設定する。
Mate_Root_Search df-pnによる詰み探索の深さ制限値。ルートノードでの詰み探索を行わない場合は0にする。
UCT_Threads GPU1枚当たりの探索のスレッド数。基本は2~3にする。
UCT_Threads2~UCT_Threads8 GPUが複数枚ある場合、それぞれのGPUに割り当てるモンテカルロ木探索のスレッド数。基本は2~3にする(Windowsでは2を推奨)。GPUが1枚の場合、0とする。
USI_Ponder 同一マシンでエンジン同士の対局の場合オフにする
Byoyomi_Margin 同一マシンで対局する場合は、100くらい。切れ負けする場合は増やす。
Stochastic_Ponder Ponderが有効な場合、相手局面に対して探索するかのフラグ
UCT_Hash ハッシュのサイズ。デフォルトで、16GB以上のメモリが必要。起動しない場合、1/2ずつ減らす。2のN乗である必要がある。

残りの設定はデフォルトでよい。

起動しない場合は、UCT_Hashを減らす。また、メモリが確保できない場合は、PCを再起動すると起動する場合がある。

世界コンピュータ将棋オンライン大会での設定

世界コンピュータ将棋オンライン大会では、LinuxでNVIDIA V100を8枚使用した。
LinuxでNPSが上がるようにUCT_Threadsは3に設定した。
また、Ponderを有効にし、Stochastic_Ponderをオンにして、相手局面に対して探索するようにした。

学習用モデル

追加で学習するためのモデルは、for_learningディレクトリに格納している。

その他

初回の対局開始時に、TensorRTでモデルの最適化を行うため、1手目の開始が遅い。2回目以降はキャッシュを使用するため速くなる。