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

Intelが60コアのメニイコア「Xeon Phi」を正式発表



●ダイに62個ものCPUコアを搭載した真のメニイコアCPU

 Intelが「Xeon Phi 5110P」のブランドで投入した「Knights Corner(ナイツコーナ)」は、22nmプロセスで、物理的には62個のCPUコアを搭載するメニイコアプロセッサだ。1チップで単精度浮動小数点演算なら2TFLOPS以上、倍精度なら1TFLOPS以上のパフォーマンスを達成する。チップ当たりのパフォーマンスはハイエンドGPU並でありながら、CPU風の命令セットを備えたハイブリッドプロセッサである点が特徴だ。アーキテクチャ的には、市場投入を取りやめたグラフィックス向け製品「Larrabee(ララビ)」を継承する「MIC(マイク:Many Integrated Core)」アーキテクチャだ。

 Intelは、このモンスタープロセッサを、HPC(High Performance Computing)市場に投入する。HPC市場でスーパーコンピュータでの実績を積み上げつつあるNVIDIAの「Kepler」GPUとIBMのメニイコアプロセッサ「BlueGene/Q」、それに日本の富士通の「SPARC64 VIIIfx」に挑戦する。GPUと専用アーキテクチャに席巻された市場を、Intelプロセッサのものにすることが目標だ。

Knights Cornerのダイ(半導体本体)Knights Cornerはコプロセッサとして動作

 現在、米ソルトレイクシティで開催されているスーパーコンピューティングカンファレンス「SC12」に合わせて、スーパーコンピュータのトップ500のリストが発表された。リストの1番手は、NVIDIAのK20xの「Titan」(ORNL:Oak Ridge National Laboratory)。2番手はIBMのBlueGene/Qの「Sequoia」(LLNL:Lawrence Livermore National Laboratory)、3番手は日本の富士通SPARC64 VIIIfxの「京」(理化学研究所)。IntelのXeon Phiは「Stampede」(Texas Advanced Computing Center/Univ. of Texas)で7番手につける(Intel CPUシステムではSuperMUCが6位)。

Xeon Phiの最初のスーパーコンピューティングシステム「Stampede」

 もっとも、実際には、Stampedeのスコアはフル稼働前の4割程度のシステムでの数値で、まだ参考にはならない。とはいえ、今回のターンでは、米国のスーパーコンピュータの頂点であるORNLやLLNLといった米国立のトップ研究施設は、Intelの手からこぼれてしまっていることも事実だ。ORNLは、Larrabeeの時は、Intelを検討していると噂されていたが、NVIDIAに行ってしまった。

 Intelは、次のターンで、ORNLやLLNLといったスーパーコンピュータを象徴するトップ研究所を、自社アーキテクチャに取りこむことが目的となる。当面のゴールは、ExaFLOPSスーパーコンピュータをいち早く実現し、エクサレースの勝者になることだ。

 IntelはHPCの成長がデータセンターの成長を押し上げていると見ており、HPC市場を重視している。さらに、Intelはビッグデータ解析の必要性が高まることで、メニイコアの需要が今後高まることも予測する。メニイコアプロセッサのような高並列のプロセッサが、限られた現在のHPC市場だけでなく、より広い市場で使われて行くというのがIntelのビジョンだ。普通のデータセンターに、メニイコアのXeon Phiが入るようになれば、売り上げも大きくなり、プロセッサの開発費も償却しやすくなる。

HPCがデータセンターの成長を支えるHPC業界ではXeon E5が広く採用
時代はエクサスケールにKnights Cornerの製品ブランドはXeon Phi

●2系統のXeon Phi製品系列はメモリとTDPで差別化

 Intelが投入するXeon Phi製品は5100系と3100系の2製品系列。どちらも22nmプロセスで、同じダイ(半導体本体)から派生させている。いずれもPCI Expressカードの形状で、データセンター向けのパッシブ冷却のカードと、単体での利用も可能なファン付きのアクティブ冷却のカードも2形態がある。データセンターではラック単位で冷却するため、通常はチップ上に冷却ファンは備えない。

 上位のXeon Phi 5100系はパッシブのみで、現在は「Xeon Phi 5110P」の1モデル。Xeon Phi 5110Pは現在特定顧客に出荷されており、来年(2013年)1月28日からは、一般に発売される。カード価格は2,649ドル。

