うらおやねうら王でも、評価関数の計算時間は馬鹿にならなくて、NNUE型の評価関数でもCPU時間の40%~50%は評価関数の計算に費やされている。評価関数は前局面からの差分計算しているものの、それでもわりと重たい処理だ。(他の部分がさまざまな最適化によって、ほとんど時間を費やさなくなっているとも言える。)そこで一度計算した評価値を記憶しておいて(cacheしておいて)、再利用すればこの計算を端折れる。Table(EvalHash、eHashなどと略される)の仕組みがある。うら王では、デフォルトで128MBを確保している。これは、『Apery』のデフォルト値がそうなっていたためで、また、大きくするとメモリが足りなくて起動しないパソコンがあったりして、それについて問い合わせが来ても面倒なので、とりあえず起動はするようにしておかなければならないという考えのもとにそのようにしていた。ところが、128MBだと少し小さいのではないかというのが実験的にわかっている。128MBよりは1024MB(1GB)ほど確保したほうが5%ぐらいnpsが高そうである。Majority』は、AVX2用の実行ファイルは1024MB(1GB)がデフォルトになっているのだが、そのせいで動かないPCがあったりしたが、数年前の時点でこれを1024MBにしているのはさすがのチューニングと言わざるを得ない。1024MB以上確保するとベンチマーク上は(nps的には)スローダウンするようであるものの、実戦だとponder(相手番で思考すること)などで思考したときの局面を再度探索することは多々あるので、EvalHashはもう少し大きいほうが良いのではないかという気もしている。(計測するのにメモリが大量に必要なので、そのように大量に確保して並列対局させる環境を私は持ち合わせていないため、計測はできてない。)とりあえず、やねうら王V4.87で、EvalHashというエンジンオプションを追加して、この値をエンジン設定から変更できるようにした。デフォルトは128[MB]である。好きな値に変更できるので、1024[MB]などを試してみて欲しい。:それ考えるのに何時間要したのだ...。́ω`)ちょっと面白いのが憎らしいのだが。:いえ、npsがダウンです...。L3などのメモリcacheの関係かと...。:返信ありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。