エヌビディアは11月7日、「NVIDIA仮想GPUソリューション(NVIDIA GRID)」の最新動向を紹介する記者説明会を開催。同社 エンタプライズ事業部 ビジュアライゼーション部 部長の田上英昭氏が、テクノロジーと製品構成、VDI環境での活用について解説した。
NVIDIA GRIDは、「NVIDIA GRID vGPUマネージャ」という独自ソフトウェア(以下、GRIDソフト)を使って1台のGPUリソースをハイパーバイザー層で分割(GPU仮想化)し、複数の仮想デスクトップ(VDI)や仮想マシン(VM)に割り当てる仕組み。3D CADやCGコンテンツ制作などのグラフィックスアプリケーション、深層学習やシミュレーション計算などのワークロードに使えるGPU搭載マシン環境が、物理GPUをパススルー方式で仮想インスタンスに直付けするのと比較して高集約に構築できる。
仮想GPUをVDIで利用するシーンについて、田上氏は「GRIDソフトが複数VDIへのGPUリソース配分をコントロールする。また、画面圧縮処理をCPUからGPUに搭載されたハードウェアエンコーダー(NVENC)にオフロードする独自の画面転送技術により、高密度なVDI環境であっても高速に画面転送ができる」と説明した。
Maxwell世代、Pascal世代のGPU仮想化に対応
NVIDIA GRIDのGPU仮想化テクノロジー自体は、2013年からKeplerベースのK1/K2で提供してきた。現在は、Maxwell世代のM6/M10/M60、Pascal世代のP6/P4/P40/P100の仮想化が可能だ。
M10とM60はグラフィックス処理用のGPUであり、M10は高集約向け(メモリーサイズ32 GB GDDR5、最大仮想GPUインスタンス数64)、M60はハイパフォーマンス向け(メモリーサイズ16 GB GDDR5、最大仮想GPUインスタンス数32)。
P40は深層学習の計算に特化したGPU(メモリーサイズ24GB GDDR5)、P100はマルチワークロード向けで深層学習、HPC、グラフィック処理などに活用できるGPUだ(メモリーサイズ16GB GDDR5)。VDIやVMインスタンスへのGPUメモリー割り当て単位は1GBからになり、最大仮想GPUインスタンス数はP40で24、P100で16になる。
現在、NVIDIA GRIDがサポートするハイパーバイザーは、Citrix XenDesktopのXenServer、VMware vSphereのESXi、Neutanixのハイパーコンバージドインフラに搭載されたものの3種類。2017年中に、LinuxのKVMにも対応する予定だ。仮想GPUのリソースを割り当てるVDIのデスクトップツールとしては、VMware HorizonとCitrix XenDesktopの2つをサポートする。
また、Kepler世代のK1/K2まではGRIDソフトは無償だったが、Maxwell世代以降は有償化し、商用サポートをつけて提供している。GRIDソフトの最新版(バージョン5.0)では、用途に応じて3つのエディション「NVIDIA GRID 仮想アプリケーション」、「NVIDIA GRID 仮想PC」、「NVIDIA GRID Quadro仮想データセンター」を用意している。「仮想PCはWindows 10のVDIなどライトな使い方向け、Quadro仮想データセンターは3D CADなどをハードに使うユーザー向け」(田上氏)とのこと。
バージョン5.0で初めてPascal世代のGPUをサポートした。同時に、このバージョンから仮想GPUでCUDAやOpenCLを使うワークロードが扱えるようになっており、NVIDIA GRIDで深層学習のための仮想ワークステーションや仮想PCの構築が可能になった。
Windows 10はグラフィックリソースの消費量が多い
今回の説明会では、特にグラフィックリソースを大量消費するWindows 10のVDI環境構築にフォーカスして、NVIDIA GRIDによる仮想GPU活用のメリットが紹介された。
Windows 10は、画面上でウィンドウの視覚効果を高める「Windows Aero」機能が無効化できず、(Aeroが無効化できた)Windows 7と比べてグラフィックリソースの使用が32%増加している。また、企業ではSkypeなど端末のカメラ機能を使うアプリケーションの利用が増え、PowerPointやExcelといったOfficeアプリも視覚効果を高める機能が追加されていることに伴い、アプリケーションが消費するグラフィックリソースも2012年頃と比較して2倍に増加しているという。
田上氏は、仮想GPUのリソースを割り当ててグラフィック機能を強化したVDI環境でWindows 10を使えば、従業員の日常業務の生産性が向上すると説明。大量の従業員PCからライトにグラフィック処理用GPUを使いたいケースでは、最大仮想GPUインスタンス数が多くVDIを高集約できるM10が最適だと述べた。「VDIであれば、シンクライアントのような非力な端末からでもネットワーク経由でGPU搭載のWindows 10デスクトップ環境が利用できる」(田上氏)。
KVMサポートでOpenStackでのGPU仮想化が可能に
余談だが、AWSやMicrosoft Azure、GCPなどのパブリッククラウドから提供されているNVIDIA GPU搭載インスタンスは、すべてVMと物理GPUをパススルーでつないでおりGPUは仮想化されていない。前述のように、GPUの仮想化はハイパーバイザー層にソフトウェアをインストールして実現するものなので、今後もパブリッククラウド上で仮想GPUが使われることはないとみられる。
パブリッククラウドで使うVDIサービスでも同様だ。例えばAzureではXenDesktopベースのVDIサービス「XenDesktop Essentials」を提供しているが、これはVDI環境をAzureのVMインスタンスに展開して利用するものなので、GPUインスタンス上に展開してもVDIから使えるのは物理GPUになる。
一方で、NVIDIA GRIDがKVMをサポートすると、OpenStack上でGPUの仮想化が可能になる。OpenStackのプライベートクラウドを基盤に、仮想GPUを使うVDI環境の構築が進みそうだ。