笠原一輝のユビキタス情報局

加速するIntelの深層学習ソリューション

~Lake CrestはGPUキラーに

 IntelがいよいよNVIDIAの牙城となっていた深層学習(ディープラーニング)市場に積極的に乗り出した。先週サンフランシスコで行なわれたIntelのAI戦略を説明するイベント“Intel AI Day”に参加した多くの参加者が抱いた感想だろう。

 その第1弾として投入されたのが、Intelが今年(2016年)の8月に買収したNervana Systemsが開発した深層学習専用アクセラレータとなる「Lake Crest」だ。Lake CrestはTensor(テンソル)ベースのアーキテクチャを採用しており、内蔵されている12個のプロセッシングクラスタを利用して、低消費電力で深層学習関連の演算を高速に行なえる。

 IntelはこのLake Crestを、Xeonプロセッサ、Xeon Phi、FPGAといった従来より提供してきたIntelの機械学習、深層学習のソリューションと組み合わせて利用することで、NVIDIAの独壇場となっていたGPUによる深層学習用半導体市場に一石を投じる。さらに、その後深層学習に最適化したXeon PhiとなるKnights Mill、さらにはXeonとLake Crestと同じようなアクセラレータを搭載したKnights Crestを投入していくことで、深層学習/機械学習市場でIntelの存在感を高めていく。

NVIDIAが先行していた深層学習向け演算プロセッサの市場

 これまで一般的に深層学習の研究者などが使ってきた演算ソリューションが、GeForceやTeslaといったNVIDIAのGPUだ。

 ここ数年、深層学習がとても注目されているのは、GoogleやMicrosoft、Baiduといったプラットフォームを提供するソフトウェアベンダーや大学などの研究機関が急速にソフトウェアを進化させており、その成果として作られるAI(Artificial Intelligence、人工知能)が急速に発展しているからだ。例えば、GoogleのAlphaGoが韓国の囲碁のプロを破った話しは有名だし、最近ではGoogleやMicrosoftのクラウドベースの翻訳機能がAIに対応して精度が上がったということも話題になった。

 画像認識を例に取ると、2010年以前の、深層学習の手法を利用する以前のコンピュータであればエラー率(認識に失敗する例)は30%近かったが、深層学習の手法が導入されて以降急速にエラーレートが低下しており、最近の研究では既に人間の平均と言われる5%を割っている。言語認識も同様で、こちらはまだ人間には追いついていないが、深層学習導入後はエラー率が急速に低下している。

深層学習以前のAIの手法、非常に複雑なプログラミングが必要で、かつ認識精度も低かった
深層学習後は、DNNこそ複雑だが、それさえ構築してしまえばシンプルな仕組み
深層学習を導入後は画像認識や音声認識の精度があがっている

 そうした深層学習研究の進化をバックボーンで支えてきたのが、NVIDIAのGPUだ。GPUを汎用コンピューティングに利用できるソフトウェア基盤となるCUDAを推進してきたNVIDIAは、一昨年(2014年)頃からCUDAとNVIDIA GPUを利用した深層学習研究を加速するソリューションを積極的にアピールしている。というのも、深層学習の研究で最も時間がかかるのが、DNN(Deep Neural Network)と呼ばれる多層化されたニューラルネットワークに、データを読み込ませて学習させる時間だからだ。これは、人間で言えば子供にデータを教えるようなもので、AIの構築には必ず必要となる作業だ。

 以前の研究者はそれをCPUベースでやっていたのだが、膨大なデータ量を並列に処理していく必要があり、CPUで演算させると、膨大な時間がかかることが研究の妨げになっていた。そこで、NVIDIAが提供するGPUとCUDAを組み合わせて利用すると、並列演算がCPUに比べて遙かに速いGPUを利用して演算することが可能になり、学習にかかる時間が場合によっては大きく削減することが可能になった。このため、研究者はこぞってGPUを購入し、深層学習の研究に役立てることを始めたのだ。

 NVIDIAもそれを支援するため、同社の開発プラットフォームを充実させ、深層学習の研究に一般的に利用されているGoogle TensorFlow、Caffe、Torch、theanoといった深層学習フレームワーク(ニューラルネットを構築するのに必要なソフトウェアのひな形)、GPUによる演算に最適化できるようなSDKなどを提供しており、それらが深層学習研究に一般的に利用されているのだ。こうした努力を続けてきたこともあり、今やNVIDIAはAIを支える半導体ソリューション企業という評価を得ている。実際、同社の株価は11月20日の時点で93.36ドル(米ドル、以下同)と、90ドルを超える高値をつけており、これはちょうど1年前の価格である31.39ドルと比較すると約3倍になっている。これは、NVIDIAが“AI関連”だと市場が考えている何よりの証しと言っていいだろう。

