セミコンポータル
半導体・FPD・液晶・製造装置・材料・設計のポータルサイト

nVidia、GPUを駆使したディープラーニングを強化

グラフィックスプロセッサ(GPU)が図形を描くことだけにとどまらず、科学技術計算にも威力を発揮する。GPUに注力するファブレス半導体のnVidiaはこのほど、Technology Conferenceを東京で開催、GPUが単なる絵作りだけではなく、ビッグデータ解析のディープラーニング手法やスーパーコンピュータなどにも適していることを実証した。

GPUは元々、ポリゴン(多角形)と呼ばれる三角形ないし四角形を一つのセルとして積み上げて図形(グラフィックス)を表現する、専用のマイクロプロセッサである。ポリゴンは絵を描くのにまずデッサンを描くことから始まることに似ており、ポリゴンを積み上げてラフなスケッチを描く。そのあと詳細にポリゴンをもっと滑らかに仕上げていく。そして色塗りをしていく。

このGPUがなぜ、スパコンに向いているのか。天気予報や風洞実験などではメッシュを細かく切って微分方程式の数値解を求めてきた。GPUのポリゴンが実はメッシュと似ているのである。最初からポリゴンを描くという演算を行うプロセッサは数値演算と共通する。汎用のCPUだとメッシュを切ることから始めなければならず、最初から処理面で出遅れることになる。だったら最初からGPUで演算しようという発想が科学技術演算につながっていく。

科学技術計算の最先端がスーパーコンピュータであるが、東京工業大学の導入したスパコン「TSUBAME2.5」には、nVidia のGPU(Tesla K20X)が4224個の計算ノードに搭載されている。このスパコンを使って、シミュレーションの大規模演算するだけではなく、可視化するための演算も行う。例えば、エレクトロニクスだと、発熱しているCPUチップ上の温度分布を描く、あるいはもっと3次元形状のロボットが動いている状態の温度分布をシミュレーションで計算するなどの応用がある。東工大の青木尊之教授は、TSUBAMEで行った計算をTSUBAME上で可視化する計算を3種類フルHDの動画で再生して見せた。それぞれ、バンカーショットのシミュレーション、多数のがれきを含んだ津波のシミュレーション、そして気液の2相流のシミュレーションである。演算の規模は、それぞれ1670万個の粒子を使った個別要素法計算、8700万個の粒子を使った計算、1.1億メッシュを用いた計算と大きい。実物を思わせるような詳細な画像の可視化にはやはりスパコンが威力を発揮する。

GPUが数値計算だけではなく、ディープラーニングにも威力を発揮することが明らかになってきた。ニューラルネットワークを何層にも重ねる構造を持つディープラーニングでは、過去のデータとの違いを元に「学習」する。ニューラルネットワークのニューロン1個は、従来モデルからよく知られているように、多入力・1出力のロジックで表される。ニューロンのレイヤーが何層も積み重なったアーキテクチャがディープラーニングの構造となっている(図1)。1ニューロンの各入力のそれぞれの強さ (重み)を学習によって変え、入力レイヤーから出力レイヤーまでのルートを最適化していく。


図1 ディープラーニングはニューラルネットワークを何層も重ねた構造で学習し反復練習を経て最適な処理ルートを決めていく ただし、結果はあくまでも確率の大きさで表現する

図1 ディープラーニングはニューラルネットワークを何層も重ねた構造で学習し反復練習を経て最適な処理ルートを決めていく ただし、結果はあくまでも確率の大きさで表現する


例えば、猫の顔認識なら、非常に多くの動物の顔やモノのデータ(1000万〜1億)を持ち、認識したい顔をまずエッジを検出する。これが最初のレイヤーになる。ニューロンのレイヤー数を10レイヤーとして、10億のパラメータを抽出することを決める。2番目のレイヤーではエッジをパラメータとして、目や鼻、口などから数百枚の画像からオブジェクトとして学習する。学習する(ラーニングアルゴリズムを実行する)のに、GPUを使う。より近いと判断した結果を学習モデルに蓄えておき、そのデータを最初のレイヤーまでフィードバックし学習を繰り返す。学習は、ニューロンに入力する重みを更新していく。これにより、最初は亀と認識しても学習を繰り返すうちに犬、そして猫へと近づいていき、最後に猫である確率は90%、などといった結果を表示する。

学習のアルゴリズムを実行する場合に、さまざまな特徴抽出、組み合わせを演算するのにGPUを利用する。この汎用のGPUは絵を書くデッサンのように特長を抽出し、さらに詳細部分をレンダリングしていく演算に使う。Nvidiaは、GPUを搭載したグラフィックスボードK2を提供しており、このボードを使って学習アルゴリズムを実行する。このGPUボードには、ハイエンドのメニーコアKeplerチップを2個搭載している。CUDAコアの数は3072個になる。これだけのコア数だと、仮想化技術を使える。

ディープラーニングはGPUボードというハードウエアだけではできない、ソフトウエアも必要であるため、nVidiaはソフトウエアを中心とするニューラルネットワークのトレーニングキットcuDNNも提供している。同社のGPU演算アーキテクチャに適したディープラーニングには、外部のソフトベンダーが提供するCaffe(カッフェ)やChainer(シェイナー)と呼ばれるフレームワークを利用する。nVidiaはこのほど機械学習(マシンラーニング)のソフト開発を行っている日本のベンチャー、Preferred Networksと提携を発表した。今後の産業用アプリケーションでのディープラーニング技術を共同で開発する。ちなみにChainerはPreferred社が開発したフレームワークで、複数のGPUを使えるため、仮想化できるnVidiaのGPUに向く。

(2015/09/30)

月別アーカイブ