イベント
[GTC 2015]GPUが機械学習型AIを人間より賢くする? NVIDIA CEOによるGTC 2015基調講演レポート
講演の冒頭で,Huang氏は「今日,アナウンスしたいことは4つある」と語りだした。スライドで掲げられた4つのアナウンス項目は,すべてに「Deep Learning」(ディープラーニング,深層学習,詳細は講述)のキーワードがついており,基調講演のテーマがどこにあるかが一目瞭然といったところだ。
そういうわけで,ゲーマーにとってはいささか縁遠い話が中心になってしまうのだが,NVIDIAが現在注力しているものは何かがよく分かる講演なので,その概要をレポートしたい。
GeForce GTX TITAN Xを発表。世界最強のGPUはゲームと機械学習のために
そもそも,GPUにフォーカスした開発者向け大規模イベントであるGTCをNVIDIAが毎年開催するようになったのは,同社独自のGPGPUプラットフォームである「CUDA」の採用が世界的に広がったことがきっかけだった。
CUDAが発表されたのは,2006年に登場したTesla世代GPU「GeForce 8800 GTX」の頃だが,2年後の2008年に「NVISION 08」という名前で最初のイベントが開催された。その後はGTCに名を変えて,現在まで毎年開催されている。
そうした事情を踏まえてHuang氏は,講演の冒頭で2008年から2015年までの8年間で,GPUコンピューティングを取り巻く状況がどのように変化したのかを紹介した。
2008年当時,CUDAのダウンロード件数は15万件程度だったそうだが,これが2015年までに300万件へと増加し,CUDA対応アプリケーションの数は,27から10倍以上の319へと増えているという。
ほかにも,CUDAを教える大学は60校から800校に,CUDAを応用して発表された論文は4000から6万に増えたほか,GPUコンピューティング用システムである「Teslaの売り上げは6000から45万へと拡大し,世界中のスーパーコンピュータを集めた総演算性能は,77TFLOPSから,700倍以上の5万4000TFLOPSまで向上しているそうだ。
Huang氏はこれらの事例を示して「GPUの進化はとどまることを知らない」と語ったうえで,1つめのアナウンスとして「GeForce GTX TITAN X」(以下,GTX TITAN X)を正式発表した。GDC 2015で行われたEpic Gamesの講演で予告されていたものが(関連記事),今回正式に発表されたわけである。価格は米ドルで999ドル。「9」が3つ並ぶ価格は,ここ最近のTITANシリーズでは定番といったところか。
4GamerでもすでにGTX TITAN Xのレビュー記事を掲載しているので,ここでは簡単にまとめておこう。
GTX TITAN Xは,第2世代Maxwellアーキテクチャを採用する「GM200」コアのGPUである。トランジスタ数は約80億個で,集積されたCUDA Coreは3072基という,NVIDIA製GPUでは最大規模のものだ。製造プロセスは,TSMCの28nm HP(High Performance)プロセスで,「ウルトラハイエンドGPUでは,安定供給を優先させるために,先進的な製造プロセスはあえて採用しない」という,ここ10年来の“縛り”を踏襲している。
グラフィックスメモリは12GBを搭載し,グラフィックスメモリのメモリバス幅は384bitとなった。
気になる演算性能は,単精度浮動小数点(FP32)で約7TFLOPS,倍精度浮動小数点(FP64)では約0.2TFLOPS。Maxwell世代のGPUには倍精度浮動小数点演算ユニット(以下,DP)がなく,4基のCUDA Coreを使って倍精度浮動小数点演算を行う仕組みである。そのため,単純計算すると倍精度での浮動小数点演算性能は,単精度の4分の1になるはずなのだが,実際の性能は32分の1にすぎない。
おそらくは,初代「GeForce GTX TITAN」で導入された「DPの動作クロックがコアクロックの8分の1」という仕様が(DPは搭載されていないものの)引き継がれているのではないかと推察される。
すべてのキーワードに付けていただけあって,GTX TITAN Xのパートでも話題の中心は,グラフィックスではなくディープラーニングだ。
Huang氏によれば,画像認識分類システムである「AlexNet」の自己学習フェーズである学習処理を行わせた場合,CPUコアを16基搭載するXeonでは43日間かかるところを,GTX TITAN Xではわずか2日半で終了できるという。実に約17倍という圧倒的な速度差だ。
「これだけの圧倒的な性能の加速が実現できると,ディープラーニングという技術に,まったく新しい応用や可能性を見出すことができるようになる」とHuang氏は力説する。
機械学習用プラットフォーム「DIGITS」を発表
ここでHuang氏は,改めて,ディープラーニングとは何かについてを簡単に説明した。
ディープラーニングとは,機械学習(Machine Learning)の一形態である。機械学習とは,簡単にいえばコンピュータに「これは何である」と学習させることだ。学習させる内容は画像や音声の認識だったり,病気疾患と血液成分の関係だったりと,極めて多岐にわたる。機械学習させたコンピュータに対して「これは何か?」とデータを与えると,「これは猫です」とか「この血液成分には癌になりやすい特徴があります」といった結果を出すというわけだ。
あくまで概念的な話だが,たとえばディープラーニングで顔認識を行う場合,入力画像から輪郭を抽出して,輪郭の組み合わせで目・鼻・口といった「パーツのデータベース」を構築したとしよう。さらに,目・鼻・口の位置や組み合わせを網羅した「組み合わせデータベース」を作り,それとパーツのデータベースを接続すれば,「人の顔データベース」ができあがる。そして,人の顔データベースに「人名データベース」をリンクしておけば,顔写真をコンピュータに見せると,「この顔は○○さんです」と答えを出せるようになるわけだ。人間の顔だけでも相当に規模の大きなデータ構造になることは容易に想像できるだろう。
こうしたディープラーニングの開祖的な存在として有名なのが,「Convolutional Neural Network」(畳み込みニューラルネットワーク,以下,CNN)という技術だ。Huang氏は講演の中で,CNNに関する最も有名な論文として,FacebookのAI研究所に所属するYann LeCun氏が1998年に発表した「Convolutional Neural Networks for Handwritten Digital Recognition」(関連リンク)を紹介した。Huang氏によると,CNNは送付先を手書きされた郵便物の自動仕分けにも採用されている技術であるという。
詳細は省くが,CNNに「畳み込み」(Convolution)という言葉が使われているのは,学習データベースのネットワーク構造を構築するときに使う特徴要素の抽出演算に,畳み込み演算を多用するからだ。畳み込み演算とは,数列AとBの要素すべてを総当たりで積和算する計算のこと。「大量のデータに対して同一計算処理を超並列に行う」ことは,GPUの最も得意とするところである。
2012年には,トロント大学のAlex Krizhevsky氏らが,CNNをGPUに最適化させて大規模に実装する,「ImageNet Classification with Deep Convolutional Neural Networks」(関連リンク)という論文を発表する。この論文では,CNNをGeForce GTX 580×2構成のマシンで実装した事例が紹介されており,劇的な性能向上と高い分類正解率を達成したという。
Huang氏はこの論文を取り上げて,「2012年に,この論文はディープラーニングの世界にビッグバンを引き起こした」と当時の興奮を表現している。
実際にこの論文が発表されて以降,機械学習により大規模なデータベースの構築が実現可能になり,GPUベースのディープラーニング実装は広がりを見せて,実用レベルで活用されるようになったそうだ。
Huang氏は続いて,CNNベースのディープラーニング最新事例として,スタンフォード大学のAndrej Karpathy氏が2014年に発表した「Automated Image Captioning with ConvNets and Recurrent Nets」(関連リンク)を紹介した。
この論文は「画像認識を超えた,画像に対する知覚・分類」を分かりやすい形で出力する応用事例を説明したものだ。具体的には,機械学習させたCNNに対して画像を見せると,自然言語(英語)でそれを表現するという。これまでは,せいぜい「This is a pen」程度の言葉しか話せなかった機械学習型AIが,流ちょうな英語で話せるようになったわけである。
もちろん,学習内容に含まれないことを聞かれれば,珍妙な回答をすることもあって笑いを誘っていたが,Huang氏は「機械学習型AIは,どんな質問をされても『分からない』とは答えない。そこがすごいとは思わないか」とフォローして,来場者を笑わせていた。
ディープラーニングの最新事情を説明したHuang氏は,NVIDIAがこの分野に向けて投入する2つのソリューションを発表した。
1つは,新しいミドルウェア「DIGITS」だ。「Deep Gpu Training System」から命名されたもので,機械学習やディープラーニング,そのほかのAI研究者向けのミドルウェアである。
DIGITSはCUDAをベースに,機械学習向けライブラリ「cuDNN」を応用して構成されたものだ。cuDNNは,2014年後半に発表された機械学習型AIの構築に使う基本的な関数や演算ライブラリの集合体であり,DIGITSはそれを使用して,機械学習の実験や独自の機械学習型AI開発を行えるフレームワーク的なものといえよう。
NVIDIAの物理シミュレーションエンジンの「PhysX」で例えると,ゲームで物理シミュレーションを使うためにPhysXを利用するのと同じように,機械学習型AIを開発するのに利用できるのがDIGITSというわけだ。また,PhysXには物理シミュレーションをアーティストが簡単に扱うためのフレームワークとして「APEX」(Applied PhysX Extension)が用意されているのだが,同じように研究者が比較的容易に機械学習を扱うために用意された仕組みがcuDNN,と考えれば分かりやすいだろうか。
Huang氏が発表したもう1つのソリューションが,DIGITS専用開発機となる「DIGITS DevBox」だ。機械学習型AIの研究開発に使えるソフトウェアをプリインストールとしたシステムで,GTX TITAN Xをなんと4基も搭載するという。お値段は1万5000ドル(約180万円)で,発売は5月とのこと。興味のある人は公式Webページをチェックしてみてはいかがだろうか。
PascalはMaxwellの10倍の性能を持つ?
3つめのアナウンスは,GTC基調講演では恒例となったGPUロードマップの話題である。
といっても,ロードマップそのものに新しい情報はなく,開発コードネーム「Pascal」で呼ばれる次世代GPUコアが2016年に,その次の世代となる「Volta」が2017〜2018年頃に予定されていることが再確認された程度だ。
Pascalに関しては,3つの注目すべきポイントが説明された。
注目ポイントで新しい話題は,「Mixed Precision」(混合精度)への対応である。混合精度とは,16bit浮動小数点数(FP16)の高効率演算と考えていい。MaxwellベースのGPUを搭載したSoCである「Tegra X1」では,32bitレジスタに2つの16bit浮動小数点数を入れて演算させる仕組みがサポートされている。Pascalでは,これを単体GPUでもサポートするというわけだ。
もちろん,従来のGPUでもFP16の演算はサポートされている。しかし実態は,32bitレジスタの上位16bitを使わない形での演算を行うだけなので,FP16の使用はメモリ帯域節約にはなっても,演算性能自体はまったく向上できなかった。これを改善しようというのが混合精度のサポートである。
ではなぜ,今頃になってこの機能をサポートするのか。ここにもディープラーニングが重要なキーワードとなってくるのだ。
画像を処理対象とした機械学習で使うような畳み込み演算は,FP16程度の演算精度があれば十分に事足りる。また,NVIDIAがとくに力を入れている自動運転技術に必要な画像処理や,各種レーダー・センサーから入力されるデータ処理といった「コンピュータビジョン」系の処理でも,やはりFP16程度で十分なのだという。
それゆえに,ディープラーニング分野への応用をアピールしたいPascalは,
残る2つのポイントである「3次元メモリ」技術とインターコネクト技術「NVLink」の採用は,GTC 2014にて発表済みなので,とくに新しい情報はない。ここではおさらいを兼ねて,簡単に説明しよう。
まず,3次元メモリとは,メモリチップを高層ビルのように上方向へ積み上げる形で積層させて製造する技術である。
一方のNVLinkは,CPUとGPU,あるいはGPU同士を超高速に接続(インターコネクト)する独自のバス規格のことだ。NVIDIAとIBMによる共同開発によって,実用化が進められている。
3次元メモリとNVLinkは,どちらも「データ帯域の劇的な改善」を目的として導入されるものだ。現在のコンピューティングでは,演算性能の向上に対して,メモリアクセス速度やプロセッサ間のデータ転送速度の進化が追いつかず,システム全体の性能向上を大きく制約する要因になってしまっている。3次元メモリとNVLinkは,この課題に対する回答の1つといえるだろう。
これらの仕様を取り入れるPascal世代GPUの性能を,Huang氏はMaxwell世代と比較する形で説明した。それによると,単精度汎用行列乗算性能(≒単精度浮動小数点演算性能)は2倍に,メモリ容量は2.7倍の32GBに達するという。また,浮動小数点演算性能が2倍に向上するうえ,1つの32bitレジスタでFP16を2つ同時に処理できるようになることで,混合精度演算性能は2倍×2倍の4倍。3次元メモリによってメモリバス帯域幅は3倍にもなるそうだ。
さらにHuang氏は,ディープラーニング分野におけるCNN型機械学習型AIの処理なら,Pascal世代GPUは,Maxwell世代GPUの10倍もの性能を発揮するだろうと豪語した。10倍というのはちょっと乱暴な計算であるようにも思うが,ディープラーニング用途で優れた性能を発揮するというのは間違いなさそうである。
自動運転に機械学習型AIを組み合わせる事が可能に?
基調講演で最後に取り上げられた「Self-Driving Cars and Deep Learning」は,ここ数年のNVIDIAが,とくに力を入れている自動車分野に関わるものだ。
日本でも,富士重工業の「アイサイト」に代表される「アドバンスド・ドライバー・アシスタンス・システム」(ADAS,自動運転支援機能)の開発が,自動車メーカー各社で進められている。ADASは,衝突軽減自動ブレーキや車線逸脱防止制御といった多彩な機能を備えるものだが,走行中の自動車の周囲を認識して適宜最適な行動を選択したり,ドライバーに警告を促したりするという点で,コンピュータビジョンの応用事例ともいえるだろう。
NVIDIAはこの分野に向けてTegraを推進しており,Tegra X1を使った次世代のADASソリューションが,ここでのテーマというわけだ。
現在のADASは自動ブレーキとドライバーへの警告が主体だが,次世代のADASはステアリング(ハンドルを切る)や加速(アクセルペダルを踏む)といった自動運転分野にまで踏み出すことは間違いないとされている。
現在開発が進められている自動運転技術では,360度全周カメラからの映像や,自動車の各部に実装されたレーダーによる測距データなどをもとにして,ほかの自動車や歩行者,障害物を認識したり,危険を予測したりする方向性で開発が進められている。自車周辺の膨大な情報を取得して,リアクションするシステムといってもいいだろう。
一方,人間が自動車を運転するときはどうしているのかといえば,内蔵するミリ波レーダーなどあるわけはないし,視界もたかだか180度程度しかないという,限られた視覚情報と聴覚のような補助情報を頼りに運転しているわけだ。どう考えても自動運転技術のほうが,人間よりも多くの周辺情報を得られているだろう。
それなのに,なぜ人間は自動車を安全に運転できるのか。それは,人間の脳が膨大な記憶力と優れた学習能力を持っているからにほかならない。そんな仮説をもとに,米国防高等研究計画局(DARPA)は,視覚情報の機械学習だけで自動運転を行う実験「Project Dave」を進めている。
Project Daveでは,障害物認識やレーダー情報のようなコンピュータビジョン的なアルゴリズムを排除して,純粋に情景映像の機械学習による実装で自動運転が可能となるのかを実験している。
具体的には,人間が運転しているときの情景(映像)をAIに機械学習させて,その学習データに沿うよう,コンピュータに自動車を運転させるわけだ。さすがに,本物の自動車でやるのはまだ危険なので,現在はラジコンカーサイズのミニチュアで実験されているようである。
そして,それを実現するソリューションとして披露されたのが,2015年1月のCES 2015で発表されたTegra X1ベースの自動運転技術の開発用プラットフォーム「DRIVE PX」というわけだ。CPUベースで作られたProject Daveのシステムに対して,DRIVE PXは約3000倍もの性能があると,Huang氏は絶対的な優位性をアピールしている。
なぜ自動運転に映像の機械学習が有効なのか。それは,カメラの映像やレーダーセンサーからの測距情報をリアルタイム処理し,障害物を認識してリアクションする現状のADASの延長では,人間の運転に遠く及ばないためだ。
たとえば人間は,運転中に路上駐車されている車を見れば,「ドアを開けてくるかもしれない」と予測して徐行するだろう(しない人もいるが)。あるいは,進路上になにか「黒い液体のように見えるもの」があれば,「オイル溜まりだまりか,あるいは道路の亀裂だろうか」と予測して速度を緩めるはずだ。
人間のこうした行動は,センサーからのリアルタイムリアクションではなく,過去の経験に基づく学習や,教習所で学んだ知識から励起された危機予測行動である。そこで,同じような行動をAIで実現するには,機械学習型AIが有効であり,それには,高い演算能力のあるプロセッサ,つまりGPUが必要だ,というのがHuang氏の主張するところだ。
DRIVE PXは,そうした機械学習を行う自動車用コンピュータシステムの開発キットである。自動運転技術を開発している企業や研究機関に向けた製品で,2015年5月から,1万ドル(約120万円)で販売されるそうだ。製品の詳細を知りたい人は,DRIVE PXの情報ページを参照してほしい。
Huang氏による基調講演の概要は,以上のとおりである。機械学習とコンピュータビジョンを大きなテーマに掲げていた点は,GTC 2014の基調講演と変わっていない。ただ,今年はDIGITS DevBoxやDRIVE PXといった,より具体的なソリューションを提示していた点が大きな違いといえようか。
一方,シングルGPU最速のGTX TITAN Xが発表されたほか,次世代GPUであるPascalの具体的な性能が示されるなど,ゲーマー視点でも見どころのある基調講演だったように思う。
NVIDIA公式Webサイト(英語)
GTC公式Webサイト(英語)
キーワード
Copyright(C)2013 NVIDIA Corporation