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

将来のTegraに25,000個のCUDAプロセッサの搭載を目指すNVIDIA



●CUDA並列コアの搭載へとTegraを転換

 NVIDIAはTegra 2でデュアルコアCPUを、Kal-El(カル・エル:Tegra 3)ではクアッドコアCPUをSoC(System on a Chip)に納めた。GPUコアは、Tegra 2では1バーテックスシェーダ+1ピクセルシェーダの構成だったのを、Kal-Elではピクセルシェーダを追加したと見られる。では、Kal-Elの次は、どんなアーキテクチャへとTegraを進化させるのだろう。

 NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)は、Kal-Elから先は大きくアーキテクチャが転換すると言う。

 「4コアのKal-Elの後は、CPUコアをさらに増やすのではなく、CUDAのための並列コアを搭載することを決定した。並列コアなら、32コアや64コア、256コア、さらには1,000コアや2,000、4,000コアを搭載できる。うまく行けば、モバイル向けの小さなチップの中に、25,000ものコアを詰め込むこともできるだろう。

Tegra 2のダイ写真

 なぜシリアルコア(通常のCPUコア)ではなく並列コア(CUDA対応のGPUコア)を選ぶのか。それは、並列コアの方が、シリアルコアよりも、電力効率が高いからだ。少数のシリアルプロセッサを高速に走らせるより、多くの並列プロセッサを低速に走らせる方が、電力消費が少なく、パフォーマンスが高くなる。だから、我々は、できる限り早く並列コアへと向かう。最大限のダイサイズの中に、できるだけ多くのプロセッサを載せるだろう」。

 最終的には数千から数万のCUDAコアを搭載。この数は多すぎると思うかも知れない。だが、プロセスの微細化が進み、10nm台からサブ10nm台のプロセスまで行けば、それだけのコアを搭載できる計算になる。また、Tegra 2のダイを見ると、ダイの半分は固定機能ユニットやI/Oが占めており、プロセッサは半分以下の面積しか取っていないことがわかる。GPUコアに至っては、I/Oパッドを除いた面積の1/5以下。しかし、ダイの半分を占める固定ユニットは今後はあまり増えて行かない。CPUコアの面積もそれほど増えない。となると、GPUコアだけが増えて行くことになり、急激な増加が可能となる。

●GPUコアの汎用コンピューティング活用へと進むTegra

 現在のモバイルデバイス向けGPUコアは、いずれも汎用コンピューティングへの最適化が進んでいない。NVIDIA GPUで言えばG80世代よりも前のアプローチに近い。CUDAランタイムを走らせることも難しい。汎用コンピューティングへと次々と舵を切っているPC向けGPUコアと較べると、1世代遅れているイメージがある。

 しかし、実際にはモバイルの方がGPUコアの汎用利用の意味が大きい。それは、GPUコアを使った方が電力当たりのパフォーマンス効率が高いからだ。例えば、並列化が容易な大きなループなら、できる限りGPUコアで実行した方が、電力消費が減る場合が多い。一般に、GPUコアとCPUコアでは、電力当たりの浮動小数点演算の効率が10倍異なるからだ。1命令実行当たりのオーバーヘッドが大きいCPUコアは、同じ命令を繰り返し実行させると、GPUコアよりはるかに効率が悪い。数mWの電力も惜しいモバイルでは、GPUコアの汎用利用の価値は大きい。

 そして、NVIDIAは、Kal-Elから後の世代のアーキテクチャでは、Tegra系でもGPUコアを並列プロセッサとして汎用に使い始める。モバイル向けGPUコアでも、GPUコンピューティングへの転換点が近づいている。NVIDIAは、今後は、CUDA対応の並列コアをどんどん増やして行き、最終的に浮動小数点演算プロセッサの海にしようとしている。

NVIDIA Mobile SoC性能ロードマップ

