2024年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

tweet

  • tweets

« 2011年3月 | トップページ | 2011年6月 »

2011年5月

優勝だん

きのうの朝、家に帰ってきました。ホテルに泊まっててネット見れてなかったので、帰ってからネットの大会関連情報をざっとまとめ読みしましたが、ボンクラーズに向けての多くの声援(&若干の罵倒w)を目にしまして胸が熱くなっておりました。応援いただいたみなさん、ありがとうございました。な、なによ、ちょ、ちょっと目にゴミが入っただけなんだからねッ!

15分設定はですね、決勝のBlunder戦のときに気づいたんですよ。いやそういえば2次予選の時から「時間の使い方少ないですね」とはいろんな人に言われてはいたんですが。だけど5/2に25分用のスクリプトを作って一晩流して、翌朝消費時間確認して「よしOK!」とまでやってたので、たまたま早く終わっただけだろう、何でもないよ、絶対大丈夫だよ!と思ってたんですよね。ところがBlunder戦のときよくよく確認したら、その新しく作ったスクリプトでなく古い方(ふだんfloodgateで使ってる15分のやつ)を使ってたというw で最後のponanza戦だけ25分でやりました。あそこで気づかなかったら最後も15分でやって、で負けて優勝逃してたかもしんないんですよね。いやー危なかったです。というか気づけよ自分。しかしあれで対Bonanza戦勝てたとか、まったく奇跡としか言いようがないです。

インタビューをいろいろ受けまして、「棋風とか特に狙いはあるんですか?」などと複数筋から聞かれまして。プログラム的には棋風なんてものはないので、「は?別に何も考えてませんけど」みたいに答えたらいまいち相手のインタビュアーの方々が不満そうで納得されてなかったんですが。後で解説動画とか見たら、プロの先生から受けが強いとか、挙句の果てに大山流だとか、なんか絶賛されてまして。いやーなんと言っていいやら。な、なによ、目にゴm(ry だけどコンピュータ的には受けに特化して何かやるなんてことは別にないわけで。でなんでこうなるんだろうなーとちょっと考えてみてますが、どうもよくわかりません。まあもう少し考えてみます。

※会長から「名前変えてくれんか」と言われましてw これはちょっと変えざるを得ないかと思っております。いやもちろん、今の名前は自分では気に入ってるんですよ?趣味でやるぶんには、我ながらいいネーミングだと思ってるんですが。ただ優勝とかしてしまい、へたするとプロ棋士さんに挑戦するかもとかいう状況でこの名前だと、さすがに相手の方に失礼かとw というわけで新ネーミングを検討中です。ただ問題は、私のセンスで名付けると次もまた駄目出しされるような名前になるんじゃないかという気がするんですがw

大会を終えて

いやまだ終わってませんけれども^^;
別に週刊ジャンプじゃなくて、開発者的にはもうやることは終わってるんですよね。あとは会場行ってプログラムを流すだけ。せいぜい運搬中に落っことさないようにとか、コーヒーこぼさないようにとか気をつけるくらい。4/25くらいまではなんのかんのとソースいじってましたが、それからまったくいじってません。なので今年の作業はもう終わりで、今は解放されてのんびりしつつ、一部来年の構想も練りだしたり、というところです。

去年の大会の時点でi7 980X, i7 860, Phenom II 965と3台持ってまして、しばらくこれで開発/テストしてきましたが、大会直前にPhenom II 1100Tとi7 2600Kをたてつづけに購入。どちらも自作で、CPU, MB, メモリ, HD, ケース+電源、の最小構成で5万円台、計約11万。机の下にPC5台置いてるんですが、座ったとき足を伸ばせなくなってますw

今のfloodgateのOdelschwanckは980X+2600K+1100Tのボンクラーズです。(時々微妙にマシン構成変わったりしてますが、基本的には。)Ciferはそれに860を加えた4台構成なんですが、どうも3台より若干弱いみたい?各ノードがまったく同じならば3ノードより4ノードの方が強いという実験結果はあるんですが(980Xで1コアを1ノードとして)、ノード間で強さが違うと弱いノードが「足を引っ張る」みたいなことがあるのかもしれません。とりあえず大会は3台で行く予定。電力が気になってたんですが、これもワットチェッカーを買って実測しまして、約550Wでした。あとapacciは、通常1コア=1ノードで3ノードだったんですが、きのうだけは980なしの2600K+1100T+860でした(980を別のことに使ってたので)。

ちなみにnpsは、一局ごとに変動しますがざっくり言うと、980X (6c) 1.7M, 2600K (4c) 1.4M, 1100T (6c) 1.2M, 860 (4c) 1.1M, という感じです。

各種CPUをこれだけ取り揃えてる奴もなかなかいないと思いますw 私の場合、(文房具用の1台を除いて)PCに要求することは「bonasseが速く動くこと」のただ一点で、他はどうでもいいんですよ。で上のnpsをみると「(私の目的には)2600Kがいちばんコストパフォーマンスがいいな」などとわかるわけです。もしかして私のように「特定目的(ソフト)だけ速くしたいんだけど、どのCPUにすべきか検討している」みたいな人がいるなら、そういう人相手に「1件○千円で各種CPUのベンチマークしますよ」みたいな商売できないか?とか思ったりw そういう需要のある人いませんか?いませんか、そうですか。

今年のプログラムは路線的には去年の延長線上ですが、一から作り直してます。マスターはアルゴリズムから見直しての大変更。去年から今までの開発はこれがメインでした。スレーブは作り直しといってもライブラリ制限を嫌っただけで、bonasseを忠実に真似てますんで動作はほぼbonasseといっしょです。まあいくつか改良はしましたけど。単体npsはbonasse v1.2より2~3割上がってるはずです。また評価関数もいろいろいじってまして、fv.binは使ってません(というか使えない)。

鬼が笑う来年の構想ですが、まずbonasse単体をもう少しチューンしてみたいと思ってます。今のSSE bitboardは、去年の大会直前の限られた時間で作ったためかなり中途半端になってます。これを全面SSE化してしまおうかな、と。これは誰でも思いつくことで、実はソースを公開したときに誰か手を上げてやってくれないかと期待してたんですがw 誰もやってくれないのでしょうがないから自分でやろうかと思います。

ponanza成功の原動力(?)のMagic bitboardですが、気にはなってますがまだ情報収集始めたばかりで正直まだよく理解してません。ですが面白そうなので、いっそC++にしてoccupiedクラスとか作って、
occupied.update(move);
とか
bb = occupied.attackDiag(sq);
とかいう感じにしておき、クラスの実装でRotatedにもMagicにもなるようにできんかなー、などと思ったり。いやまだ妄想のレベルですけど。

あとクラスタ並列は、今の作りが4からせいぜい8ノード程度に特化した作りになっています。この範囲ではまあそこそこ成果が出たと思っていますが、次は当然数十ノード、数百ノードに拡張してみたい。ですがマシン環境が必要で、これはどう逆立ちしても個人では無理ですね。どっか大学の研究生にでもならせてもらってマシン使わせてもらおうか、などと考えていますが、まあこれから詳細検討していきます。

入玉関連が弱いのはボナンザ系の常なんですが、ponanzaはfv.bin使ってるという割には見てるとちゃんと入玉してますね。ドーピングしてると書いてたけど、入玉まわりをいじってるのかな?私がやってあまりうまくできそうな気もしないんですけど、とにかく現状ここが最大の弱点(と私は思っている)のため、ちょっとトライしてみようかとも思います。(あっさり諦めるかもしれないけどw)

« 2011年3月 | トップページ | 2011年6月 »