GPUの仮想化がVDIを変える
先日、GPUベンダーのNVIDIAが米国・サンノゼで開催した「GPU Technology Conference 2012」(以下GTC2012)では、ゲームなどのグラフィック関連だけでなく、ここ数年注目されている、GPUを使って演算を高速化するHPCなどに関するセミナーが行われた。
今回、クラウド関連で注目するのは、GPUの仮想化のサポートだ。これにより、VDI環境においても、GPUを利用したアプリケーションを使用したり、レスポンスのいい画面表示を行ったりできる。リモート環境においても、デスクの上にあるPCと同じ使い勝手を実現する。
GTC2012では、100台のターミナルが、VGXプラットフォーム上の仮想マシンにアクセスするデモが行われた。画面が小さいが、個々の画面では、GPUを使ったソフトが動作している |
■VDI環境を変えるNVIDIA VGXプラットフォーム
NVIDIAがGTC2012で提案したVGXテクノロジーは、サーバー側に搭載したGPUをハイパーバイザーで仮想化して、仮想マシン上のOSから利用できるようにするテクノロジーだ。
ハードウェアとしては、VGXボードといわれるマルチGPUカード(GPUを4つ搭載)が使用される。
VGXボードには、Kepler世代のノートPC向けGPUが採用されている。ただ、現状でリリースされているノートPC向けのGPUではなく、CUDAコア数が192個の次世代版のGPUが採用されている(ノートPC用のGK107を使用)。さらに、1GPUあたり4GBのメモリを搭載し、VGXボード全体では16GBメモリをサポートしている。
ソフトウェアとしては、NVIDIAが提供するVGX GPUハイパーバイザー、GPUを利用する仮想マシンにインストールするUser Selectable Machines(USM)が必要になる。
VGX GPUハイパーバイザーは、GPUの仮想化に関するハイパーバイザーとなる。このため、VMwareのvSphere、CitrixのXenServer、MicrosoftのHyper-Vなどに組み込まれた形になる。
VGXプラットフォームは、VGXボード、ハイパーバイザー、USM(User Selectable Machines)などで構成される | VGXプラットフォームでは、Knowledge WorkerやPower Userなどを対象にVDI環境を提供する |
現在、最もインプリメント作業が進んでいるのが、CitrixのXenServerになる。実際、米国で開催したGTC 2012の基調講演にCitrixの副社長、スミット・ダーワン氏が登場したほどだ。
USMは、ざっくりいってしまえば、仮想マシン上にインストールする仮想GPUドライバーだ。ただ、一般のグラフィックドライバと異なるのは、プロファイルにより、仮想マシンが使用するCUDAユニットの数をコントロール可能になっている点だ。
つまり1つのサーバー上に、Quadro並のパフォーマンスを持つGPUをサポートした仮想マシン、標準的なパフォーマンスのGPUを持つ仮想マシンなどを混在させ、システム管理者の設定によって仮想マシンのグラフィック性能を変更することが可能になっている。
NVIDIAのテクニカルマーケティング エンジニアのスティーブン・ザン氏によれば、720P(1280×720ドット)/30フレームの解像度であれば、256ユーザーまでサポートできると解説していた。また、フルHD(1920×1080ドット)/30フレームに関しては、現状のVGXボードでは正式サポートはしていないが、動作はすると語っている(ただし、フルHDの解像度で何人ぐらいのユーザーがサポートできるかについては未定)。
実際、GTC2012の基調講演では、1台のサーバーで100台のクライアントを接続して動作させるデモも行われた。
企業ユーザーにとっては、サーバー側でGPUがサポートされるというのは、あまりぴんと来ないかもしれない。しかし、VDI環境においては、ユーザーの使い勝手を大きく左右する。
現状のVDIでは、ソフトウェアGPUによってグラフィック処理が行われている。このため、高い解像度と色数を実現するために、サーバー側のCPUに負担がかかる。また、グラフィックをソフトウェアで処理するため、VDIで3Dゲームなどを動かすことはできなかった。
しかし、仮想化されたGPUを仮想マシンが利用するVGXプラットフォームを使えば、グラフィック処理をGPUというハードウェアに任すことができる。
このような仕組みを用いれば、VDI上でゲームソフトウェアを動かすことが可能になる。さらに、ノートPCだけでなく、タブレットやスマートフォン、スマートテレビなどのあまり性能の高くないデバイスからでも、VDI環境が利用できる。
企業においては、VDIでゲームが快適に動作するといっても、あまりメリットを感じないだろう。しかし最近のOSでは、ゲームと同じように、GPUを積極的に利用している。例えばWindows7では、DirectX9が必須となっている。また、IE9などのWebブラウザでは、グラフィック表示だけでなくテキスト表示にもGPUが積極的に利用されている。パワーポイントのエフェクトにもGPUが使われている。
このようにGPUを積極的に利用するOS環境やアプリケーションをVDI環境で利用した場合、ソフトウェアGPUではグラフィック表示が遅いため、Webブラウザで画面を上下させるだけで、ブラウザの画面がいったん白く表示される。しかし、VGXプラットフォームでは、このようなことはなく、VDI環境なのに、ローカルのPCを使っているのとほとんど変わらないレスポンスで利用できる。
VGXプラットフォームでは、720P/30フレームのグラフィック表示を実現するため、画像をH.264圧縮して、送信している。VGXボードに採用されているGPUには、H.264圧縮を行うためのハードウェア(NVENC)が用意されているため、CPUに負荷をかけずに高い画像圧縮を行うことが可能だ。
また、VGXボードのNVENCで圧縮した画像は、CPUを経由せずに、直接PCI Expressに接続されているネットワークカードに送信される。CPUができるだけ介在しないようにできているため、1つのサーバーで多数の仮想マシンがサポートできる。
ただ気になるのは、画像圧縮がH.264だけに限られていることだ。CitrixのXenDesktop、VMwareのViewなどでは、デスクトップ画面の圧縮のために、独自の圧縮手法とプロトコルを使用している。VGXプラットフォームでは、プロトコルに関しては各社独自のモノが使用できるが、デスクトップ画面の圧縮はH.264を利用するしかなくなる。もちろん、NVENCを使わずに、各社独自のデスクトップ画面の圧縮を利用したい場合は、CPU側で処理をする必要がある。こうなると、ある程度サーバー側の負荷が高まることになる。
VGXプラットフォームは、多くのハイパーバイザーベンダー、サーバーベンダーが賛同しているため、今年の後半にはVGXプラットフォームを採用したクラウドが出てくるだろう |
■GeForce GRIDでゲームのクラウド化も
VGXプラットフォームと同じシステムを利用し、コンシューマにフォーカスを当てたのがGeForce GRIDだ。GeForce GRIDは、クラウドの仮想マシンで動作しているゲームをリモート環境でプレイできるようにしたモノだ。
このようなクラウド ゲーミングは、いくつかのクラウドベンダーで提供されているが、3Dゲームをプレイするには、画面圧縮に時間がかかったり、リモート端末へのデータ転送にレイテンシーがかかったりする。動きの激しい3Dゲームなどは、ゲームパッドの操作と画面表示にずれが存在するため、違和感が高かった。
しかし、GeForce GRIDでは、VGXプラットフォームと同じ仕組みを利用することで、720P/30フレームの画面転送が可能になる。ここまでくれば、リモートでゲームをプレイしても、家庭のテレビにゲーム機を接続して遊んでいるのと同じパフォーマンスでプレイできる。
実際、NVIDIAの日本オフィスに行ってデモしてもらった印象からいえば、リアルタイムの3Dゲームが十分にプレイできる性能だった。このデモは、米国のGAIKAIというクラウド ゲーミング プラットフォームを日本からアクセスしたものだ。このため、ネットワークのレイテンシは高いが、日本国内のネットワーク回線が十分に速いため、十分にゲームとしてプレイできる性能だった。
■Keplerは、もう一段進化する
なおNVIDIAでは、現在リリースしているKepler世代(GK104、GK107)をもう一段機能アップする予定だ。年末までにGK110(Kepler2ともいわれている)という新しいGPUをリリースする。
GK110は、CUDAユニットの大まかな構造などは、GK104/GK107と変わらない。しかし、GK110では、64個の倍精度演算ユニットが追加されている。
さらにGK110では、Hyper-Q、Dynamic Parallelismの2つの機能が追加されている。
以前のGPUでは、MPI(Message Passing Interface)処理は1つずつしか実行できなかった。しかし、Hyper-Q機能により、32のMPI処理を同時に行えるようになった。これにより、CPUから複数のデータを引き渡され、同時並列的にGPU側の処理が行えるようになる。
また、Dynamic Parallelismは、CPUを介すこと無くGPU内部で自動的にスレッドを生成する機能だ。大ざっぱに言ってしまえば、GPU内部で動的にカーネルを立ち上げることが可能になる。これにより、いちいちCPUに処理を戻して、カーネルを立ち上げなおすことがなくなるため、システム全体でパフォーマンスの最適化が行えるようになった。
日本の企業においても、個人が持つデバイスが複数化しており、スマートフォン、タブレット、ノートPCなど、さまざまなデバイスを利用するようになってきている。このため、企業においては、個々のデバイスにアプリを入れて利用するよりも、VDIなどの仮想デスクトップ環境を用意して、そこに各デバイスでアクセスすることが使いやすくなる。もちろん、仮想デスクトップ機能により、個々のデバイスにデータが偏在しないため、一元的にデータが管理できる。また、デバイスを紛失しても、企業にとって重要なデータは入っていないため、セキュリティ面でも問題にはならない。
東日本大震災の時のように、会社に出社しなくても、ネットワークさえ通じていれば、会社と同じ仕事環境が家庭に作れるテレワーク環境は、BCP(Business Continuity Plan)という面でも重要視されてくるだろう。今後、どのような天変地異が起こっても、すぐにテレワークにより仕事が継続していけるのは、企業にとって重要になっていくだろう。
さらに、個人がいろいろなデバイスを持つということは、今までのようにお仕着せで特定のノートPCを配布するのではなく、ユーザーがお気に入りの個人デバイスを企業システム上で利用していくことになる。このようなBYOD(Bring Your Own Device)環境にとっても、VDIはキーポイントになる。
NVIDIAのVGXプラットフォームは、さまざまなデバイス上でも、GPUを利用したVDI環境が使用できるため、ユーザーにとっては仮想デスクトップ環境であっても、ローカルPCと同じような感覚で利用できる。
今後、VDI環境においても、GPUは重要な位置を占めるようになるかもしれない。