DEEP-17FG101-i7-VNRVIとNGCがあれば、ディープラーニングが始められる
ーーよろしくお願いします。まず、NVIDIA GPU Cloudとはいったいどのようなものなのでしょうか。
佐々木 邦暢氏(以下、佐々木):NGCは、NVIDIAが最適化したディープラーニング用ソフトウェア、GPU対応コンテナー(ソフトウェアをライブラリなどの依存関係とともにカプセル化したもの)がダウンロードできる、いわばディープラーニングに必要なコンテナー置き場になります。コンテナーの中にはほかにもCUDAランタイムや必須のライブラリー、選択されたフレームワーク(NVCaffeやTenserFlowなど)が含まれており、このコンテナーを使用したいマシンにダウンロードすれば、追加設定なしで簡単にディープラーニングが始められます。
ーーでは、例えばDEEP∞のノートパソコンに、NGCからコンテナーをもってくればディープラーニングを始められるということでしょうか。
佐々木:そのとおりです。
ーーちなみに、NGCがないときって、皆さんどうされていたのでしょうか。
佐々木:昔は、ドライバーをインストールし、必要なライブラリーをインストールし、さらにディープラーニングに必要なソフトウェアをダウンロードするなど、NGCで1度にすませられる工程を順に行なっていました。
ーー大変ですね。
佐々木:そうですね。そうなると、フレームワークを別々に動かそうとしてバージョンがずれたり、コンテナーの中でGPUを使うのに色々設定が必要だったりします。とくにディープラーニングでGPUを使う場合、玄人なら問題なかった部分が、これから始めたい人たちにとって障壁になるんです。また、エンジニアの人たちは環境構築には興味がなく、いかに早くディープラーニングが始められるかを重要としているので、NGCはそういった人たちにも需要があります。
ーーコンテナー化されたソフトウェアは、どういった種類があるのでしょうか。
佐々木:大まかにディープラーニング用とHPC用に分かれています。ディープラーニングのソフトウェアは、有名どころだと「NVCaffe」「Caffe2」「Microsoft Cognitive Toolkit (CNTK)」「MXNet」などです。カタログに登録するために、NVIDIAのエンジニアが動作検証してチューニングしているため、安心して使えます。また、NGCのコンテナーをダウンロードすれば、ソフトウェアの最新のGPUが動くバージョンが手に入るほか、旧バージョンも履歴として残っています。
ーー旧バージョンの履歴を残している理由はなんですか?
佐々木:一般的にはソフトウェアは最新版を利用することがセキュリティ面などからも望ましいといえますが、例えばプロジェクトが終わるまでは同じバージョンを使いたいなど、様々な理由で旧バージョンが必要になるケースを考慮しています。
ーーそのほか、NGCのメリットはありますか?
佐々木:ソフトウェアをコンテナーでパッケージ化して提供しているので、移植性が高い点です。例えば自分のパソコンでいじったコンテナイメージを、すぐに別のパソコンや性能のいいサーバーなどに移植できます。コンテナーにより同じ環境がすぐ構築できるため、場所を選ばなくてすむんです。
ーーディープラーニングはパソコンとNGCがあれば始められるというのはわかりました。ただ、私のように興味があるだけで知識がほとんどない場合、それでもわからないことは多数出てくる気がします。その際にはどうすればよいでしょうか。
佐々木:そうですね、NVIDIAではGPUコンピューティングに対するハンズオントレーニングを実施しています。その中に、ディープラーニングの講座もあるので、そちらに参加してもらえれば、ディープラーニングについて一通りつかめると思います。
ーーそういったことも実施されているんですね。ちなみに知識がまったくなくても大丈夫なのでしょうか。
佐々木:大丈夫ではありますが、座学から始まって1日7~8時間の講座になりますので、とても面白かったという人もいれば、やはり難しかったという人もいます。ある程度、ディープラーニングについての本などをさらっと読んでおいていただければ、その分理解も高まるかと思います。
ーー講座にはどういった人が参加しているのでしょうか。
佐々木:研究者の方で、講師に根掘り葉掘り聞きたいという方もいらっしゃれば、はじめは正直さっぱりという方もいらっしゃいます。また、メディカル専門のコースなども実施しており、MRIの画像をもとに診断する部分にディープラーニングを導入したいという医療分野の方々からの反応も好評です。さらに、GPUコンピューティングの根幹であるCUDAのコースなどもあります。そのほか、企業向けに出張して講座を実施することもあり、その際は要望に従って内容を縮小したりといったこともしています。
ーーNGCをつかってディープラーニングを始める場合、パソコンの性能、とくにGPUの性能はどれくらいあればいいのでしょうか。
佐々木:正直Kepler世代などでも動きますが、しっかり動作すると検証済みなのは、VoltaあるいはPascal以降のGPUです。GPUの性能が高いと、学習時間を短縮できます。また、GPUの性能を上げると、もちろんその分CUDAコアの性能も上がります。巨大なデータセットの計算結果を可視化する際にも、GPU本来のグラフィックス性能が効いてきます。なお、マルチGPUにも対応しています。
ーーCPUやメモリー、ストレージの性能はどうかかわってくるのでしょうか。
佐々木:学習時間を短縮するのはGPUの仕事ですが、CPUの性能が高いとデータ処理などが速くなります。この世代以降のCPUではないと動かないなどの制約はないですが、なるべくCPUの性能も高いほうがいいですね。また、コンテナー自体を動かすのはメモリーやストレージ上になりますので、絶対にほしいとはいいませんが、メモリーは16GB以上あるといいのではないでしょうか。
ーー最後に、今後NGCはどのように進化していくのでしょうか
佐々木:まずはコンテナーのカタログをさらに充実させていこうと考えています。また、大規模なサーバーがある環境でも、NGCを使えるようにしていきたいです。
ーーありがとうございました。