Skip to content

第31回世界コンピュータ将棋選手権バージョン

Compare
Choose a tag to compare
@TadaoYamaoka TadaoYamaoka released this 05 May 02:57
· 499 commits to master since this release

dlshogiの第31回世界コンピュータ将棋選手権バージョンのWindows用ビルド済みファイルとdlshogi with GCTのモデルファイル。
NVIDIAのGPU非搭載のPCでも動作するOnnxRuntime版を含む。

実行環境

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

ハードウェア

以下のハードウェアが必要。
[必須]
・AVX2命令に対応したx86-64 CPU
以下のいずれか
・CUDA 11.1に対応したGPU(GeForce 2080など) [※TensorCoreを搭載したGPUを推奨]
・DirectX12対応グラフィックカード(内蔵グラフィックスでも可)

OS

Windows 10 64bit version 1903 以上

CUDA対応のGPUの場合、以下のインストール・設定が必要

CUDA

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

cuDNN

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

TensorRT

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

環境変数PATHの設定

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

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

OnnxRuntime版の実行には、Visual C++ランタイムが必要

Visual C++ランタイム

https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads
から、vc_redist.x64.exeをダウンロードしてインストールする。

インストール

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

対局方法

エンジン登録

dlshogi_tensorrt.exe(TensorRT版)もしくはdlshogi_onnxruntime.exe(OnnxRuntime版)を将棋所などのUSIに対応したGUIソフトに登録する。
CUDA対応GPUでない場合は、OnnxRuntime版を使用する。

エンジン設定

パラメータ 設定値
Book_File Apery形式のbookファイルが使用可能。デフォルトは「GCT電竜」の定跡(book.bin)になっている。
OwnBook 定跡を使用する場合オンにする。
DNN_Model 解凍したフォルダにあるmodel-0000225kai.onnxもしくはmodel-0000226kai.onnxのパス。デフォルトmodel-0000225kai.onnx。
DNN_Batch_Size 推論のバッチサイズ。NPSが最大になるように調整する。128が推奨値。検討モードでは256が推奨値。
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にする。GPUが1枚の場合、0とする。
USI_Ponder 同一マシンでのエンジン同士の対局の場合オフにする
Byoyomi_Margin デフォルト0。切れ負けする場合は増やす。
Stochastic_Ponder Ponderが有効な場合、相手局面に対して探索するかのフラグ。オンを推奨。
UCT_NodeLimit 最大探索ノード数。1ノードあたり2Kbyteのメモリが必要。デフォルト10000000。

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

キャッシュファイル作成

TensorRT版では、初回の対局開始時に、TensorRTでモデルの最適化を行うため、1手目の開始が遅い。2回目以降はキャッシュを使用するため速くなる。
ShogiGUIではエンジン登録に失敗することがあるため、将棋所に登録してキャッシュファイルを作る。
もしくは、「build_onnx.exe」にmodel-0000225kai.onnxもしくはmodel-0000226kai.onnxをドラッグ&ドロップする。

GPUのドライバを更新した場合、キャッシュファイルがあると起動できなくなる場合がある。その場合、モデルファイルと同じフォルダにある拡張子が「.serialized」のキャッシュファイルを削除する。