●省電力化のためのマルチコア化

 そもそも、NVIDIAがTegra系でマルチCPUコア化を推し進めてきたのは、電力消費を抑えるためだ。Tegra 2でARMのCortex-A9をデュアルコアで実装したNVIDIAは、Kal-ElではCortex-A9を4コア載せた。Huang氏はその理由を、次のように説明する。

 「4コアのKal-Elは、2コアのTegra 2より電力消費が少ない。なぜかというと、4個のコアで迅速に作業を行ない、より長い時間スリープモードに入るからだ。このテクニックは、ハイパフォーマンスコンピューティングの世界で以前から使われてきた。できる限り速くジョブを終えて、完全にスリープに入り、次のジョブが来たらウエイクアップして迅速に処理する。CPUのパフォーマンスを上げると、より長くスリープに入ることが可能となり、電力消費を抑えることができる」。

 負荷の高いジョブは、マルチスレッド化できる限りマルチコアで速く終えてしまい、できるだけ長くスリープモードに留まる。省電力化が、モバイルのマルチコア化の原動力となっている。しかし、この手法は、汎用CPUコアでマルチスレッド処理できるジョブの量に制約される。そして、NVIDIAは4コア以上は、汎用CPUコアを増やしても意味が薄いと判断したようだ。

 もっとも、NVIDIAはARMコア自体のパフォーマンスは高めて行く可能性が高い。ARM Cortex-A9もいち早く採用したが、次のCortex-A15もサポートして来ると予想される。おそらく、CPUコアのシングルスレッドパフォーマンスは上げるが、CPUコア数自体は一定の枠(並列コアに対して一定の比率)に抑えて行くと思われる。

Cortex A-9のブロックダイヤグラム
Cortex A-15のブロックダイヤグラム

●G70をベースにしたTegra 2/Kal-ElのGPUコア

 NVIDIAロードマップ上でのKal-Elの次、「Wayne(ウェイン)」または「Logan(ローガン)」の世代から、NVIDIAはマイクロアーキテクチャを切り替える。CUDA世代、つまりPC向けではGeForce 8(G8x)アーキテクチャをベースとしたGPUコアに切り替わると推測される。フロムスクラッチでモバイル向けアーキテクチャを開発することは考えにくいので、G8x系の改良になると推測される。

 NVIDIAはTegraファミリのGPUコアアーキテクチャを開発するに当たって、PC向けGPUのアーキテクチャを修正する道を選んだ。Tegra 2では、GeForce 7(G7x)アーキテクチャをモバイル向けに改良した。Kal-Elも基本アーキテクチャはTegra 2で、本質的なアーキテクチャ変更ではないと言う。

G80のStreaming Multiprocessorの概要

 NVIDIAのBill Henry氏(Director of Tegra Platform Management)によるとTegra 2のGPUコアは、G70アーキテクチャをベースに、モバイル向けに拡張し不要な部分を削り、低電圧動作をさせたものだという。Henry氏は、Tegra 2の頂点シェーダプロセッサとピクセルシェーダプロセッサは、それぞれ1個ずつだと説明した。

 NVIDIAはその後、Tegra 2のGPUコアのプロセッサ数を8個と言い換えた。そのうち4個が頂点シェーダに、4個がピクセルシェーダに含まれるという説明だ。各プロセッサは、それぞれ浮動小数点積和算(FMAD)ユニットで、合計で8並列のFMADが可能だと言う。

 もともとG70アーキテクチャでは、頂点シェーダは4-wayの浮動小数点演算ユニットとスカラユニットで構成されていた。ピクセルシェーダは4-wayのSIMD(Single Instruction, Multiple Data)浮動小数点演算ユニットに、ミニALUと呼ぶ特殊演算ユニットが1個付属していた。また、ピクセルシェーダでは、テクスチャユニットを4-way SIMDユニットとしてシェーダプロセッシングに使うこともできた。

 しかし、Tegra 2の説明では、両シェーダプロセッサともに4プロセッサ相当とカウントされている。これがG70とTegra 2のアーキテクチャの違いによるものか、単純に数え方の違いによるものかははっきりしていない。しかし、G70系でも、実際にはピクセルシェーダ中の2個のSIMDエンジンを、シングル命令ストリームの中で並列に動作させる機会は少なかったと言う。4プロセッサと数えることは妥当だと見られる。

