2017年4月
            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

« 2009年8月 | トップページ | 2009年10月 »

2009年9月

SWoPPのFPGA囲碁論文 続報

論文執筆者にメール送って聞いてみました。と、すぐ回答送っていただけました。
私の理解が正しければ、先の例だと上辺の

*****+*
*ooo*o*

を見たとき、'o'の石はすべて自分の連IDを持っているので、
右側の石の呼吸点が見つかると、それが同じサイクル中で
左側の同じIDの石すべてに伝播される(その行の中でつながって
いなくても)

ということらしいです。なるほど、これなら正しく動きますね。
私のは連ID持ってないので気づきませんでした(つながって
ないと伝えられない)。大変失礼しました。

連IDを全部保持しないとならないので回路食いそうな気は
しますが。まあだからRAMにしまわざるをえなかったのでしょうかね。

SWoPPのFPGA囲碁論文を読んでみた…けど

いや、これじゃだめなんじゃ?

この論文ですが、全文読みましたが、上からスキャン、その後下からスキャン、ではたとえば

*****+*
*ooo*o*
*o*o*o*
*o*o*o*
*o*ooo*
*+*****

こんなとき、白の連の呼吸点は往復スキャン後、N字の左肩のみ2でその他はまだ2になってないですよね。これでは連の認識できてないと思いますが。

あれでも、学会の論文て査読とかあるんだっけ?それ通った?てことは私が何か勘違いしてるのか?…あれ会議は査読ないんだっけ?アカデミック界のことはまったくわかってません。

どなたかSWoPP2009出た人いませんか?質疑で何か言ってなかった?

しかしこれで実際間違いで、でもプレイアウトやったら実際勝率上がった、のだとしたらそれこそ「嘘のようだが本当なのだ!」ですね^^;

FPGA囲碁ソース公開

FPGAモンテカルロ囲碁のソースを公開します。このページの左上の「資料館」のところに置きます。

去年7月ころに作ってたものまったくそのままです。もう1年くらいいじってませんが、最近GPWやSWoPPで発表があったり、某ブログでも開発が始まったりしてるので、参考になるかと思い公開しときます。

#一年前は「こんなの他に誰も興味ねぇんだろうな~」と思ってたんですが^^;

この回路がやるのは、単にモンテカルロのプレイアウトを終局まで行うだけです。1年くらい前に「UCTがネックだなー」と言ってたところで開発止まってて、そこから進んでません。FPGAに焼くための環境もできてませんが、SIMLはできます。合成も前にやったので通るはずです。SIMLの流し方は中のREADMEをご覧ください。多少の解説もREADMEに書いてます(あまり大したこと書いてませんが)

SWoPPの論文はまだ見てませんが、Webで見える要約だけは見ました。19路でのプレイアウト速度はなかなか出てないみたいですね。GPW2008の発表では、メモリをシリアルに読んでるとかいう話だったのでそこがボトルネックだと思ってましたが、SWoPPのは同じ構成なんでしょうか、別物なんでしょうかね。

打ち上げる石の認識は、やり方完璧に忘れてたので今コード見てみたら、ちょっとトリッキーなことやってますね。簡単に言うと、1サイクルで上下左右の四方に一路ずつ「連ID」と「呼吸点の数が0か1か2以上か」を伝播します。連IDとは、呼吸点の位置IDの最小値。連IDが意味を持つのは、呼吸点が1のときだけ。隣どうしが、呼吸点の数が違うか、呼吸点の数がともに1で連IDが違ったら、伝播して次のサイクルへ。伝播しきったら連の認識完了。つまり、1手打つごとに複数サイクルかかります。一局が400手強で2700サイクルだと、1手平均7サイクル弱かな?白の連の唯一の呼吸点に打つとき、その連を打ち上げます。

話は変わりますが、例のライブラリ論争中にずっと脳内を流れてた曲があるんですが、なんと動画ありました。だいぶ昔のなんですが。

これはぜひ選手権の公式ソングに認定してもええんではないかと。

« 2009年8月 | トップページ | 2009年10月 »