強い将棋ソフトの創りかた(その3,GPU選定編)

続編である。また貼っておきます。

 

 

恐らく深層学習初心者が多く,そもそもGPU選定で迷うことが多いと思われます。

献本頂いて一応先行して色々やってあるので記録代わりにデータ出しておきます。

 

1.書籍前半のpython-dlshogi2の学習

floodgateの一年分のデータを使った深層学習ですね。

Google Colabで大当たり(V100)を引いたら数時間ですが,手元にGTX1060でもあれば一晩で終わります。無料Colabレベルでも時間の問題です。GPUは無いと厳しいですね。

懐かしいレベルですが,これ2017年の私のネタ通りですね。

chainerも入れてみた - 48's diary

当時プロ棋士棋譜を使った山岡さんに対して私がfloodgate棋譜一年分を使った件です。当時で計算時間20時間とあります。ライブラリはchainerですがやってることはほぼ同じです。

 

2.書籍後半のdlshogiの学習

p. 211に記載されている通り,V100なら24時間程度で終わるようです。教師データが15GBくらいありますね。

T4で3日半,P100で4日半,K80で3週間強と言った感じですが,これはColabで行うことを目安としています。手元のGPUだと恐らくこんな感じです。

RTX3090 1日弱,RTX3070 2日,RTX2060 4日以上。GTX?知らんがな状態です。

言うまでも無く,RTX3090がお勧めです。

 

RTX3090ってもっと速いんじゃないのと思われた方は良く御存知ですね。探索時,推論に関しては速いですが搭載しているメモリがGPU用のメモリです。比較してV100などは深層学習用に高速なメモリを積んでおりますので学習時には本領発揮と言う感じです。

私はお金なくて触れていませんが,A100は更にずっと速いと思います。

 

次に書籍で行われている学習時のバッチサイズとGPUメモリです。

AMPに関してはこちら参照ください。

AMPとTensorRT - 48's diary

AMP無しでバッチサイズ1024で行う分にはGPUメモリは6GBあれば足りるでしょう。申し訳ありませんが4GBのGPUではバッチサイズを減らして下さい。そして随分時間かかると思います。

AMP有りでバッチサイズ4096と言うのが本命ですが,これのためにはGPUメモリが12GBで少し足りないくらいです。ColabだとK80以外ならこちららしいですが,無償だと近頃ほぼK80との噂です。

RTX3080Tiだとちょっと足りないですね。バッチサイズ3500くらいなら通るんでしょうか。

で,再度ですがRTX3090がお勧めです。

 

それから注意点ですが,ゲーム用のオーバークロッキング品は避けて下さい。

ゲームでは(というかビデオ出力では)GPUに対して100%の負荷が入ることはありませんし,それにギリギリの設定をされているものが多く出回っています。100%使うビデオ処理があるとすれば大半でフレーム落ちするような処理でしょう。

機械学習ではビデオ出力ではなく計算処理を行うため,画面の同期待ちなどなく全力動作します。オーバークロッキング品では無設定で暴走する恐れがあります。もちろん手動で元に戻せば問題ないです。

加えて言うならビデオ処理なら100万に一回エラーがあってもフレームに一点の画素です。誰も気づきません。しかしながら機械学習処理ではそれだけで役立たずになります。限界近いクロックで動作させるのはあまり有益ではないのでほどほどで運転しましょう。

上記の通りRTX3090級でも24時間連続運転することになりますので熱設計の甘いケースなどでは痛い目をみます。その辺りも気を付けましょう。

---

もちろん,Google Colabの有料オプションも有力な選択肢です。ネットワーク経由で多くのデータをやりとりするのでその辺も考慮して選定してやって下さい。