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

64-bit ARMコアをGPUに統合するNVIDIAのDenver計画の全貌

64-bitを前提として開発をスタートさせたDenver

 NVIDIAは、64-bit ARMアーキテクチャのCPUコア「Project Denver(プロジェクトデンバー)」の開発を進めている。3月に開催されたNVIDIAの技術カンファレンス「GPU Technology Conference(GTC)」では、2015年に登場する次々世代Tegra「Parker(パーカー)」が最初のDenver CPUコア搭載製品になることが明らかにされた。Parkerは、Denverコアを載せるだけでなく、NVIDIAの次期GPUコア「Maxwell(マクスウェル)」を載せ、FinFET 3Dトランジスタ技術で製造される。つまり、TSMCの16nmプロセスかGLOBALFOUNDRIESの14nmで製造される(Intelの14nmの可能性を除外すれば)可能性が高い。

NVIDIAのARMアーキテクチャSoCのロードマップ
ジェンセン・フアン氏

 NVIDIAはDenverの計画自体を2011年にアナウンスしてから、実際の投入までに4年も空いている。スパンの短いNVIDIAにしては珍しいが、その理由につて、NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)は、1月に次のように説明していた。

 「Project Denverが遅れているのは、Denverが64-bit ARMを前提としているからだ。そして、64-bit ARMはわりと最近(2011年)に発表されたばかりで、それまではDenverの実装に取りかかることができなかった。今は、(命令セットの)アーキテクチャができあがっているので、我々は実装に入ることができている。

 もし、我々がDenverの実装を急ぎすぎていたら、DenverはARMv8の64-bitアーキテクチャと非互換になってしまっただろう。それは望んでいない。我々が望んでいるのは、ARMのエコシステムの中で、それを拡張して行くことだ。今は、Denverに必要な仕様もアーキテクチャも全て揃っている。だから、Denverをできる限り早く現実化しようと急いでいる」。

 ARMv8ベースにしたため、タイミング的にParkerの時期になったというのがHuang氏の説明だ。ARMv8ベースの64-bitコアは、ARMスモールコアサーバーの方が先行しているので、Tegraに64-bitを持って来るタイミングとしては不思議ではない。

64-bitに対応するARMv8命令

ARMをよりハイパフォーマンスへと広げるDenver

 GTCの発表だけを見ると、NVIDIAはDenverをTegraのCPUコア(Tegra 4ではCortex-A15)の置き換えとしているだけのように見える。しかし、元々のDenverの構想は、パフォーマンスを引き上げたDenverで、PCとオーバーラップするコンピュータデバイスの領域にも、ARMコアとGPUを統合した製品が浸透するというものだった。

 特に、Maxwell世代のGPUになると、DenverコアのGPUへの統合が標準的になると見られていた。Tegra以外で、現在ディスクリートGPUとx86 CPUを組み合わせている市場への、Denver CPUコアの投入は、どうなるのだろう。x86 CPU+ディスクリートGPUのDenverへの置き換えは、CPUアーキテクチャの切り替えを含むため、困難が大きい。

 今回、COMPUTEXでのメディア向けラウンドテーブルで、Huang氏は言葉を選びながら次のように答えた。

 「今、コンピュータの世界はマルチスクリーンワールドに移行しつつある。スマートフォンやタブレットだけでなく、クラムシェルやオールインワン、TV統合型、PC型、PCボックス、STB(セットトップボックス)など、あらゆる形態のデバイスが発達している。こうした幅広い分野に必要とされるCPU(のパフォーマンス)レンジは、例えば、Cortex-A7やCortex-A9ではカバーできない。それどころか、1種類のCPUアーキテクチャではカバーすることができない。

 そこで、我々は何をしようとしているのか。それは、現在ARMがカバーできていないレンジも、ARM CPUアーキテクチャでカバーすることだ。ARMが、現在より広い部分をカバーできるようにするのが、Denver 64-bit CPUを開発する目的だ」。

 つまり、Denverの目的は、単にTegraのCPUを置き換えるのではなく、よりハイパフォーマンスが必要な機器や市場に、ARM CPUコアのチップを広げることにあるという。これまで、NVIDIAはTegraのCPUコアを、Cortex-A9(Tegra 2/3)からCortex-A15(Tegra 4)へと拡張してきた。そのパフォーマンス拡張をさらに進めるのがDenverだ。

