イベント

【GTC 2013レポート】NVIDIAのARMプロセッサ戦略

 米国のサンノゼで3月19日から開催された「GPU Technology Conference 2013(以下GTC 2013)」は、NVIDIAが開催しているGPUに関する技術カンファレンスだ。

 今回は、NVIDIAのARMプロセッサに関して解説していく。

新たなモバイル向けプロセッサTegra 4

 NVIDIAでは、スマホやタブレット向けのSoC(System on a Chip)としてTegraシリーズを提供している。今年の1月に米国・ラスベガスで開催されたCES(Consumer Electronics Show)2013では、新しいTegra 4が発表された。

 Tegra 4は、ARMの32ビットプロセッサとなるCortex-A15を4コア搭載するほか、低消費電力で動作するスペシャルなCortex-A15コア(サービスコア)が1つ搭載された、4+1プロセッサの構成となっている。

 もっとも、Tegra 4ではARMのCortex-A15をベースとしているが、NVIDIA自身が独自に設計を行っている。他社がARMのCortex-A15の半導体デザインをそのまま利用しているのに対して、NVIDIAは自身の手で機能強化したり、チューンアップしたりしているわけだ。

 GPU側は、72コアのMAD(Multiply-Add)ユニットを搭載しており、大幅に性能が向上した。以前のTegra 3(12コア)から比べると6倍もGPUコアを搭載していることになる。

NVIDIAでは、スーパーフォン/タブレット向けのTegra 4はCortex-A16を採用。スマートフォン向けのTegra 4iはCortex-A9 Rev4を採用。このほか、GPUコア数、モデムチップの搭載・非搭載などが異なっている

モバイルからサーバーへ?

 GTC 2013の基調講演でNVIDIAのJen-Hsun Huang(ジェンセン・ファン)CEOが公開したTegraシリーズのロードマップでは、2014年には現在PCやワークステーションで採用されているKepler世代のGPUを搭載し、GPGPU向けのCUDAユニットを採用したLogan(開発コード名)をリリースする。

 2015年には、NVIDIAが開発している64ビットARMコアのDenverプロセッサとMaxwell世代(2014年リリース予定)のGPUを搭載したParker(開発コード名)をリリースする。

 Parkerで64ビットのARMコアが採用されるとなっているため、2014年リリース予定のLoganは既存の32ビットARMコアになるだろう。Tegra 4に採用されたCortex-A15を改良したものになると予想される。

Tegraシリーズのロードマップ。Parkerで64ビットARMコアDenverとMaxwell世代GPUが融合する
NVIDIAのGPUロードマップ。Maxwell世代は2014年にリリース予定
Maxwell世代のGPUには、Unified Virtual Memoryが搭載される
Unified Virtual Memoryは、CPUのシステムメモリとGPUのメモリを仮想的な1つのメモリ空間としてマッピングする。これにより、CPU、GPU双方からそれぞれのメモリ直接アクセスできるようにする機能だ

 クラウド Watchの読者にとっては、モバイル向けのTegraシリーズは、それほど興味がないかもしれない。しかし、これがサーバー向けにも応用されるとなったらどうだろうか? 低消費電力で64ビットARMプロセッサとGPGPUのCUDAが利用できるチップは、サーバーに革新的なメリットをもたらすかもしれない。

 Intel Atomなどの低消費電力プロセッサを多数利用したマイクロサーバーに注目が集まっており、ARMベースのサーバーを各社が開発している状況を考えれば、Tegraベースのマイクロサーバーが発売される可能性もある。

 さらに、GPGPUが動作するCUDAユニットが搭載されていることを考慮すると、Tegraベースのスーパーコンピュータ、という製品が誕生するかもしれない。

 ただし、Tegraがモバイル以外のマーケットに入っていくには、GPUにKepler世代のCUDAユニットを採用することと、64ビットのARMコアを採用することが必要になる。このことから考えれば、3~5年後のことになるだろう。

DenverコアはGPUチップに統合される?

 今回のGTC 2013では、開発を進めている64ビットのARMコアに関する発表は、NVIDIAからはなかった。しかし、TegraやGPUのロードマップを見ていると、NVIDIAはDenver自体を単体のプロセッサとしてはリリースする考えはないのだろう。

 GPGPUのメリットを前面に出しているNVIDIAにとっては、いくら64ビット化されたARMプロセッサといえども、単体でリリースするメリットはないからだ。筆者は、GPUにDenverコアも統合されるのだろうと想像している。

 64ビットARMコア(Denver)+GPU(Maxwell)といった構成になるのだろう。ある意味、Tegraシリーズのブロック図に近くなる。ただし、Tegraシリーズは、1チップで動作するため、さまざまなインターフェイス回路が登載されている。こういった回路はサーバー向けのCPU+GPGPUには必要ないだろう。

 Tegraシリーズのロードマップでは、前述したように、2015年リリース予定のParkerで64ビットARMコア(Denver)が採用され、Maxwell世代のGPUが搭載されたSoCになる。

 これを考えれば、2014年にリリースされるMaxwell世代のGPUチップに、64ビットARMコア(Denver)が統合される可能性が高い。

 Tegraシリーズは、低消費電力で動作する必要があるため、実績のある回路をインプリメントしている。このことから考えると、ハイパワーなGPUにDenverコアを入れてリリースされると思う。その後、プロセスを微細化し、チューニングして低消費電力化を行うのだろう。

 数万個のプロセッサを導入するスーパーコンピュータ(HPC)にとっても、CPUの低消費電力は大きな課題となっている。このため、Tegraシリーズの低消費電力化技術が、NVIDIAのサーバー向けCPU+GPUにフィードバックされるのだろうと考えられる。

 ただKepler世代でも、複数のGPUが製造されているため、すべてのMaxwell世代のGPUにDenverコアが搭載されるとは思えない。おそらく、プロフェッショナル向けGPUブランドのQuadro、HPCなどに向けたGPGPU向けブランドのTeslaなどで使用されるGPUに採用されるのだろう。コンシューマー向けのGeFroceブランドには採用されないと予想している。

 Denverコアに関しては、2011年にARMが発表したARMv8がベースになっている。このため、昨年ARMが発表したCortex-A57/A53シリーズとは異なる独自設計となっている。

 実際、ARMv8の発表時には、NVIDIAはエンドースメントを発表しているが、Cortex-A57/A53のライセンサーとして会社名は入っていなかった。

 このことから考えれば、ARMv8というARMの64ビットアーキテクチャを採用しているが、プロセッサの設計自体はTegraなどのようにNVIDIA自身が行っているのだろう。

 NVIDIAにとっては、Tegraでの開発経験などがあるため、HPCなどで採用されるハイパフォーマンスサーバー向けの64ビットARMプロセッサにおいても、独自の設計が行われていると予測している。