最初の製品はXeon Phi 3100と5110PXeon Phi 5110Pの倍精度性能が1,010GFLOPS

 Xeon Phi 5110Pでは、62コアのうち60コアが有効にされており、動作クロックは1.053GHz。各コアが512-bit幅の積和算ベクタユニットを備え、倍精度で1,011GFLOPS、単精度ならその2倍の生パフォーマンスを発揮する。各コアが4スレッドのSMT(Simultaneous Multithreading)に対応するため、チップ全体ではオンザフライで240スレッドが走る。

 60コアそれぞれに512KBずつのL2が付属するため、チップ全体でのL2キャッシュの量は30MBに達する。メモリインターフェイスは512-bitのGDDR5で、5Gtpsで転送、ピークメモリ帯域は320GB/sec。GPUとしてもトップエンドのメモリ帯域だ。メモリインターフェイスは32-bit単位で動作しており、メモリアクセス粒度を抑えている。カードのメモリ量は8GB。TDP(Thermal Design Power:熱設計消費電力)はカードで225W。

Xeon Phi 3100は倍精度1,000GFLOPS未満

 廉価版のXeon Phi 3100シリーズは2013年前半に発売される見込み。こちらは、62コアのうち57コアが有効にされている。つまり、5個のコアが無効にされている。Xeon Phi 3100はデータセンター向けのパッシブ冷却版以外に、アクティブ冷却版も用意される。現在のところ、動作クロックは1.1GHzで、倍精度で1,003GFLOPSの見込みだ。

 L2キャッシュの量はチップ全体で28.5MB。メモリインターフェイスは384-bitで転送レートは5Gtpsで、メモリ量は6GB。ピークメモリ帯域は240GB/secとなる。TDPは300W。

 Xeon Phiは5100も3100もいずれもホストバスはPCI Express Gen2。これはチップの設計に入った段階では、まだPCI Express Gen3が確定していなかったためだという。しかし、PCI Express Gen2でも転送レートは高速化されており、ホストバスの帯域的にはPCI Express Gen3に近い。

 市販する2系列のバージョンのほかに、Intelはスペシャルエディションも提供している。現在明かされているのは、ベンチマークやTexas Advanced Computing Center(TACC)のStampede向けに提供しているSE10と呼ばれるシリーズ。これは61コアが有効で、1.1GHz動作、352GB/secのメモリ帯域、TDP 300Wのカードだ。

 Xeon Phiの5100系と3100系を比較すると明瞭なことは、ピークパフォーマンスで差別化するのではなく、メモリ帯域&量とTDPで差別化を図っている点。5110Pと3120Aはどちらも1,000GFLOPS以上のパフォーマンスだが、5100系はメモリインターフェイスが広く、TDPが75%と低い。HPCでバリューがあるのは、リアルアプリケーションの性能への影響が大きいメモリと、サーバーセンターの運営コストに大きく影響する電力であるためだ。

Stampede用のスペシャルエディションのXeon PhiカードXeon Phiの各製品の概要

●グラフィックスユニットが残るKnights Cornerのダイ

 Knights Cornerと、前世代のKnights Ferryのダイ(半導体本体)は下の図のようになる。もっとも、Knights Cornerのダイの縦横比は、正確ではない。Intelが公開しているダイ写真にパースがかかっていて、正確な縦横比を判別するのが難しいからだ。また、Knights CornerとKnights Ferryのダイサイズの比率も正確なものではない。現状でわかるのは、CPUコアの数や配置などだ。

