Releases: TadaoYamaoka/DeepLearningShogi
第32回世界コンピュータ将棋選手権バージョン
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電竜戦バージョン
dlshogiの第2回世界将棋AI電竜戦バージョンのWindows用ビルド済みファイル。
NVIDIAのGPU非搭載のPCでも動作するOnnxRuntime版、検討用の倍精度バージョンを含む。
導入方法は、第31回世界コンピュータ将棋選手権バージョンを参照。
モデルファイルは付属しないため、第2回世界将棋AI電竜戦エキシビジョンバージョンのモデルを使用してください。
インストール済みの場合は、解凍したファイルを上書きしてください。
第2回世界将棋AI電竜戦エキシビジョンバージョンからの差分
エンジン設定
以下のエンジン設定のパラメータを追加した。
パラメータ | 設定値 |
---|---|
Eval_Coef | 勝率から評価値に変換する際の係数(デフォルト756)。平手開始局面の評価値を水匠4に近づける場合285に変更する。モデルファイルのパスに拡張子「.ini」を付けたファイルに「Eval_Coef=285」のように設定することも可能。 |
詰みの読み筋表示対応
詰みの手順を見つけた場合に、詰み手数と読み筋を表示するようにした。
実戦で速く詰みを見つけることに特化しているため、表示される読み筋は最短手順とは限らない。
第2回世界将棋AI電竜戦エキシビジョンバージョン
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回世界コンピュータ将棋選手権バージョン
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対応版
実行ファイルのみの配布です。
世界将棋AI 電竜戦バージョン(「GCT電竜」同梱)を展開したフォルダに上書きしてください。
世界将棋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ではエンジン登録に失敗することがあるため、将棋所に登録してキャッシュファイルを作る。
世界コンピュータ将棋オンライン大会バージョン
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回世界コンピュータ将棋選手権バージョン
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回世界コンピュータ将棋選手権バージョン
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回将棋電王トーナメントバージョン
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にキャッシュを載せているためでバグではありません。