Skip to content

Releases: TadaoYamaoka/DeepLearningShogi

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

08 May 09:16
Compare
Choose a tag to compare

dlshogiの第32回世界コンピュータ将棋選手権バージョンのWindows用ビルド済みファイル。
NVIDIAのGPU非搭載のPCでも動作するOnnxRuntime版、検討用の倍精度バージョンを含む。
導入方法は、第31回世界コンピュータ将棋選手権バージョンを参照。

モデルファイルは付属しないため、第2回世界将棋AI電竜戦エキシビジョンバージョンのモデルを使用してください。

インストール済みの場合は、解凍したファイルを上書きしてください。

第2回世界将棋AI電竜戦バージョンからの差分

エンジン設定

以下のエンジン設定のパラメータを追加した。

パラメータ 設定値
Random_Ply N手まで訪問回数に応じた確率で指し手を選択する。0の場合使用しない。
Random_Temperature Random_Plyが有効な場合、訪問回数に応じて指し手を選択する際の温度パラメータ(千分率)。高いほど確率が均一になる。
Random_Temperature_Drop 1手ごとに温度(Random_Temperature)を低下する(千分率)。
Random_Cutoff Random_Plyが有効な場合、最善手の勝率から閾値の範囲内の勝率の手を選択する(千分率)。
Random_Cutoff_Drop 1手ごとに勝率の閾値(Random_Cutoff)を低下する(千分率)。

GPU転送の高速化

入力特徴量をbitでGPUに転送し、GPUでFP32/FP16に展開するようにした。
これにより、NPSが向上している。

飛車と角の利きを求める処理の高速化

飛車と角の利きをビット演算で求める処理を実装した。
CPUがZEN2の場合、NPSが向上する。

第2回世界将棋AI電竜戦バージョン

22 Nov 12:14
Compare
Choose a tag to compare

dlshogiの第2回世界将棋AI電竜戦バージョンのWindows用ビルド済みファイル。
NVIDIAのGPU非搭載のPCでも動作するOnnxRuntime版、検討用の倍精度バージョンを含む。
導入方法は、第31回世界コンピュータ将棋選手権バージョンを参照。

モデルファイルは付属しないため、第2回世界将棋AI電竜戦エキシビジョンバージョンのモデルを使用してください。

インストール済みの場合は、解凍したファイルを上書きしてください。

第2回世界将棋AI電竜戦エキシビジョンバージョンからの差分

エンジン設定

以下のエンジン設定のパラメータを追加した。

パラメータ 設定値
Eval_Coef 勝率から評価値に変換する際の係数(デフォルト756)。平手開始局面の評価値を水匠4に近づける場合285に変更する。モデルファイルのパスに拡張子「.ini」を付けたファイルに「Eval_Coef=285」のように設定することも可能。

詰みの読み筋表示対応

詰みの手順を見つけた場合に、詰み手数と読み筋を表示するようにした。
実戦で速く詰みを見つけることに特化しているため、表示される読み筋は最短手順とは限らない。

第2回世界将棋AI電竜戦エキシビジョンバージョン

16 Aug 14:14
Compare
Choose a tag to compare

dlshogiの第2回世界将棋AI電竜戦エキシビジョンバージョンのWindows用ビルド済みファイル。
導入方法は、第31回世界コンピュータ将棋選手権バージョンを参照。
モデルファイルを使用するにはライセンスに同意が必要です。

第31回世界コンピュータ将棋選手権バージョンからの差分

倍精度バージョン

検討用に、倍精度浮動小数点数でビルドしたバイナリを追加した。
ファイル名に「_double」が付く.exeファイルが、倍精度バージョン。

メモリ使用量が増える代わりに、長時間思考した際の評価値が正確になる。
1千万ノード未満では誤差程度のため、通常は倍精度バージョンを使用しなくてよい。
なお、1千万ノード以上探索する場合は、UCT_NodeLimitの値を増やす必要がある。

メモリ使用量の目安

バージョン ノード数 メモリ使用量
通常バージョン 1000万ノード 18.2GB
倍精度バージョン 1000万ノード 23.3GB

エンジン設定

以下のエンジン設定のパラメータを追加した。

パラメータ 設定値
PV_Mate_Search_Threads 探索中に読み筋(PV)上に詰みがないかをチェックするスレッドの数(デフォルト0)。CPUコア数が、UCT_Threads+1(Mate_Root_Searchが1以上の場合)の場合に設定する。CPUのコアが余っていない場合、設定すると弱くなる場合がある。

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

05 May 02:57
Compare
Choose a tag to compare

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」のキャッシュファイルを削除する。

Multi PV対応版

09 Jan 05:49
Compare
Choose a tag to compare

実行ファイルのみの配布です。
世界将棋AI 電竜戦バージョン(「GCT電竜」同梱)を展開したフォルダに上書きしてください。

世界将棋AI 電竜戦バージョン(「GCT電竜」同梱)

25 Nov 12:41
Compare
Choose a tag to compare

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ではエンジン登録に失敗することがあるため、将棋所に登録してキャッシュファイルを作る。

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

