後藤弘茂のWeekly海外ニュース

LarrabeeはSIMDとMIMDのバランス--Intel CTOが語る



●IntelでのスーパーコンピュータのエキスパートだったRattner氏
Justin R. Rattner氏

 Intelのメニイコアプロセッサ「Larrabee(ララビー)」は、今年(2009年)9月のIntel Developer Forum (IDF)でも、製品の姿が見えないままだった。しかし、Intelは、徐々にLarrabeeの姿と、その方向性を明らかにしつつある。IntelのCTOを務めるJustin R. Rattner(ジャスティン・R・ラトナー)氏(Senior Fellow, Vice President, Director of Intel Labs, Intel Chief Technology Officer, Intel)は、IDFや10月の記者会見でLarrabeeについて語った。

 Rattner氏はIntelのCTOに就く前は、IntelのCPUアーキテクチャ開発の根幹であるMicroprocessor Research Labs(MRL)のディレクタを務めていた。さらにルーツを辿れば、Rattner氏は、Intelの超並列スーパーコンピュータであるParagonとASCI Redの開発リーダーだった。そして、Larrabeeには、スーパーコンピュータでのIntelの(つまりRattner氏の)経験が反映されている。

 スーパーコンピュータの世界でのRattner氏の実績は、いわゆる『Attack of the Killer Micros(MPUの攻勢)』時代を推進したことだった。'80年代までのスーパーコンピュータは、1命令で多数の要素に対する演算を行なうことができるベクトルコンピュータが主流だった。別の言い方をすれば、SIMD(Single Instruction, Multiple Data)型のアーキテクチャだ。もちろん、ベクトルとSIMDという2つの言葉の定義の問題はあるが、ここでは同じ意味に扱っておく。

Game Developer ConferenceでのLarrabeenoプレゼン資料1その2その3

 それに対して、Intelなどは、1命令で1要素に対する演算を行なうスカラプロセッサを、膨大な数の超並列構成にしたアーキテクチャで対抗した。PCやワークステーション用のCPUを多数使った。例えば、最初のテラフロップスマシンだったASCI Redは、最終的に9,298個のPentium II(最初はPentium Pro)を搭載した。アーキテクチャ的には、いわゆるMIMD(Multiple Instruction, Multiple Data)で、個々のプロセッサは個別の命令を個別のデータ要素に対して実行する。実質的には、単なるマルチプロセッサ構成だ。

Larrabeeの概要

●SIMDとMIMDのバランスを取ったLarrabee

 このように、SIMDマシンに、MIMDマシンで挑むことで、スーパーコンピュータに新しい時代をもたらしたのが「Attack of the Killer Micros」だった。SIMD対MIMDという論争にもなった。そして、Rattner氏は、このMIMDによるスーパーコンピュータ攻勢の最前線にいた。

 ところが、今年3月に公開されたLarrabeeの命令セットは、実は、SIMDのスーパーコンピュータの命令セットとよく似ていた。あたかも、SIMDスーパーコンピュータのアプローチを、IntelがLarrabeeで取り入れたように見える。命令セットアーキテクチャだけを見ると、LarrabeeはAttack of the Killer Microsの逆の現象で、SIMDコンピュータの逆襲のように見える。Rattner氏は、これについて次のように説明する。

 「Larrabeeアーキテクチャの革新については、いくつかの非常に重要な点がある。おそらく、機能の“バランスセット”という言葉を使うのが正しいだろう。

 まず、設計の基本的な思想を、SIMD対MIMDという観点から説明しよう。我々は、Larrabeeの開発に当たって、純粋なSIMDは望んでいなかった。なぜなら、SIMDがいくつかの大きな不利な点を抱えていると考えていたからだ。柔軟性がないためだ。

 しかし、それと同時に、我々は純粋なMIMDも望んでいなかった。完全にSIMDがない、MIMD構成は非効率だと考えたからだ。なぜなら、より多くのプロセッサ数をチップに載せる必要があり、しかも電力を低減するには、シンプルなコアにせざるを得なかったためだ。そして、小さなコアで性能を上げるためにSIMDが必要だった。だから、我々はMIMDとSIMDのバランスを、Larrabeeの設計では選んだ」。

 つまり、SIMDとMIMDのバランスを取ることがLarrabeeの設計思想の根本にあったという。それは、SIMDの効率性と、MIMDの柔軟性の両方を取ることを目指したためだ。Larrabeeは、IntelがSIMDスーパーコンピュータを取り入れたというより、SIMDとMIMDの間での最適なバランスを求めた結果のアーキテクチャとなる。実際、Larrabeeのベクトル長は16wayと比較的短い。SIMDスーパーコンピュータは、通常は64~1,024といった長いベクトル長を持つ。

