2011-08-01から1ヶ月間の記事一覧

SSE と union 更に続き

やっぱり気になって色々実験しました。 結果としては、 ・指し手生成はSSE使用で2~3割くらい遅くなりました。 ・指定位置への利きを持つ駒のビットボードを返す関数は、1.7倍ほどの速度になり、かなり高速化されました。 ・gcc, icc 共に同様の結果でした。 …

SSE と union 続き

icc をインストールしたので、 問題のソースコードをビルドしてみたが、 結果は駄目だった。 ただ、g++ が union で bitboard を定義しただけで滅茶苦茶遅くなったのに対して、 icc は union を定義しただけでは速度低下は無かった。 ただ、SSE の命令を使用…

icc インストールしてみる。

icc 入れてみる。 Linux版は個人が非営利で使う分には無償らしいので、それを貰おう。 以下、自分用メモ ・non commercial ってところ見つけにくいので注意。 ・32/64 bit 版の両方のバイナリを作れるやつと、 32,64 bit 版の片方だけしか作れないやつがある…

SSE と union

はよ評価関数入れろやって感じなんですが、息抜きに高速化でも。 自分のCPU(Core2Duo T8300 2.4GHz)はSSE2までしか対応してないと思ってたけど、Bonanza6.0 の Makefile 見たらデフォルトでSSE4.1使ってて、普通に動いてました。 ってことでBitboardのSSE化…

USI 動いた

とりあえず局面の更新とUSI読み込みは出来た。 次は評価関数。

動けば良いよ。

USIの筋、段と、自分のソフトの File, Rank が対応してないのは 気持ち悪いといえば気持ち悪いけれど、USI 周りだけで対応することにした。 Bonanza もそうなってるしな。

今更USI

position startpos moves 7g7f 3c3d 2g2f ↑の USI のサンプルコマンド打っても、 局面が更新されない、おかしいなぁと思っていたら、 USIは段がアルファベット、筋が数字だと・・・ チェスと一緒じゃなかったの??ソースコード全部で Rank ←→ File の変換し…

transposition table 見てみるか。

transosition table 比較Bonanza typedef struct { uint64_t word1, word2; } trans_entry_t; typedef struct { trans_entry_t prefer, always[2]; } trans_table_t; /* name bits shifts word1 depth 8 56 value 16 40 move 19 21 hand 21 0 word2 key 57 7…

transposition table 作るか。

あれ、先に枝狩りとか考えずにαβ実装した方が良いのか? 正直、完成品(Bonanza, Stockfishなど)だけ見ても作る順番が分からん。 料理と一緒だな。

Boost

今までビルドせずに使ってたけど、 Thread 使いたいからソースからビルド。 libbz2-dev が無いせいでビルドエラー出まくったり、 使った関数が undefined だって怒られたり。 結局ソースから作るの面倒臭くなってバイナリ落として来た。 すごく簡単だった。 …

英語苦手

以下、chess programming wiki を読んで分かったことのメモ。 間違い多くてコメント欄にて修正してもらいました。 ・LMR (Late Move Reductions)指し手をちょっとずつ生成して評価して枝狩りすること全般のことを指してる? 枝狩りって訳せばいいの? (*)コ…

探索について

探索について取り掛かろうと思う。 探索って何をする必要があるのかっていうのは分かった。・指し手を生成・良さそうな手の順番に指し手の並び替え・順番にαβ探索・局面の評価・βカットとかの枝狩り色んな探索の効率化手法があるようで、 まず、どんな方法が…