08 May 14:52
Compare
Choose a tag to compare

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回目以降はキャッシュを使用するため速くなる。

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

05 May 01:22
2039075
Compare
Choose a tag to compare

dlshogiの第29回世界コンピュータ将棋選手権バージョンのビルド済みファイルです。
アピール文章

実行環境

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

ハードウェア

以下のハードウェアが必要です。
・AVX命令に対応したx86-64 CPU
・CUDA 10以上に対応したGPU(GeForce 1080など)
※TensorCoreを搭載したGPUの場合、探索速度が約2倍になります。

OS

Windows 10 64bit or Windows Server 2016 64bit

CUDA

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

cuDNN

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

環境変数PATHの設定

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

インストール

ダウンロードしたdlshogi-wcsc29.zipを任意のディレクトリに解凍する。
※FP16に対応したGPUの場合、usi.exeをfp16フォルダにあるusi.exeに置き換える。

対局方法

エンジン登録

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

エンジン設定

パラメータ 設定値
Book_File dlshogi-wcsc29.zipを展開したディレクトリにあるbook_wcsc29.binのパス
OwnBook 定跡を使用する場合オンにする。定跡は事前探索を行って作成しているため、MCTSで探索した結果が記録されている。
DNN_Model dlshogi-wcsc29.zipを展開したディレクトリにあるmodel_rl_val_fused_wideresnet10_selfplay_179のパス
DNN_Model2~DNN_Model4 GPUが複数枚あり、GPUごとに異なるモデルを設定する場合にモデルのパスを設定する。GPUが1枚の場合、空欄にする。
DNN_Batch_Size 推論のバッチサイズ。NPSが最大になるように調整する。GeForce 1080が1枚の場合、168が推奨値。
DNN_Batch_Size2~DNN_Batch_Size4 GPUが複数枚ある場合、GPUごとにバッチサイズを変える場合に設定する。
Mate_Root_Search df-pnによる詰み探索の深さ制限値。ルートノードでの詰み探索を行わない場合は0にする。
UCT_Threads GPU1枚当たりの探索のスレッド数。基本はデフォルトの2にする。
UCT_Threads2~UCT_Threads4 GPUが複数枚ある場合、それぞれのGPUに割り当てるモンテカルロ木探索のスレッド数。基本は2にする。GPUが1枚の場合、0とする。
USI_Ponder 同一マシンでエンジン同士の対局の場合オフにする
Byoyomi_Margin 同一マシンで対局する場合は、100くらい。切れ負けする場合は増やす。
Stochastic_Ponder Ponderが有効な場合、相手局面に対して探索するかのフラグ
UCT_Hash ハッシュのサイズ。デフォルトで、16GB以上のメモリが必要。起動しない場合、1/2ずつ減らす。2のN乗である必要がある。

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

起動しない場合は、UCT_Hashを減らしてください。また、連続したメモリ領域が必要なため、PCを再起動すると起動する場合があります。

世界コンピュータ将棋選手権での設定

世界コンピュータ将棋選手権では、NVIDIA V100を4枚使用し、FP16とTensorCoreを有効にしていました。
また、Ponderを有効にし、Stochastic_Ponderをオンにして、相手局面に対して探索するようにしていました。

学習用モデル

対局用のモデルは、レイヤー融合を行っているため、追加学習は行えません。
追加で学習するためのモデルは、for_learningフォルダに格納しています。

その他

対局開始後、1手目の開始が遅いですが、準備のフェーズで、GPUにモデルをロードして、キャッシュを載せているためでバグではありません。

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

05 May 01:06
Compare
Choose a tag to compare

dlshogiの第28回世界コンピュータ将棋選手権バージョンのビルド済みファイルです。
アピール文章

実行環境

実行するには以下の環境が必要です。
※第5回将棋電王トーナメントバージョンは、Chainerの環境構築が必要でしたが、USIエンジンの実行のみであれば不要になりました。

ハードウェア

以下のハードウェアが必要です。
・AVX命令に対応したx86-64 CPU
・CUDA 9以上に対応したGPU(GeForce 1080など)

OS

Windows 10 64bit or Windows Server 2016 64bit

CUDA

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

cuDNN

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

dlshogi

dlshogi-wcsc28.zipを任意のディレクトリに解凍する。

elmoの評価関数(詰み探索のために必要)

elmo_for_learnのページから「2.初期評価関数の取得」の説明の通りダウンロードしてファイル名を変更する。

対局方法

エンジン登録

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

エンジン設定

パラメータ 設定値
Book_File dlshogi-wcsc28.zipを展開したディレクトリにあるbook.binのパス
DNN_Model dlshogi-wcsc28.zipを展開したディレクトリにあるmodel_rl_val_wideresnet10_110_1のパス
DNN_Model2~DNN_Model2 GPUが複数枚あり、GPUごとに異なるモデルを設定する場合にモデルのパスを設定する。GPUが1枚の場合、空欄にする。
Mate_Root_Search オン
Eval_Dir elmoの評価関数ディレクトリのパス(詰み探索に使用)。Mate_Root_Searchがオフの場合は不要。
UCT_Threads モンテカルロ木探索のスレッド数。使用するGPUとCPUによってNPSが高くなるように調整が必要。
UCT_Threads2~UCT_Threads4 GPUが複数枚ある場合、それぞれのGPUに割り当てるモンテカルロ木探索のスレッド数。使用するGPUとCPUによってNPSが高くなるように調整が必要。GPUが1枚の場合、0とする。
USI_Ponder 同一マシンでエンジン同士の対局の場合オフにする
Byoyomi_Margin 同一マシンで対局する場合は、100くらい。切れ負けする場合は増やす。

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

