cuDNNはGTC 2016にて最新バージョンとなるバージョン5(cuDNN v5)がアナウンスされており、これと最新世代となる「Pascal」の組み合わせは、前々世代となる「K40(Kepler:アーキテクチャ名)」とcuDNN v1と比べて約12倍高速に計算することが可能となっている。cuDNN v5では、リカレントニューラルネットワークと呼ばれる時系列データを扱える機構が搭載されたほか、ディープな階層での演算の高速に向け、3×3のConvolution(畳み込み)層を持つネットワークの高速化するアルゴリズムをフォワードプロパゲーションおよびバックワードプロパゲーションにAPIとしての追加や、3次元畳み込みの追加、Pascal世代のGPUでのFP16ルーティンの追加なども図られている。

ちなみに、数カ月単位でcuDNNはバージョンアップを繰り返して行われてきたこともあり、相当数のアルゴリズムが提供されている。そのため、自分の環境で、どのアルゴリズムを使えば最適なのかが分かりにくいという課題に対し、cuDNNでは、適用されるハードウェアの世代やメモリ使用量などを勘案し、一番早く演算を終えられるアルゴリズムを自動的に決定する機構を搭載することで、そうした負担の軽減を図ることを可能としている。

cuDNNの概要。バージョンアップごとにパフォーマンスが向上している

また、NCCLもGTC 2016にてリリース番号1.2.1がリリース。シングルプロセスやマルチプロセス、シングルスレッドやマルチスレッドで標準的な集合通信の処理をバンド幅が出るように最適化することを可能とするもので、互いのGPU間でやり取りするデータサイズが一定以上のサイズであれば、かなり高いパフォーマンスを発揮することができるようになるという。

NCCLのイメージ図とパフォーマンスの図

さらにディープラーニングSDKでは「DIGITS」と呼ばれる、ディープラーニングを簡単にはじめられる開発ツールも提供されている。Webベースでディープラーニングの学習やテストを実行するためのユーザインタフェース(UI)を提供しており、学習データの作成の半自動化やモデルの選択、学習過程の可視化、モデルのテストの実施などを実行することができる。最新版となる「DIGITS 3」では、従来から対応していたフレームワーク「Caffe」に加え、「Torch7」にも対応した。

DIGITSの概要と最新版となるDIGITS3における機能強化部分の説明

なお、同社では、CaffeやTorch以外のフレームワークにも随時対応していく予定だとしている。主なフレームワークとしては上記2つのほか、「Theano」、「TensorFlow」、「Chainer」などがあるが、対応言語や特徴に違いがあり、用途に応じたものを選択して活用してみることをNVIDIAでは推奨しているほか、同社ではディープラーニングの学習が可能なEラーニング教材を容易しており、最初の講義となる「ディープラーニング入門」については無料かつ日本語で受講することが可能(無料アカウントの作成は必要)だとのことである。

主なディープラーニング・フレームワークの特徴