やねうら王ベンチマーク募集
# 時々アップデートをして最新の情報をできるだけ取り込んでいます
# 2020-03-07 ベンチマークの評価関数(KPPT, NNUE)依存度、統計誤差などについて最後に追記しています。(W@ndre開発者に感謝します)
ベンチマークのとり方について説明します。ShogiGUIや将棋所から動くようになっている設定のやねうら王をお持ちであること、評価関数(evalフォルダー内)は、elmoなどのKPPT型、NNUE系の評価関数(Kristallweizenなど)をインストールされていることを想定いたします。KPPT/NNUEの評価関数はNPSが違うことが想定されますので備考欄にどちらを使ったのか明記してください。評価関数の名称を書いてもらっても結構です。
やねうら王実行ファイルをダブルクリックで立ち上げる。やねうら王は最新のバージョンをお使いください。現在v6.00が最新版です。できるだけ新しめのバージョンを使いましょう。
ベンチマークコマンド:"bench 128 8 19"を入力し実行。このうち128はメモリー(MB単位)ベンチコマンドの範囲内では128MBで固定にいたします。。また、8はスレッド数でお持ちのCPUにより調整してください。(私のパソコンの場合4コア8スレなので最大の8スレで計測します)19は思考深度でデフォールト(指定していない場合)の17よりもより深くやる方がより正確だろうということです(ご本尊からの情報)。やねうら王実行ファイルの中ではトーナメント版が最も速いようです。
ノートパソコンやスマホでベンチマークを行う場合にはDepthが大きいと発熱防止回路が働いて周波数が遅くなります。その場合はDepthを小さくして"bench 128 4 11"などのように早めに計測が終わるようにDepthを浅くしてください。なお、報告していただける場合にはdepthやthread数は忘れずに報告をお願いします。
ベンチマーク1スレ版:多スレと同時に1スレのNPSもCPU情報として貴重ですので、そちらも計測していただけると助かります。上記コマンドの応用で"bench 128 1 11"などで測れます。
ベンチマークコマンドを実行した後、しばらくすると計測結果が出ます。例えば次のような画面です。

ベンチマークに必要な情報はこの出力の中のNodes/secondという欄、上記画像では3761068という数字です。(上の画像ではv4.53なのでバージョンちょっと古いのですが、、)
調査にご協力していただける方は
CPU名:(例)intel Core i7-6700、AMD Threadripper 1950Xなど。
スレッド数:8スレなど。計測を行ったスレッド数
Nodes/second : 上記の数字。計測により数%程度ぶれますので何度か実行して平均をとるとより正確になります。
1スレのNode/second : ("bench 128 1 19"コマンドの結果)
クロック数:定格、オーバークロックをされている場合はクロック数(GHz単位)
OS: Windows 10, Linux, Mac OSなどの各バージョン
やねうら王バージョン:上記やねうら王実行ファイルの画面で"usi"というコマンドを入れると一行目にid name YaneuraOu 2017 Early KPPT 4.76 64AVX2 TOURNAMENTなどとでるのでその中のid name以降の文字列。
測定者:(任意)@uuunuuun1など
備考:(任意)elmo以外の評価関数を用いたなど
報告例:
CPU名:intel Core i7-6700
クロック数:3.4GHz (定格)
Node/second (8スレ): 4203539
Node/second (1スレ): 938315
OS:Windows 10 home (できるだけお忘れなく)
やねうら王バージョン:YaneuraOu 2017 Early KPPT(NNUE) 4.88 64AVX2 TOURNAMENT
(NNUEの場合には評価関数名とともにご報告をお願いします。)
測定者:@uuunuuun1
送り先はtwitterの場合は、 @uuunuuun1、 あるいはこのサイトのContactタブからご連絡ください。よろしくお願いいたします。データをいただき次第、結果をまとめて発表させていただきます。
8/31 データが増えてまいりましたので専用ページに移行しました。
2020-03-07 追記 ベンチマークの統計的ばらつきについて
W@ndre開発者(@ihme_vaeltaa)さんが、ベンチマークをバッチ処理で多数行い、NNUEとKPPTでどの程度NPSが異なるのか、計測ごとのばらつきがどの程度あるのかなどツィートで発表されています。詳しいことはそちらを参照してほしいのですが、いくつか目につく点としては
KPPTとNNUEのどちらがどの程度速いかというのはCPUにより違うらしい。
評価関数によってもNPSは多少異なりうる
やねうら王トーナメント版のほうが通常版よりNPSは大きいが、改善の度合いはNNUE, KPPTで多少異なるようだ。
参考までに手持ちのCPU(Core i7-6700, Ryzen7-1800x)での計測結果報告します。バッチスクリプトを提供していただいたW@andre開発者さんに感謝いたします。
ベンチマーク計測回数 500回
KPPT評価関数としてelmo_wcsc27, NNUE評価関数としてKristallweizenを用いた
やねうら王v4.89 トーナメント版, OS Windows 10 Home
コマンド: bench 128 X 19 (Xはスレッド数)
Intel Core i7-6700 (6スレッドで計測)
KPPT平均NPS: 3368 KNPS KPPT標準偏差: 121 KNPS (平均の3.5%) NNUE平均NPS: 3015 KNPS NNUE標準偏差: 930 KNPS (平均の3.1%)
KPPTとNNUEのNPSの比: 12% KPPTのほうが大きい
AMD Ryzen7-1800x (12スレッドで計測)
KPPT平均NPS: 5334 KNPS KPPT標準偏差: 150 KNPS (平均の2.8%) NNUE平均NPS: 4819 KNPS NNUE標準偏差: 112 KNPS (平均の2.3%)
KPPTとNNUEのNPSの比: 11% KPPTのほうが大きい