AIはGPUだけでは実現できないとIntel、それを支えるIAのソリューション

Intel 上級副社長 兼 データセンター事業本部 事業本部長 ダイアン・ブライアント氏

 では、Intelはそうした深層学習の市場で存在感がないのかというと、実はそうではないというのが同社の主張だ。Intelが11月17日に米国サンフランシスコで行なったIntel AI Day(別記事参照)の中で、Intel 上級副社長 兼 データセンター事業本部 事業本部長 ダイアン・ブライアント氏は「2016年の終わりの時点での予測では、94%のAIのサーバーがGPUなしのIA(Intel Architecture)サーバーとなっている。今後もAI向けのIAソリューションをどんどん強化していきたい」と述べ、AIに利用されているクラウドにあるサーバーなどの94%がGPUのないIAベースのサーバーであると強調した。

 具体的にどういうことかというと、深層学習というのは、機械学習の中の1つの手法に過ぎない。実際にはそれ以外にもさまざまな演算が行なわれており、その多くは企業が自社のデータセンターに持つサーバーや、パブリッククラウドとして提供されているクラウドサーバー上で実装されている。これらのデータセンターを現在ほぼ独占しているのが、IntelのサーバープロセッサであるXeonであり、それがブライアント氏の発言に繋がっている。

 かつ、NVIDIAが提供しているGPUも、それ単体ではOSを動かすことができないため、必ず何らかのCPUと組み合わせれて動作している。実際、NVIDIAが4月にサンノゼで行なったGTC 2016で発表した、深層学習用スーパーコンピュータと位置付けられる“DGX-1”も、GPUは同社のTesla P100だが、CPUはIntelのXeonプロセッサだ。

 Intelの言わんとしていることもわかるしそれはそれで事実なのだが、ユーザーとなる研究者にとっては、“時は金なり”であり、CPUで深層学習の演算を続ければ、GPUでやった場合に比べて時間だけがやたらとかかることになる。従って、Intelが機械学習や深層学習への取り組みを強化するというのであれば、それに最適化した製品も出して欲しい、それが多くの研究者に共通する意見だったのではないだろうか。

GPU深層学習キラーとなるIntelのNervanaのソリューション

 今回のIntel AI Dayで、Intelはそうした声に応える戦略を打ち出した。そのベースとなったのは、Intelが今年の8月に買収を発表したNervana Systemsの資産だ。Nervana Systemsは、深層学習関連のソリューションで注目されていたスタートアップ企業で、深層学習のフレームワークや半導体などの開発を行なっていた。このNervanaの買収で、Intelの深層学習関連のポートフォリオ(製品群)は大きく広がったし、何より深層学習に詳しいソフトウェアエンジニアなどを社内に持つことができるようになった。

深層学習にフォーカスするLake Crest

 Intelは今後機械学習や深層学習向けの製品のブランドを「Intel Nervana」として、さまざまなマーケティング活動や製品展開を行なっていく。その第1弾となるのが、今回のIntel AI Dayで2017年の前半に投入が発表されたLake Crest(レイククレスト、開発コードネーム)だ。

 Lake Crestは一言で表現するなら、深層学習の学習アクセラレータ。Tensorベースのアーキテクチャを採用しており、内蔵されている12個のプロセッサクラスタ(1つのクラスターあたりのコア数などは未公開)を利用して、従来のGPU比10倍の効率でパラレルに演算することができるようになっており、Tensorオペレーションあたりの電力効率でGPUよりも優れているとする。メモリ帯域がボトルネックとならないように、メモリはHBM2を32GB搭載しており、帯域幅は8Tbpsに達するとIntelでは説明している。複数のチップを接続する場合には、Intel独自のICL(Inter-Chip Link)を利用し、PCI Expressを利用する場合に比較して20倍高速にデータをやりとりすることができる。

