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

NVIDIAが高性能ARMコアを開発統合する「Project Denver」



●ハイパフォーマンスARM CPUを開発するNVIDIA

 NVIDIAは、2011 International CESで、ARM CPUコアをGPUに統合する計画「Project Denver」を公式に発表した。NVIDIAは、すでに携帯機器向けのTegraにARMコアを統合しているが、今回はハイエンドを含む携帯向け以外のGPUに統合する。そのために、NVIDIAが自社でハイパフォーマンスCPUコアを開発する。

 NVIDIAのARM CPUコア統合計画は、すでに2010年秋のGPU Technology Conference(GTC)時のJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)へのインタビューで触れられていた。また、CPUコアをハイエンドGPUに統合することも、2010年11月のスーパーコンピュータカンファレンス「SC10」で発表されている。今回明らかになったのは、統合するCPUコアをNVIDIA自身が開発し、そのコアがPC&サーバー&スパコンをカバーできる高パフォーマンスCPUコアになるということだ。つまり、Intel CPUにある程度匹敵するようなパフォーマンスレンジのCPUコアを、NVIDIA自身が創ろうとしている。

 GTCでは、Huang氏は次のように述べていた。「まだARMは、コンピューティングの面ではパフォーマンスが低すぎる。我々はARMにパフォーマンスを3倍向上してもらう必要がある……おそらく、2~4倍の間というところか。ARMをサーバーや大きなコンピュータに入れようとするなら、SPECint(整数演算ベンチマーク)での性能を伸ばす必要がある。64-bit(アドレッシング)も必要だ。統合する時期については、10年以内なら確実(definitely)で、5年以内なら多分(probably)だ」。

 つまり、NVIDIAは現行ARMコアの2~4倍の性能のコアを開発しようとしている。

●ヘテロジニアスコンピューティングの完成に必要なCPUコア

 NVIDIAによる高パフォーマンスARM CPUの開発と統合にはどんな意味があるのか。GPUメーカーのNVIDIAとしては、ヘテロジニアスコンピューティングに欠かせないGPUとCPUのワンチップ統合を、全製品ラインで実現できるという意味がある。現在のGPUコンピューティングの弱点である、CPUとGPUの分離(チップ自体やメモリなど)の問題を解決できる。

 CPUメーカーになるNVIDIAとしては、興隆するARMの波に乗り、それをさらに高パフォーマンス分野へと広げることで、x86 CPUの覇権を覆すチャンスを得る。別な視点で見ると、現在進行中のx86対ARMの戦いで、x86の占める市場領域に攻め込む切り込み隊をNVIDIAが引き受けるとも言える。もっとも、ARM自身も、3-wayスーパースカラのOut-of-Order実行コア「ARM Cortex-A15」を発表し、現在はシングルスレッドのスカラパフォーマンスの向上に力を入れていると言っている。

Cortex-A15のパイプライン
PDF版はこちら

 まるで、かつてのx86対RISCの命令セットアーキテクチャの戦いを思い起こさせるが、NVIDIAもそのつもりだ。Project Denver発表に合わせてNVIDIAのサイトにポストされたBill Dally氏(Chief Scientist)のブログでは、x86命令セットの弱点としてCISC(Complex Instruction Set Computer)型の可変長命令や汎用レジスタ数の制約を指摘。モダンなRISC(Reduced Instruction Set Computer)アーキテクチャによって、x86の覇権を突き崩すとしている。

●NVIDIA Echelonは8個のCPUコアを統合

 では、NVIDIAはARMコアを統合することで、どんなプロセッサを作ろうとしているのだろう。少なくとも、ハイエンドのゴールはわかっている。すでに、NVIDIAが発表しているからだ。下はNVIDIAが昨年のSC10で公開した、エクサフロップス(ExaFLOPS)マシンを目指す「Echelon(エシュロン)」プロジェクトに使われるプロセッサの概念図だ。

