先月dlshogiがTensorRT対応をした。
最初はインストールするものがまた一つ増えたのかと思ったんだけど
結果としては今年のdlshogiの実行ファイルを見てもらえば分かるようにfp16用のバイナリが無くなっている。つまりひとつのファイルで古いGPUでも新しいGPUでも速度が出るようになっている。
Release 世界コンピュータ将棋オンライン大会バージョン · TadaoYamaoka/DeepLearningShogi · GitHub
まぁ,これがTensorRTなわけだ。
以前,将棋のソフトには実行時最適化をするものが少ないなどと書いてしまったが,TensorRT対応すると実行時最適化されてしまう。実に素晴らしい。
うちのGPUでテストしたところGTX1060およびRTX2080Tiで以前細かいチューニングをしたのと同じレベルの速度がひとつのバイナリファイルで自動調整で実現されていた。具体的には前者で2500nps程度,後者で30000nps程度である。タイプミスではない。最新の深層学習ライブラリを使ったRTXは伊達ではないことが分かる。
ちょっと不思議なのは2080Tiで実行速度は出ているにも関わらずタスクマネージャーのGPU負荷が75%程度であることだ。1060は96%程度に張り付くのに。もしかするとまだ余力があるのかもしれない。
ついでに自分用のメモとしてインストール時の注意を書いておく。
TensorRTのバイナリファイルはNVIDIAのサイトでcudnnと同様に開発者登録をして行う。CUDAとcudnnのバージョンに依存するので注意。
インストールはcudnnと同様に展開してpathの設定をすればいいだけだが,面倒なのでcudnnで以前からやってるようにCUDAのフォルダに放り込んだ。libフォルダにあるlibファイルを配下のx64に移動して,dllファイルはbinフォルダに移動すればpathの追加は不要になる。(私ずぼらだね)
もちろん,dlshogi実行以外で使わないならusi.exeと同フォルダ内にdllを全部放り込めば一応動く。
floodgate上でも不具合以外にはほとんど負けていないみたい。実行ハードウェアは不明だが,安定すればまだまだレートが上がるように思う。
---
追記:
上記のGTX1060でApery(2020)の1スレッドには勝ち越す程度。2080Tiにはその10倍以上を期待して良い。
dlshogi雑な計測中。ノートPCのGTX 1060でちょっとバッチ数増やして調整しただけのものを対Apery1スレ10~20戦。短時間なら負け越しだけど長時間なら勝ち越し。もちろん後者が計測対象。
— 48 (@bleu48) 2020年5月5日
---
追記5/13:
1080Tiでは6000nps程度