いまやGPUチップを提供する半導体ベンダではなく、AIコンピューティングカンパニーへと変貌を遂げつつあるNVIDIA。ディープラーニング分野での存在感が日々、増しつつある同社だが、実はデータセンターのサーバに搭載されるGPUにも注力している。

ここまで聞くと、データセンター向けのディープラーニング、というイメージを受けるが、そうではない。「NVIDIA仮想GPUソリューション」と呼ばれるリモートグラフィックス機能を提供するソリューションビジネスだ。同社内でもNVIDIA GRIDやvGPUなどと称される同事業、基本的な機能は、サーバ側のGPUを仮想化して多数のグラフィックユーザをサポートするというもので、いわゆるVDI(Virtual Desktop Infrastructure:デスクトップ仮想化ソリューション)にGPUのパフォーマンスを提供するもの、となる。

なぜVDIにGPUが必要なのか。通常のVDIの構成は、サーバ上のハイパーバイザを用いて仮想マシンを複数同時に走らせる、という形だが、基本的にすべての処理がCPUの性能に頼ることになる。そうなると、負荷の高いCAEや3D CAD、動画再生などに代表されるグラフィックを活用したアプリケーションを利用すると、CPUの利用率が高い状態が続き、作業に支障がでることとなる。グラフィックスの処理であれば、餅は餅屋ということでGPUに任せれば、CPUの負荷率を下げることができる、というのがNVIDIA GRIDである。

その仕組みは、サーバ上にGPUを設置するのはもちろんだが、ハイバーバイザにvGPUの管理を行う「NVIDIA GRID vGPUマネージャ」を搭載。これにより、各仮想マシンの上でGPUを活用させることを可能とする。ちなみに、このマネージャだが、GRIDの提供当初は無償でダウンロードが可能であった。しかし、VDIはNVIDIA1社のみで構築できるものではなく、サーバベンダやハイパーバイザのベンダ(VMwareやSitrixなど)、アプリケーションベンダなどと密接に連携して構築する必要があり、GRIDに関してはNVIDIAが責任を持ってサポート、メンテナンスなどを行っていく、という意思の表明も含め、現在は有償での提供となっている。

左が従来のVDIの構成イメージ。右がvGPUを活用したVDIの構成イメージ。サーバにGPUを搭載し、それをNVIDIA GRID vGPUマネージャが各仮想マシンへのGPUの振り分け管理などを行っている

リモートでは、画像をH.264を用いて転送しているが、従来の画像転送では、GPUのフレームバッファ内で生成されたデータを一度システムメモリへと移し、CPUでエンコードをしてネットワークに送っていた。しかし、これではCPUの負荷が減らない、ということで、vGPUでは、GPU内に搭載されているエンコーダ「NVENC」で一連の処理を可能とし、ダイレクトにネットワークに転送させることで、CPUの負荷低減を実現しているほか、レスポンスやパフォーマンスの向上なども実現したとする

ちなみに同社が2017年夏に行ったメジャーアップデートでリリースされた最新バージョン「GRID 5.0」では、GRIDを活用するためのソフトウェア(NVIDIA GRID ソフトウェア)として3つのエディションにリブランドされた。1つ目が、アプリを配信する「NVIDIA GRID仮想アプリケーション」、2つ目がWindows 10 VDIの活用などに向けた「NVIDIA GRID 仮想PC」、そして3D CADやCAM、CAEといったプロフェッショナルアプリの活用に向けた「NVIDIA Quadro仮想データセンターワークステーション」が3つ目となる。1つだけGRIDではなく、Quadroの名前が冠してあるのは、いろいろな機能が搭載されており、事細かなニーズに対応が可能であることから、GRIDとは異なる名称にしたとのことである。

NVIDIAの仮想GPUソリューションの概要と3つのソフトウェアエディション。GPUそのもののほかにGRIDソフトウェア、サポート、アップデート&メンテナンスといった部分もNVIDIAが責任を持って提供するソリューションとなっている

また、Windows 10 VDIへのサポートと聞くと、従来のVDIでも大丈夫ではないか、という気もしないではないが、実はWindows 10、それまでのWindows 7などと異なり、512MB以上のグラフィックスメモリが必要であり、CPUだけで大人数で操作しようと思うと、レスポンスが落ちたり、といったことが生じる場合がある。そのためにVDI化の際にGPUリソースを用意しておけば、そうした問題が防げるため、こうしたエディションが別個に用意されたという。

GRIDではなく、ワークステーションを用いたGPUの有無による仮想マシンデモ。画像が小さいため、見づらいが同じ動画を流した状態でもCPU負荷に差が出ていることが見てとれる

GRID 5.0の特長は以下の6つ

  • NVIDIA GRIDのリブランディング
  • Pascal世代のGPUのサポート
  • CUDA/OpenCLのサポート
  • モニタリング機能の強化
  • ライセンスサーバの機能強化
  • vGPUスケジューリングポリシーの強化

この中でも注目すべきなのがPascal世代のサポートとCUDA/OpenCLのサポートだろう。これで何が起こるのかというと、GIRDを経由したリモートでもディープラーニングの開発といったことが可能になる。そのため、同社でもGRIDの適用領域が、従来のVDIの延長線上であるビジュアルワークプレイスやモビリティ、コラボレーションというところから、HPC、VR、そしてフォトリアリズムやAIといった従来、GPUがローカルのコンピュータで活用されてきた分野すべてにまで広げることを目指しており、「従来、GPUコンピューティングをやりたい、という話になったとき、GPUカードやワークステーションを買ってくる必要があったが、仮想マシンで同様のことができるようになる」とその威力を説明している。

NVIDIA GPUのロードマップとMaxwell世代ならびにPascal世代の仮想化対応GPU製品の概要。P6はブレードサーバ用のメザニンカード

vGPUを活用することでディープラーニングやCAEのソルバ計算などを自由に行うことも可能となる。また、使用できるGPUのコア数は空いていれば自動的にその分だけ利用できるので、夜中、従業員が帰宅した後は、多くのGPUコアを重い処理に割り当てる、といったことが可能となる

なお、GRIDソフトウェアのライセンス料は、年間サブスクリプションと、永久ライセンス+SUMS(サポート更新保守契約)の2パターンが各エディションごとに標準価格が設定されている。また、すでに同社は最新世代GPUとして「Volta」をアナウンスしているが、こちらについては、まだ仮想化に関する確認を終えていないようで、同社内でも情報がほとんどでてきていないとのことであった。

GRIDソフトウェアのライセンス形態

手前がMaxwell世代のM60、後ろがPascal世代のP100。前面だけ見ると、ほぼ違いがわからない