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

HPCを狙うIntelのメニイコアチップ「Knights Corner」の姿



●GPUヘテロジニアスシステム並のパフォーマンス効率

 Intelは、決してLarrabee(ララビー)アーキテクチャを諦めたわけではなかった。同社は、ハイパフォーマンスコンピューティング(HPC)向けのメニイコアアーキテクチャ「MIC(マイク:Many Integrated Core)」としてLarrabeeのアーキテクチャを流用。「Xeon Phi」のブランド名で投入しようとしている。最初の正式製品は、22nmプロセスの「Knights Corner(ナイツコーナー)」となる。50個以上のコア(54アクティブコアと見られている)を載せたメニイコアプロセッサだ。

 Intelはすでに、Knights Cornerベースのプロトタイプクラスタ「Discovery Cluster」の性能を発表している。また、今年(2012年)6月に開催されたスーパーコンピュータカンファレンス「International Supercomputer Conference 2012(ISC'12)」では、Xeon Phiの製品発表を行なった。そして、Intelは8月27日〜29日にかけて米クパチーノ(Cupertino)で開催された半導体チップカンファレンス「Hot Chips 24」で、Knights Cornerの技術的な内容を一部発表した。Larrabeeのキャンセル以来、HPC市場への試作ボードの供給などで細々と展開してきたMICアーキテクチャのベールを次々に剥ぎつつある。

Xeon Phi

George Chrysos氏

 Hot ChipsでKnights Cornerの発表を行なったIntelのGeorge Chrysos氏(Senior Principal Engineer, Intel)は、MICアーキテクチャがターゲットとするHPC(High Performance Computing)分野では高いタスクレベルの並列性がある一方、高いスループットが要求されるため、メニイコア型のアーキテクチャを取ったと説明。試作したスーパーコンピュータシステムDiscovery Clusterでの性能実証の結果は良好だったと語った。HPCの標準ベンチマークであるLINPACKを、Discoveryで走らせた性能は118TFLOPSに達し、世界のスーパーコンピュータTOP500のうち150位に食い込んだ。

 また、Chrysos氏は、競合するNVIDIAやAMDのヘテロジニアス(Heterogeneous:異種混合)コンピューティングシステムと比較したパフォーマンス/電力効率でも優れた結果となったと語った。実際には、他を引き離したわけではなく、ほぼ同列のパフォーマンス効率で並んでいる。GPUを使ったヘテロジニアスシステムと同レベルの効率を達成できたことになる。

Xeon Phiの性能は118TFLOPS Xeon PhiとAMD、NVIDIA製品の性能比較 MICアーキテクチャの概要

 その上で、Chrysos氏は、MICアーキテクチャの場合は、高密度のコンピュートワークロードを得るために、新しいプログラミング言語や新しいAPIを使う必要がないと、Intelの利点を強調した。GPUベースのヘテロジニアスコンピューティングと同列の効率を、CPUベースのシステムに近いプログラミングの容易性で実現できるというのがIntelの主張だ。

●Larrabeeから切り替えMICとして再設計

 これまで、Intelは、Larrabee2のダイをそのまま流用したと見られる「Knights Ferry(ナイツフェリー)」を、HPC分野の一部の研究センターなどに提供していた。Knights Ferryは、32 CPUコア(30コア有効)を載せたメニイコア製品で、チップ自体のコードネームは「Aubrey Isle」。45nmプロセスで製造されていた。

 Intelはもともと、45nmプロセスで第1世代Larrabee、32nmプロセスで第1世代を多少命令拡張してコアを増やし省電力機能を入れたLarrabee 2を投入。その後に、アーキテクチャを刷新したLarrabee 3を投入する計画だった。

 しかし、初代の16コアのLarrabeeが、既存のグラフィックスの実行性能が低かったため、計画を変更して、最終的にLarrabeeをキャンセルしてしまった。Intelのこうした不可解な製品計画の揺らぎは毎度のことで、結果としてLarrabeeは黒歴史となった。しかし、Larrabee1を45nmプロセスのままコア数を拡張したと見られるダイは、Knights Ferryとして生き残った。下がKnights Ferryのダイだ。

Knights Ferryのダイ写真

 Larrabeeは、もともと、グラフィックスとHPCの両方をカバーするために作られた。それが、MICとしてHPCフォーカスに仕切り直された。Knights Cornerは、MICとして初めから設計された最初のチップであると見られる。Knights Ferryには、ダイ上に、正体不明のモジュールがあり、おそらくグラフィックス向けのテクスチャユニットではないかと見られるが、Knights Cornerにそうした機能ユニットが残っているかどうかは分からない。

 Knights Cornerは、PCI Expressカードの形で提供される。典型的には、1個のIntelのXeon系CPUに、PCI Express x16で2枚のKnights Cornerカードを接続する形態になると推測される。上位のXeonは40レーンのPCI Expressをオンチップで載せている。ボード側には、GDDR5メモリを8GB搭載する。

 ただし、物理的にはXeonとの接続はPCI Expressだが、IntelはTCP/IPスタックでPCI Expressを仮想化する仕組みも提供する。Xeonに接続されたコプロセッサとして扱いたくないユーザーは、この仕組みでKnights Cornerをネットワークノードとして扱うことができる。つまり、ネットワークで相互接続されたプロセッサの1つとして扱うことが可能となる。

 Knights Corner同士は、接続されているホストプロセッサであるXeonを介することなく、ダイレクトなピア・ツー・ピアコミュニケーションが可能だ。ピア・ツー・ピアのデータ転送は、InfiniBandやEthernetを経由して、他のXeonに接続されたKnights Cornerとの間でも可能だ。見かけ上は、Knights Cornerが相互接続されたクラスタのように扱うことも可能となる。

Knights Cornerの接続

●リングバスで結ばれたメニイコア構成

 下はHot Chipsで示されたKnights Cornerの全体構造の概念図だ。リングバスにCPUコアとL2キャッシュのペアと、GDDR5メモリコントローラ、PCI Expressクライアントロジックが接続されている。TDはL2キャッシュのタグディレクトリで、各コア毎に備えている。Intelは、現在はクライアント向けのSandy Bridge(サンディブリッジ)からサーバーCPUまで、全てリングバスを採用している。

 もっとも、上の図はあくまでも概念図で、正確な構造を示しているわけではないという。例えば、DRAMコントローラの正確な配置などはわからない。コア数も50コア以上となっているが、実際に何コアなのかは不明だ。海外ではアクティブコアが54個と報道されているが、メニイコアやGPUでは、歩留まりを上げるためにコア数に冗長性を持たせている場合が多い。物理的に実装されたコアのうち、いくつかは無効になっている可能性は高い。

 また、50個以上のコアを双方向ペアのリングだけで接続できているのかも分からない。Intelが2008年のHot ChipsでLarrabeeを発表した際には、CPUコア数を増やした場合は、下の図のようなリング構成で対応することも考えられると説明していた。リングバスのままで、リングのトポロジを拡張してより多くのコアをサポートするというアイデアだ。しかし、Knights Cornerでは、今のところ双方向のリング1重でコアを接続していると思わせる説明となっている。

リングバスを採用 Larrabeリングのスケーラビリティ

●シンプルなKnights CornerのCPUコア

 Knights CornerのCPUコア自体は、下のスライドのような構造となっている。シンプルなインオーダ実行の2命令デコード&イシューのパイプラインだ。2-wayスーパースケーラCPUコアに、ワイドなベクタ演算ユニットを加えた構成となっている。命令実行はシンプルだが、4-wayのマルチスレッディングをハードウェアサポートしている。IntelのPC向けCPUは2-wayのマルチスレッディングなので、同時に走らせることができるスレッド数は多い。Knights Corner全体では200以上のスレッドを同時に走らせる計算となる。

Xeon Phiのコア ベクタプロセシングユニットを搭載

 上のスライドのコアのブロック図を、見やすく起こしたのが下の図だ。レジスタが4重になっているのは、マルチスレッディングのレジスタ構成を示している。L1命令キャッシュからのフェッチのポインタもスレッド毎に4重になっている。命令フェッチは16bytes(128bits)幅で、デコーダは最大2命令。

 アウトオブオーダ実行ではないので、当然、レジスタリネーミングも命令スケジューリング機構もない。最大2個の命令は2つのパイプに振り分けられる。片方は整数演算だけで、もう片方が整数演算ユニットに、浮動小数点演算ユニット、そしてKnights/Larrabee系の特徴であるベクタユニットを備えている。整数演算ユニットも、2つのパイプで非対称だと推定される。

Xeon Phiのブロックダイヤグラム

 Knights Cornerのパイプラインは次のような構造になっている。整数演算だけのパイプラインは7ステージと、今どきのCPUと比べると非常に浅い。ベクタユニットも、実行で4ステージと、比較的浅い。ベクタパイプラインでも13ステージの計算になる。パイプラインが浅いということは、相対的に低クロックで動作させることを前提としていることを意味している。多くのコアを低速で走らせるという発想も、GPUと似ている。

Xeon Phiのパイプライン