Knights Cornerのダイの内部構成

 Knights CornerとKnights FerryのCPUコアは、基本的には同系列のマイクロアーキテクチャだ。しかし、Knights Ferryは45nmプロセスで、Knights Cornerは22nmと、プロセス世代的には2世代の開きがある。さらに、キャッシュメモリの量にも違いがある。Knights FerryのCPUコアは256KBの専用L2キャッシュを備えているが、Knights Cornerは2倍の512KBのL2を備えている。キャッシュ量の違いもあり、Knights CornerのCPUコアの方が細長いレイアウトとなっている。

 Knights Cornerでは、ダイ上に合計で62個のCPUコアが配置されていることがわかる。4段構成で、図中の最上段から3段目までがそれぞれ16コアづつ、さらに最下段に14コアの合計62コアだ。それに対してKnights FerryのCPUコア数は32コアで約半分となっている。Knights CornerとKnights Ferryのどちらも、製品版で有効にされているCPUコア数が物理コア数よりも少ないのは、歩留まり向上のために冗長性を持たせているからだ。いくつかのCPUコア上に欠陥があり、正常に動作しないCPUコアがあっても、そのコアを無効にすることで製品として出荷できる。

 Knights Ferryは、元々はグラフィックス向けのLarrabee 2として計画されたダイを転用してHPC(High Performance Computing)向けにした。そのため、グラフィックス専用ユニットであるテクスチャフィルタリングが搭載されている。「ハードウェアはLarrabeeだが、ソフトウェア層をHPC向けにしたのがKnights Ferryだ。グラフィックス向けの機能はダイに載っているが使っていない」とIntelは説明する。実際にKnights Ferryのダイ上には、CPUコアユニットの間にテクスチャフィルタリングユニットと見られるユニットが配置されている。

 興味深いことに、Knights CornerでもCPUコアの間に正体不明のユニットが8個ほど配置されている。Intelのリングバスは、L2キャッシュ上に配線されているはずなので、CPUコアに挟まれたユニットも、リングバスに接続されていることになる。位置から見て、I/O系のユニットではなく、テクスチャユニットの可能性が限りなく高い。Intelは「Knights Cornerではグラフィックス専用ユニットは載せていない」と説明しているが、実際には搭載されており無効にされていると見られる。Knights Cornerでも、依然としてテクスチャユニットが搭載されているとしたら、IntelはMICアーキテクチャのグラフィックス市場への投入の可能性をまだ捨てていないことになる。

●複雑なリング構造を隠蔽した内部アーキテクチャ

 Knights Cornerの62個のCPUコアと各I/Oユニットは、リングバスで接続されている。リングバスにCPUコアとL2キャッシュのペアと、GDDR5メモリコントローラ、PCI Expressバスが接続されている。リングは双方向で、片方向に独立した3リングがある。

 最も大きいリングはデータブロックのリングで「BL」と呼ばれている。BLは64-byte(512-bit)幅でちょうどKnights Cornerのベクタ幅と一致している。2つ目のリングはアドレスリングの「AD」で、名前の通りメモリアクセスのアドレスの送受信に使われる。3つ目はアクノレジメントリング「AK」で、コヒーレントメッセージなどの送受信に使われる。

Knights Cornerのブロックダイヤグラムリングバスの構造

Larrabeeリングの構造

 もっとも、実際にはリングは1組の双方向リングで62個のコアを全て連結しているわけではない。「ソフトウェア側から見れば、リングは1つだ。しかし、物理的には複数の接続で構成されており複雑だ。詳細は言えないが、リングの構成は最適化されており、トラフィックを効率的に制御している。さらにレイテンシは(メモリからキャッシュへの)プリフェッチングで隠蔽している」とIntelは説明する。ちなみに、IntelはLarrabeeアーキテクチャの発表の際に、将来の拡張として右のような複雑なリング構造を発表している。

 TDはL2キャッシュのタグディレクトリで、各コア毎に備えている。どのアドレスのメモリ内容がどのL2にキャッシュされているのかをトラックしている。

 Knights CornerのCPUコアのマイクロアーキテクチャは、Larrabeeをほぼそのまま踏襲している。個々のCPUコアは2命令デコード&イシューのインオーダ実行コアに、512-bit幅のSIMD(Single Instruction Stream, Multiple Data Stream)ユニットを加えた構造だ。CPUコア自体は、キャンセルになった、Intelのグラフィックス& HPC向けメニイコアLarrabeeを踏襲している。

