2011年8月にStanford大学で開催されたHot Chips 23で、IBMはBlue Gene/Q(BG/Q)プロセサを発表した。BG/Qは2010年11月のスパコン関係の学会であるSC2010で展示が行われていたがプロセサチップの中身に関する学会発表は、今回が初めてである。

BG/Qチップの発表を行うIBMのRuud Haring氏

IBMのBG/Qは、2004年11月に地球シミュレータに代わってTop500の1位になったBG/L、2007年11月に2位となったBG/Pに続くBlue Geneの3代目のシステムである。正式にはBlue Geneはシステムの名称で、今回発表されたチップはBlue Gene/Q Compute Chipというのであるが、ここではBG/Qチップと略称する。

BG/Qチップは18個のプロセサコアと32MBの2次キャッシュ、2チャネルのDDR-1333メモリインタフェース、そしてチップ間を接続するネットワークポートとスイッチを集積したチップである。なお、この32MBのL2キャッシュはeDRAMで作られており、通常のSRAMに比べて小さい面積で作られている。

BG/Qチップのダイ写真と主要な仕様(すべての図はHot Chips 23の発表資料を転載)

このダイ写真にみられるように、 SerDesと書かれたネットワークポートのブロックが下辺の中央に2つみられるが、この左から時計回りにPU00~PU17までの18個のプロセサコアが配置されている。そして、チップの中央に青色に塗られたクロスバがあり、その両側を合計32MBのL2キャッシュが埋めている。そして左右の両側にメモリコントローラ(MC0、MC1)があり、左右の辺に沿ってDDR3のメモリインタフェース回路が存在する。

このチップはIBMのCu-45と呼ぶ45nmのSOIプロセスで製造され、チップサイズは360平方mmで、トランジスタ数は1.47Bとなっている。

プロセサコアは2010年2月のISSCCで発表された通信プロセサに使われたPowerENチップのものをベースに浮動小数点演算器の追加などスパコン用の機能強化を行っている。また、通信用プロセサではコアを1V程度の電源電圧で2.4GHz(ISSCCの論文では2.3GHz)のクロックで動作させていたが、BG/Qチップでは0.8V程度に電源電圧を下げ1.6GHzクロックで動かすことにより消費電力を抑えている。

その結果、チップの消費電力は55Wでピーク演算性能は204.8GFlopsとなっている。2011年6月にTop500の1位となった日本の「京」スパコンのSPARC64 VIIIfxは58Wで128GFlopsであるので、BG/Qの性能/電力は2倍近い。また、BG/Qチップはネットワークインタフェースとスイッチを含んでいるが「京」はICCという水冷のチップ(消費電力は不明)が必要であり、これを考えると性能/電力はさらに開くことになる。

BG/Qチップには18個のプロセサコアが搭載されているが、計算に使用するのは16個だけで、1個はOSやI/O処理などを専門に分担する。

スパコンの処理では計算を多数のプロセサコアに分担させ、すべてのコアの計算が終わったら、その結果を使う次のステップの計算に進むというのが一般的である。このため、一部のコアの計算処理が遅くなると、早く計算が終わったコアも遅いコアの計算終了を待ち合わせることが必要となってしまう。

分担する計算だけを行っている場合は良いのであるが、OSが動いていると、タイマを始めとして色々なデーモンが走り、デーモン自体の実行時間は短くても、そのためにOSの動いているコアの計算処理が遅くなると、何千、何万のコアが待ちになってしまう。BG/Qでは、OSを動かすコアを別に設けることにより、このような問題を無くすことができるように工夫されている。

そして、もう1個のコアはスペアで、不良のコアがあると、それ以降のコアの順番を詰めて17個の良品コアを確保する。この不良コアの情報はチップ上のフューズに記憶されており、電源オンの時に不良コアを外すようにする。このようにすると、18個中1個のコアが不良でも、良品チップにできるので、歩留りを向上させ、チップのコストを下げることができる。

不良コアを外して17個の良品コアを確保する