G70のピクセルシェーダの概要
G70のバーテックスシェーダの概要

 Kal-Elでは、NVIDIAはGPUコアのプロセッサ数が8から12に増えたと説明している。Kal-Elのデモがピクセルプロセッサとテクスチャリングを強調したものであることから、増えたのはピクセルシェーダプロセッサであることが推測できる。下は、想定されるKal-ElとTegra 2の比較図で、Kal-ElではCPUコア以外にピクセルシェーダプロセッサが2倍になり、浮動小数点演算ユニットが4個増えて、合計で12プロセッサという呼び方になったと見られる。

Tegra 2とKal-Elの比較

●膨れ上がるSoCの開発コストが生き残りベンダーを決める

 NVIDIAは、ポストKal-Elで、GPUコンピューティングのノウハウをTegraにもたらそうとしている。GPUコンピューティングによって、TegraをARM SoCの中で差別化して行く戦略だと推定される。Tegraは膨大な数のARM SoC群の中で、勝ち抜いて行かなければならない。ライバルベンダーの数は多く、そのほとんどは、モバイル市場でNVIDIAよりも長い歴史を持っており、厳しい状況だ。だが、こうした経験はNVIDIAにとって初めてではないと、Huang氏は語る。

 「今日、NVIDIAはARM SoCを製造するほとんど全てのメーカーと競合している。しかし、NVIDIAの歴史を振り返ると、こうした状況は以前にもあった。PC向けのグラフィックスでも、何百という企業と競合した。しかし、時間とともにPCグラフィックスでの競合企業の数は減っていった。同じことがARM SoCでも起こると考えている。

 理由は簡単だ。優れたSoC製品を開発するのに必要となる、極めて高いのレベルの投資を続けることが難しいからだ。R&Dの投資額は実に膨大で、しかも、うなぎ登りに上がりつつある。例えば、Tegra 2の開発には100名が携わったが、Kal-Elでは500名が必要となった。そして、Tegra 6世代の開発には最終的に3,000名が必要になるだろう。

 必要なスタッフの数は多く、R&Dにかかるコストは多過ぎる。また、競争とともに、R&Dのコストは、急速に増えている。R&D予算は、5,000万ドルから1億ドルに膨れ、10億ドルに達しようとしている。そして、年間10億ドルものR&D予算を維持できる企業の数は、非常に限られている。そのため、時間が経つに従って、競合企業の数はどんどん減って行き、大きくなれた企業だけが残る」。

 そして、NVIDIAはARM SoCの中で勝ち抜くカギとして、PCグラフィックスでの経験と、GPUコアの汎用コンピューティング利用を活用しようとしている。また、Tegraでは、GPUコア以外の、特定用途向けのプロセッサも重要なカギとなっている。固定ロジックを使うことで、電力効率を大幅に上げることができるからだ。

 「SoCの電力について言えば、電力効率は、半導体のプロセス技術やARM CPUアーキテクチャだけでなく、むしろSoCアーキテクチャに依存している部分が大きい。例えば、映画を見ている場合、電力面ではSoCアーキテクチャが非常に重要となる。デジタル動画の処理のほとんどは、専用プロセッサで行われるからだ。

 そのため、CPUコアは重要ではなく、アンコア(プロセッサコア以外の部分)が電力を左右する。この傾向は将来も続き、SoCの中でアンコア部分がコア部分よりも、ますます重要になって行くだろう。CPUコアやプロセス技術は、実際にはSoCの電力面では、じつは重要性が低い」(Huang氏)。

