Pascalには半精度浮動小数点数のアクセラレーションが入る? NVIDIA,ディープラーニング関連のイベントでヒントを提示
4Gamer

 2016年1月15日,NVIDIAは都内で「NVIDIA DeepLearning DAY 2016」と題する開発者向けイベントを開催した。NVIDIAが国内でディープラーニングだけをテーマにした大規模なイベントを国内で開催するのは今回が初めてで,その事実だけでも,NVIDIAがこのジャンルに賭ける意気込みが伝ってこよう。
 あらかじめお断りしておくと,NVIDIA DeepLearning DAY 2016で,ゲームと関係のある話題はほとんど何もなかった。ただ,次世代GPU「Pascal」(パスカル,開発コードネーム)に関するちょっとしたヒントがあったかもしれないので,今回はそのあたりを中心に,簡単にレポートしてみたい。


■Pascalには半精度浮動小数点数のアクセラレーションが入るかも

 NVIDIA DeepLearning DAY 2016は,午前中がディープラーニングの入門セッション,午後がNVIDIAのディープラーニングに対する取り組みや事例の紹介という構成になっていた。
 そのうち,午後にあったセッション「エヌビディアのディープラーニング戦略」では,同社の林 憲一氏が概要を紹介しつつ,適宜,ゲストが登壇して個別のテーマについて語るという形式になっていたのだが,そこで,ちょっと興味を引く話題があった。それは,NVIDIAの村上真奈氏が語った,「Deep Learning SDK」に関するものだ。


 Deep Learning SDKは,2013年にNVIDIAがリリースした,CUDAを使用するDNN(Deep Neural Network,脳が持つ処理機能の一部をシミュレートする技法の一つ)の開発用ライブラリ「cuDNN」を大本として発展した,ライブラリやツール群からなるアプリケーション開発用フレームワークだ。

 村上氏によると,NVIDIAは現在,Deep Learning SDKの開発に力を入れており,最近ではおおむね3か月から半年に一度のペースで,Deep Learning SDKを構成する各ライブラリの新バージョンをリリースしているそうだ。
 たとえば,Deep Learning SDKの一部となったcuDNNだと,新機能の追加や高速化を実現した最新バージョン「cuDNN4」が2015年12月にリリースされたばかりだが,cuDNN4ではFP16(16bit半精度浮動小数点演算)への最適化を組み込んであるという。


 いま示したスライドにもあるが,村上氏は,FP16で畳み込み演算の高速化が行えるのは,現状,「Tegra X1」のみだと明言していた。
 Tegra X1が統合するGPUは,第2世代Maxwellアーキテクチャをベースにしつつ,いくつかの改良が施したものとなっている。詳しくは2015年1月7日掲載の記事をチェックしてもらえればと思うが,その大きな特徴の1つが,FP16のアクセラレーションだ。具体的には,シェーダプロセッサ「CUDA Core」内の演算器でFP16×2個の演算を行えるのだが,これができるのは現在のところ,Tegra X1だけである。

 PC向けやサーバー向けGPUで採用する第2世代Maxwellアーキテクチャでは,FP16の演算にFP32(32bit単精度浮動小数点型)の積和演算を用いるため,スループットはFP32と変わらない。
 もちろん,FP16によってデータ量が小さくなるため,メモリバス帯域幅を抑えることはできるはずだが,ハードウェアレベルでFP16に対応したTegra X1以外のGPUに大幅な性能向上は期待できないだろう。


 ここでピンとくるのが,先のCES 2016で,NVIDIA,Jen-Hsun Huang CEOがPascalに関して示したスライドの謎についてである。
 下に示したスライドはその日本語版だが,見ると分かるように,PasaclとMaxwellでは,演算性能を示す「TFLOPS」の向上量はそれほど大きく変わらないのに対し,ディープラーニングの性能を示す「DL TOPS」だとPascalのほうが3倍以上高いとされている。Tegra X1と同じFP16のアクセラレーションがPascalにも入るのであれば,この数字の説明がつくかもしれない。


 もっとも,「FP32の演算器でFP16×2を演算できるようにした」としても,単純計算でスループットは2倍にしかならない。また,NVIDIAは2015年にTegra X1の演算性能を1TFLOPSと謳ったが,これはFP16の積和演算の性能だったという過去がある。もしPascalでFP16をサポートするのなら,Tegraの例に倣って第2世代Maxwell比で2倍の演算性能を謳うのが自然ではないか,という気は,しないでもない。

 NVIDIAに限らないが,メーカーが演算性能として出してくる値の根拠は,異なる製品の場合,変わることがある。なので,このスライドだけでPascalがFP16をサポートするのではと推測するのは危険かもしれない。
 ただそれでも,NVIDIAがcuDNNやCUDAライブラリのFP16のサポートを進めていること,そしてDirectX 11以降がFP16に対応しているため,グラフィックス処理の高速化につながる可能性があることを考えると,PascalにFP16を組み込む蓋然性は低くないと見ているが,どうだろうか。


