sakurapyon’s blog

sakurapyon’s blog

メモリ喰い

bitboardで何かやろうとすると、大抵の場合 位置情報*ビットボードサイズ分のメモリを喰う。下手すると位置情報^2*ビットボードサイズとか。前者の場合、81*32bit*3=972bytes、後者なら78,732bytes。

今のところ最大なのは飛車や角の利きを求める配列で、81*128*32bit*3=124,416bytes。
飛車については、表引きするときに除算か剰余を計算+結果のシフトをすれば、1/9に圧縮できるけど圧縮した方がいいかなー。L1の汚染考えたら割算しても引き合うような気がするようなしないような…飛車角はあちこち移動するからキャッシュも汚染しそうだし。

Bonanzaは圧縮してないから、きっと圧縮しない方がいいんだろうな…