イベント
【GTC 2013レポート】NVIDIAのARMプロセッサ戦略
(2013/4/3 06:00)
米国のサンノゼで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コアを搭載していることになる。
モバイルからサーバーへ?
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を改良したものになると予想される。
クラウド 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を採用した製品の量産が技術的にハードルが高いためだろうか。
なお、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が高速にアクセスできる大容量メモリが必要になる。
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を利用できるようにしていくなどの地ならしが必要になるだろう。