ベンチマーク用スクリプトを使いやすくする

dlshogiに付属するベンチマーク計測用のスクリプトについて、少し使いにくい点があったためコードを一部書き直しました。

■不便であった点
今回いじったbenchmark.pyは、スクリプト内にベタ書きされた局面を読み込み、それを秒読み指定で局面数分ループを回していますが、各指定局面での探索結果(bestmove, info)は特に保存しておらず、ただ標準出力しているだけでした。
これだとサマリとしてnpsやdepth、nodesの平均や最大最小値をとることが出来ず、計測作業には不便です。

■改良点
ベンチを回した結果をlogファイルに書き出すように、一部書き直しました。具体的には、書き出す情報は一旦nps, nodes, depthの3つとし、これらの最大、最小、平均、中央値を出すようにしています。また、これに伴い、cshogi側も一部コードを書き直して、infoを取得できるようにしています。

以下は、電竜戦で使用したLightweight-EFをbyoyomi=5000で回した際の結果になります。

nps_ave=66710.78
nodes_ave=336131.11
depth_ave=25.61

nps_median=70183.0
nodes_median=353832.0
depth_median=24.0

nps_max=94505.0
nodes_max=475269.0
depth_max=44.0

nps_min=24390.0
nodes_min=124978.0
depth_min=7.0

問題なく出力できていそうです。
これでベンチマークテストも少しやりやすくなったかと思います。

今後はヒストグラム出力にも対応させる予定です。