スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

FPGAエクストリーム・コンピューティング第3回が終わりました #fpgax

FPGAエクストリーム・コンピューティング第3回は大阪で開催でした。ハードウェアは西日本が熱いのか、いつも大阪や京都や福岡から来ていただいてる方が多く、これは大阪でやらねば! と思いまして。。大阪市と共催で、大阪イノベーションハブの会場をお借りして開催しました。この会場のあるグランフロントという大阪駅となりの新しいショッピングモール+オフィス施設がでかすぎて、会場にたどり着くまで相当迷いました。。グランフロントなめてました。

今回の内容

Android上で作ったUIからFPGA上で組んだ回路と通信する方法の解説。私も前に音源作ったときはUIをFPGAで実装するのが面倒で、ChromeのJSで作ったUIとFPGAをシリアル通信で連携させたりしてました。これはUARTを使ったごく単純なしくみでしたが、鈴木さんの方法はFPGA上でAvalonバスを用意して、それとAndroid間をFIFOで結ぶという本格的なもの。なるほど〜FPGA使いの方はこんなふうに設計するのか〜と感心。Alteraの開発ツールQsysの使い所や、AvalonやAXIなどのバスはどんな基準で選べばよいのか? など、とても参考になりました。

  • 栗元憲一さん:mjpeg stream viewer on FPGA資料

こちらも、最初にソフトウェアで実装したアルゴリズムを段階的にハードウェアに落としていくところがとても面白い。LEONプロセッサのIPやAHBバスの位置づけや長所短所、例えばGPLで公開されるので無償で使えるし、欧州の宇宙開発で使われてる実績があるから無償といっても高品質、といった背景が理解できて嬉しい内容でした。栗元さんも、私と同じく、リアルタイムストリーム処理へのFPGAの適用可能性にたいへん興味があるようで、懇親会では栗元さん・きしださんと熱く語り合いました。。こんな話題を肴においしいお酒が飲めるなんてとても幸せですw

  • 夏谷実さん:高速シリアル通信を支える技術(資料

いまどきの高速シリアル・インタフェースの中身がどんな仕組みで実装されてるのかを解説。PCIeやUSB3.0SATAといったインタフェースの歴史的背景や、その中で用いられてるテクニック(送信側と受信側のクロックがどうしてもズレてしまうので、その補正とか)が、へぇ〜へぇ〜と思いました。

CPUやGPU、ASICなど他の技術とFPGAのそれぞれの長所や短所を比較して、使い分けを論じたセッション。並列度は高いけどクロックが遅く集積度も低いFPGAはCPUやGPUに比べてどんな使い道が有効なのか? きしださんと皆さんでディスカッションしてました。この話題は奥が深い。。

  • 三好健文さん:JavaRockでBlokusDuoプレーヤを作る話(資料

三好さんが作っているオープンソースの高位合成ツール、JavaRockでパズルゲームのAIを実装するという、これまた濃い内容のセッションでした。たしかにこの例のような複雑な条件分岐を伴うロジックをHDLで書く気はしないですね。。そう考えると、こうした応用をお金をかけずに実装する方法としてはJavaRock最強かも。無償で使える高位合成ツールが広まれば、とくに検証やテストベッド作成のコストが低くなりそう。

  • 吉田幹さん:FPGAでデータフローマシンっぽいもんを作ったで!!(資料

吉田さんはFPGA歴2週間でいきなりめちゃくちゃかっこいいマシンを作ってきました(デモのビデオ)。データフローマシンやで! といっても会場の反応の薄さが逆にエクストリーム感を際立たせてましたwwまじめな話、あまり皆がピンと来ないくらい既存のノイマン型とはかけ離れたパラダイムの計算モデルをさくっと実装できちゃうのがFPGAのすばらしいところ。もちろんそれが対CPUでどれだけ性能がよいか? 実案件での有効性は? は未知数ですが、しかしまずは誰得なホビーとしてとても楽しいです。

データフローモデルのメリットは、コントロールフロー(=マルチスレッド)のように難しい排他やデバッグをせずとも大規模かつ粒度の細かな並列処理を(Excelの式みたいに)簡単に書けるところ。GPUSIMD命令でも大規模で細粒度の並列処理ができるけど、それらは結局SIMDなので、ひとつのコードで大量のデータを並列処理する用途向け。一方で、データフローはもっとMIMD的な使い方、たくさんの異なるコードがそれぞれ並列にデータ処理する用途に使える。おおざっぱには、アクターモデルErlangで大量のサーバートラフィックを並列処理する感覚に近いかも。シリコンの並列演算のポテンシャルをがっつり引き出せる可能性のあるパラダイムと思います。

運営など

いつもながら時間管理の甘さにより、後半の講演者の皆さんには大変ご迷惑をおかけしました。。m(__)m ついつい議論が熱くなりやすい勉強会なので、次回はもっと余裕をもたせた構成にしたいです!

今回の大阪での開催では、会場の手配から運営、懇親会の手配まで、@keiji_ariyama さんに大変お世話になりました。ありがとうございます!! また、会場をご提供いただいた大阪市の皆様にもお礼を申し上げます。

次回は秋ごろに東京で、その後は福岡で!って話が出てましたねw