TegraのALU
PDF版はこちら

 PCとスマートフォンやタブレットの間にあるハイブリッド機器やSTBなどは、Denverのターゲットとして容易に想像がつく。もちろん、そこにARMが浸透できるかどうかは、その上のOSとアプリケーションエコシステムが広がるかどうかにかかっており、現在激戦中だが狙いは明確だ。

HPCへのDenver統合は早く進む見込み

 では、現実に現在ディスクリートGPUを使っている用途はどうなるのだろう。ディスクリートGPUも全て、x86 CPUとの組み合わせから、ARMコア内蔵へと置き換えようとNVIDIAは考えているのだろうか。Huang氏は次のように語る。

 「今Intel CPUと組み合わせているディスクリートGPUはどうなるのか。CPUとディスクリートGPUを組み合わせている主な分野は、PCゲーミングとHPC(High Performance Computing)、それに新しいところでは仮想化による“GRID(NVIDIAのGPUサーバー技術)”だ。

 まず、基本的には、我々は市場のアプリケーションの動向が許す限り、Denverを幅広く提供したい。その意味では、HPC市場は問題がない。なぜなら、HPCでは、アプリケーションは、ハードウェアの世代毎に、毎回書き直されるからだ。HPCではパフォーマンスとアーキテクチャが非常に重要なので、アーキテクチャも世代毎に大きく異なる。その度にアプリケーションも移植される。だから、HPCでは、x86に変えてARMアーキテクチャのDenverを導入するのに問題がない」。

 異論もあるだろうが、NVIDIAはHPCでは既存のCPU命令セットとの互換は重要ではなく、ARMv8に置き換えることができると見ている。Denverコアを統合したGPUによって、より高いパフォーマンスやプログラミングの容易性を確保できるなら、x86+ディスクリートGPUを置き換えることはできそうだ。ただし、NVIDIAはMaxwellについては、Denverになるとは言っていなかった。2015年のParkerが最初のDenverベースなら、HPC向けにDenverを統合するのは、それ以降のハイエンドGPUになるだろう。

 ちなみに、NVIDIAはエクサスケールのEchelonでもCPUコアを統合すると説明しており、これもDenverか、その後継となる見込みだ。

GPUのロードマップ
HPCシステムの概要

ゲーミングPCのDenverへの移行はPCゲームの動向次第

 PCではGPUコアのCPUへの統合が進んでいるが、ディスクリートGPUの市場も固定的に残っている。その中核は、ゲームだ。ゲーミングPCでは、依然としてディスクリートGPUが強く(IntelとAMDはそこを崩そうとしている)、また、日本以外の国では、依然としてPCゲーム市場はある程度強い。そのため、日本の感覚より、ディスクリートGPUのゲームPCの重要性は相対的に大きく、その市場をDenverで置き換えることができるのかどうかも重要となる。Huang氏は、カギはゲーム開発者の動きだという。

 「では、PCはどうなのか。今日のデスクトップPCは、Windowsを必要としている。なぜなら、今日のPCゲームがWindowsベースでx86ベースだからだ。しかし、ゲーム開発者が徐々にAndroidとPCの両方に同時にゲームを出すようになると話が違ってくる。彼らがAndroidとPCの双方にゲームを出すなら、ゲームは必然的にARM上で走るようになる。ARMの成長は、実際のところAndroidの成長にかかっており、Androidゲームが花開くと、デスクトップPC型のデバイスを、ARMベースにする可能性が出てくる。私は、それがもっとも重要だと考えており、その動きを待っている」。

 Huang氏が見ているのは、同クラスのゲーム、あるいは同じタイトルがWindowsとAndroidに向けて開発されるような未来だ。実際には、これは簡単は話ではなく、技術的な観点だけでなく、価格やビジネスモデル、ディストリビューションなど全てに関わってくる。WindowsとAndroidでは、そうした部分に大きな違いがあり、それが、モバイル機器向けに、いわゆる「AAAタイトル」(PCやコンソール向けの大作ゲーム)を出せない背景にある。一言で言えば、Androidゲームに、PCゲームと同じだけの金額を払う土壌は育っていない。

 そうした問題が解決して行けば、ゲーミングPCが、ゲーミングAndroidデバイスに移って行く可能性はある。しかし、それには時間がかかる。Huang氏も、現在は待ちの態勢だと語っている。

 実際には、NVIDIAは現状の中間解として、リモートゲーミングのソリューションを提供している。家庭のPCをゲームサーバーとして、他のTegraベースのAndroidデバイスでPCゲームをリモートプレイできる環境を組み立てている。NVIDIAが、Androidベースのゲーム向け端末SHIELDで、Androidゲームだけでなく、PCゲームのリモートプレイをフィーチャしているのはそのためだ。しかし、Huang氏の言葉からは、それが中間解であることがわかる。