Knights Cornerのブロックダイヤグラム

 プロセッサパイプラインは非常に浅く、整数演算で7ステージ。PC向けCPUコアと比べると半分以下で、その分、動作周波数の上限は低い。Knights Cornerは1GHzを多少越える程度の周波数で動作させることをターゲットとしている。メニイコア化によって性能を上げつつ、周波数は低く抑えて電力消費を抑えている。

Knights Cornerのパイプライン

 ベクタユニットは512-bit長で、単精度と倍精度の両方をサポートする。単精度の場合は16-way、倍精度では8-wayとなる。VPUレジスタは512-bit長で、積和算に対応して3リードと1ライトが可能だ。Knights Cornerはマスクレジスタを備えており、マスクによりベクタコントロールフローの制御ができる。例えば、16-wayのベクタの各レーンのストリームが、条件分岐でそれぞれ異なるパスへと分岐した場合、マスクレジスタで各レーンの分岐を判別、それぞれのレーンが異なるパスだけを実行するように制御する。見かけ上、ベクタの各レーンがそれぞれ個別に条件分岐しているように見える。マスクレジスタはスキャッタ/ギャザのロード/ストアにも使われる。

 Knights Cornerのコアは32KBづつL1データキャッシュと、512KBのプライベートL2キャッシュを備えている。LarrabeeのままだったKnights Ferryと比べると、L2が倍増され、物理メモリアドレスをキャッシュする「Translation Lookaside Buffer(TLB)」が64エントリ設けられ、データを先読みするハードウェアプリフェッチャ(HWP)も加えられた。

 GPUとの大きな違いは、スカラユニットを備えており、x86命令が実行できること。また現在のGPUは一般にSingle Program, Multiple Data(SPMD)モデルで、ベクタをプログラムに対して露出させない。しかし、MICアーキテクチャではベクタはビジブルだ。また、GPUではスレッドスケジューリングはハードウェア制御だが、Intelではこれも制御できる。

●パフォーマンス効率はLinpackでノード単体で75%
Xeon PhiとXeonの性能比較

 Intelは単ノードでの性能を、XeonとXeon Phiで比べた結果も公表した。同列の消費電力で比較するため、Xeon側はXeon E5-2670を2ソケット構成、Xeon Phi側はXeon Phi SE10Pのシングル構成(Xeon Phiが接続されているXeonの性能は含まない)の性能比較となっている。実際にはXeon PhiカードはXeonに接続されているが、Xeon Phi単体の性能を比較している。

 HPC(High Performance Computing)での標準的なベンチマークであるSMP Linpackでは単ノードで803GFLOPS。Xeon Phi SE10Pは市販しないスペシャルエディションで、61コアが有効で倍精度のピーク性能は1,073GFLOPS。そのため、スペック上のピーク性能に対する比率では約75%の性能効率になる。

 Linpackで75%の性能効率はGPUと比べて高いように見えるかもしれないが、これは単ノードでの性能だ。Knights Cornerも、システム全体では性能効率は60%台中盤に落ち着くという。TACCのStampedeでは全体で67%となっている。単ノードで75%程度、システムで65%を越えるというLinpackでの性能効率は、一般的なハイエンドGPU HPCシステムとほとんど同列か少し高い程度。Knights CornerのLinpackでの効率は、ラフに言ってGPU並ということになる。

 ベクタユニットを束ねたKnights Cornerでは、比較的シンプルな行列演算のSGEMM/DGEMMでは、より性能効率は高くなる。しかし、それでも80%台で、ピーク性能は高いが、性能効率はCPUほどは高くはない。こうしたKnights Cornerの性能の特性はGPU的と言えそうだ。

 ちなみに、このベンチマークはECCをオンにした結果だが、STREAM Triadでのメモリ負荷のベンチマークではECCオンとECCオフの両方を掲載している。KnightsファミリはGDDR5をメモリとして使っているが、メモリインターフェイスにECCを組み込んでいる。ベンチマークでのECCによる性能差を見ると、メモリ帯域に与えるECCのインパクトは4%以下でかなり小さいことがわかる。「驚くほど低いペナルティでECCを実装することに成功して、信頼性の高いメモリデータアクセスを実現した」とIntelのJoe Curley氏は説明する。

