いけないボナマジック
大会終わったあたりから、ボナにMagic Bitboardを入れてみることに取り組んでいました。いったんはじめたもののいろいろ割り込みが多くてなかなか進んでなかったんですが、最近ジョブがいくつか片付いて手が戻って、ようやく完了。
肝心の結果は…2-3%遅くなりました。使えねー、が結論orz
実装的には、従来のbitboardと別にoccupied専用のbitboard(uint64_t[2])をposi_tに持ちます。occupied_rl90/rl45/rr45は削除。[bw]_occupiedは残してます。
makemove/unmakemoveでは、従来のbitboardと追加したoccupied用bitboardを同時に更新。
Magic Bitboardの方式はissei流で、1-7/8-9筋に分け、[0]と[1]をORしてからmagicをかける、というもの。(発案者のisseiさんに感謝です)
従来のbitboardもすべて新形式に変えて統一して、とかやってぎちぎちにがんばればもしかしたらもう少し速くなるかもしれません。でも(根拠ないですが)最大うまくいってもせいぜい1-2%速くなるくらいかなー、という感触。というわけで、けっこう苦労して作ったんですが、お蔵入りすることに。
#CPUアーキが変わるとcore i8では速くなる…とか、まあないとは言えませんが
http://d.hatena.ne.jp/LS3600/20091119/p1
では「ほんとに速くなるの?」という懸念が示されてましたが、指摘どおりでしたね。かけ算が遅い?キャッシュのせい?
♪ 利きが遅けりゃ 夜は暗い
春の陽射しの中も とてもクラ~~~イ
| 固定リンク
「将棋プロセサ」カテゴリの記事
- おうちでHPC(2010.03.13)
- FM番組出演情報(2012.02.07)
- クローズアップ現代とか(2012.01.27)
- 24ログ抜粋(12年1月)(2012.01.31)
- 学習も人工知能も使ってません(2012.01.31)


コメント
いっせいさんの報告でも遅くなってましたよね?
投稿: かず@なのは | 2011年7月25日 (月) 10時51分
うーん、そうなのですか・・・
本当に残念です・・・
投稿: issei_y | 2011年7月25日 (月) 19時54分
チェスではMagicが今や標準だそうなので、ちょっと不思議な気もするのですけどね。盤のサイズの差で、キャッシュに収まる収まらないの境界、とかなんでしょうかね。
投稿: A級 | 2011年7月25日 (月) 21時59分
やっぱりキャッシュなんですかねー・・・
もう少し配列サイズ小さくできないかな・・・
投稿: issei_y | 2011年7月26日 (火) 00時15分