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

深層学習でNVIDIAの脅威となるIntelの「Spring Crest」と「nGRAPH」

Lake Crestのダイアグラム

 IntelがAI関連のプライベートイベント「AIDC (AI DevCon)」を開催し、同社のAI向けプロセッサに関する新戦略を説明した。その発表内容はすでにニュース記事(関連記事:Intel、深層学習を高速化する「Nervana NNP-L1000」を2019年末までに出荷)のかたちでお伝えしたとおりだが、本記事ではそれらの発表が、今後の機械学習(マシンラーニング)/深層学習(ディープラーニング)向けのプロセッサ市場にどのような影響を与えるのかについて考えていきたい。

 今回の発表で注目したいのは、現在はテスト出荷にとどまっている「Lake Crest」の後継にあたる「Spring Crest」が2019年末までに商用出荷されること、さらにはFPGA、MovidiusのVPU(Vision Processing Unit)といった、ハードウェアへの最適化を自動で行なうコンパイラの「nGRAPH」の2つだ。

NVIDIAのGPU+CUDAが深層学習の学習では独走状態に

 今やIT業界にとって“AI”がもっとも重要な技術だ。機械学習/深層学習のテクニックを活用したAIは、スマートフォンやPCなどのクライアント機器にとっても重要な技術になりつつある。

 たとえば、Windows 10に搭載されている「Cortana」、iOSデバイスに搭載されている「Siri」などのAIアシスタント機能は、クライアント側では音声を記録してクラウドに送っているだけだが、クラウド側では機械学習/深層学習の推論の機能を利用して、音声認識、それに基づいたデータ解析などが行なわれ、瞬時にクライアントデバイスへと結果を返す仕組みになっている。

 こうした機械学習/深層学習を利用したAIは、IntelやNVIDIAが提供しているプロセッサを利用して演算されている。それらに利用されている演算を種類で分けると、大きく3つのジャンブルに分けられる。

  1. クラウドサーバーでの機械学習/深層学習の学習
  2. クラウドサーバーでの機械学習/深層学習の推論
  3. エッジデバイス(クライアント側)での機械学習/深層学習の推論

 学習というのは、人間の脳を模したDNN(Deep Neural Network)などにデータを読み込ませて、その答えを教えたりしながら、文字どおり学習させるプロセスだ。幼児に犬を犬、猫を猫と教えるように、AIにも犬を犬、猫を猫と教え込ませるプロセスだと考えればわかりやすいだろう。

 人間も良質な書籍を読めば知識が飛躍的に増えてより賢くなれるように、DNNにも良質のデータを読み込ませれば読み込ませるほど賢くなっていくので、多くのAI開発者がこの学習というプロセスにコストと時間をかけている。

 これに対して推論というのは、その学習を済ませたDNNなどを利用して、来たデータが犬なのか、猫なのかを判断するプロセスだ。この推論は、クラウドサーバー上で行なわれることもあれば、エッジ(クライアント)デバイス側で行なわれることもあり、どちらでも利用されている。

 このうち、これまで機械学習/深層学習を処理する半導体で焦点が当たってきたのは、おもに(1)クラウドサーバーの学習に利用するプロセッサだ。その市場で圧倒的なリーダーと考えられているのはNVIDIAで、Tesla GPUとプログラミングモデルCUDAの組み合わせは、その高い性能で支持されている。

 とくにNVIDIAは、NVSwitchと呼ばれるNVLinkをスイッチングするコントローラを12個導入することで、16 GPUを1つのGPUとして扱うことができる「DGX-2」を発表しており、深層学習の学習時間がボトルネックになってしまっていたAI開発者を大喜びさせている(NVIDIAのマルチGPUの切り札「NVSwitch」と16 GPUシステム「DGX-2」)。

NVSwitchを利用して16個のGPUをNVLinkで接続しているNVIDIAのDGX-2、機械学習/深層学習の学習に利用されている

Intelは“ワンサイズフィッツオール”ではなく、複数の選択肢を提供していく戦略をとる

 そのNVIDIAの後を追うIntelだが、じつのところIntelも機械学習/深層学習では主要なベンダーの1つだ。というのも、そもそもNVIDIAのGPUは単体では動かず、必ずCPUが必要になるからだ。そのCPUは、ほぼ例外なくIntelのXeonになっており、NVIDIAのシェア=Intelのシェアとも言い換えてもいいわけだ。

 また、NVIDIAのGPUが使われていないサーバーで、機械学習/深層学習の学習が行なわれている例も多数ある。あまり大きなデータがないような場合には、GPUを使わなくても十分学習できるため、CPUでも性能的に十分な場合が多いからだ。そうしたニーズ向けに、Intelは開発ツールを拡充し、「Math Kernel Library-Deep Neural Network(MKL-DNN)」などを提供している。

 今回行なわれたAIDCでは、Googleが提供するフレームワーク「TensorFlow」とMKL-DNNを利用してXeonの最適化を進めた結果、推論時の性能がCPUノードのスケーリングよりも高い性能で実現できていると説明した。

