全国300万AobaZeroファンの皆様1年3カ月ぶり待望の最新公式リリースです。
たまりにたまった新機能が満載ですね。
実のところdevelop版で長らく温められていたマルチスレッドなどの機能は既に私の前記事でも紹介してありフォーク先の私のところでバイナリ配布してありました。
マルチスレッドの部分だけで環境差は相当ありますが3倍程度の速度向上がありました。
今回の1.5ではリリースメッセージにも「OpenCL のコードの効率化」とありますようにニューラルネットワーク計算の部分で相当苦労されて効率化されたようです。ざっと計測した感じでは2倍程度は出ている雰囲気です。実に素晴らしい改善です。
公式1.4ではマルチスレッド非対応でしたので公式バイナリ派の人は加えて劇的な高速化を体験できると思います。公式リリース文ではマルチスレッド部分と合わせて3~10倍の高速化と表現されています。
囲碁のKataGoなどもOpenCL版が相当上手に作られておりCUDA版と大きく遜色がないような状況です。私は長らく最適化するならCUDA一択と考えておりましたが,限界ギリギリを狙うので無ければOpenCLでいいのかもしれません。ただ,MCTSの並列化効率は探索枝がある程度広がった状態でないと上がって来ないので極端な短時間戦には不向きなのは明白です。
また,今回のバージョンは自動最適化機能も相当に工夫され実装されていますが,やはり最終的には手動で試行錯誤して最も速度がでるパラメータを求めた方が良いように思います。手持ちのPCで最悪のケースはインテルCPU+NVIDIA GPUのノートPCの場合で何故かインテルCPUの内臓GPUでOpenCLが動かされていました。(もちろんGPUを指定すると問題なく動きます)
今回マルチGPUも対応されていますのでレアな環境をお持ちの方は是非試して使用感・ベンチマークなど報告されると良いでしょう。
また,CPU版もアップデートされておりこちらもマルチスレッド対応でCPUリソースを自動的に認識し限界まで使ってくれます。手持ちのモバイルPCだとスレッド数をコア数まで減らした場合でもほぼ影響がなかったのでハイパースレッディングはあまり有効ではないようです。熱的にもコア数の方が良いかと思います。
また,教師データである棋譜生成モードでは別のバイナリが動いて効率よく棋譜生成がされるようですがCPUでは遅いのであまりお勧めしません。(GPUの方が桁違いに速いという意味です)
個人的に実装していたMultiPV(単に複数候補を表示するだけ)や時間制御の部分などは当然公式リリースにはありませんが,ShogiGUI対応は喜ばれたようでプルリクエストは飛ばしていませんが今回の公式バイナリでも局面検討に使えるようになっています。是非お試しください。性能上は将棋所での検討の方が出るはずですが好みのGUIを使えるのは嬉しいですね。
---
追記:
最近floodgate上でのAobaZero p800がほぼノータイム指しだったのは今回の高速化が取り込まれたバイナリで実行されていたと思われます。じっくり時間を使えばどこまで強くなるのでしょうか。楽しみですね。
電竜戦予行2では圧巻のパフォーマンスでした。
電竜戦(本戦)にはプルパワーで参加されると期待しております。