GPUコンピューティングのNVIDIA、OpenStackでの利用拡大を狙う
NVIDIAのGPUは、単なるPCゲーム用のグラフィックス専用プロセッサーから、より汎用のコンピュート資源として使われるようになっている。例えば、東工大が手がけているスーパーコンピューターTSUBAME 3.0は、トップクラスの性能と低消費電力の両立を実現している。その中で重要なパーツとして演算を行っているのがNVIDIAのGPUだ。しかし一般の企業が求めるサーバー側の演算処理に関して言えば、まだユースケースが限られており、例えば仮想デスクトップにおけるGPU利用などに留まっていた。しかしエンタープライズにおけるサーバーは、すでにプライベートクラウドを活用するステージに入っており、仮想マシン、マルチコアCPUの有効活用というニーズに対しては回答がなかったというのが現状だろう。
このような現状のもと、先日開催された「OpenStack Days Tokyo 2017」で発表された講演に、「GPGPUをOpenStackから利用する」というユースケースが出てきた。これはNVIDIAの協力でPoC(Proof of Concept、概念実証)として検証されたもので、GPUをOpenStackからパススルーして仮想マシンに割り当てるというものであった。今回はNVIDIAの担当者、エンタープライズ事業部ビジュアライゼーション部部長の田上英昭氏、エンタープライズマーケティング シニアマネージャーの佐々木邦暢氏両名にインタビューを行い、サーバーサイドでのGPUの可能性、OpenStackとの連携などについて話を訊いた。
自己紹介をお願いします、
田上:私はNVIDIAでビジュアライゼーション、主にデスクトップの仮想化の製品を統括しています。いわゆるGPUを積んでいないPCにサーバー上のGPUのリソースを割り当ててCADなどを実現するのが仮想デスクトップですが、VMwareのESXiやXen Serverと組み合わせて使うことで、GPUを効率良く使うことができます。
佐々木:田上がGRIDの担当で私のほうはHPC、つまりHigh Performance Computingのマーケティング担当ということになります。簡単に言うと、映像出力端子を持たないGPUを使ったサーバー側でのコンピューティングを支援するということになります。なので、GPUのインスタンスを提供しているパブリッククラウド事業者さんと仕事をすることも多いですね。
GPUと言うと東工大の松岡教授が開発しているTSUBAMEがGPUを効率良く使っていることで有名ですが。
田上:そうですね。消費電力あたりの処理能力を競うGreen500というスパコンのランキングがありますが、最新のデータでは上位10位のうち8つの団体がNVIDIAのGPUを使っていますので、すでにスパコンの世界ではGPUをグラフィックスではなく効率の良い計算機として使うのが一般的になってきていると思います。並列コンピューティングの領域では、NVIDIAはトップを走っていると言えますね。
佐々木:NVIDIAのGPUは消費電力が高いと言われることも多いです。確かに1台で300Wくらい消費しますけど、処理能力を考慮すれば充分に省電力と言えます。
OpenStackからGPUを使うという話が先日のOpenStack Days Tokyo 2017でもセッションがありましたが、もう少し詳しく説明してください。
田上:あのソリューションはNVIDIAと仮想技術株式会社、それにDell EMCの協力を得て検証を行ったもので、要はOpenStackのクラスターにGPUを入れて、そのハードウェアをOpenStack上の仮想マシンから使うということを実証したものなのです。ただ、これは複数の仮想マシンでGPUをシェアして使うというものではなく、一つの仮想マシンがハイパーバイザーの制御をパスして、特定のサーバーのハードウェアであるGPUを専有することを可能にしたというソリューションです。
佐々木:ディープラーニングのアプリケーションを高速に実行したいというニーズに対して、GPUというのは非常に効果的です。ディープラーニングのような繰り返しの多い処理は、GPUで処理するには最適なのです。そこで、それを実行する際に特定の仮想マシンからGPUを専有することで高速な処理が可能になる。しかもクラウドの基盤としてOpenStackが使える。そういうことを実証したわけです。
サーバー上のCPUのコアを複数の仮想マシンが分け合って効率良く使うという発想ではなくて、一つの仮想マシンにGPUを専有させるということですか?
田上:そうです。実際に想定される使い方は、GPUであっても複数のアプリケーションから効率良く使えるのがベストですよね? ただ現状では、OpenStackで多く使われているハイパーバイザーのKVMではそれができません。VMwareのESXiとXen ServerではvGPUは可能なのですが。もうすぐリリース予定のGRID 5.0という最新バージョンが出れば、その次に予定されているマイナーバージョンアップで、ドライバーがKVMにも対応する予定です。
つまり今のパススルーの技術を使うとOpenStackの仮想マシンからGPUを使うことはできても、複数のプロセスでコアを分け合うことはできません。これでは高価なGPUをサーバーに入れて機械学習をさせようと思ってもクラウド的にうまく活用できない。
佐々木:実際にGPUを使えばディープラーニングは相当高速になりますから、これまで時間を要していた学習の部分が短時間で終わって、色々なモデルで試行錯誤ができるようになります。なのでGPUをうまく使い回すというためには、この最新のドライバーで対応するということが必須ですね。
開発者目線で言うと、例えばディープラーニングをやりたいと思った時にNVIDIAのGPUを使おうとすると、やはりCUDAを利用することになるのですか?
佐々木:ディープラーニングをやる場合には、既存のディープラーニングのフレームワークを使うことになると思いますが、その場合には直接CUDAを使う必要はないですね。CaffeであれChainerであれ、ディープラーニングのフレームワーク自体がCUDAを使って開発されているので、開発者はCUDAを意識してなにかをする必要はないです。ですから、コンテナの上でフレームワークを使って開発されたアプリケーションはそのまま動きますし、OpenStackの上でも動きます。ただ問題はCPUの仮想化と同じようにGPUを仮想化できない、つまり一つのアプリケーションがGPUを専有してしまうことです。そのアプリケーションにとってみれば、GPUを専有できるので高速処理という恩恵を享受できますが、その他のアプリケーションは待たされてしまいます。そこで、「KVMをハイパーバイザーとして使う場合にも仮想化を可能にしよう」というのが、先ほどの最新のドライバーの対応と言う話です。
田上:エンタープライズにとってみると高価なGPUを一つのアプリケーションで専有するのではなく、昼間は仮想GPUを使って複数の研究者がディープラーニングを検証する、夜間になったら本番の大きなデータで学習をさせて推論させるというような柔軟な使い方ができるようになります。その先には、NVIDIAのビジョンとしてユニバーサルGPUというものがありまして、グラフィックス用のGPUもAIのためのGPUも一つのアーキテクチャーで実現できるようになる予定です。そうなれば、これはグラフィックス用のGPU、これはディープラーニング用のGPUというのではなく、一つのGPUで全てのワークロードが実行できるようになります。
そうすると製造するGPUの種類も少なくなり、歩留まりも良くなって価格も下がるし良いことですね。ところでNVIDIAの競合はどこになりますか?
田上:インテルもAMDも競合といえば競合ですが、並列コンピューティングという部分ではいないですね。
佐々木:実際にもしもNVIDIAのGPUと同じような性能を出せるハードウェアが登場しても、NVIDIAはすでに10年以上GPUを最適に使うためのライブラリーであるCUDAを開発者に提供してサポートしています。コミュニティができ上がっていると思うんですね。ですから、その部分をすぐに埋めることは難しいと思います。
最後にNVIDIAにとってのチャレンジとはなんですか?
田上:すでにホンダさんといった大手企業さんに使っていただいていますが、まだGPUを使っていない企業の皆様にもGPUを使っていただきたいと考えていまして、そのためにはキャリア系のクラウド事業者さんにも、もっとGPUのインスタンスを用意していただければと考えています。そうなれば、試しに使ってみようというユーザーさんも出てくると思います。そうすると、クラウド基盤であるOpenStack上で使えることの意味も出てくると思います。その際の使い方はVDIかもしれないし、ディープラーニングかもしれない。柔軟に使い分けができるようになると、さらに利用が拡がると思います。
佐々木:OpenStackの上でGPUがもっと柔軟に使えるようになると、利用が拡がるだけではなくそれを開発する技術者が足らなくなると思うんですよね。従来の開発からディープラーニングの開発に移行する人も出てくると思います。そのためにCUDAだけではなくディープラーニングインスティテュートというハンズオンのトレーニングをやっていますので、それをもっと拡げていきたいと思っています。
チップメーカーであるNVIDIAが、ソフトウェアを中心とした開発者のためのコミュニティ作りが次のステップだと言う。社員の80%がエンジニアでその半分以上がソフトウェアに携わっているというNVIDIAは、ハードウェアメーカーからソフトウェアでドライブする会社になれるのか? 引き続き注目したいと思う。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- GPUコンピューティングの歴史とCUDAの誕生
- GPUとOpenStackのホットな関係が紹介された日本仮想化技術(株)の技術セミナー
- 複合並列コンピューティングの必要性とFermiの登場
- CUDAとGPUコンピューティングの広がり
- インテルがAIにフォーカスしたイベント「インテルAI Day」でPreferred Networksとの協業を発表
- エルザジャパン、NVIDIA TEGRA 3を搭載したGPUコンピューティング開発キットの取り扱いを開始
- シトリックス、「Citrix XenServer 6.5」の提供開始
- “もはやSFではない” すべての産業界にAIコンピューティングを―NVIDIA GTC Japan 2016レポート
- One Cloud、Any Applicationの実現(後編)
- ディープラーニングでビジネスする企業の事例が大集合 ーDeep Learning Labイベント