ベクトルプロセッシング長

●スーパーコンピュータで起きたSIMDからMIMDへの転換

 ここで面白いのは、NVIDIAなどのGPUメーカーが、その逆にSIMDから出発して、MIMD的な要素を取り入れつつあることだ。こちらも、別な位置で、SIMDとMIMDのバランスを取ろうとしている。なぜ両者とも、SIMDとMIMDのバランスを取る必要があると考え始めたのだろう。Rattner氏のビューは次の通りだ。

 「なぜMIMDとSIMDのバランスなのか、そこには、我々が以前の経験で得た教訓が反映されている。かつてのベクトルコンピューティング時代に、MPUの攻撃がうまく行ったのは、人々がベクトルマシンからパフォーマンスを引き出すのに苦闘していたからだ。MIMDの方がパフォーマンスを引き出しやすいから、多くの人が、そちらを選択するようになって行った。

Computer History Museumに展示されているThinking MachinesのCM-1

 おそらく、CM-2 (Connection Machine 2)とParagonを比較するとわかりやすいだろう(CM-2は代表的な並列コンピュータメーカーのThinking Machinesが開発したSIMDマシン)。私は、CM-2を“クラシックSIMDマシン”と呼んでいるが、それは非常にシンプルなSIMDプロセッサだからだ。こうしたマシンでは、ほとんどのパートを並列化して走らせるため速い。しかし、私は、こうした膨大なSIMDマシンは、非常に狭いレンジのアルゴリズムだけにしか有効ではない、という教訓を得た」。

 Thinking MachinesのCM-2は、一世を風靡したSIMDマシンで、SIMD時代を象徴するコンピュータの1つだった。Rattner氏は、まさにそれにMIMDで挑んだ。その時に、敵方を研究した結果、SIMDの弱点を認識したようだ。

 「クラシックSIMDマシンでは、一部のアルゴリズムで極めて高い効率を達成できる。しかし、問題は、そうした高効率が、実際にものが完成されるまでの時間と混同されがちなことだ。クラシックSIMD側は、よく“我々はプロセッササイクルの98%の効率を達成した”と語る。確かにそうだろうが、実際に、その効率に達するまでに、非常に長い時間がかかることがしばしばある。

 一方、MIMDマシンでは、ユーザーの心配は、スカラプロセッサがプログラムを順番に実行するため効率が悪い点にあった。実際、MIMDマシンでは、おそらく、SIMDマシンほどの高い効率には達することはできない。しかし、アルゴリズムが限定されないため、ソリューションにもっと迅速に到達できる。実質的に、多くのユーザーにとって、短い時間で結果を得られるため、利点があった。

 結局のところ、これがCM-2からCM-5への転換で起きたことだ(Thinking MachinesはCM-5からSIMDではなくMIMDを採用した)。簡単に言えば、Thinking Machinesは“OK、SIMDはやめて、MIMDマシンを取ることにしよう”と言ったわけだ。これが、MPUの攻撃だった」。

●スパコンでのSIMDからMIMDへの転換を再現するのがLarrabee

 Rattner氏は、SIMDマシンは高効率を達成できるものの、効率的なアルゴリズムを作る必要があり、それに時間がかかると指摘。それに対してMIMDでは、SIMDほど高い効率はできないが、アルゴリズムの幅が広いため、より早くソリューションを得ることができる。つまり、SIMDだと効率的なプログラミングが難しいが、MIMDではプログラムが比較的容易なので、ユーザーの支持を受けてSIMDからMIMDへと動いたと言う。

 実際、SIMDスーパーコンピュータは'90年代にある程度衰退して、MIMDマシンが大きな位置を占めるようになった。さらに、特殊なマルチプロセッサ構成の専用MIMDマシンは次第に傍流となり、2000年代に入ると、PC&サーバー系CPUのクラスタ構成(これもMIMDと言える)にすっかり取って代わられた。

 スーパーコンピュータでの、SIMDからMIMDへの転換。それを主導したRattner氏は、同じことをグラフィックスで再現するのがLarrabeeであると言う。

 「Larrabeeは、ある意味で、グラフィックスの世界でのMIMDアーキテクチャの再掘り起こしと言えるだろう。GPUが大規模なSIMDであるなど、いくつかの点で似ている。そして、グラフィックスデベロッパは、我々に、今日のGPUパイプラインは非常に制約的で、彼らが望むアルゴリズムを走らせることができないと訴えた。そこで、我々はMIMDを導入することでそれに応えることにした。

 我々が、昨年のSIGGRAPHで明らかにした論文で示したトランスペアレンシの例のように、固定的なGPUの構造では難しいことが、Larrabeeでは簡単に完璧にできる。こうした点が、MIMDとSIMDのバランスを選んだLarrabeeの利点だ。バランスアーキテクチャが、アイデアの根幹にある」。

 伝統的なGPUは、マッシブなSIMDアーキテクチャで、プロセッサ全体で1つのプログラムを走らせ、同じ命令を多数のデータ要素に行なっていた。そのため、コントロールフローの制約などが大きかった。この状況は、SIMDマシンで占められていた'90年頃までのスーパーコンピュータと重なる。