スタックドDRAMを採用する次世代GPUのVolta

 またNVIDIAのHuang CEOは、GPUのロードマップにおいて、2014年のMaxwellの次世代GPUとして、Volta(開発コード名)を発表した。

 Voltaは、GPUに、メモリを積層するスタックドDRAMを採用することで、高速で大容量のグラフィックメモリ(1TB/秒のメモリ帯域)を実現する。Voltaのリリースに関しては、2014年以降となっている。2015年といったターゲットが明確になっていないのは、スタックドDRAMを採用した製品の量産が技術的にハードルが高いためだろうか。

Maxwellの次世代GPU「Volta」では、GPUにメモリを積層するスタックドDRAMが採用される。これにより高速で、大容量なメモリが搭載される

 なお、64ビットARMプロセッサのDenverコアとMaxwell世代のGPUは、それぞれが独自のメモリインターフェイスを持つのではなく、フラットなメモリ空間が用意され、DenverコアやGPUコアがアクセスできるようになるのだろう。そうなることで、GPGPUのプログラミングがやりやすくなる。

 もし、DenverコアとGPUコアのメモリが分かれていると、データを処理のために、それぞれのメモリ空間のデータをコピーする必要がある。これはパフォーマンスの低下の大きな一因だ。

 現在のGPGPUコンピューティングにおいても、GPGPU側のCUDAコアはアイドルし、CPU側からのデータ転送待ちの状態が多く見られる。GPGPUを高い性能に保つためには、CUDAコアのアイドル状態を少なくする必要がある。

 Maxwell世代では、現状のGDDR5などのメモリが利用されることになるだろう。しかし、GDDR5はメモリ容量において問題がある。

 Kepler世代のTesla K20Xは6GBのGDDR5メモリを搭載しているが、64ビットARMコアのDenverが搭載されるとなると、6GBのメモリ容量はあまりにも小さいし、6GBのメモリをGPUと共用するとなると少なすぎる。やはり、64GBほどのメモリ容量は必要になるだろう。

 こういったことを考えれば、64ビットARMコアを統合したMaxwell世代のGPUは、ある意味初期段階といえるかもしれない。エクサスケールのHPCを構築するためには、64ビットARMコアとGPUが高速にアクセスできる大容量メモリが必要になる。

NVIDIAはDARPA(米国防総省の研究機関 高等研究計画局)と、低消費電力でハイパフォーマンスなプロセッサアーキテクチャの研究(Project Osprey)に関する契約を行っている。エクサスケールのコンピューティング環境を実現するには、64ビットARMコア(Denver)、GPU同士をインターコネクトで接続するGPU Direct、ハイブリッド環境に最適化されたソフトウェアが必要になる
Denverでは、64ビットのARMv8アーキテクチャが採用されている。ただし、ARM自身が開発したCortex-A57/A53ではなく、NVIDIAの独自設計。64ビットARMコアとGPUが統合されている
DenverとMaxwellのブロック図のイメージ。チップがこのブロック図通りになるわけではないが、ARMコアとGPU、各種インターフェイスが1チップに搭載されていることがわかる
複数のチップをPCI Expressのスイッチで接続することで、HPCを構築できる

 OSに関しては、Linuxが先行している。Red Hatも64ビットARM版のRed Hat Linuxの提供を計画しているようだ。マイクロソフトも、ARMv8の発表リリースにエンドースメントを出しているので、Windows Serverの64ビットARM版を計画しているかもしれない。このあたりは、実際に64ビットARMプロセッサがリリースされてこないとわからない。

 将来的には、モバイル向けのIntelのCore iプロセッサとPCI Expressインターフェイスで接続した64ビットARMコアを内蔵したGPUチップを複数搭載するデスクトップ スーパーコンピュータといった製品がリリースされるかもしれない。

 ただ、NVIDIAが本格的にGPGPUを一般的なサーバー分野に導入させるためには、GPUの消費電力を小さくしたり、一般企業でもGPGPUを利用できるようにしていくなどの地ならしが必要になるだろう。

(山本 雅史)