Stockfish DD – benchmark ベンチマーク

今回はベンチマーク部です。

UCIプロトコルの拡張コマンドで、”bench”とタイプすると事前に用意してあった局面から探索を開始して、探索終了するまでの時間を計測し、nps(nodes per second=1秒あたりの探索ノード数)などを表示します。

この機能をつけておかないと、高速化するはずの改良によって探索が速くなったのかどうかが判断つかないため、将棋ソフトの開発の場合でも早い段階で用意しておくべきだと思います。

なお、探索内容が毎回異なるとベンチマークとしての役割をなさないため、基本的にはシングルスレッドで固定深さで実行し、毎回探索ノード数は同じになるようにします。毎回同じでないとしたら、置換表の処理が何らかバグっているだとか、初期化を忘れているメモリがあるだとか、そういうのが原因として考えられます。

私もやねうら王の開発当初、ベンチマークの結果の探索ノード数が毎回わずかに異なるので、ログを書き出して、どこからどこまでは一致するのかを絞り込んでいくような作業をしました。その結果、大変効率的にデバッグが出来ました。「ベンチマーク機能、マジで神!」と思いました。

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です