ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

FPGAでエクストリームなコンピューティングの会

 FPGAでエクストリームなコンピューティングの会という謎の勉強会に呼ばれたので参加してきました。僕も発表する予定だったのですが、時間が取れず今回は発表無しでした。時系列gdgdで感想を。

 FPGAで証券取引の話がとても面白かったです。話を聞くまでは証券取引の記事にでてくる数msというのがFPGAだったら余裕で、FPGAなめんなと思っていました。FPGAの中にCPU乗せてCで書いたアルゴリズムがCPU上で走っているのかなと勝手に想像していました。しかし、良く話を聞いていると、msは発注するまでの許容時間の話で、実際にFPGAとして応答しないといけない時間は20us程度、結構厳しい速度ですね。ふと確認したら高位合成のHandel-Cで有名なセロクシカが、完全に金融に移行していて驚きました。

 FPGAでWebサーバとFPGAで高速のデータベース処理は、いまいち使われている技術の違いが分かりませんでした。オープンソースでNetezzaクローンを作ろうという話がでましたが、楽しいとは思うが同じくモチベーションが実感できませんでした。でも楽しそうです。話題に上がっていたZedboardが欲しくなって調べてみました、ネットワークは使えるけどストレージがSDカードしか無い。NetezzaクローンはSDカードでも良いのだろうか。Zedboardで完全なNetezzaクローンは無理にしても、パーツパーツが動いていけば、新しい発想が出てくる可能性も有ると思う。とにかく面白い。

「俺はノイマンなコードを書くのをやめるぞ!ジョジョーッ!」というネタがありましたが、ノイマンは、ノイマン型の計算機とは別にセルオートマトンを使ったコンピューティングも提案しています。2次元にセルを並べて、お互いに影響し合いながら計算を指数的に広げていきます。2次元上に並べられたセルと自己増殖等の特徴をみると、FPGA+リコンフィグで、DAPDNAのアーキテクチャに近いと感じます。ゲーム理論で経済の仕組みにも影響を与えたノイマンが、今のFPGAでの自動取引を見たらどんな風に思うんでしょうね。僕たちが生きている間にノイマンはオワコンと言える日がいつか来るのでしょうか。

 高位合成については、Cyber Cの話が聞けたのが良かったです。高位合成を上から見るか下から見るかで全然違って、下のレイヤーから見るとまずmalloc何とかしないと何も出来ない感があります。上のレイヤーから見ている人は、Verilog書くの面倒だよーが最初に来ていてなかなか難しいなと感じました。すごいHな田中さんと懇親会で少し話していていろいろ考えが膨らみました、下のレイヤーから見ている人は、CならCで書いたプログラムと同じ動きをしないといけないという呪縛にとらわれている。例えば、関数の引数はコピーされねばならず、再帰を動かすにはスタックが必要、副作用の順番を変えるなんてとんでもない、みたいなのはあります。上から見ている人達はそうじゃなくて、プログラムを動かしたいのではなくて、入力に対して期待した出力が欲しいみたいなその一点のような気がします。現在の高位合成がノイマン型CPUの動きをエミュレーションしようとしているのに対し、もうちょっと違う発想でコンピューティングを考えないと上手く行かないとおもいました。例えば末尾再帰の形になっている関数であれば、スタック無しの回路を作ってくれても良いと思いますね。簡単な末尾再帰の形が確実に回路に落ちるなら、カリー化やCPS変換などの組み合わせでもっとリッチな表現も回路に落とせる気がしてきました。

 koguroさんの、FPGALispマシーンの実演が見れたのが良かった。LCDに文字を出すために簡易CPUを実装したと聞いて、発想が全然違って面白かったです。

 懇親会は少しだけ参加しました。すごいHの田中さんにサインもらいました!(自慢)
 D言語id:repeatedlyさんはD言語の話は無しで、PHPは嫌いじゃないけどと言いながら、PHPの悪い所をいっぱい教えてくれました。
 あと、ある大企業では初任給を高くして人を集めて、その分2年目3年目の給料が下がるという怖い話も聞きました。

 平日の東京日帰り勉強会でしたが、とても楽しいひとときを過ごせました。ありがとうございました。