このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情第299回

スーパーコンピューターの系譜 抜群のコスパで売れに売れたBlue Gene/L

2015年04月13日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回はQCDOCの説明をしたので、今回はQCDOCを元に作られたBlue Gene系列の話である。

Blue Gene/L

 前回も少し触れたが、元々IBMは1999年にProtein Folding(タンパク質の構造解析)を目的とした1億ドル規模の研究開発プロジェクトを立ち上げる。

 このプロジェクトは、Protein Foldingのメカニズムを大規模シミュレーションで解明するのが目的であるが、これとともにMassively Parallel(超並列)のハードウェアとソフトウェアを構築することも目的であった。

 Protein Foldingのシミュレーションのためには1PFLIOS規模のマシンが必要ということで、プロジェクトの最終目標は1PFLOPSのマシンを構築することにあった。

 1999年といえばASCI Blue Pacific/Blue Mountainが運用を始めた年であり、ASCI Blue Mountainが実効1.6TFLOPS、Blue Pacificでも実効2.1TFLOPSというあたりで、1PFLOPSといえばこの500~600倍の性能になるため、これを一足飛びに実現するのは到底無理である。そこで当初は300TFLOPS規模のマシン(Blue Gene/L)を実現することを目標とした。

低コストで高性能を求められた
Blue Gene/L

 さて、その最初のBlue Gene/Lである。設計目標は高い性能/コスト比を実現することにあり、さらに性能/消費電力比や性能/体積比を向上することも目標に掲げられた。最初の2つは理解しやすいとして、最後の性能/体積比は、あまりなじみがないだろう。

 これは、ASCIシステムがいずれも10000平方フィートを超えるような膨大な設置面積を要していることへの反省である。前回紹介したQCDOCが100平方フィート程度で収まっていることはシステムの運用コストという点でもメリットは大きい。

 そしてもう1つ、設置面積が大きいとノード間を引き回す配線の距離も長くなるという意味で、これはそのままレイテンシーや消費電力の増大につながる。したがって、可能ならばなるべく配線距離は短くしたいし、すると必然的に設置面積を抑える方策が必要になる。

 Blue Gene/Lはこうしたことを勘案し、既存のスーパーコンピューターを大きく上回る性能/消費電力比を目指すことを目標に掲げた。

Blue Gene/Lの目標。この図版で2002年にある“QCDSP Columbia/IBM”はQCDOCの間違いであろう。なお、今回の写真/図版の出典は、いずれもIBM Journal of Research and DevelopmentのVolume 49, Number 2/3, 2005である

 その実現のために、QCDSP/QCDOCの考え方を発展させることとなった。性能目標は360TFLOPSで、これを20MW程度の消費電力でまかなうというものだ。

PowerPC 440コアと
小容量キャッシュを採用

 この目標をどう実現するかであるが、基本はQCDOCと同じくPowerPC 440コアを利用している。これに独自のDouble-hummer FPUを組み合わせたものが1コアである。

 チップそのものはこのコアを2つに、2次キャッシュ×2、さらにeDRAMを使った4MBの3次キャッシュ、そのうえ外部接続用のネットワークとDRAMコントローラーなどを統合している。

Blue Gene/Lのチップ構造。Multiport Shared SRAMは容量16KBであるが、これはキャッシュ用ではなくプロセッサー間通信用のScratch Padとなっている

 これにより、DRAMを除くと事実上1チップで2つの計算ノードを統合できる。製造プロセスは8SF(130nm)が用いられているが、動作周波数は700MHzと控えめになっている。これはCPUコアの消費電力のターゲットが1Wとされ、これにあわせて調整した形だ。

 2次キャッシュの構造もおもしろい。上の画像でL2 prefetch bufferと書かれているのは、容量が2KBしかないためで、32KBの1次キャッシュと比べてもだいぶ少ない。なので当然ながらInclusive構造には出来ず、Exclusive構造としている。

 なぜこんな小容量のキャッシュを追加したかと言えば、Cache Snoopingのためである。PowerPC 440そのものはシングルコアのCPUなので、マルチプロセッサーの対応が入っていない。

 具体的にはCache Snoopの機能を持っていないので、このままだと外部に共有キャッシュを一切持てなくなる。これをカバーするために、Cache Snoopの機能を2次キャッシュに持たせた形だ。

 あくまでSnoopingを目的としているから容量は少なくても良く、このためもあってかL2 CacheではなくL2 Prefetch Bufferと称している。

 容量そのものはembedded DRAMを利用して4MBもの大容量をL3オンチップで搭載しており、しかもこれが十分に高速となっている。

 Double-hummer FPUは700MHzで2.8GFLOPSの演算性能を持つが、Doubleの場合にはこれをフルに使う場合には以下の処理が発生することになる。

  • 元データを5.6GB/秒×2で読み込み
  • 演算結果を5.6GB/秒で書き出し

 上の画像を見るとわかるとおり、CPUコアと2次/3次キャッシュをつなぐバスは、この帯域に合わせて設計されていることがわかる。要するにこれがボトルネックにならないように設計されているわけだ。もっとも帯域はともかくレイテンシーの方は以下のような数字が出ており、2次/3次キャッシュはそれなりにレイテンシーが大きい。

キャッシュとレイテンシーの関係
1次キャッシュ 3サイクル
2次キャッシュ 11サイクル
スクラッチパッド 15サイクル
3次キャッシュ 28/36/40サイクル
DRAM 86サイクル

 むしろDRAMが異様に高速というべきかもしれないが、これは3次キャッシュを経由した時の数字で、3次キャッシュを経由しないともう少し増えると思われる。

→次のページヘ続く (筐体を斜めに配置する独特な構造と外観

前へ 1 2 3 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン