以前にAWSのWindowsサーバで、GPUを増やしても探索速度を上げられなかったということを書きましたが、後からバグがあって1個のGPUしか使っていなかったがわかりました。
バグを修正したバージョンで、p3.8xlargeで4GPUを使うと自宅のGPU2枚のPCより少し探索速度を上げることができました。
p3.16xlargeだと、なぜか探索速度が落ちてしまいました。
ということで世界コンピュータ選手権はp3.8xlargeを使うことにします。
探索速度の比較
ハードスペック | スレッド数 | シミュレーション/秒 |
Corei9 10コア+GPU2枚(TitanV+1080Ti) | 255+255 | 10779 |
Xeon 32コア+GPU4枚(Tesla V100) | 168+168+144+96 | 12224 |
スペックは2倍以上ですが、探索速度の向上は13%です。
スレッド数は探索速度が最大になるように調整した結果です。
AWSでUSIエンジンを実行する方法
dlshogiはLinuxでも実行できるようにしていますが、探索速度はWindowsの方が高いので、AWSのOSはWindowsにする予定です。
USIエンジンをAWSで実行するには、SSHでリモートで実行して標準入出力でやり取りすれば可能です。
将棋所は、実行ファイルに引数を渡すことができませんが、バッチファイルにSSHコマンド記述して、バッチファイルを登録すれば問題ありません。
WindowsのAMIは、デフォルトではSSHで接続できないため、自分でSSHサーバを構築する必要があります。
WidnowsでのSSHサーバの構築方法は、別の記事にしました。
AWSのWindows AMIにsshで接続する - TadaoYamaokaの開発日記
上記の記事を参考に、AWSのWindowsサーバにSSHサーバを構築して、公開鍵で認証する設定を行います。
将棋所を実行するクライアントからsshコマンドで接続できることが確認できたら、以下のようなバッチファイルを作成します。
@echo off C:\OpenSSH-Win64\ssh xxxx@xxxx.us-west-2.compute.amazonaws.com C:\Users\xxxx\Documents\dlshogi\usi
※ユーザ名とホスト名とUSIエンジンのパスは書き換えてください。
これを将棋所に登録します。
将棋所のエンジン選択は、デフォルトで拡張子が「.exe」のファイルしか表示されませんが、ファイル名に「*」を入力してEnterキーを押せば、バッチファイルも表示されるので、登録できます。
これで、ローカルで動くUSIエンジンと同様にエンジン設定と実行が可能です。
当然ですが、エンジン設定に設定するファイルパスはサーバ上でのパスです。
以上です。