ConveyのHC-1
かなりのベテランの読者で無いと馴染みは無いと思うが、その昔、Convexというミニスーパーコンピュータ会社があった。Convexは最終的にはHPに買われてなくなってしまったが、このConvexの創立者のSteve Wallach氏が、新たに創立したのがこのConveyである。Convexの最後の1文字がxからyに変わったというネーミングである。
ConveyのHC-1は、FSBを使うXeonマザーボードとFPGAベースのConvey開発のアクセラレータボードからなっている。このアクセラレータボードはXeonマザーボードの1つのXeonソケットに接続され、FSB経由で共通のメモリにアクセスすることができる。しかし、Xeonマザーボードのメモリではアクセラレータの必要とするメモリバンド幅を満足することは出来ないので、アクセラレータ側に16チャネルのDDR2インタフェースを持ち、合計80GBpsのメモリバンド幅を実現している。
このアクセラレータであるが、ホストインタフェースの部分が2個のVirtex-5、アプリケーションエンジンの部分が4個の大規模Virtex-5、メモリコントローラの部分が8個の中規模Virtex-5で作られている。アクセラレータの基板の写真を見ると、これらのFPGAとDIMMの他にはめぼしい部品が見られないので、アプリケーションエンジンの浮動小数点演算器を含めてロジックはすべてFPGAで実装されていると考えられる。
ホストインタフェースとメモリコントローラ部分は機能は固定であるので、ASICの方が望ましいが開発コストの点でFPGAで実装したと考えられるが、アプリケーションエンジン部分は、論理構成が可変できるFPGAの特徴を活かして、それぞれのアプリケーション向けの計算エンジンを構成することにより、汎用CPUと較べて高い性能が実現でき、優位性を持つというのがこの製品のコンセプトである。
アプリケーションエンジンとしては、32本の単精度浮動小数点演算パイプを持ち、各演算パイプは4つのFMA(浮動小数点積和)演算を実行するという汎用浮動小数点演算型、Black-Scholes方程式など金融向けの計算用に、2つの倍精度FMA演算器と乱数発生器などを持つ演算パイプを32本持つ金融型、遺伝子のマッチングを行うタンパク質シーケンシング型などが開発されている。このカリフォルニア大サンディエゴ校と共同開発されたタンパク質シーケンシング型は合計40個のマッチングロジックを持ち、Nehalemのシングルコアの100倍の性能という。
トロント大学のFPGAアクセラレータアーキテクチャ「ArchES」
トロント大学のPaul Chow氏は、同大学が開発している「ArchES」というシステムについて発表した。科学技術計算ではMPI(Message Passing Interface)を使って処理を多数の計算ノードに分散して高速化する場合が多いが、その個々のMPIプロセスをFPGAハードウェアにマッピングして実現し、それらのブロックの間でMPI通信をしながら処理を進めるというアクセラレータ構造を提案している。
そして、このシステムでのXeonチップ間のでMPI通信性能やXeonとFPGA、FPGA同士の通信性能を測った結果が次のスライドである。
FPGAでハード実現した割りには速くないという印象であるが、ハード実現とは言え、XilinxのソフトマクロであるMicroBlazeコアを使っているので、この辺の性能がXeonと較べるとかなり低いことが影響しているようである。
このようなハードウェア間の通信にMPIのような汎用プロトコルを使う必要があるのかとも思うが、MPIで書かれたCプログラムをC-to-Gateのようなツールを使って、特にハードウェア実現の知識なしにFPGAにマッピングできるのは面白いアプローチである。なお、ハードウェアとしては、NallatchのXeon+マルチFPGAのシステムを使っている。
上の図の右側に小さな写真で示されているのがマルチFPGAモジュールであり、XilinxのVirtex-5 FPGAを1個、または2個搭載したボードを4枚重ねることができ、単精度浮動小数点演算では500GFLOPS以上、倍精度浮動小数点演算では200GFLOPS以上の性能を実現できるという。