GTC Japan 2014において、同社のGRID関係のシニアソリューションアーキテクトのJeremy Main氏が、GPUの仮想化に関する一連の説明セッションを行った。

IntelのCore CPUやスマホ用のCPUもGPUを内蔵するようになり、高性能のディスクリートGPUのユーザは、常に最高性能を求めるコアゲーマーと、CADを駆使する設計者などに限られてきている。これに対してNVIDIAは、GPUを仮想化して新たな市場を作ろうとしている。

クラウドコンピューティングでは、データセンターに設置されたサーバを仮想化して、リモートからアクセスするユーザにコンピューティングサービスを提供する。これをさらに進めて、データセンターに置いたGPUを仮想化して、描画処理などもデータセンターでやらせてしまおうというものである。

一方、ユーザの方から見ると、CADを使うデザイナーはGPUが必須。パワーユーザもTEAMCENTERなどを使う場合はGPUは必須で、オフィスアプリでもGPUがあった方が良い。一般のナレッジワーカーもFacebookやHTML5を使う場合はGPUが欲しいという状況である。

デザイナーはCADを動かすためにはGPUは必須。パワーユーザはオフィスアプリにはGPUがあった方が良い程度であるが、TEAMCENTERなどを動かす場合は必須。通常のナレッジワーカーでも、FacebookやHTML5の処理にはGPUが欲しい。 (出典:この記事の図はすべて、Jeremy Main氏のGTC Japanにおける発表スライドの抜粋である)

これに対して、タブレットなどの端末に強力なGPUを入れることは、消費電力の点からも難しい。GPUをデータセンター側に置くことができれば、比較的簡単で、グラフィック能力の低いデバイスでもGPUを必要とするような処理ができるわけである。

次の図のように、CPUとGPUをNVIDIAのvGPUを使って仮想化して、クラウド経由でバーチャルデスクトップと接続する。

左下のCPUとGPUをNVIDIA vGPUで仮想化して、クラウド経由でバーチャルデスクトップと接続する

そうすると、リモートのデバイスにGPUが無くてもAutoDeskやSolidWorksなどのCADを動かすことができ、TEAMCENTERやHTML5なども楽に動かすことができる。3月に行われた米国でのGTCでは、車のディーラーで、車の3D CAD画像をタブレットなどで表示し、お客に対して、色やオプションを替えたり、色々な角度からみることができるというデモを行っていたが、実車の在庫を減らすことができ、効率的という。

また、静止画では分からないが、仮想化したGPUを使った方の画面は滑らかに動くのに対して、CPUオンリーの表示ではカクカクした動きで、GPUのメリットは一目瞭然である。

この静止画では分からないが、一方はGPU付き、一方はGPUなしのサービスで、GPU付きの方は滑らかに動くのに対して、GPUなしの場合は、カクカクという動きであった

なお、NVIDIAはバーチャルデスクトップを試しに使って見られるテストドライブを提供しており、http://www.nvidia.co.jp/object/trygrid-jp.htmからサインアップすると、トライアル期間は無料で仮想GPUを使ってみることができる。

GPU必須のデザイナーは25M、パワーユーザは200M、ナレッジワーカーは400M人であるが、これらのグラフィックを必要とする必要とする人たちは仮想デスクトップの恩恵を受けていないという。

GPU必須のデザイナーは25M、パワーユーザは200M、ナレッジワーカーは400Mいるが、現在、 Gridはこれらの人々をカバーしていない

NVIDIAは、GPUの仮想化用に2種類の製品を出している。

NVIDIAはGRIF K1とGRID K2という2つの製品を出している

「NVIDIA GRID K1」は192CUDAコアのGPUを4個搭載したボードで、最大32ユーザに同時に比較的性能の低いGPUを提供できる。そして、「GRID K2」は1536CUDAコアのハイエンドGPUを2個搭載したボードで、最大16ユーザに高性能のGPU機能を提供できるという製品である。

VMwareを使ってGPUを仮想化するやり方は2通りある。vDGAという使い方は、ハイパーバイザをバイパスして、通常のGPUドライバでGPUを動かす。

vGDAという使い方は、ハイパーバイザをバイパスしてドライバが直接GPUを操作する

vDGAの場合は1台のGPUで1つのVMしかサポートできず、1つのユーザがGPUを占有することになる。しかし、この場合は、通常のNVIDIAのドライバが使用でき、DirectXでは9、10、11が使用でき、OpenGLも4.3がサポートされている。

sVGAでは、ハイパーバイザにNVIDIA.VIBというドライバを入れて、GPUを仮想化する

一方、vSGAはNVIDIA.VIBというハイパーバイザ用のドライバを使うので、1つのGPUで複数のユーザをサポートすることができるが、サポートレベルが通常のNVIDIAドライバより劣り、DirectX 9まで、OpenGLは2.1のサポートに留まっている。

ただし、NVIDIAはvDGAと同じサポートレベルで1台のGPUをマルチユーザでシェアできるvGPUを開発しており、近く提供できる予定であるという。

仮想化で1台のGPUを何人ものユーザが共用するとは言え、多くのデータセンターのサーバにGPUボードが付くことになれば、NVIDIAにとっては大きな新しいマーケットが生まれることになる。

3D画像、それもゲーム画面のような動く画面がクラウド経由で送れるのかというのが気になる点であるが、NVIDIAのGRID K1、K2は、通常なら画面に表示するデータをH.264の動画圧縮を行って出力する機能を持っている。それも機能がGPUボードに組み込まれているので、レーテンシを短縮することができる。

また、H.264は画面が急に変化するような場合は画面が粗くなるが、そのあとで動きが収まれば修復して綺麗な絵にしてくれるので、通信速度の影響が比較的見えない。ということで、NVIDIA GRIDで3Dゲームを提供する会社もある。

仮想デスクトップというやり方は以前からあるが、リモートでの表示は文字と簡単な図形程度というものが多い。しかし、NVIDIAのGRIDでは、描画された絵を圧縮して伝送することにより、3Dゲームの画面や、CADで描かれた3Dの図などもリモートでの表示ができるようになっており、適応範囲が広がっている。

仮想デスクトップは、H.264デコーダなどがあればよく、多種のデバイスに容易に対応できるし、データセンターの外に送られるのは画面データだけで、重要なデータをPCなどに入れて持ち出すというリスクも避けられるというメリットがある。また、センター側ではアプリの集中管理、保守ができるというメリットも大きい。

しかし、デバイス用のCPUもあるレベルのGPU機能を内蔵するという状況は続くと思われ、やはり、仮想GPUは、ハイエンドのデザイナー向けなどの分野から浸透していくことになるのではないかと思われる。