●NVIDIAは弱点だったベースバンドプロセッサを買収

 NVIDIAのモバイルSoC戦略の中で、これまでの弱点は、ベースバンドプロセッサを持っていないことだった。Qualcommを始めとするワイヤレスSoCベンダーは、ベースバンドプロセッサと一体化した低コストのSoCを製品ラインナップに持っており、そのため幅広い市場に対応ができる。NVIDIAは、この弱点を解決するため、ベースバンドチップセットのメーカーIceraの買収を発表した。

 「Icera(アイセラ)は非常に興味深い企業だ。なぜなら、彼らは世界で最初に、無線コミュニケーション専用の(ソフトウェアモデム)プロセッサを開発した企業だからだ。2Gから4Gまでの拡張性を持つ統合アーキテクチャで、非常に小さく、非常に高パフォーマンスかつ低消費電力だ。我々はIceraのテクノロジは非常に優れていると考えた。

 企業の側面からは、我々はIceraの買収によって、今日のモバイルデバイスで重要な2種類のプロセッサの両方を提供できるようになる。アプリケーションプロセッサとベースバンドプロセッサだ。NVIDIAはこれまでアプリケーションプロセッサだけを提供してきたが、これからは2種類のプロセッサをさまざまな組み合わせで提供できるようになる。

 まず、我々は2種類の先進のプロセッサを組み合わせた高機能なプラットフォームの全てを提供できる。そしてまた、2種類のプロセッサをワンチップに納めたローコストソリューションも提供できる。Tegraは、最初は最高のコンフィギュレーションのタブレットで登場した。つまり、我々はモバイルシステムに必要な重要なIPを全て手に入れ、どんなソリューションも提供できるようになる」(Huang氏)。

●Androidに依存するNVIDIAのチャレンジ

 NVIDIAのTegra戦略は、タブレットではGoogleのAndroidに大きく依存している。課題はここにあり、Androidの成熟度が低いため、OEMベンダーは製品開発で苦闘している。Huang氏は、これはオープン市場ならではの痛みだと言う。

 「現在の大きな問題が、ソフトウェアの成熟度にあることは確かだ。OSだけでなく、当社のデバイスドライバや、各システムソフトなど、さまざまな部分の成熟度が課題となっている。全てが洗練される必要がある。しかし、成果も上がっている。

 例えば、当社は、PC向けのデバイスドライバを毎月アップデートし、それによってゲームパフォーマンスを10%あるいは20%づつ引き上げている。しかし、Android Honeycombの場合は、3.0から3.1で、おそらく最大で50%ほど速くなったはずだ。また、電力消費も減った。ほとんど毎週のように、何かが新しくなり目覚ましい改良が進んでいる。

 現在、難しいのは、多くのパートナーと協力して行かなければならないことだ。Adobeを始めとするソフトウェアベンダー、OEMベンダー、ゲームデベロッパ、彼ら全てと協力する態勢を作る必要がある。Appleのように1社が全てをコントロールしていれば、こうした作業はずっと簡単になる。iPhoneは、登場してから6年を経ているため、成熟度も高い。

 多数の企業が関わる場合、最初は協力態勢を創り上げることが難しい。しかし、いったんうまく動き始めれば、技術革新が迅速に進むようになる。オープンマーケットは、スタートはゆっくりだが、いったん慣性がつくと加速度的に速くなる」。

 NVIDIAはARM SoCがモバイルだけでなく、幅広い製品に入って行くというビジョンを唱えている。だが、当面はGeForce系とTegra系は棲み分ける。

 「GeForceとTegraは、基本は同じエンジニアのチームが開発している。しかし、2つの製品は、異なる領域と異なる目的のために開発されている。GeForceは最大パフォーマンスを、Tegraは最大のパフォーマンス効率を求めている。

 例えると、GeForceはフェラーリ、Tegraは日産のスカイラインGT-Rのようなものだ。GT-Rは効率が高くパフォーマンスも高いが、最高パフォーマンスの車ではない。一方、フェラーリは最高パフォーマンスを狙ったクルマだ。

 ただし、技術は相互に交流する。フェラーリだって、熱くなりすぎると問題があるので、エンジンの効率を上げる技術を使う。その一方で、スポーツカーとして仕上げたTesla電気自動車のような車もある。つまり、Tegraを使ったスポーツカーのような製品もありうる」(Huang氏)。

 NVIDIAのTegra戦略は、CUDA対応の並列コアという次のステップで転換点に達する。28nmプロセス世代と予想されるCUDA対応で、Tegraの今後の方向性が決まるだろう。この動きは、ライバルのモバイルGPUベンダーの汎用コンピューティング対応を加速する可能性がある。