世界コンピュータ将棋選手権での設定

世界コンピュータ将棋選手権では、model_rl_val_wideresnet10_110_1を2つのGPUに、model_rl_val_wideresnet10_083_1とmodel_rl_val_wideresnet10_058_1を1つのGPUにロードしました。
モンテカルロ木探索のスレッド数はNPSが最大になるように調整し、GPUごとに168、168、144、96としました。

自己対局で強化学習したモデル(大会では未使用)

AlphaZeroの方式で自己対局による強化学習を18サイクル回して学習したモデル(model_rl_val_wideresnet10_selfplay_018)も同梱しています。

その他

対局開始後、1手目の開始が遅いですが、準備のフェーズで、GPUにモデルをロードして、キャッシュを載せているためでバグではありません。

第5回将棋電王トーナメントバージョン

12 Nov 04:28
Compare
Choose a tag to compare

dlshogiの第5回将棋電王トーナメントバージョン(アピール文章)のビルド済みファイルです。

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

ハードウェア

以下のハードウェアが必要です。
・AVX命令に対応したx86-64 CPU
・CUDA 8以上に対応したGPU(GeForce 1080など)

OS

Windows 10 64bit
※Windows 7でもおそらく実行可能

コンパイラ(Visual C++)

「Visual C++ 2015 Build Tools」をインストールする。
※開発をしなくてもCUDAを動かすために必要です。
http://landinghub.visualstudio.com/visual-cpp-build-tools

なお、Visual Studioで開発を行う場合は、「Visual C++ 2015 Build Tools」ではなく、「Visual Studio 2015 Comunity」をインストールする。
インストールの際、カスタムオプションで「Visual C++」をチェックする。
※Visual Studio 2015 Comunityは以前のバージョンのリンクからダウンロードできる(要ユーザ登録)。
https://www.visualstudio.com/ja/downloads/

環境変数

環境変数PATHの先頭に、「C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin」を追加する。
環境変数INCLUDEを追加し、「C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt」を設定する。

CUDA

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

cuDNN

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

Anaconda(Python)

以下のURLからPython 3.x系、64bit版をダウンロードして、インストールする。
https://www.anaconda.com/download/
※3.6系は、cupyの2017/11現在のバージョン(2.0.0)では、インストールでエラーが発生するため、3.5系を推奨します。アーカイブの一覧から、Anaconda3-4.2.0-Windows-x86_64.exeをダウンロードしてください。

Pythonの環境に詳しくない場合は、インストーラの「Install for:」の選択で「All Users(requires admin privileges)」を選択し、「C:\Anaconda3」にインストールすることを推奨

Chainer

以下のコマンドでChainerをインストールする。
pip install cupy
pip install chainer
※ 2017/11現在、最新のChainer v3.xに対応している。
※ バージョンを指定する場合は、末尾に==3.0.0のようにバージョン番号を追加する。
例)
pip install chainer==3.0.0

構築に失敗してやり直す場合は、
pip uninstall chainer
pip uninstall cupy
pip install cupy --no-cache-dir
pip install chainer --no-cache-dir

dlshogi

dlshogi-sdt5.zipを任意のディレクトリに解凍する。
コマンドプロンプトで、展開したディレクトリ※に移動し、以下のコマンドを実行する。
pip install --no-cache-dir -e .
※展開したディレクトリ直下。zipに含まれるdlshogiディレクトリではないので注意。

エンジン登録

dlshogi-sdt5.zipを展開したディレクトリにあるusi.exeを登録する。

エンジン設定

パラメータ 設定値
Book_File dlshogi-sdt5.zipを展開したディレクトリにあるbook.binのパス
DNN_Model dlshogi-sdt5.zipを展開したディレクトリにあるmodel_rl_val_068_3のパス
Mate_Root_Search オン
Eval_Dir elmo※の評価関数ディレクトリのパス(詰み探索に使用。評価値は使用しないのでAperyと互換性があれば何でも可)。Mate_Root_Searchがオフの場合は不要。
UCT_Threads 40未満の値。4コアCPUであれば、36を推奨
USI_Ponder 同一マシンでエンジン同士の対局の場合オフにする
Byoyomi_Margin 同一マシンで対局する場合は、100くらい。切れ負けする場合は増やす。

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

※elmoの評価関数は、elmo_for_learnのページから「2.初期評価関数の取得」の説明の通りダウンロードしてファイル名を変更する。

その他

対局開始後、1手目の開始が遅いですが、準備のフェーズで、GPUにキャッシュを載せているためでバグではありません。