DeepLearning系の将棋AI(dlshogiやふかうら王)をRyzenのiGPU(CPU内蔵GPU)で動かすのは大変だと思っていた。しかし、今日、なにげなくWindows11環境にDeepLearning系の将棋AIをインストールしたところ、onnxruntimeを使えばDeepLearning系の将棋AI(dlshogiやふかうら王)がiGPUで簡単に動くことが分かった。
これまでの経緯
RyzenのGPUで将棋AIを動かすには、ROCmというAMDのGPU用ドライバが必要だと思っていた。そのため苦労してUbuntu環境でROCmをインストールしたり、onnxruntimeをROCmに対応させるためUbuntuでonnxruntimeをビルドし直したりしていた。興味のある方はこれまでの記事を見てもらいたい。
将棋AI dlshogi(Python版)を1000ドルPCで動かす - シンギュラリティ実験ノート
将棋AI dlshogi(C++&OnnxRuntime版)を1000ドルPCで動かす - シンギュラリティ実験ノート
将棋AI dlshogiを1000ドルPCで動かす(その後) - シンギュラリティ実験ノート
将棋AI dlshogiを1000ドルPCで動かす(第3報) - シンギュラリティ実験ノート
onnxruntimeのビルドは私には難敵で作業は行き詰まっていた。軽い気分転換のつもりでWindows11環境に将棋AIを導入することにした。すると思いがけないことが起きた。dlshogiのNPS値が1700前後の値を出しているのだ。これはCPUでのNPS値にしては高すぎる。タスクマネージャでGPUの動作状況を確認した画面が以下である。
水匠5とdlshogiを秒読み1秒で対局させた時の様子で、CPUとGPUが交互に動作している。つまりCPUが水匠5、GPUがdlshogiということになる。
動作環境
私が使用しているPC環境は以下の通りである。
導入手順
上記環境に下記のサイトからdlshogiをダウンロードし、そこに含まれているdlshogi_onnxruntime.exeを使用しただけだ。onnxruntime.dllも同梱されており、新たなドライバ等は導入していない。
つまりonnxruntimeがGPUが利用可能と自動的に判断し、GPUで動いたということだ(と思う)。追加で行った作業といえば、上記サイトにも説明があるが、モデルファイルが付属しないため、第2回世界将棋AI電竜戦エキシビジョンバージョンのモデルをライセンスに同意してダウンロードし、将棋GUIソフトのパラメタ画面でモデル名の初期値を変更したことくらいだ。
先手dlshogi、後手水匠5でdlshogiが226手で勝利した画面のスクショである。
dlshogiのNPS値が23272とバカでかい値が表示されているのは何かの異常か?。GPUの動作が途中で止まってCPUに切り替わるような変な動きも1~2回あった。この動きはその後の数時間の検証では再現性を確認できなかった。
まとめ
これまでDeepLearning系の将棋AIの導入はハードルが高いと言われてきた。NVIDIAのGPUボードとcuda、TensorRT等の導入が前提だったからだ。20万円~30万円のゲーミングPCも必要と言われてきた。しかし1000ドルで買えるPCのCPU内蔵GPUで簡単に動作させることができることを今日確認した。安定して動くとはまだ断言できない。しかし個人が趣味として楽しむにはほぼ問題がないレベルだと思う。
NPS値は平均1700程度で初期局面では2000程度の値も出ていた。dlshogi作者の山岡忠夫氏によるとNVIDIAのGeForce RTX4090でのNPS値は初期局面で19976とのことだ。約10倍の違いはあるが、RTX4090の性能値は私のメモによると82.58TFLOPS、Radeon 780Mの性能値は8.12TFLOPSなので、GPUの性能値の差をそのまま反映した結果と言える。
これまでの私の苦労はなんだったのか、と言いたくなるほどあっけなくGPUで動いた。ふかうら王も同様に動いているが、長くなるので次回の報告としたい。