FPGAって本当に速いのですか?

■ FPGAって本当に速いのですか?


指し手生成祭りでは一応のところトップになった(→ http://vivio.blog.shinobi.jp/Entry/151/ )のですが、どうもこの結果に納得いかないのです。


あの局面なら私の普段使っているマシン(Core 2 Duo 2.8GHz)で4M回/secぐらい出てくれないとなぁと思い、いまプログラムを64bit前提に全面的に書き直している最中です。私が考えるに、4M回/secは十分可能な範囲です。私の目標としては、大会用マシンで8コア×6M回/sec。10Gmoves/secです。


単位がさっぱりわからないという人のために解説すると、コンピュータ将棋はいまだに1秒間に1億手(100M個の局面)は読めないですけど、指し手の生成だけなら100億手は生成できるかもってことですね。


まあ、それはそれとして、FPGAでどれくらいなのかというと、

…あ、指し手生成ですか?1サイクルで全手生成してて、20MHzで動いてます。なので、200手ある局面なら
20MHz * 200 = 4Gmoves/sec
でしょうか。まあほとんど強さとは関係ないと思いますけど。ていうか関係あってくれると大変うれしいのですけどねぇ。

http://aleag.cocolog-nifty.com/blog/2009/11/post-654d.html

らしいです。前回の私の指し手生成ルーチンでも大会用マシンなら1コア3M回/secはくだらないので、8コアで24M回/sec。意外とFPGAといい勝負なのかも知れませんね。


FPGAにとって指し手生成は一番FPGAの良さが出るはずの部分で、この部分でPCと同じぐらいの速度しか出てないとなると、FPGAがPCを追い抜くのはなかなか厳しいものがあるように思います。FPGAはハード的にはまだまだ伸びしろがあるとは思うのですが、embedded memoryやら回路規模やらがもう一桁ぐらい上がってもらわないとなぁと思ったりしています。