Ehelonの構想
PDF版はこちら
Ehelonの概念図

 NVIDIAは、昨年夏に米政府のDARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)の、エクサスケールスパコンプログラム「Ubiquitous High Performance Computing(UHPC)」の契約を取った。このプログラムでは、2018年をメドに、EFLOPSのマシンを完成させることになっている。NVIDIAの他に、Intelもプログラムに参加しており、NVIDIAはIntelに対抗しなくてはならない。

 Echelonは、UHPCに向けたNVIDIAの構想で、そのシステムに使われるプロセッサは、2016年以降のNVIDIAのハイエンドプロセッサということになる。現在のハイエンドGPUは、ダイサイズだけで見れば、充分ハイエンドCPUクラスだ。そのため、同時期のNVIDIAのハイエンドGPU製品も、Echelonプロセッサと似たような規模、ある程度、似たようなアーキテクチャになる可能性は高い。

 Echelonのプロセッサは、1チップの中に、8個のCPUコアと128個のSM(Streaming Multiprocessor)を備えた、GPU+CPUの統合プロセッサとなっている。8個のCPUコアは、当然、NVIDIAの開発する高パフォーマンスARMコアになると推測される。現在のFermiアーキテクチャでは、ハイエンドのGF110クラスで、1チップに16個のSMしか備えていない。つまり、5~7年後には、NVIDIAのハイエンドGPUは、今の8倍のGPUコアと、8個のCPUコアを載せたチップへと発展する。SM(Streaming Multiprocessor)自体の構成は、FermiとEchelonで大きく異なるため、単純な比較はできないが、目安にはなるだろう。

●Maxwellの次の世代でさらに電力効率をアップ

 とんでもない構成だと思うかも知れないが、プロセス技術を考えれば、さほど不思議ではない。現行のNVIDIA GPUは40nmプロセスで、次のKepler(ケプラ)が28nm、おそらくMaxwell(マクスウェル)の世代で20nmに突入する。Echelonの世代なら14nmまたは10nmになっているはずで、プロセス技術的には詰め込むことは可能だ。

 もっとも、本当の問題は、コアをたくさん載せた場合の消費電力だ。Dally氏(Chief Scientist)はSC10のスピーチの中で、エクサスケールマシンの消費電力あたりの性能要求値は、50GFLOPS/Wだと説明。Echelonでその値に合ったシステムを目指すと言っている。20TFLOPSのEchelonチップの電力は、単純計算では400Wになる。しかし、50GFLOPS/Wattはキャビネット全体の電力効率なので、ルータや大容量DRAMスタックなどさまざまな要素を除けば下がる。下位のバージョンでは、それなりの電力枠に収めることができるだろう。

 そもそも、Echelon世代では、現在のNVIDIA GPUより消費電力あたりの性能は大幅に向上する。そうしなければ、エクサマシンを作れないからだ。現在のGPUの消費電力あたりの性能は5GFLOPS/Wで、DARPAの要求値の10分の1に過ぎない。2016年までには、プロセス技術の進歩でこれを4倍に高めることができるが、まだ要求値には届かない。NVIDIAは、アーキテクチャの改良によって、さらに4倍に高めるとしている。そのために、階層型のレジスタや、より深いメモリ階層を設けて、データ移動を減らして、電力を抑える。つまり、この世代のNVIDIA GPUは、今よりずっと電力効率が高くなっているわけだ。

消費電力あたりの性能

●Echelonから予想する2016年以降のNVIDIA GPU

 Echelonプロセッサの構成を見れば、同時期の下位のNVIDIA GPUがどういう構成になるのか、ある程度想像がつく。同時代の、ARM PCのためのメインストリームチップがどうなるのか、占うことはできる。NVIDIAは、プログラミングモデルの一貫性を保つことに注力すると説明しており、2016~18年の時点でも、上位から下位まで、基本アーキテクチャは共通になる可能性が高いからだ。

 まず、Echelonで、CPUコア1に対してSMが16の構成になっているのは、スカラコードとパラレルコードの比率から望ましいコア数の比率がこれだと考えているからだろう。だとすれば、下位のNVIDIA GPUで、例えばSMが64個の構成のミッドレンジGPUの場合、搭載するARM CPUコアは4個ということになる。同様に考えれば、SMが32個のメインストリームGPUなら、ARM CPUコアは2個の計算になる。ただし、NVIDIAがクライアントではスカラコードの比率が高いと考えれば、比率を変える可能性はある。

 Echelonプロセッサでは、各SMとCPUコア、それにL2キャッシュメモリバンクやメモリコントローラをオンチップネットワークに接続する。この構成も引き継がれる可能性は高い。

 もっとも、この単純計算では難しい部分もある。それはメモリ帯域で、EchelonではDRAMの3Dスタックを高速インターフェイスで接続している。GTCでは、Dally氏はインターフェイスチップにDRAMをスタックして、それを専用インターフェイスで接続し、MCM(Multi-Chip Module)にするプランを検討しているとしていた。Echelonの構成はそれに当たると推測される。

 当然、この方法はメモリ回りのコストを押し上げる。下位のGPUで、メモリ回りのコストを下げようとすると、Byte/FLOPS比率が下がるので、パフォーマンスを出せなくなる。このあたりがどうなるのかは、まだ疑問が残るが、大枠ではEchelonに見られるようなアーキテクチャへと変わって行くだろう。

オンチップのネットワーク設計
メモリのインターフェイス