笠原一輝のユビキタス情報局

CUDAの世界を広げる“CUDA Everywhere”構想
~モビリティデバイスではx86ではなくARMに賭けるNVIDIA



●2度目のGTCも盛況

 NVIDIAは、カリフォルニア州サンノゼのサンノゼコンベンションセンターで、GPUコンピューティングの技術カンファレンス「Graphics Technology Conference(GTC)」を開催している。

 NVIDIAの技術カンファレンスがGTCという名前で行なわれるのは今回で2回目だが、NVIDIAがIDFが終わった時期に開催する技術カンファレンスとしては3回目になる。これは2008年にはNVISIONという別の形のイベントを開催していたからだ。NVISIONはコンシューマも対象にしたイベントで、GPUコンピューティングだけでなく3Dグラフィックスなども含めて開催されていた。つまり、NVIDIAの製品で言えば、GeForceやQuadroが主役であり、GPUコンピューティングも取り上げられてはいたが、それはGeForceやQuadroで使うためのアプリケーションの1つという扱いだった。

 しかし、GTCでは、GPUコンピューティングがメインに据えられており、3Dグラフィックスのセッションは逆に数えるほどしかない。かつ、内容もよりディープに開発者にフォーカスしたものとなっている。

 そのため昨年は、NVIDIAも参加者の減少を予想して、会場をサンノゼコンベンションセンターから近くにあるフェアモントホテルへと場所を変えたほどだ。しかし、蓋を開けてみればGTCは満員状態。早々にカンファレンスのチケットは売り切れになり、多くのセッションが満員になるなど、GPUコンピューティングが技術者の間のホットトピックであることがよくわかった。

 このため、今年はサンノゼコンベンションセンターへ会場を戻し、より多くの開発者が参加できるように配慮されている。それでも満席で入れないセッションもあり、今年もGPUコンピューティング熱は冷めていないことを参加者に印象づけた。

●話題の中心はTesla
NVIDIA ジェン・セン・ファンCEO

 今回のGTCでGeForceやQuadroを差し置いて、主役となった製品はTeslaだ。Teslaは、HPC(High Performance Computing)向けの製品で、データセンターや大学などに設置されて科学演算を高速に行なうために利用される。

 ファンCEOは基調講演の中で、多くのTesla関連の製品を発表した。昨年のGTCで、NVIDIAはTeslaのブランドとFermi(フェルミ)の開発コードネームを発表したが、Fermiはまだエンジニアリングサンプルの状態で、対応ソフトウェアやOEMメーカーの製品は発表できかった。しかし、今年は「ペーパー」の状態から大きく進歩し、IBM、CARY、HP、DellなどのHPCを製造するOEMメーカーから具体的なHPCが発表され、かつソフトウェアに関してもTeslaに対応したHPC用のソフトウェアが多数登場した。

 今回のGTCの話題の中心はTeslaであり、Teslaがリアルな形で来場者の前に姿を現したのが今回のGTCだったと言っていいだろう。

展示会場ではTeslaに関するソリューションが多数展示された

●CUDA Everywhereの実現を目指す

 そうした事情もあり、ファン氏の講演もGPUコンピューティングに力点が置かれていた。NVIDIAはGPUコンピューティングのマーケティングブランドとして“CUDA”を使用しているが、ファン氏によればNVIDIAの目標は“CUDA Everywhere”だ。これは、CUDAをTeslaのようなHPCエリアだけでなく、PCサーバー、PC、さらにはTegraがサポートするようなエリアにまで広げるという意味だ。「我々のビジョンはCUDA Everywhereだ。Tegraでも、GeForceでも、Quadroでも、TeslaでもCUDAのアプリケーションが動作するようになる」とファン氏は言う。

 ただし、それはTegraからTeslaまで同じバイナリが動くということは意味しない。「バイナリの互換性が重要だったのは過去の話だ。例えば、コンシューマエリアではアプリケーションの配信は、ネットスペースを利用したものが主流になりつつある」と指摘し、NVIDIAがバイナリ互換ではなく、プログラマレベルでの互換性を重視していることを強調した。

 NVIDIAのCUDAでは、OSやアプリケーションのロードはNVIDIAのGPUではなく、アプリケーションプロセッサが行なう仕組みになっている。GeForceやTeslaならx86であり、TegraならARMになる。つまり、バイナリは互換ではないが、それはプログラマーがプログラムをコンパイルする段階で、どのCPUに最適化するかを選べばいい。複数のCPUに対応したいならプログラマーが複数のバイナリを用意すればいいだけという話だ。

 もちろん、アプリケーションは、どのような環境でも動くのがベストであるのは言うまでもない。NVIDIAに取って重要なことはCUDAがプログラマーに受け入れられ、汎用のプログラミング環境として利用されることなのだ。

