IntelのHPC向けメニーコアプロセサ

2010年5月30日から6月3日までの間、独ドレスデンで開催された「International Supercomputer Conference 2010(ISC'10)」においてIntelのデータセンターグループのジェネラルマネージャのKirk Skaugen氏が基調講演を行い、その中でIntelのメニーコアプロセサのデモを披露したほか、今後の開発計画を説明した。

Intelはメニーコアの研究を昔から続けており、2007年には80コアの研究用チップを発表している。このプロセサコアはx86アーキテクチャではない簡単な命令セットを使っていたが、2009年12月の48コアのSingle Chip Cloudと称するチップではx86命令をサポートするプロセサコアになっている。

また、グラフィックス向けに開発を行っていたLarrabeeもx86命令のコアと512ビット幅のベクタユニットを持つメニーコアプロセサである。最近、IntelはNVIDIAやAMDのディスクリートグラフィックスの分野の製品は、ここしばらくは発表しないと述べてグラフィックスチップとしてのLarrabeeの商品化は断念したが、高性能コンピューティング(HPC)向けには開発を続けると述べていた。

今回のISCでIntelのSkaugen氏は、同社のHPC向けのメニーコアアーキテクチャを「Many Integrated Core(MIC)」アーキテクチャと呼んだ。なお、MICはマイクと発音する。このMICシリーズの第1弾としてデモを行ったのは「Knights Ferry」と呼ぶ開発用のPCIカードである。

Knights Ferryカードを見せるIntelのSkaugen氏(出典:Intel)

このカードには開発用の「Aubrey Isle」と呼ぶプロセサチップと1~2GBのGDDR5メモリが搭載されているという。PCIカードで高発熱のプロセサを搭載すればファンのついたこのようなカードになるのは当然であるが、このカードの写真を見ると、どうしてもグラフィックスカードに見えてしまう。

Larrabeeから派生したAubrey Isle

Skaugen氏がMICアーキテクチャのプロセサの説明にあたって見せたのが次の図である。

Intelのメニーコアアーキテクチャのプロセサの構造

上下にベクタ拡張を行ったIAコアが並び、中央にキャッシュが配置されており、左に固定ファンクションロジック、右にメモリとI/Oのインタフェースが書かれている。この図は、2008年のHot Chipsでの発表でLarrabeeのチーフアーキテクトのDoug Carmean氏が見せた次の図と表現は多少異なるが、実質的には同じものである。

2008年のHot Chips20で発表されたLarrabeeのブロックダイヤ

そして、このKnights Ferryに使用されているAubrey Isleという開発コード名のチップは32コアを集積し、2次キャッシュの容量は8MBである。つまり、コア1個分の2次キャッシュは256KBとかなり小さく、Larrabeeと同じインオーダ実行のAtomコアを彷彿とさせる。そして各コアは4スレッドをサポートするので、チップ全体では128スレッドを並列実行することができるようになっており、このチップは1.2GHzのクロックで動作する。

そしてSkaugen氏は次のチップ写真を示した。

最初のMICプロセサであるAubrey Isleのチップ写真

このチップ写真を見ると周辺を除くチップ全体が3段に分かれており、上段に10コア、中段に12コア、下段に10コアが配置されて合計32コアになっている。そして、大きな空き領域のあるプロセサよりちょっと細めのユニットが上下段に各3個、中段に2個配置され、プロセサコアの半分程度の幅のユニットが上下段に各2個配置されている。これらはテクスチャユニットなどのグラフィックス用の固定ファンクションユニットと思われるが、詳しいことは分からない。

上下の辺に4個のI/Oと思われるブロックがあり、多分、GDDR5メモリのインタフェースと考えられる。I/O領域が4ブロックであることと容量から見て、GDDR5チップの接続は 8個であろうと推測される。

そして、Skaugen氏は、2009年11月に単精度の浮動小数点の行列積(SGEMM)で1TFlopsを達成、そしてISCでの発表当日にはLU分解のデモで0.5TFlopsを達成したと述べている。この2009年11月はSC09でのJustin Rattner氏のLarrabeeのデモを指すもので、要するにAubrey IsleはこれまでLarrabeeとして知られていたグラフィックス向けのプロセサチップで、開発用のKnights Ferryカードは製品化を断念したLarrabeeを搭載したグラフィックスカードであると考えられる。

メニーコアでは良品維持のための冗長性の確保が重要に

Larrabeeは512ビット幅のベクトル演算器を持っているので、32ビットの単精度浮動小数点なら16並列で実行でき、それぞれが積和演算を実行すると1サイクルで32演算を実行することができる。このプロセサコアが32コアあり、1.2GHzで動作すると、ピーク演算性能は1.2288TFlopsとなる。SC09のデモのように瞬間風速ではあるが、これでSGEMMで1TFlopsを超えるというのは理解できる。一方、Top500で使われるLinpackとほぼ同等のLU分解で0.5TFlopsというのはピーク性能の40%程度で、今回のTop500で2位となった中国のGPGPUスパコンである星雲や7位の天川一号などと同程度のピーク比率であり、これはPCI Expressで接続するGPGPU型のスパコンの限界という感じもする。

このKnights Ferryは開発者向けに配布するカードで製品ではない。プロセサのAubrey Isle(=Larrabee)は、多分、45nmプロセスで作られていると思われるが、製品版としては22nmプロセスを使う「Knights Corner」を出すとしており、このNights Cornerのプロセサは、50コア以上を搭載するという。

半導体プロセスを45nmプロセスから22nmプロセスに微細化すれば同じ面積に4倍のトランジタを集積できるが、多分、巨大チップで消費電力も過大なLarrabeeを商品化できるレベルにするには、22nmプロセスでも2倍の64コアに抑えるのが妥当という判断は理解できる選択である。そして、NVIDIAのFermi GPUが物理的には512コアを搭載しているのであるが、製品としては448コアとして、64個の不良コアがあっても良品にできるようにして製造コストを下げるという商品戦略をとっているように、メニーコアではIntelもある程度の不良コアを許容する商品設定をするというのは十分にありうる話で、50コア以上というSkaugen氏の発言は、この予防線ではないかと思われる。