bitBoard議論について

ライエル先生も参考文献に挙げてらっしゃいますが、
YSSの掲示板の過去ログには、山下さんが詰め将棋でbitBoardをやられた話を書き込み、
そこにBonanzaの保木さんがご自分の手法を解説された書き込みがあります。
昨晩、読んでみたのですが、これはかなり示唆に富んでおりました。
マイムーブの西村さんも参考にされてると思いますが、


ただ、保木さんは、速度のためにbitBoardを使っているわけではなくて、
差分計算をしないですむので、プログラムが組みやすく見通しがよくなるため、と書かれていました。
なるほどなあ。


bitBoardのネガティブな意見として、
詰め将棋で王の応手を生成するのに、利きが必要なので、という議論をよく見ますが、
私の詰め将棋ルーチンは、手を生成するたびに、盤においてみて、自分の王を取れる駒が周囲にないか?を確認しています。
詰め将棋では、利きは使ってませんから、利きの差分計算もしてません。
そんなに遅くはならないと思うのですが、
bitBoardなら、飛車などの飛駒の利きが一瞬で求まるので(回転はするにせよ)、王が詰むかどうかも楽に判るような気がします。



あと過去ログを読んでいると、奈良将棋の奈良さんや、謎電の高橋さんは、かなりインラインアセンブラも使われているようでした。
http://524.teacup.com/yss/bbs?OF=540&BD=3&CH=5
GPWでも、bitboardに関しても、回転をするのに、「SSE2のビット命令で一発でできる」という話が、出ておりました。
(YSSの過去ログでもbitboardにSSE命令を使えばという話は出てました)


前々からSSEをなんとか将棋に使えないか?と思ってましたが、面白い手法と思います。
SSE命令を使って、メモリーコピーを高速に行う手法は、試しに実験してみたことがあります。
SSEはSIMD命令なので、うまく使えば強力だと思います。
GA勝のアベントさんが紹介していたNvdiaの汎用GPUも面白そうです。そのへんをアクセラレータで将棋に使える時代が来れば、
たいへん楽しいと思います。ビデオカードの汎用GPUなら一般人でも手に入れられますし。