Larrabeeとは、米Intel社が現在開発中のx86系並列型データプロセッサである。
概要
後期Pentiumにあたる"P54C"アーキテクチャをベースにベクトル演算器を拡張したものを1コアとし、それを多数並べてリングバスで繋いだものの他、テクスチャユニット、メモリコントローラ、ディスプレイインターフェース、PCIExpressインターフェースを搭載し1プロセッサとする。
初期は別個の製品として発売される予定だが、IntelはLarrabeeで培ったノウハウを用い2014年には並列データ演算用のコプロセッサとしてCPUに統合するつもりだった。
Larrabeeは結局製品化されず、これに続く「Larrabee2」も中止されたが、Larrabeeのアーキテクチャを受け継いだ「Xeon Phi」が後に発売されている。[1]
もっと詳しくて長ったらしい話
LarrabeeはGPUなのか
Larrabee(正確に言えばLarrabee以降に連なるであろう一連の製品群)は今のところ、「Intelの開発している新しいGPU」という認識が多いようで、実際そう書いているサイトもいくつかある。
それは間違いではないが、簡潔に書きすぎて誤解を招く表現である。
Larrabeeが狙う市場の一部分が3Dグラフィックスというだけの話で、別に3Dグラフィックス処理のためだけに作られたものではない。
というか3Dグラフィックの為の演算回路をハードウェアで搭載しているNVIDEAやATIのGPUに、ほぼ全て(テクスチャ演算以外)の処理を全てソフトでやろうとしているLarrabeeが現状勝てるはずがない。(固定機能ICとCPUに同じ処理をさせた場合、固定機能ICのほうが高い性能を示すのは当然である)
正確に言えば、Larrabeeが見据えているのはHPC分野を代表とする超並列データ計算だ。
CPU化するGPU、GPU化するCPU
GPUは2D表示機能が成熟しきって以降、3Dグラフィック演算性能を高速化する方向でひたすら進化してきた。ひたすら進化するうち、GPUはハイエンドでは演算ユニットが100以上、演算性能も1TFLOPSを超えるものすら出てくる超並列型巨大プロセッサとなった。(極端な話、3Dグラフィック演算は仮想カメラから見てどの物体のどの面がどんな色で一番手前に見えるかを画面のドット毎に計算する超マルチスレッドプログラムといえる)
となれば、その演算性能を超並列データ計算に流用しようという動きが出てくるのも必然といえるし、DirectX8より採用されたプログラマブルシェーダがそれを可能にした。
実際、二大GPUメーカーの片割れであるnVIDIAはGPUをグラフィック以外の並列演算に使用するためにCUDAというプラットフォームを発表したし、CUDA専用のGPU(ディスプレイ出力は持たないが内部構造は間違いなくGPU)としてTeslaというシリーズを発表している。
一方のIntel。"Prescott"でシングルスレッド性能の向上に行き詰って以降、マルチコア及び並列演算性能の強化に力を入れているのは皆さんご存知の通りだろう。マルチコア化の流れは既に8コアの開発中コア"Nehalem-EX"が発表される段階まで来ているし、それ以降の16コア、24コア、さらには32コアでさえも既に計画の中に入っていると言われる。
単体の性能はそこまで高くないコンパクトなユニットを数十から百数十個並べることでCPUより汎用性は低いながらも高い並列演算性能を実現するGPU、コア単体の性能向上を諦めたかわりにコアをいくつも搭載することにより高い汎用性とそれなりのシングルスレッド性能を維持しつつ並列演算性能を向上させているCPU。
CPUとGPU、お互いの特徴が近づきつつあるということをわかっていただけただろうか。
「CPU」の足かせ
前節で触れたIntelのマルチコア及び並列演算性能の強化というのは、現在の製品で言うところのCore2シリーズ及びCorei7シリーズの話である。パソコンの「CPUとして」開発されているCore系プロセッサは、今までのソフトウェア資産を今までと少なくとも同等かそれ以上の速度で実行できることを期待される。つまり、「1コアあたりのシングルスレッド性能を最低でも維持する」ことが前提なのだ。
しかし、それではGPUの処理速度向上に食らい付いていくことはできない。「シングルスレッド性能の維持」という足かせゆえ、コアのサイズをある程度大きくせざるを得ず、その分たくさんのコアを並べることが出来ないからだ。
ではどうするか、というのは意外にも逆転の発想で簡単に解決する。
要は「CPUとして開発しなければ」シングルスレッド性能の維持という足かせを取り払う、すなわちシングルスレッド性能を削ることが出来るようになるわけで、シングルスレッド性能を削りサイズを縮小した分たくさんのコアを並べ全体としての並列演算性能を稼ぐことが出来る。Atomの項でも述べたが、今までIntelは2倍の面積で1.25~1.4倍程度の性能となる機能にトランジスタを費やしてきた。
ということは最も基本的なコアに立ち返ればもっとも良い面積性能比(もちろん消費電力も)が得られるはずである。x86に連なる歴代のコアの中でP54Cの次となるP55Cは製品名であるMMX Pentiumが示すとおり、拡張命令MMXが実装されている。すなわちP54Cは最後の「素の」x86系アーキテクチャであり、故にP54Cがコアのベースとして選ばれたのである。
Larrabeeの位置づけ
Larrabeeは「CPU」というカテゴリに属するゆえの足かせを取り払うことによって1コアのサイズを小さくして面積性能比を高め、それを現在のCPUよりも圧倒的に多く並べることによって並列演算性能を稼ぐというコンセプトであるのは前節で納得していただけただろう。それはマルチコア、並列化する現行のCPUよりも更に数段GPUの側に寄った設計思想であり、CPUの弱点を解消するためのものだと言える。
では逆に、Larrabeeは何を武器に戦うのだろうか。弱点を埋めるのも良いが、相手に対する優位点がなければ弱点をいくら埋めても勝つことは出来ないはずである。
と、問題提起しておきながら答えは至極簡単だ。単純に、「x86系であること」である。x86系のコードを実行出来るということは過去のx86系CPU用プログラムをほとんど手間無く実行出来る(性能は落ちるだろうが)ということだし、仮に新しくプログラムを組むとしても使い慣れた言語を使用出来るというメリットはとても大きい。プログラマにとって新しい言語を習得するというのは面倒なことだし、それでなくともGPUのプログラム文法は扱いづらいのだ。
ソフトの変化を期待するLarrabee
とはいえ、現状ではLarrabeeが普及するのはまだ難しい。並列データ演算のためのプラットフォームとしてはCUDAに先を越されてしまっているし、3Dグラフィック演算に従来のDirectXを用いる状況ではやはり最適化されたGeForceやRADEONのほうが速い。
その状況を打開するにはまず、ソフトウェアを作るメーカーに「従来の制約から解き放たれた自由な3Dグラフィック処理、超並列データ演算」を体験してもらい、納得してもらい、そして移行してもらう必要があるだろう。そして3Dグラフィック処理がLarrabeeに移行した時、それは従来の「GPUが専門に担う」といったような特別なものではなく単にCPUが演算する数多くのタスクの中の一つとなるのだ。
すなわち、Larrabeeが普及するためには「Larrabeeが従来の土俵に上がるのではなく、ソフトをLarrabeeの土俵に招き入れ」なければならない。過去のソフトとの互換性を重視するPCにおいてはなかなか難しい取り組みだが、もしこれが成功したとしたらと考えるとその時のインパクトは計り知れないものがある。
これからのLarrabee
残念ながら、第一世代となるLarrabee1の製品化は見送られてしまった。2010年のGPUにはまだ対抗出来ないと判断されたからである。
しかしこれは計画の頓挫を意味するものではなく、Intelはまだ2014年のCPUへの統合を諦めてはいない。第二世代のLarrabee2から製品化されるといううわさもある。
3Dグラフィックス、いやソフトウェア全体をガラリと変えてしまう可能性すらも秘めているLarrabeeに、これからも注目せざるを得ない。
関連項目
脚注
- 2
- 0pt