ソフトウェアベンダのPGIがCUDA-x86と呼ばれるコンパイラを発表

 そのため、NVIDIAのGPUが無いx86環境でも、CUDAに対応したアプリケーションが動くコンパイラ「CUDA for x86」がサードパーティのPGIが提供することが明らかにされた。「残念ながらCUDAのスケーラビリティはまだ完璧ではない。我々にとって重要なことは、CUDAがどの環境でも動作することであり、そのためにCUDA for x86を提供することにした」と、ファン氏は言う。

 ただし、「我々のGPUはCUDAのプログラムを数千単位のプロセッサで並行実行している。これを現状のマルチコアCPUで実行しても大きな効果を得ることは難しい」と、ファン氏が認めているように、CUDAのアプリケーションをx86のプロセッサ上で走らせてもパフォーマンス上のメリットはほとんどない。動くという以上のメリットはあまりないのも事実だ。

 このため、NVIDIAは今後もCUDAがネイティブで動作する環境を増やしていく。まず、TegraへのCUDAの実装が具体例となるだろう。ファン氏は「モバイルコンピューティングにもGPUコンピューティングは必要になる。Tegra3のプロジェクトは概ね終了しており、Tegra4は現在開発中だ」と述べた。CUDAを実装するとみられるTegra3の開発が概ね終了していることを明らかにした。

 さらに、NVIDIAの3D立体視の技術である3D VisionをTegraに実装するのかと問われると「サポートする予定だ、非常に美しいものだ」と肯定した。

●モビリティデバイスではx86ではなくARMに賭ける

 NVIDIAのTegraシリーズは、NVIDIAのGPUとARMコアのCPU、さらにはI/Oコントローラなどを1チップにしたSoCとなっている。NVIDIAはx86プロセッサビジネスに参入するのかという、ファン氏の記者会見で毎度毎度繰り返される質問に対して、ファン氏は明快に「ノーだ。我々はすでにARMを選択している」と言い切った。

 ファン氏は「ARMはiOS、Android、Windows Mobileなど、現在多くのユーザーが重要視している選択肢があり。現在x86のプロセッサの成長は止まっているが、ARMは急激に成長している。ARMには将来性がある、モバイルのCPUとしてx86に成長性はない、すでに過去のものだ」と言う。

 タブレットの成長性に関して聞かれると「タブレットは非常に大きな成長があると考えている。いまここにいる記者の皆さんはクラムシェル型のノートPCを持っているが、今後3年で半分の方が、そして5年間でほとんどの方は(ARMベースの)タブレットに移行するだろう。」と述べた。

 筆者はファン氏の見解に100%同意するわけではないが、コンシューマ向け機器におけるARMの市場シェアが急速に伸びていることに異を唱える人はおそらくないだろう。だからこそ、IntelもAtomプロセッサの事業に力を入れておりARMとx86の綱引きが今後5年間で激しく行なわれることは間違いないだろう。ファン氏の発言は、x86ではなくARMに賭けるという意思表明であると考えるのが正しい見方だろう。その上で、CUDAが普及していけば、NVIDIAが次世代のIntelのポジションに取って代わる可能性すらゼロではない。

 もし、ファン氏の予想に反してIntelの地位が揺らがなかったとしても、CUDAでHPCの市場は取れるだろう。CUDAはCPUのアーキテクチャには依存しないのだから、これまで通りx86の上でCUDAを動かしてGPUをPCメーカーなどに売り続ければいいだけだ。そうした意味では、ファン氏がとっているCUDA Everywhereという戦略、実は“確実に負けない”戦略であり、しかも、勝てばそのリターンは非常に大きいという意味で賢明な戦略と言えるだろう。

バックナンバー

(2010年 9月 24日)

[Text by 笠原 一輝]