GRAPE-DR の商品版がアナウンスされています。プロジェクトとしての大きな
機械はまだ完成してないわけですが、計算機は生ものなのでなるべく早く御賞
味下さい、というわけで製品化もしています。これは GRAPE-5, 6 も同様で、
早い時期に商品版をだしています。
現在受注・出荷を開始しているのは 1 チップカード で、Altera Arria GX を使って PCIe x8 のインターフェース
をつけています。
ここで FPGA の仕様にある程度詳しい人ならば??と思って欲しいところで、
Altera の
資料 には Arria は x1, x4 のみサポート、と書いてあります。 x8 サポー
トは KFCR の独自開発です。独自開発することで、安価な FPGA で x8 の高い
バンド幅を実現しただけでなく、ペイロード長等のチューニングも容易にして
います。
とはいえ Arria には問題もあって、それは動作クロックがあまり高くないこ
とです。特に DDR メモリインターフェースが「最大」 DDR466 (233MHz クロッ
ク)でしか動作しないことは結構問題で、 SING チップに必要な 500MHz 64ビッ
トデータ供給には若干不足します。が、値段の安さにはかえ難く、プロジェク
トの量産版にも Arria を採用しています。
実際、ボード開発が遅れているのは、 Arria の発表・サンプル出荷を待たざる
を得なかったからであるといっても過言ではありません。現在、実際問題とし
て採用できる可能性がある FPGA を作っているメーカーは Xilinx, Altera の
2社しかないわけですが、これらの会社の安価なローエンド FPGA で 400MHz を
超える動作速度を公称でもっているものは昨年時点で(現在でも) Altera
Arria GX のみとなっています。 Altera Cyclone III も、 Xilinx Spartan 3
もメモリ動作速度は低いものとなりました。
当初は、 DDR DRAM ではなく QDR SRAM を使うことで、FPGA の必要ピン数を削
減するとともに高速動作の必要も回避する方向の設計を考えており、これはこ
れでよかったのですが PCIe を使ったホスト計算機との実効転送速度が名目ピー
クの 50-60% 程度しかでないのではないかということが明らかになってきたの
でメモリを大きくする必要が発生し、そのために DRAM を使うことにしたもの
です。
まあ、ホストとの通信速度、オンボードメモリの動作速度への要求が割合に厳
しいものになっているのは純粋に LINPACK (DGEMM) だけのためであり、粒子
系シミュレーションや量子化学計算ではこれらはそれほど必要ではありません。
つまり、 GRAPE-DR プロジェクト全体として、 LINPACK での数字にとらわれ
過ぎている(まあ、その、主に私のせいですが)という面がないわけではありま
せん。
とはいえ、まあ、現時点では GRAPE-DR は1チップで実測性能で DGEMM 世界最
高速を実現したわけで、まあ、数千億掛けたという話もある Cell とか
に比べてもピーク性能、実効性能、電力当り性能のどれも高い、というところ
で結構悪くないものができたのではないかと思っています。
値段で GPU には劣るのが、普及という面からは問題なのですが、 GPU もサポー
ト付きで買うと1枚 30万円ですから、それほど差はありません。また、電力当
り性能は数倍違っていて、 GPU は現状では数年使うと電気代のほうが高いよ
うな代物ですから、総合的には悪くないとは思います。
が、本当に優位にたつためには価格で 10倍程度の差が欲しいところで、これは
現在の GRAPE-DR カードでは実現できていません。これには色々な理由があり
ますが、結構大きいのは結局設計がよろしくなくて周辺チップが多数必要であ
る、ということです。 GRAPE-DR チップの他に、 PCIe インターフェースとメ
モリインターフェースをする巨大な FPGA、DRAM メモリ、それらへの電源回路、
といったものが必要になり、ボード1枚の製造原価がチップ量産単価の3倍程度
になっているのです。その他にアーキテクチャが今一つでトランジスタ効率が
まだ 2-3倍悪いとか、結局そういう理由でチップ製造数が少ないので単価が高
いとか、色々あるわけです。
まあ、 4 チップ版ボードも動くようになったので、一応今年度末には(といっ
ても今年度の予算でものを買うと自動的に納入が 2月末になるので組み立ては
もうちょっと先ですが)そこそこのシステムが組み上がることになります。
RoadRunner が既に 1Pflops 突破をしてしまったので、世界一になるのはちょっ
と予算追加とかがないと無理ですが、まあ、2-5位のどこかはなんとかなるで
しょう。
なにしろ予算が足りないので、たかが 512台のホスト計算機にもそれほどお金
を掛ける余裕がない辺りが苦しいところで、これはどうしても例えば LINPACK
の実測効率を下げるほうに働きます。ホストのメモリの量、主記憶速度が直接
性能に影響するので、、、マルチノードでの LINPACK では、 GRAPE-DR カード
1枚当り大体 5GB/s の実効転送速度を必要とするので、2枚挿すと実効速度が名
目速度の6割としても15GB/s の名目速度が必要になり、 DDR2-800 2チャネルで
は不足で 950MHz 以上で動作して欲しい、という話になります。逆に、
12.8GB/s だとそこだけで効率が 80% を超えることが困難だとわかるわけです。
ホスト計算機にお金を掛ける余裕がない理由はネットワークの価格がここ数年
であまりさがってくれなかったことです。GRAPE-DR カードをいれてマルチノー
ドで LINPACK をやるにはノードあたり 10-20Gbps の速度が必要なのですが、
2008年くらいにはこれが 10GbE でそこそこ安価に実現できるかと思ってたら
全然そうはなってない、ということですね。これについては次の項でまた議論
します。