先日の「電竜戦長時間マッチ水匠 vs dlshogi」でも強さを見せつけたdlshogiをインストールしてみました。
以下は具体的な手順というより、個人的なメモです。
(将来的には具体的な手順も作りたい)
が、自分がハマった部分はこれからdlshogiをインストールしたい人には参考になるかもしれません。一方で、間違っている部分もあるかもです。参考程度にお願います。
そもそもdlshogiとは?
山岡忠夫さんによるディープラーニングベースの将棋AIです。ちなみに「山岡忠夫」というは本名ではないそうで、PN(ペンネーム?プログラマーネーム?)とのこと。
水匠などやねうら王系将棋ソフトと違い、基本的にGPUで動作するので、GPUが重要になります。
また、導入が簡単な水匠と比べると、導入の難易度は高いとされてます。実際、必要なファイルと設定が多く、パソコンに慣れてない人には難しいかもしれません。
dlshogiのダウンロード先
上のサイトからビルド済みファイルとモデルファイルがダウンロードできます。モデルファイルにはパスワードが掛かっています。パスワードは山岡さんのブログのエントリ「dlshogi(第2回世界将棋AI電竜戦エキシビジョンバージョン)のWindows版ビルド済みファイル公開」に記載されており、こちらに記載されているライセンスに沿った利用が必要となります。
dlshogiの導入手順と必要なファイル
導入方法については、以下のページを参考にしてください。
必要なハードウェアは上ページから引用すると
[必須]
・AVX2命令に対応したx86-64 CPU
以下のいずれか
・CUDA 11.1に対応したGPU(GeForce 2080など) [※TensorCoreを搭載したGPUを推奨]
・DirectX12対応グラフィックカード(内蔵グラフィックスでも可)
とのこと。
また、CUDAのとcuDNN、TensorRTのインストールとPATHを通す作業も必要になります。
cuDNNとTensorRTのダウンロードにはユーザー登録と簡単なアンケートに答える必要があります(アンケートは適当でも大丈夫ですが……)。
2021/8/19追記
CUDA、cuDNN、TensorRTは最新バージョンでは動かない可能性があるので以下からダウンロードしてください。※参考元
・CUDA Toolkit 11.1.1
・cuDNN(「Download cuDNN v8.2.0 (April 23rd, 2021), for CUDA 11.x」を選ぶ)
・NVIDIA TensorRT 7.x (「TensorRT 7.2.2 for Windows10 and CUDA 11.1 & 11.2 ZIP package」を選ぶ)
※k kanouさん、ご指摘ありがとうございます。
dlshogiのインストールの流れ
GUIとして将棋所が必要になるのでインストールしておきます。将棋所で起動したあと(キャッシュができたあと?)は、ShogiGUIでも動きます。
「dlshogi-dr2_exhi.zip」と「model-dr2_exhi.zip」を解凍して、任意のフォルダにコピーしておきます。「C:\Program Files」以下に置くとキャッシュが作成できないので、別の場所にしておきましょう。
「nvrtc64_111_0.dll」が見つからないエラー
将棋所にdlshogiを登録して起動しようとしたところ、「nvrtc64_111_0.dllが見つからないため、コードを続行できません。」というエラーが出てしまいました。「nvrtc64_111_0.dll」を調べてみるとCUDAのライブラリとのこと。CUDAの実行ファイルがあるフォルダ(標準では「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin」)を見てみると、「nvrtc64_112_0.dll」がある。どうやらバージョンが違うらしい。
nVidiaのページに旧バージョンは見つからない。
「中身はそんなに変わらないだろ、と思って、「nvrtc64_112_0.dll」のファイル名を「nvrtc64_111_0.dll」に変更したら動作しました。これで良いのかわからず、おそらく良くはないだろうが、とりあえず良し。
アーカイブから旧バージョンをダウンロードできるとの情報をいただきました。ありがとうございます!
モデルファイルをエンジンに設定する
将棋所にdlshogiを設定したら、「エンジン設定」からモデルファイルを指定する。これは、「DNN_Model」に「model-dr2_exhi.onnx」までのパスを書けば良い。
今回は「C:\shogidokoro」フォルダ内に「model-dr2_exhi」フォルダを置いたので「C:\Shogidokoro\model-dr2_exhi\model-dr2_exhi.onnx」と記述しました。
なお、モデルファイルをdlshogiの実行ファイルがあるフォルダ内にコピーすれば、フルパスは必要なく「model-dr2_exhi.onnx」と変更するだけでOKです。こちらのほうが簡単かもしれません。
デバッグウィンドウでチェック
どうしても動かない場合はエンジン設定の「DebugMessage」にチェックを入れておき、「表示」→「デバッグウィンドウ」でメッセージをチェックしてみるとよいかも。
例えば上の画像だとモデルファイルがないといっているので、「DNN_Model」のパスが間違ってるとわかります。
dlshogi vs 水匠を試してみた
というわけで、設定は無事に完了。将棋所で動作確認したあと、ShogiGUIで動かしてます。ShogiGUI側でも「DNN_Model」のパスを設定することは忘れずに。
で、dlshogi vs 水匠を一手30秒で試してみました。
ちなみに自分のPC環境は
CPU:Ryzen 5 5600X
メモリ:16GB
ストレージ:[M.2 NVMe SSD] 1TB + [HDD] 2TB
GPU:NVIDIA GeForce RTX 3070
超ハイスペックではないけど、ミドルスペックよりは上、偏差値でいうと60くらいの環境かと思います。(フロンティアのセール
対局の様子はこんな感じ。
棋譜はこちら。
結果は相入玉で先手勝ち。いやー、dlshogiも強いですね……。
というわけで、dlshogiをインストールしてみた話でした。