■広く深く浸透していくディープラーニング

 公演ではNVIDIAとパートナーシップを組むディープラーニングのベンチャー企業,Preferred Networksや,ディープラーニングAPIの提供を始めたNTTドコモといった企業の代表が,ディープラーニングにおけるGPU応用の事例紹介を行っていた。
 そのなかでも興味深かったのは,Google Brainを率いるMike Schuster(マイク・シュスター)博士の講演だ。ゲームとはまるで関係ないのだが,簡単に紹介しておこう。

 Schuster博士が概説したのはGoogleがオープンソースとして公開したディープラーニングのフレームワーク「TensorFlow」についてである。TensorFlowの技術的な概要は,公式サイトの英文を読んでもらったほうが早いだろうが,一言でまとめるなら,ポピュラーなインタープリタ言語であるPythonを用いてニューラルネットワークを構築できるフレームワークのこと。データとして多次元配列のテンソル(Tensor)を使うので,TensorFlowというわけだ。

 Schuster博士らがGoogle Brainプロジェクトを立ち上げたのは2011年のこと。「私と数人のグループで始めたプロジェクトだった」(Schuster博士)そうだが,2015年末現在ではディープラーニングを応用する数百のプロジェクトがGoogle社内で立ち上がっているほど,大きな成長を遂げたそうだ。


 多数のプロジェクトを支えるため,「ディープラーニングに使用しているコンピュートパワーが,現在ではGoogleが持つそれの数%というレベルにまで達している」(Schuster博士)と語る。Googleが持つコンピュートパワー(Compute Power,は相当なものと思われるので,数%といっても,我々の想像を遙かに超えた規模だろう。ちなみにSchuster博士らが運用しているシステムでは,1000基以上のNVIDIA製GPUを活用しているとのことだった。


 ここでちょっと余談めいた話をさせてもらうが,GoogleのChromeブラウザを利用している読者は多いと思う。そして,あまり意識していないだろうと思われるものの,Chromeブラウザは標準で,Googleが提供するWeb API,数にしてざっと20程度をバックグラウンドで動かしている。たとえば,Chromeの特徴である同期や,音声を用いた検索,画像検索といったものの裏では,Web APIが動いているのだ。
 このAPIを通じて,ChromeブラウザはSchuster博士が言うところの,Googleが持つ「コンピュートパワー」に接続しているのだが,その裏ではすでにTensorFlowのようなディープラーニングの活用が始まっている。Chromeブラウザのユーザーは知らず知らずのうちにディープラーニングのパワーに接しているわけだ。

 先ほど示したスライドにある成長予測グラフを見れば想像できるとおり,Googleのディープラーニングは,今後ますます,4Gamer読者のバックグラウンドで活躍するようになるだろう。そう考えると,NVIDIAがディープラーニングに力を入れるのも当然だと納得しやすくなるのではないかと思う。


リンク:NVIDIA Deep Learning Day 2016告知ページ


―――――――――――――――――――――――――――――
記事URL:http://www.4gamer.net/games/251/G025177/20160119080/
→この記事を4Gamerで読む(※画像などがすべてある完全版です)
―――――――――――――――――――――――――――――
関連タイトル:
・HARDWARE Pascal(開発コードネーム)

―――――――――――――――――――――――――――――
Copyright (C) 2000-2016 Aetas, Inc. All rights reserved.

全文を表示