世界将棋AI 電竜戦バージョン(「GCT電竜」同梱)
dlshogiの世界将棋AI 電竜戦バージョンのWindows用ビルド済みファイル。
NVIDIAのGPU非搭載のPCでも動作するOnnxRuntime版を含む。
実行環境
実行するには以下の環境が必要。
ハードウェア
以下のハードウェアが必要。
[必須]
・AVX2命令に対応したx86-64 CPU
以下のいずれか
・CUDA 11.0以上に対応したGPU(GeForce 2080など) [推奨※]
・DirectX12対応グラフィックカード(内蔵グラフィックスでも可)
※TensorCoreを搭載したGPUを推奨
OS
Windows 10 64bit version 1903 以上
CUDA対応のGPUの場合、以下のインストール・設定が必要
CUDA
CUDA 11.0をインストールする。
https://developer.nvidia.com/cuda-downloads
cuDNN
cuDNN 8.0をダウンロードして、cudaディレクトリの中身(cudaディレクトリごとではないので注意)をCUDAのインストールディレクトに上書きコピーする。
インストールディレクトリはデフォルトでは以下のパスになる。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0
※cuDNNのダウンロードにはユーザ登録が必要
https://developer.nvidia.com/cudnn
TensorRT
TensorRT 7.2.1をダウンロードして、適当なディレクトリに解凍する。
https://developer.nvidia.com/tensorrt
環境変数PATHの設定
環境変数PATHに、CUDAのbinディレクトリを追加する。
デフォルトのインストールディレクトリの場合、以下のパスになる。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
環境変数PATHに、TensorRTのlibディレクトリを追加する。
C:\に解凍した場合、以下のパスになる。
C:\TensorRT-7.2.1.6\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からgct-dlshogi-denryu2020.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-0000167.onnx(GCT電竜)もしくはmodel_rl_val_wideresnet10_selfplay_431.onnx(dlshogi)のパス。デフォルトmodel-0000167.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ではエンジン登録に失敗することがあるため、将棋所に登録してキャッシュファイルを作る。