Intel 取締役 兼 AI製品事業本部 本部長 ナビーン・ラオ氏

 だが、Intelの機械学習/深層学習のソリューションはXeonだけではない。AIDCの基調講演に登壇した、米Intel 取締役 兼 AI製品事業本部 本部長 ナビーン・ラオ氏は「これからの機械学習/深層学習はワンサイズフィッツオールではない」と何度も述べ、機械学習/深層学習向けプロセッサのニーズは多様化しており、GPUだけに頼る時代はまもなく終わると強調した。また同時に、「推論の処理は増え続けており、推論に適したニーズが高まっている」とも述べ、今後は推論に最適なプロセッサのニーズが強まると強調した。

 その言葉のとおり、Intelは機械学習/深層学習向けプロセッサの多様化を進めている。MKL-DNNのバージョンアップなどによりXeonの性能を引き上げているのはもちろんのこと、Intelが2015年にAlteraを買収して得たFPGAの製品を強化しており、先日はXeonにFPGAをCPUのモジュール上で統合した製品(Xeon Gold 6138P、別記事Intel、Arria 10 FPGAを統合した「Xeon Gold 6138P」参照)をリリースした。

 加えてMicrosoftが、パブリッククラウドとして提供しているAzureの新サービスとして、FPGAを利用した推論エンジンを提供しはじめたことも、記憶に新しい。

 そして、Intelは2016年9月に買収したMovidiusの推論プロセッサを、エッジ側の推論に活用しようとさまざまな動きを見せている。Movidiusは、エッジ側の推論に特化したプロセッサで(IntelではVPU=Vision Processing Unitと呼んでいる)、推論をわずか1W以下でできるというのがウリの製品だ。

 すでにAIカメラやドローン、USBスティックなどに「Myraid 2(100GFLOPS/6カメラ/28nm)」という従来の製品が採用済みで、これから昨年(2017年)の8月に発表された「Myraid X(1TFLOPS/4TOPs/8カメラ/16nm)」という次世代製品を搭載した最終製品が市場に出回る予定だ。

MovidiusのMyraid X、IntelではVPU(Vision Processing Unit)と呼んでいる
MovidiusのMyraid 2、現行製品で使われている
Intelが提供しているMyraid 2ベースのUSBスティック

Nervanaが開発したLake Crest、そしてその後継となるSpring CrestでGPUに対抗

 そして、NVIDIAの強みとなっているGPUを利用した深層学習の学習ソリューションに対抗する製品が、「Crest」が最後につくCrestシリーズのNNP(Neural Network Processors)だ。その最初の製品が「Lake Crest」(開発コードネーム)、その後継となる製品が「Spring Crest」となる。

Lake Crestの性能がAIDCで初めて公開された

 Lake Crestは、IntelがAIDCの前身となるイベントの「Intel AI Day」(関連記事:加速するIntelの深層学習ソリューション)で初めて構想を公開した製品で、Intelが買収したNervanaが開発してきた、深層学習に特化したプロセッサになっている。

 Lake Crestは12個のTensorベースのプロセッサクラスタを内蔵しており、ローカルメモリとして12GBのHBM2を搭載している。さらに、NNP同士を接続するインターコネクトの帯域として2.4TB/sの帯域幅が確保されており、複数のチップを接続して演算に利用できる。

 重要なことは、Crestシリーズはアクセラレータのように機能が固定されたものではなく、GPUやCPUと同じようにプログラマブルで、プログラマーがソフトウェアを書いて効率よく深層学習の学習ができるという点にある。

 たとえば、FP16、FP32といった各種の浮動小数点演算、さらにはINT8などの推論でよく使われる整数演算まで、任意のプログラムを構築することができる。かつ、行列乗算(GEMM: General Matrix Multiply)を行なった場合の効率は、GPUよりも高いとIntelは基調講演で明らかにし、理論値の96.4%の性能を実現できると説明した。

