x86アーキテクチャ依存からの決別
フアン氏はGTC2010基調講演の中で、HPC向けコンパイラ開発を行っているPGIが、x86ベースのHPCでCUDAアプリケーションを動作できるコンパイラ「CUDA-x86」をアナウンスした。
これによってCUDAを取り巻くHPC環境はどう変化していくのだろうか。
フアン氏「Intelアーキテクチャ、すなわちx86アーキテクチャのCPUでは、どんなマルチコア構成になったとしても、GPUでのCUDAのパフォーマンスを超えられないだろう。では、どこにこのCUDA-x86の価値があるのか。それはCUDAベースのアプリケーションが、NVIDIA GPUを搭載していないスパコンで動作できるというところにある。ソフトウェアは、いかなる環境でも動作できる……ということでその価値が高まるのはご存じの通り。CUDA-x86はCUDAベースのアプリを広く活用できる環境をもたらすはずだ。我々自身も、こうした環境整備を行っている。PhysXがそうだ。最近ではPhysXをiPhoneで動くようにしたし、PhysXはPS3、Xbox 360でも動作する」
NVIDIAは、CUDAを、HPC分野においてデファクトスタンダードに仕立て上げたい思惑があるが、これを成功させるにはCUDAベースのソフトウェアの頒布性と透過性を確立させる必要がある。PGIのCUDA-x86は他社製ではあるが、NVIDIAの戦略に追い風をもたらす存在になることは間違いない。
一方で、NVIDIAはx86プラットフォームに対して、それほど大きなこだわりは持っていない。
幾度となく繰り返される質問に「NVIDIAはAMDのようにx86アーキテクチャのCPUを自身で作らないのか?」というものがある。
フアン氏「我々がパートナーCPUとして選択したのはx86ではなくARMだ。ARMは現在、世界で最も早い速度で進化普及しているCPUアーキテクチャだ。そしてARMで動作するOSで最も普及が期待されるのがAndroidだ。我々はアプリケーション開発者にとっても最も展望が明るいOSやCPUを選択する。x86アーキテクチャの進化は今や飽和状態だ。これに対してARMの進化は加速中だ。人は前に進むときに上半身を後ろに倒していてはダメだ。前屈みで歩まなくては(笑)」
それでは、Windows環境向けのGPUとしてのGeForceビジネスは今後、重きを置かないということなのだろうか。
フアン氏「そういう話ではない。これから成長しそうな分野にも力を入れていくという企業としての基本姿勢を話しているまでだ。ただ、7月に1つ興味深いことがあったではないか。MicrosoftがARMのライセンスを取得したと言うニュースだ。これが意味するところは……?(笑) つまり、Microsoft自身も(x86よりも)成長の大きなARMの世界に目を向け始めたと言うことだ。我々も同様であり、だからこそ、Tegra(SoC)に力を入れている。全ての賢い企業はARMに力を入れていくことだろう」
Microsoftはこれまでもソフトウェアサプライヤの立場でWindows EmbeddedやWindows PhoneといったOSを提供してきたわけだが、このARMライセンスを取得したことで、MicrosoftはARMベースの独自のSoCを設計できる権利を取得したことになる。次世代Xboxの設計のためだと言う噂から、WindowsプラットフォームPCをARMアーキテクチャで実現するためだという噂まで色々出てきているが、とにかく業界はARMへの力の注ぎ方が凄い。
NVIDIAは、TegraというARMベースの独自SoCを開発したわけで、これを独自プラットフォームとして育てていくにあたり、自社OSを開発する可能性はあるのだろうか。ちなみに、IntelとNokiaは、携帯機器向けの独自OS「MeeGo」を発表しており、この流れにNVIDIAも乗るならば、確かに独自OS開発という選択肢もあり得ない話ではないように思える。
フアン氏「我々はOSを構成するある部分の階層のソフトウェア、たとえばAPIやミドルウェアと言った部分については世界ナンバーワンの技術力があると自負しているが、OSとなるとさほどの実績がない。我々がOSを作ったところでアプリケーション開発者は追従してこないだろう。繰り返しになるが、我々はパートナーCPUとしてARMを選択した。ARMで動作するOSはなにか? と挙げてみればIOS、Blackberry、Android、Windows Mobile(Phone)、Symbian、MeeGoなどがある。このうちARMで動作するのはMeeGo以外の全てではないか(笑)。あえてOSなど作る必要がどこにあろうか」
ではなぜIntelはMeeGoの投入を決定したのだろうか。
フアン氏「では、なぜ、IntelがMeeGoを投入してきたのか……疑問を抱くかも知れないが、答えは明白だ。携帯機器向けのOSにx86ベースのものがないからだ。ないものは自分で作るしかないからIntelはMeeGoの投入に踏み切ったのだ。我々はx86に固執する必要がないが、Intelはx86に固執する必要がある。その違いだ」
ARMに注力していくということは、現在、NVIDIAが持っているCUDAも、いずれARMへの対応がなされると言うことだろうか。
フアン氏「もちろんだ。完成されたアルゴリズムを別のCPUへ移植することは難しいことではない。一発だ。合わせて、立体視ソリューションの3D VISIONも、とうぜんTegraプラットフォームへと持っていく。Tegraでの3D VISIONは、パーソナルデバイスとなるため眼鏡いらずの裸眼立体視になることだろう」
NVIDIAもARMのライセンスを受けており、だからこそARMベースのSoCであるTegraを設計できたわけだが、現在、NVIDIAはこのTegraを携帯機器向けに訴求している。x86依存を徹底的に進めていくならば、ARMベースのグラフィックワークステーションを構成できるようなハイパフォーマンス分野への進出も考えているのではないかと勘ぐりたくなる。
フアン氏「現在のARMの性能はまだまだ低すぎるので、そうした分野への進出は考えていない。最低でもARMベースCPUを今の2倍のパフォーマンスにしなければならないだろう。あるいは4倍の性能にしないとハイパフォーマンス分野での実用は難しいかも知れない。では、それをどのくらいの次期に実現するか……という問題だが、1年では無理だし、10年ならば逆に確実だ。とすれば5年後くらいが頃合いか」
現在、NVIDIAはHPC分野にはTeslaブランドのGPGPU製品を提供しているが、その際のHPCハードウェアのCPUにはIntel CPUベースのシステムが今でも使われることが多い。NVIDIAとしては、HPC分野でもx86依存を辞めたいし、また、マーケティング面でもシステムを丸ごと提供できた方が利幅が大きくなるので、中期、長期的には、HPC分野にもARM-CPUとGPGPU製品を組み合わせた製品の投入も検討していると言うことのようだ。
フアン氏「その際には64ビット対応化も行わなくては(笑)」
ARM-CPUはライセンスを交わせば、これをどう拡張しても良いことになっているため、フアン氏のこの発言はその意味でとても興味深い。