コンピュータ将棋TL

0
平岡 拓也 @HiraokaTakuya

Bonanzaがehashから取ってきた評価値使って差分計算してるけど、ehashの値は別のスレッドから書き換えられてるかも知れないから差分評価全部ダメになるかも知れないのにちゃんと動いててすごい。。

2013-04-23 22:17:12
山本一成🌤️TuringのCEO @issei_y

@HiraokaTakuya lockless hash使ってるから大丈夫じゃないの?

2013-04-23 22:18:55
平岡 拓也 @HiraokaTakuya

@issei_y ロックしてないから書きかわっちゃうんじゃないんですか?あれ?私だけ何も分かってないのかな。。帰ったらちゃんと調べます。

2013-04-23 22:28:50
山本一成🌤️TuringのCEO @issei_y

@HiraokaTakuyahttp://t.co/97fvygxXq3 ehashはこれの応用だけど、64bitの書き換えがatomicなことを利用しているんですよ。

2013-04-23 22:32:20
平岡 拓也 @HiraokaTakuya

@issei_y 有り難うございます。勉強します。どうも基本的なことが抜けてるようで、、

2013-04-23 22:37:37
平岡 拓也 @HiraokaTakuya

今のApery、正にehashみたいなのが壊れてるんだよね。実装方法がBonanzaと違うせいか。。直したら強くなるのかな。

2013-04-23 22:43:01
平岡 拓也 @HiraokaTakuya

@sakurapyon3 まさにこれですね。ありがとうございます。

2013-04-23 23:15:44
平岡 拓也 @HiraokaTakuya

6コアで弱くなったとか騒いでたのは、もしかしたら並列度が上がってehashが壊れる確率が上がったからのような気しかしない。

2013-04-23 23:17:33
平岡 拓也 @HiraokaTakuya

transposition table も調べ直した方が良いのかな。

2013-04-23 23:55:50
平岡 拓也 @HiraokaTakuya

transposition tableはehashよりテーブルが大きいし、差分評価もしてないから問題(あまり)無しか。

2013-04-24 00:07:40
平岡 拓也 @HiraokaTakuya

128bitのehashのエントリーをどうやって64bitにおさめるかが問題だ。

2013-04-24 00:20:07
Kubo, Ryosuke @RyosukeKubo

@HiraokaTakuya lockless hash は使わない感じですか?

2013-04-24 00:22:02
Kubo, Ryosuke @RyosukeKubo

@HiraokaTakuya あ、ehashって64bit におさめちゃってるんですね...

2013-04-24 00:23:48
平岡 拓也 @HiraokaTakuya

@RyosukeKubo はい、Bonanzaはうまいこと64bitでやりくりしてますね。私はhash keyだけで64bit使ってたのでそこのbit削ったら64bitに収まりました。

2013-04-24 00:27:06
Kubo, Ryosuke @RyosukeKubo

@HiraokaTakuya 僕もとりあえず、128bitでやってました。なるほどハッシュ値はテーブルのキーになる部分を除いてチェックできればいいから64bitフルで使う必要ないんだ....そうか...

2013-04-24 00:29:19
sakurapyon @sakurapyon3

うわっ…私のハッシュ、でかすぎ…?

2013-04-24 00:31:31
Kubo, Ryosuke @RyosukeKubo

32bit 環境でも前方と後方に散らせば lockless にできる気がする....そんなことはどうでもいいか。

2013-04-24 00:35:16
かず @kazu_nanoha

評価関数を毎回律儀に計算してたけど、Bonanza の ehash を真似るか

2013-04-24 00:36:14
平岡 拓也 @HiraokaTakuya

@RyosukeKubo エントリーが64bitで収まらなくなってきたらkeyを散らせば良いんですね。なるほど覚えておこう。

2013-04-24 00:38:53
Kubo, Ryosuke @RyosukeKubo

@HiraokaTakuya あっ、いやそういうことではなく....

2013-04-24 00:41:10
Kubo, Ryosuke @RyosukeKubo

@HiraokaTakuya 32bitだと64bitの値がatomicに読み書きできないというのがそれで解決しないかなと思っただけで、大きいエンティティを扱うならチェックサムを持たせるのが普通だと思います。

2013-04-24 00:42:46
Kubo, Ryosuke @RyosukeKubo

entity っていう言葉が出てきたのは仕事の影響です。

2013-04-24 00:44:10
平岡 拓也 @HiraokaTakuya

@RyosukeKubo なるほど。。そりゃそうですね、チェックサム使えば良いんだ……

2013-04-24 00:49:33