マルチGPU化を試してみる②

先日、マルチGPU化を実施しましたが、それによる性能測定や比較は実施できていなかったので今週末に実施しました。
また、ちょうどdlshogi本家側でマルチストリーム対応がなされていたので、それも同時に測定・比較を行っています。


ベンチマーク測定】
■測定対象
第2回電竜戦で使用したLightweight-EFを選定しました。ハードもソフトそのまま当時のものを利用します。(以下、Lw-EFと記載することがあります)

■比較対象
①Lw-EF_base(上で書いたように、第2回電竜戦で使用したものです。これをベースラインとします)
②Lw-EF_2gpu(①をマルチGPU化させたもの。RTX3070, 3080を使用)
③Lw-EF_2gpu_MLTstream(②をさらにMulti-Stream化させたもの)

■測定方法
サンプリングした100局面に対し、上記①②③をそれぞれbyoyomi=5000で思考させています。

■その他
こちらのスクリプトを改変したものを利用しています。
べた書きされている局面は特に変更していません。


繰り返しにはなりますが、①の2021年11月の第2回電竜戦時点のものをベースラインとし、②マルチGPU化、③マルチGPU化&マルチストリーム対応のものと比較する形を取ります。
また先に断っておきますが、これはあくまで自分の手元の環境で測定した結果であり、それ以外での結果を保証するものではないです。また、ベンチ結果≒棋力であることもご注意ください。




ということで、長くなってしまいましたが以下が測定結果となります。
結論としては、予想通り③>②>①という結果になっています。



まずはNPSから。
f:id:Rheinmetall:20211213005856p:plain
まず目を引くのはNPSの最大値で、ベースラインでは90,000台だったNPSが、③のマルチストリーム化によって160,000に届く勢いで伸びています。また、平均や中央値も伸びており、平均NPSは100,000台に乗っています。
dlshogiがA100×8を使用して平均344,963NPSであったことを考えると、これでも本家のフルパワーと比較しても約3割程度ということになります。A100×8こわい。(あくまでNPSだけを見た場合です)



次にnodesです。
f:id:Rheinmetall:20211213005904p:plain
こちらも最大値はマルチGPU化の倍以上になっていて、平均や中央値で見ても2倍以上、ベースラインと比較すると約3倍のノード数となっています。



最後にdepth。
f:id:Rheinmetall:20211213005912p:plain
一見、こちらはnpsやnodesのような派手な向上は無いように見えますが、平均で見ると5秒間の思考での平均探索深さが約3, 4手先まで深くなっています。最小値は変わらずですが、最大値はdepth=48まで伸びていることが分かります。


よって、npsやnodes, depthといった指標に対して、マルチGPU化の効果やマルチストリーム化の効果があることが確認できました。特にマルチストリーム化は思っていた以上の後押しになっているように思います。

また、最後に今回の測定結果のサマリを表形式で記載しておきますので、興味のある方は見てみてください。

nps Lw-EF_base Lw-EF_2gpu Lw-EF_2gpu_MLTstream
max 94251 127199(+134.96%) 158589(+157.90%)
min 24323 44462(+183.80%) 40411(+166.27%)
ave 66064.75 97019.76(+146.86%) 104313.29(+157.90%)
med 69813 102556(+146.90%) 106375(+152.37%)
nodes Lw-EF_base Lw-EF_2gpu Lw-EF_2gpu_MLTstream
max 474178 642867(+135.58%) 1597948(+336.99%)
min 123124 227917(+185.11%) 414342(+336.52%)
ave 332798.26 492504.96(+147.99%) 1051298.83(+315.90%)
med 351162.5 520989.5(+148.36%) 1072053(+305.29%)
depth Lw-EF_base Lw-EF_2gpu Lw-EF_2gpu_MLTstream
max 44 46(+104.55%) 48(+109.09%)
min 7 7(+0.00%) 7(+0.00%)
ave 25.31 25.85(+102.13%) 29.38(+116.08%)
med 25 25(+0.00%) 28(+112.00%)

※括弧内の数字はベースラインとの比較となります。