●並列プロセッサのパフォーマンスアップは2.x倍程度

 上のパフォーマンス比較で目立つのはXeonに対するパフォーマンスアップが2.x倍と比較的小幅であること。GPUベンダーが好んで使う、CPUに対して10倍や100倍のアップという比較チャートとは大きく異なる。これについては、IntelのJames Reinders氏(Director, Parallel Programming Evangelist, Intel Corporation)がシンプルな例で説明を行なった。

 Reinders氏はシンプルな行列演算であるSAXPY (Single-precision real Alpha X Plus Y)をFORTRANコードで比較。まず、通常のコンパイルで走らせた場合の処理時間が67秒(Xeon E5-2600 6コア)になることを示した。


 次に、Reinders氏は並列化のディレクティブを加えてコンパイルしたコードを生成。それをXeon Phiで走らせた結果が0.197秒になることを示した。これだけを見ると、CPUに対してXeon Phiのスピードアップは約340倍となる。Reinders氏は、これは、並列プログラムを並列プロセッサで走らせた結果を、シリアルプログラムをCPUで走らせた結果と比較したものだと指摘。CPUも並列化できるので、公平ではないと説明した。つまり、GPUメーカーの比較数字は、CPU側を低く見積もり過ぎていると批判している。


 その上で、Reinders氏は同じ並列化ディレクティブを加えてコンパイルしたコードを、Xeon上で走らせた。その結果をXeon Phiと比較すると2.3倍のパフォーマンスアップにしかならないとReinders氏は指摘。Xeon Phiのような高並列化プロセッサによるパフォーマンス向上は、実際には2.x倍になると説明した。

 また、Reinders氏は、Intel Xeon Phiでは、2.x倍のパフォーマンスアップを、ディレクティブを加えるだけで得られるため、ハンドコーディングによる最適化が不要で、プログラミングの効率が高いと説明した。Intelは、この研究の論文も発表しており、GPUの劇的なパフォーマンスアップは虚構だと反論している。また、IntelはXeon Phiの利点として、単体でスカラコードとベクタコードの両方を走らせることができることも強調している。


 この部分は、MICアーキテクチャ対GPUアーキテクチャで最も議論があるところで、現在、IntelとNVIDIAが舌戦を繰り広げている。どちらも、ある程度自社に都合のいい誘導をしている。しかし、一定の粒度のベクタによる並列プロセッサ化を導入しない限り、パフォーマンス/電力の向上が望めないという点では一致している。

●Xeon PhiのStampedeはまだフル稼働前

 現状では、トップ500は上から、NVIDIA、IBM、富士通で、Intelはその下となっている。Intelは、これから実証して行く必要がある。最初の広告塔であるXeon PhiのStampedeはLinpack 2.66PFLOPSで、トップのORNLのCray/NVIDIA Titanは17.59PFLOPS。Intelはまだ、水を開けられている。

 もっとも、Stampedeは、まだフル稼働状態ではなく、2013年1月に完成する予定のイニシャルシステムでは、ピークパフォーマンスはほぼ10PFLOPS近くに達するという。いわゆる10ペタマシンのレベルだ。完成時点では、合計で6,400基のXeon E5デュアルソケットノード(12,800個のCPU)と、6,400枚のXeon Phiカードで構成される予定だ。

 ピークパフォーマンス的には、2PFLOPS以上をXeonが、7PFLOPS以上をXeon Phiが担当する。計算上はXeon Phiのパフォーマンスが足りないはずだが、それでも9PFLOPSには達するはずだ。完成すると、合計182ラックで6MWの電力のシステムとなる。

 現時点のトップ500でのStampedeは、合計204,900コアでピークが3,959TFLOPSとなっている。逆算すると、2ソケットのXeonと1 Xeon Phiのノードが約2,600個という計算となる。つまり、まだフル稼働の半分以下の構成でのベンチマーク結果で7位のスコアに達したことになる。フル稼働すると、京には及ばないが、Linpack 6PFLOPSクラスには到達しそうだ。

 こうして見ると、HPCでの戦いは、Intelにとってまだ始まったばかりであることがわかる。MICアーキテクチャの真価が試されるのは今後だ。