Lake Crestの特徴
Lake Crestのハイレベルのブロック図
このように複数のレベルの製品を投入していくのがIntel Nervanaの製品戦略

 ただし、現時点では具体的なLake Crestの性能などは未発表だし、どのような形で提供されるのか(ボード形式なのか、専用のマザーボード形式なのか)に関しては発表されなかった。ただ、スペックを見る限りは、深層学習の学習にだけにフォーカスしていることもあって、効率や性能面では汎用プロセッサであるGPUよりも有利な可能性が高い。もちろんそのリリースを待つ必要があるが、GPUによる深層学習に比べて大きく学習時間を短縮することができるなら、要注目の存在となる。

深層学習に最適化した製品を投入してNVIDIAを追い越す戦略

 今回Intelはそうした新しいハードウェアとなるLake Crestだけでなく、ソフトウェアソリューションの説明にも時間を割き、「Intel Math Kernel Library」(MKL-DNN)、「Intel Deep Learning SDK」など、ソフトウェア開発を容易にするソフトウェアをまもなく提供開始するとアナウンスした。これらの利用により最適化が進むことで、Xeon Phiの深層学習の性能は最適化前に比べて400倍も高速になったとIntelでは説明している。

Xeon Phiの特徴
DNNの開発に最適化されたライブラリのMKL-DNN
Intel Deep Learning SDK
ソフトウェアの最適化を行なうことで、最適化前に比べて400倍に
複数のレイヤーで開発キットなどを提供していく

 また、今後Intel Nervana Graph Compilerと呼ばれるコンパイラを提供し、プロセッサのアーキテクチャに詳しくないプログラマーでも容易にIntelの4つの製品群(Xeon、Xeon Phi、Xeon+FPGA、Lake Crest)に容易に最適化ができるようにする。Intelによれば、複数のターゲットに対して、最適なバイナリを作成することが可能になる。既に説明した通り、Intel Nervanaの環境にはIAのXeonとXeon Phiだけでなく、Altera由来のFPGAやNervana由来のLake Crestなども混在することになるので、こうしたコンパイラによりハードウェアの違いを隠蔽できることは、プログラマーの利便性を考えても重要だ。そして、何よりこれはNVIDIAがCUDAでやっていることそのものだ。

Intel Nervana Graph Compilerを利用すると、Intelの4つの製品群のうちどれを利用するかで、バイナリを最適化できる

 そして、2017年中には、現行製品のKnights LandingベースのXeon Phiの後継となる「Knights Mill」をリリースする。Knights Millでは倍精度や単精度だけでなく、半精度の浮動小数点演算にも対応する(NVIDIAもPascal世代のTeslaから半精度に対応している)。これにより、深層学習の学習時間を短縮できる。Intelによれば、現行世代のXeon Phiに比べて深層学習の性能が4倍になるという。

Knights Millの深層学習性能は現行製品の4倍に

 さらに、IntelはLake Crestの後継として、Knights Crestという製品を計画しているとIntel AI Dayで明らかにした。Knights Crestは、ブート可能なXeonプロセッサと、Lake Crestのようなアクセラレータが統合された製品になる。これまでIntelはKnights~というコードネームをXeon Phi系列のパラレルプロセッサにコードネームとして与えてきた。従って、ここに搭載されるXeonプロセッサというのは、Xeon Phiである可能性もあると言え、Xeon Phi+Lake Crest的なアクセラレータが1チップ(おそらくMCMで)になっている製品だと予想できるだろう。それが登場すれば、Intelのブライアント上級副社長が述べた「2020年までに現在のGPUによる深層学習の学習速度が100倍」というのも十分現実性を帯びてくると言えるのではないだろうか。

 いずれにせよ、Intelが深層学習に対して本腰を入れ始めたことで、現在はNVIDIA GPU一択となっている状況から、大きな変動が出てくることになりそうだ。競争があることは、(競争している本人と達を除き)誰にとっても素晴らしいことであり、今後もその動向には要注目だ。