Blue Gene/Lの回の最後で、Blue Gene/Pと一緒にBlue Gene/Cの話を少しだけ触れたが、今回のスーパーコンピューターの系譜では、このBlue Gene/CことCyclops64を取り上げたい。
Blue Gene/L→Blue Gene/Pの開発は、CPUコアとFPUを若干強化し、Blue Gene/Lで問題だった部分を修正/改良した程度で、むしろプロセスの微細化により、消費電力を下げてより高い密度でプロセッサーを集約できるようにしたのが最大の違いである。
ただし逆に言えば、性能/消費電力の改善はもっぱらプロセスの微細化「だけ」に頼った、という言い方もできる。もう少し思い切った性能改善の方法はないものか? ということで、Blue Geneシリーズの一環の研究プロジェクトとして始まったのが、Cyclops64である。
当初はBlue Gene/Cと呼ばれていたはずだが、これがCyclops64に名前が変わった理由はよくわからない。ただ研究を進めていく過程で明らかに既存のBlue Gene系列と異なるアーキテクチャーになってしまったので、誤解を招かないように名称が変わったのかもしれない。
ちなみに、このCyclops64はBlue Gene系列とやや異なり、IBMの単独開発ではなく、米エネルギー省(ここがプロジェクトの出資元)、米国防省、IBMを含むいくつかの企業、それと大学(デラウェア大など)の共同プロジェクトとなっている。
ではどう思い切った改善をしようとしたか? という話であるが、まず最初にここからスタートした。ここでType II、つまり多数のコアを実装するというアイディアは、以下の原理から生まれている。
- Flops are cheap!
(演算性能の実現には、さほど費用がかからない!)
- Memory per core is small
(コアあたりのメモリー量が少なすぎ)
- Cache-coherence is expensive
(キャッシュコヒーレンシを実装するのは高くつく)
- On-chip bandwidth can be enormous!
(チップ間転送速度はもっと巨大化できる!)
ちなみにこの4つも上の画像と同じ論文からのものである。具体例として、例えば130nmプロセス/1GHz動作で製造した場合、64bitのFPUそのものは1mm2未満に収まり、その電力もたかだか演算1回あたり50pJ(ピコ・ジュール)に納まる。したがって、14×14mmのダイ(~200mm2)に200個のFPUを収めることすら可能である。
問題は、その演算に必要なデータのやり取りに、大きな消費電力がかかることで、これがコストとなって跳ね返る。ではどうするかといえば、上に挙げた4つの原理に忠実なチップを作ればいい。そうして設計されたのがCyclops64である。
上の画像の右側に説明があるが、メインになるのは1命令実行のシンプルなRISCコアである。ただし同時に2スレッドを実行できようにしているのは、おそらくメモリーアクセス待ちなどを考慮したためだろう。
スレッド構成が“non-preemptive”とあるので、あるスレッドが実行中にメモリーアクセス待ちなどで待機状態に入ると、もう1つのスレッドに制御が切り替わる構成と思われる。
TUは図では2つ書かれているが、実際にはインテルのハイパー・スレッディングなどと同様に、一部のレジスター類などが2スレッド分用意され、処理パイプラインそのものは1本と思われる。この2つのTUに1つのFPUを組み合わせている。
またコアにはシンプルなスクラッチパッドがスレッド毎に用意されている。このスクラッチパッドの容量は16KBで、レジスターよりやや遅い(読み込みに2サイクル、書き込みに1サイクル)とされる。
これとは別に、グローバル・メモリーが32KB×2装備されている。こちらは名前の通り、C64チップ上のすべてのスレッドからアクセス可能である。
前述のプロッッサー概要の画像では、コアと一体化しているようにも見えるが、ちょうどCore iシリーズのLLCのような形で、クロスバーとのリンクは共有しているが、実体としては別に実装されているようだ。結果、グローバル・メモリーは160wayの32KBで合計5120KB実装されている計算になる。
キャッシュとしては、プロッッサー概要の画像の右上にicache-5Pというユニットが4つづつ4組で合計16個搭載されているのがわかる。これはもう名前の通り、命令キャッシュである。5つのプロセッサーコアあたり1つの32KB命令キャッシュが搭載される。
一方、データキャッシュは存在しない。これは設計原理の“Cache-coherence is expensive”に従ったものだ。データキャッシュを持つと、当然キャッシュコヒーレンシは実装しないわけにはいかないからだ。
データキャッシュを省く代わりにグローバル・メモリーをコアのそばに置くことで、アクセス性能をそう悪化させずにキャッシュコヒーレンシを省く、というトレードオフが行なわれた。
この80個のコアはクロスバーで相互接続され、さらにi-Cacheのほか、4chのDDR2 SDRAMのI/F、ノード間接続用のA-Switch、さらにI/Oや管理用のHost I/Fなどもクロスバーにつながる形である。
インテルは2007年に80コアの試作チップを発表したが、こちらはSRAMをシリコン貫通VIAを使って積層するという冒険的な構成だったのに対し、Cyclops64はもう少し現実的な構成を取っていることがわかる。
Cyclops64の演算性能は
Blue Gene/Qとさほど変わらず
Cyclops64コアは500MHz駆動を想定しており、FPUはMAC演算を1サイクルで実行できるため、1コアあたり1GFLOPS、80コア全体で80GFLOPSの性能を持つ。
このチップと外付けで1GBのメモリー、IDEのHDD、その他(管理用のギガビットイーサや、ノード間接続用のI/F)をまとめて1枚の基板に収めることで1ノードが構成される。
ノードを合計48枚装着したバックプレーン3つで1つのキャビネットを構成し、このキャビネットを96個並べて、1.1PFLOPSのシステムを作る、というのが当初の想定であった。
のちに構成はやや変更され、1枚のボードには4つのCyclops64チップと合計4GBのメモリーが搭載され、このボード48枚×3で1つのキャビネットを構成、キャビネット72本で1.1PFLOPSのシステムとされた。
Blue Gene/Lがキャビネット64本で367TFLOPS、Cyclops64はキャビネット72本で1106TFLOPSなので、あまり改善したという気はしない。実際Blue Gene/Qはキャビネット72本で1002.7TFLOPSという性能なので、どっこいどっこいというところ。
ただCyclops64とBlue Gene/Lは130nmプロセス、Blue Gene/Pは90nmプロセスなので、Cyclops64も90nmプロセスを利用すれば、もう少し動作周波数を上げつつ、消費電力を下げてBlue Gene/Pを上回る性能を出せたかも知れないが、Cyclops64開発のきっかけであったType IIのアーキテクチャーのメリットが出せたか、と問われると微妙なところではある。
※お詫びと訂正:記事初出時J(ジュール)の単位に誤りがありました。記事を訂正してお詫びします。(2015年3月22日)
この連載の記事
-
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU -
第796回
PC
Metaが自社開発したAI推論用アクセラレーターMTIA v2 Hot Chips 2024で注目を浴びたオモシロCPU -
第795回
デジタル
AI性能を引き上げるInstinct MI325XとPensando Salina 400/Pollara 400がサーバーにインパクトをもたらす AMD CPUロードマップ -
第794回
デジタル
第5世代EPYCはMRDIMMをサポートしている? AMD CPUロードマップ -
第793回
PC
5nmの限界に早くもたどり着いてしまったWSE-3 Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