Intel 執行役員 兼 AI製品事業本部 AIハードウェア事業部 事業部長 キャリー・クロス氏
Lake Crestの後継となるSpring Crestは2019年末までに出荷予定

 現在、Lake Crestは特定の顧客に対してテスト出荷しており、ソフトウェア開発を共同で行なっているという。大規模な商用提供は、2019年末までに出荷が予定されている、Lake Crestの後継となるSpring CrestになるとIntelは説明している。では、Spring Crestはどのような製品になるのだろうか?

 米Intel 執行役員 兼 AI製品事業本部 AIハードウェア事業部 事業部長のキャリー・クロス氏は「Lake Crestは枯れたプロセスノードを使っている。最初のシリコンでリスクのあるプロセスノードを利用することを避けたかったからだ。それを最新のプロセスノードにするだけで、周波数を上げたりすることにより性能向上が可能だ」と語った。

 具体的に(どちらの製品も)どのようなプロセスルールで製造するのかの言及は避けたものの、Spring CrestがLake Crestよりもかなり進んだプロセスノードになることで、性能が向上していると説明した。Intelは今回のAIDCで、Spring CrestはLake Crestと比較して3~4倍の学習性能を実現すると説明している。

 実現すれば、NVIDIAのGPUに対して大きな武器となりそうなSpring Crestだが、課題もある。その筆頭は、投入時期が19年の末と、1年半後になってしまうことだ。「このようなスケジュールになっている理由は、シリコンチェンジを行なったからだ」(クロス氏)と、性能を引き上げるために、もともとのロードマップにあった製品からSpring Crestに変更したからだと述べた。

 Intelは、2016年のIntel AI Dayのタイミングでは、Lake Crestの後継としてKnights Crestを2018年に投入するとしていたが、Knights Crestのプランは破棄されて、その代わりにSpring Crestがロードマップ上に登場したという背景がある。

 その間にNVIDIAが止まっているわけではない。Spring Crestがリリースされる段階で、NVIDIAがどれだけ性能を上げてくるか、それによってはSpring Crestの魅力がないという可能性もあるわけで、そこはIntelにとってリスクと言えるだろう。

複数の種類のプロセッサがある状況は新コンパイラとなるnGRAPHで隠蔽する

 そして今回、Intelは同社の機械学習/深層学習向けプロセッサの弱点となっていた部分を克服する仕組みを導入することを発表した。

 すでに述べたとおり、AIDCにおいてIntelの幹部は盛んに「機械学習/深層学習向けのプロセッサはワンサイズフィッツオールではない」という言い回しを繰り返した。GPU+CUDAという1つのアーキテクチャで、エッジの推論からクラウドサーバー側の学習までカバーしているNVIDIAを意識した言い回しだと思われる。簡単に表にすると以下のようになるからだ。

NVIDIAIntel
製品アーキテクチャ製品アーキテクチャ製品アーキテクチャ
クラウドサーバーでの機械学習/深層学習の学習TeslaCUDAXeonx86Lake CrestTensorコア
クラウドサーバーでの機械学習/深層学習の推論TeslaCUDAXeonx86FPGAAltera
エッジデバイスでの機械学習/深層学習の推論TegraCUDAMyraid 2/XMovidius

 NVIDIAは、1つのCUDAというプログラミングモデルで、どんなGPUであろうと同じソフトウェアを走らせることができる(実際には再コンパイルが必要な場合もあるが)。AIの開発をするエンジニアにとっては、CUDAさえ勉強しておけば、エッジ側の推論ならTegra、クラウドの推論と学習ならTeslaと、ハードウェアは違っても、同じCUDAのプログラムを作り込むことは容易だ。

 それに対比すると、Intelのほうは、ハードウェアの違いをAIを開発するエンジニアが意識しなければならない。Xeonを利用してクラウドの推論と学習を行なう場合ならXeonに最適化を行ない、FPGAを利用してクラウドで推論を行なうならFPGAに合わせて最適化を、Movidiusを利用する場合にはMovidiusに最適化する必要があり、それぞれバラバラになっていた。

 今後はこれにLake Crest/Spring Crestが加わることになるので、さらにAIエンジニアが学習することが増える。これが、これまでAIをIntelプラットフォーム上で演算するときの弱点になってしまっていた。

nGRAPHの基本的なコンセプト

 そこで、Intelが新しく導入するのがnGRAPHだ。nGRAPHは言ってみればコンパイラの一種で、TensorFlowなどの深層学習のフレームワークと一緒に使い、Lake Crest、FPGA、Movidiusなど、各々のハードウェアに最適化したコードを自動で生成してくれる。

 Intelのクロス氏によれば、CPU(Xeon)に関しては引き続くMKL-DNNを利用して最適化する必要があるものの、「nGRAPHを利用すると、AIエンジニアはハードウェアの違いを認識する必要がなくなる。AIエンジニアにとってそうした違いを理解するのは時間の無駄でしかなく、それを簡単にできるツールが必要とされていた」(クロス氏)との言葉のとおりで、コンパイラのレベルでハードウェアを抽象化してしまうため、AIエンジニアはそれを理解していなくてもコンパイラ任せにできるというのがメリットになる。

 これによりIntelの複数の種類のプロセッサがあるという弱点を覆い隠すことが可能になり、AIエンジニアにとって、複数のハードウェアを使ってより効率よく学習なり、推論なりを行なうことが可能になる。

 まさに、Intelの機械学習/深層学習のソリューションにとって欠けている最後のピースが、Spring Crestであり、nGRAPHだ。それがそろったときには、現時点での深層学習の世界では絶対王者となっているNVIDIAにとっても深刻な脅威となりうるのではないだろうか。