
ニュース
NVIDIA,GPU仮想化技術「VGX」の仕組みを明らかに。実機デモも披露し,低遅延ぶりをアピール
![]() |
したがって,4Gamerの守備範囲から外れるところはあるのだが,興味深い技術ではあるので,GPU仮想化技術とは何なのか,あらためて整理してみたいと思う。
VGXカードの第1弾は192 CUDA CoreのGPUを4基搭載
今回は,26日開催予定のイベント「GTC Japan 2012」に合わせて来日しているWill Wade(ウィル・ウェイド)氏がVGXの説明を行った。氏はNVIDIAでVGXのプロダクトラインマネージャーを務めている人物だ。
![]() |
ビジネス分野では数年前から,社員が個々にPCを持つというスタイルに加えて,クラウド上で仮想化されたOSを起動し,最小限の機能だけを持った,シンクライアント(Thin Client)と呼ばれる端末などから仮想デスクトップを利用するというスタイルが定着してきている。スタッフの数だけPCを用意するのに比べて,ハードウェアや管理のコストを削減でき,また,必要に応じて必要なだけOS環境を提供できるというメリットがあるためだ。
ただ,このやり方には,「クラウド上で動作する仮想OSが,GPUの機能や性能をフルには利用できない」という問題があった。これはGPUの仮想化が不完全だったためだが,たとえば「Adobe Photoshop」や「Microsoft PowerPoint」を利用しようとか,ムービーを再生しようとかすると,PCと比べて非常に処理が“重く”なってしまうのだ。これは,GPUの仮想化が不完全であるために生じていた問題だが,それをなんとかしようというのが今回のVGXである。
Wade氏によると,VGXの利用には,ハードウェアとしてのVGXカード「VGX Board」,GPU仮想化を行うソフトウェアである「VGX HyperVisor」(VGXハイパーバイザ),そしてユーザーが利用する個々の仮想マシン環境「User Selectable Machine」(ユーザーセレクタブルマシン,以下 USM)の3つが必要だ。氏はこの3要素をまとめてVGXプラットフォームと位置づけている。
![]() |
![]() |
Wade氏は「NVIDIAは創業間もない頃からGPUの仮想化を検討している」と述べ,その頃取得した特許から図面もスライドで披露していた。Keplerアーキテクチャを採用するGPUが史上初めてハードウェアで仮想化をサポートしたことを受け,VGXカードは当然のことながら,Keplerベースの製品となっている。
VGXカードは4基のGPUを搭載し,合計容量16GBのグラフィックスメモリを組み合わせた専用設計の製品で,Wade氏によると,GPU 1基あたりのCUDA Core数は192基。メモリは128bit接続のDDR3 SDRAMだという。Keplerコアを採用するGeForceは最下位モデルでも384 CUDA Core仕様なので,GeForceのラインナップにはないGPUを搭載しているわけだ。
![]() |
GPU 1基あたりの性能はよくてエントリークラスということになるが,Wade氏は,「第1弾VGXカードは,企業で画像処理ソフトやオフィススイートを使うユーザーを対象にした製品だ」と述べ,むしろGPU性能やメモリバス帯域幅よりも,メモリ容量が性能を左右するという見解を示している。ひょっとすると,16GBという大容量グラフィックスメモリを確保するために,それほど高性能ではないGPUを4基載せてきたという見方のほうが正しいのかもしれない。
今回のVGXカードは,(最大かTDPかは定かでないものの)消費電力は150Wに収まるとのこと。そのため,PCI Express x16拡張スロットを持つ既存のサーバーへ搭載可能だという。
![]() |
![]() |
このVGXカードは,GPU 1基あたり最大25ユーザー,カード全体では最大100ユーザーに仮想GPU環境を提供できるという。GeForce GRIDでは,デュアル「GK104」仕様のカードを用意しながら,GPU 1基あたり4人,カードあたり8人しかサポートできないとされていたので,ずいぶんとキャパシティが違うと思うかもしれないが,Wade氏は「GeForce GRIDでは毎秒30フレームをエンコードしてクライアントへ送信する必要があるのに対し,VGXの想定する用途では画面の書き換えが数秒に1回といった頻度で済む」のが理由だと説明していた。
ほとんどのフレームに動きがあるゲームと,そうではないビジネス向けではエンコードの負荷が大きく違うというわけである。
ちなみに氏は,デザイナーなどを対象としたVGXカードも近々発表の予定と述べている。グラフィックスワークステーションを使うようなデザイナー向けの高性能VGXカードも,今後,登場してくるようだ。
VGXのソフトウェア的な概要
以上はハードウェアの概要だが,ここからはソフトウェア的な部分を紹介してみたい。
下に示したスライドは,VGXの動作原理を示したものだが,VGXでGPUの仮想化を担うのが前述のVGX HyperVisor――ここでは「GPU Hypervisor」と表記されている――だ。VGX HyperVisorは,Kepler世代のGPUに組み込まれたGPU仮想化のためのハードウェアで,「GPU MMU」(MMU:Memory Management Unit)を駆動して仮想GPUを提供する。
一方,仮想マシン上でGPUの管理を行うのがUSMだ。USMは仮想マシン(Virtual Machine)上にある仮想GPUへのアクセスを捉え,GPU側で仮想マシンごとに用意されているチャネル(=「Per-VM Deditcated Channels」)を通じてGPUを駆動させるという仕組みである。
![]() |
仮想マシンは,「H.264でエンコードされたビデオ」として,仮想デスクトップをユーザーの端末に送信する。このような手法は既存の仮想デスクトップ環境でも採用されているが,ここでのポイントは,「H.264エンコードがハードウェアで行われる点だ」(Wade氏)。
下に示したスライドは,Wade氏の示した「従来型の仮想デスクトップとVGXの違い」で,従来は,GPUが描画したフレームバッファのデータをCPU側のメインメモリへ転送し,RGB→YUV変換のうえでCPUがH.264へソフトウェアエンコードを行っていた。それに対しVGXでは,Kepler世代のGPUコアが搭載するハードウェアエンコーダ「NVENC」を用いるため,「フレームバッファをCPU側のメインメモリへ転送する」以降の処理が一切不要になるのである。
![]() |
Wade氏によれば,「マウス操作を行って,それが画面上で反映されるまでの遅延」は,VGXで200ms以内に収められるという。実際に,「XenDesktop」などの仮想化ソリューションを手がける米CitrixとNVIDIAが共同で行ったベンチマークで,ソフトウェアエンコードを伴った従来型の仮想化技術では500msだったものが,VGXでは130mm秒にまで短縮できたと,Wade氏は実数を挙げてアピールしていた。
このテスト環境だとネットワーク自体に120msの遅延があったそうなので,VGXでは圧縮処理に10msしかかかっていないことになる。
前述のとおり,仮想デスクトップはストリーミングビデオとしてクライアントへと送られるため,クライアントはWindowsやLinuxといったOSに限定されない。実際に説明会では,NVIDIA Japanオフィス内に置かれたデータセンター上で動作するVGXシステムを使って,「iPadからWindowsアプリケーション上の3Dモデルデータを動かす」デモが披露されている。下がその直撮りムービーだが,たしかに動作は非常にスムーズだ。
![]() |
ちなみにNVIDIAは,GeForce搭載機でゲームを実行し,それをTegra 3搭載端末からリモートで操作するソリューションを,SplashTopと協力して実現しているが,あれはVGXの技術を用いたものではない。実際問題,「GeForceやQuadroではGPU仮想化のためのハードウェアが有効になっていない」(Wade氏)ため,VGXは利用できないのだそうだ。
4Gamer的にはなんとも残念な話だが,要するにNVIDIAは「GPUの仮想化」という技術を,クラウドやエンタープライズ分野でシェアを獲得するための武器として使っていくつもりということなのだろう。
NVIDIAのVGX製品情報ページ
- この記事のURL: