Convey HC-1の思い出

Convey HC-1というコンピュータは、Convex Computerの流れをくむConvey Computerが開発した、FPGAをCPUのフロントサイドバス(FSB)に直結したシステム。 Supercomputing 2009 (SC09)で展示されたもので、マジメな紹介は [1]を参照いただくとして、ここでは実際しばらく使ったときに感じたことなどを完全に忘れてしまう前に書いておこうと思う。

前提としてConvexについてかんたんに説明すると、1980年代から1990年代初頭にかけてベクトル型のスーパコンピュータの開発を中心に有名だった会社だ。 その会社のメンバーが再結集して2000年代後半に製品を出してきたのがConvey Computerというわけだ。 ここまでの経緯だけでもワクワクする。

さて、HC-1の外からの見た目としては、2Uの普通のPCサーバーに浅葱色のプレートがついたように見える。 中身は2階建てになっており、1階部分はインテル製の普通のCore2系のXeonがデュアル搭載できるサーバシステムで、2階部分がConvey固有に見えるボードが搭載されていた。 1階と2階の電源投入の順序とタイミングがシビアで、ちゃんと起動させるのにちょっとしたコツが必要だったような記憶がある。

Convey HC-1のFPGAボード。
2階部分のFPGAが乗ったボード。

ボードの様子はブロックダイアグラムと並べてみるとよくて、DIMMソケットの横の合計4つのヒートシンクがメモリコントローラのFPGAで、 写真下部の左右に並んだ4つのヒートシンクがApplication Engine (AE)のVirtex- 5 LX 330であるはずだ。 写真中央のFPGA 2個がApplication Engine Hub(のはず)で、ホストとのインターフェースや、スカラプロセッサと呼ばれるプロセッサコアが載っているらしい。

私が特に気に入っていたのがメモリ周りで、SG-DIMMと呼ばれる、基板の上にFPGAが載ったDIMMが8枚搭載されている。 SGはScatter-gatherのことらしい。 記憶が定かではなくなってきているのだが、ブロックダイアグラムやマニュアルと照らし合わせると、写真では見切れている下側にも同じ構成のメモリコントローラとSG-DIMMのセットがあったはずだ。 SG-DIMMは2枚づつメモリコントローラのFPGAにつながっていて、 8つのメモリコントローラと4つのAE FPGAの接続は完全2部グラフの構成になっている。

Convey HC-1 SG-DIMM
Convey HC-1 SG-DIMM.
Convey HC-1 SG-DIMMの裏側
Convey HC-1 SG-DIMMの裏側

このメモリシステムで特にかっこよいのが、31-31 interleaveというmodulo 31でのインターリーブを選択できた点だ。 プログラマは頻繁に2の冪のサイズのメモリブロック扱うようなコードを書くが、modulo 31でインターリーブしておけばDIMM単位でのコンフリクトが起きなくて有利になるというわけだ。 IntelのBloomfield (Nehalem)でメモリチャネルが3チャネルだったのも同じような理由(まさかパッケージに収まるピンの数から逆算ということはないだろう)のはずだ。 ただし、HC-1において通常のBinary Interleaveと切り替える際には再起動が必要だった。

というわけで色々と賢い工夫と実際動く実装で良いシステムだったのだが、あまりシリーズとして長続きしなかった理由は何だろう。 一つは、SC09で発表してることや、いくつかの言葉遣いから読み取るに、作者たちとしてはこのシステムは浮動小数点数を扱うようないわゆるHPC向けに使ってほしかったみたいなのだ。 システムの作りや、マニュアルの言葉遣いのはしばしから、ベクトルスーパコンピュータを本当は作りたかったっぽい雰囲気を私は感じる。 一方で、FPGAだとどうしても動作周波数は上げられないため、浮動小数点数の演算のような固定機能をFPGAで実現するのはハンデがある中、GPUやCPUの性能向上により、このシステムが想定していたうまくハマる場所がどんどん狭くなっていってしまったのかなと考えている。 I/Oバスではなく、メインのCPUのcache-coherentなところにFPGAがいるというアイデア自体は便利な応用がありそうだし、何かを試作したいというときは非常に良いシステムだと感じた。 というわけで、またConveyのメンバーが再結集するときを待ちたいと思います。次はConvezになるのだろうか。

参考文献

  1. J. D. Bakos, "High-Performance Heterogeneous Computing with the Convey HC-1," in Computing in Science & Engineering, vol. 12, no. 6, pp. 80-87, Nov.-Dec. 2010, doi: 10.1109/MCSE.2010.135.