COMPUTEXで公開された製品仕様のSHIELD

GPUサーバーGRIDは長期間x86との組み合わせに留まる

 NVIDIAは家庭のPCを、ゲームサーバーにして、SHIELDのような他のデバイスからリモートでゲームプレイができるようにする。その同じ技術を、エンタープライズ向けのサーバー製品にも持ってきている。NVIDIAが重視している市場は、モバイルクライアントだけでなく、サーバー、それもHPC以外の汎用的なサーバーもターゲットとしている。クラウド時代である現在、急成長している市場は、モバイルとサーバーであり、NVIDIAがサーバーを狙うのも当然だ。

 そのため、NVIDIAはGPU仮想化とリモートグラフィックスのソリューションを提供し始めている。仮想化によって、複数ユーザーでGPUを共有させる。目的はCPUの仮想化と同じだ。この分野も、現在はx86 CPUとディスクリートGPUの組み合わせとなっている。Denverはここを置き換えることができるのだろうか。Huang氏は、もっとも時間がかかるだろうと言う。

 「エンタープライズ分野のバーチャルGPUは、Denverベースにはできない。なぜなら、既存の多数のアプリケーションがあり、それらはx86 CPUを要求するからだ。x86には非常に長い歴史があり、それをARMで置き換えることは一夜ではできない、多分少なくとも10年は無理だ。だから、GRIDは、長い間x86のままで残るだろう」。

 現在のフェイズのNVIDIAのGPUサーバー技術GRIDでは、CADなどのソフトウェアを主なターゲットとしている。これらを置き換えることは難しい。

NVIDIAのGRID技術

 ちなみに、NVIDIAは現在のフェイズのGPU仮想化では、リモートグラフィックスだけにフォーカスしている。これは、GPUがプリエンプションをサポートしておらず、スレッドの実行途中での切り替えができないからだ。しかし、Maxwellの世代になると、この問題も解決され、アーキテクチャルステイトをメモリにストアして、プリエンプティブなタスクの切り替えができるようになる。そうなると、GPUコンピューティングの仮想化も可能になる。

GPU仮想化技術のステップ
PDF版はこちら

NVIDIAのDenver統合計画の全体の流れ

 NVIDIAのDenver計画の全体像は見えてきた。モバイルデバイスやコンシューマ向けのコンピューティングデバイスについては、NVIDIAはDenverによって、よりパフォーマンスが必要な領域へと市場を伸ばして行く。NVIDIAは、x86 CPUにGPUを統合した統合グラフィックスのPC市場自体は直接は崩しようがないが、DenverによってAndroidデバイスがカバーする市場を伸ばして、PCを圧迫して行く可能性はある。

 ハイパフォーマンスx86とハイパフォーマンスディスクリートGPUを組み合わせたHPCは、比較的容易にDenver+ハイパフォーマンスGPUコアの統合を浸透させることができるとNVIDIAは見ている。その一方で、ゲーミングPCのDenverの置き換えは、PCゲームがAndroidへ広がって来ない限り難しいと見ている。さらに、サーバーサイドのGPUは、アプリケーションの対応に10年単位の時間がかかるため、当面は無理だと考えている。

 こうして見ると、NVIDIAのDenverのプランはすこぶる現実的であることがわかる。しかし、これは、NVIDIAのDenver統合が、NVIDIA製品ラインナップ全体で揃って実現されるわけではなく、かなりの時間差が生じることを意味している。それは、NVIDIAのプログラミングモデルに影響を与える可能性がある。例えば、Denverを統合して、もし、GPUとCPUのメモリアドレスの統合やコヒーレンシメカニズムなどを導入した場合、そのモデルはディスクリートGPUには適用しにくい。NVIDIAがどうやってプログラミングモデルの一貫性を保ちながら、Denver統合と非統合のプラットフォームを維持して行くのか、注目される。

 また、Denver統合と非統合の2製品ラインに分かれることは、NVIDIAが以前から強調しているプロセッサ開発のコストの軽減という利点を減らしてしまう。NVIDIAは現在、ハイエンドのコンシューマ向けGPUと、HPC向けGPUを、同じ設計としている。同じ設計のダイを、コンシューマグラフィックスカードと、HPC向けボードの両方に載せている。しかし、Denver統合と非統合に分かれると、共通開発の利点が得られなくなる可能性がある。

(後藤 弘茂 (Hiroshige Goto)E-mail