グラフィックスパイプラインの歴史

 Intelは、そうしたSIMDワールドに、MIMDを再び持ち込むことで、風穴を開けようとしている。それがLarrabeeの思想だ。Larrabeeでは、各コアがMIMD構成で、完全に独立したコンテクストを走らせることができる。しかし、今回はピュアなMIMDではなく、効率を考えて、各MIMDプロセッサの中は16wayと、スーパーコンピュータと較べると比較的短いSIMD(PCプロセッサと較べると長いSIMD)を採用した。SIMDに対してMIMDで挑むのに、今回はSIMDのエッセンスも取り入れた点が異なる。

ベクタ長の比較

●NVIDIAはSIMDからMIMDへと近づく

 こうして、SIMD対MIMDのスーパーコンピュータの構図から見ると、Larrabeeの位置づけは明瞭だ。また、Rattner氏も、それを強く意識していることが、スーパーコンピュータを引き合いに出す説明からよくわかる。

 ここで、興味深いのはNVIDIAのG80以降のアーキテクトが、SIMDスーパーコンピュータ側の出身であることだ。G80からFermiまで、NVIDIAの新時代GPUの開発をリードするJohn Nickolls(ジョン・ニコルズ)氏(Director of Architecture, NVIDIA)は、MasPar Computerのアーキテクトだった。MasParは、ちょうどAttack of the Killer Microsが始まった時代にSIMDマシンでThinking Machinesなどと並んでいた。

MasPar MP-2の概要

 そして、Nickolls氏らがNVIDIAで行なっているのは、先に触れた通り、SIMDをよりMIMDに近づけることだ。MasPar MP-2では、構成によっては何千、何万というプロセッサ(最大で1万6千)がSIMDで動作した。G80以前のNVIDIA GPUも、最大のベクトル長(GPUのコンフィギュレーションで異なる)は4,048だったとAMD(ATI)は指摘している。

 それに対して、G80ではベクトル長は32と短くなり、同じカーネルプログラムをばらばらに各SIMDプロセッサクラスタで走らせている。さらにFermiでは、各SIMDプロセッサクラスタが、それぞれ異なるカーネルプログラムを走らせることができる。Larrabeeほどではないが、それでも、SIMDからMIMDへとシフトしている。つまり、NVIDIAも、彼らなりのSIMDとMIMDのバランスの取れたアーキテクチャへと向かっている。

 グラフィックスの世界では、SIMDに対する変革がLarrabeeやFermiだ。しかし、両プロセッサはともにスーパーコンピュータ/ハイパフォーマンスコンピューティング(HPC)の世界も視野に入れている。そして、SIMD対MIMDで、MIMD主流の時代に移って長いこの世界でも、これらSIMDとMIMDの混成アーキテクチャは、下の図のように新しい流れとなる。

スーパーコンピュータとMPCの歴史

 この新潮流の形容として、AMDの元CTOだったPhil Hester(フィル・へスター)氏は、AMD時代に『Attack of the Killer GPUs(GPUの攻勢)』という名フレーズを残している。

 前回、この図を記事に掲載した時には、Attack of the Killer GPUsのところに「New Vector Era」と記していた。しかし、今回の図では、NVIDIAの研究開発を指揮するWilliam(Bill) James Dally(ビル・ダリー)氏(Chief Scientist and Vice President of NVIDIA Research)の指摘を受けて、これを「New Parallel Era」と変えている。Dally氏も、この新潮流は古いベクトルアーキテクチャとは異なり、ベクタとスレッドの組み合わせになると語っていた。つまり、Intelの技術トップのRattner氏と、NVIDIAの技術トップのDally氏は、いずれも似たような認識を持っている。