米Microsoft社は、深層学習(ディープラーニング)の処理を高速実行できるクラウド環境「Project Brainwave」(開発コード名)を開発した(同社のブログ)。その概要を、高性能プロセッサー関連の国際会議「Hot Chips 2017」で発表(発表資料)。深層学習のアクセラレーター回路をFPGAで実装することで、柔軟性と高速性を両立したと主張する。処理の要求を受けてから極めて短時間に結果を出力できる「リアルタイムAI」に向けたシステムと位置付ける。今後はさらなる性能向上を図り、同社のクラウドサービス「Azure」の一環などとして提供することを目指す。

 同社が開発してきた、データセンターで多数のFPGAを柔軟に活用可能にするシステムを用いる(図1、関連記事1関連記事2)。ディープニューラルネットワーク(DNN)のモデルをFPGA上に実装して一連の処理を任せることで、低遅延と高スループットを実現したとする。FPGAには米Intel社が2016年10月にサンプル出荷を始めた最上位品「Stratix 10」(関連記事)を採用。その初期バージョンに、自然言語処理などに使うRNN(Recurrent Neural Network)の一種GRU(Gated Recurrent Unit)を実装した場合で、39.5TFLOPSの性能を確認したという注1)。このDNNの規模は画像認識用DNN「ResNet-50」の5倍と大きく、8ビットの浮動小数点演算で、バッチ処理を用いずに測定したとする。

注1)深層学習の研究開発で一般的に利用される米NVIDIA社の最上位GPUの性能は、現行世代の「Tesla P100」で21.2TFLOPS(16ビット浮動小数点の場合)、次世代の「Tesla V100」で120TFLOPS(16/32ビット浮動小数点の場合)。米Google社の深層学習アクセラレーター「第2世代TPU(Tensor Processing Unit)」の1チップ当たりの性能は45TFLOPS(ビット数は非公開)である。
図1 データセンターでFPGA活用
[画像のクリックで拡大表示]
図1 データセンターでFPGA活用
ブレードサーバーに接続されたFPGAカード(図のCatapult V2)を使う。Catapult V2同士をつなぐ別のネットワークもある。(出典:Microsoft社のHot Chipsでの発表資料)

 同社は、クラウドサービスでDNNの推論処理を実行する場合のアクセラレーターには、FPGAが適していると主張する。理由の1つは、様々なユーザーが次々に要求する多種多様な処理に、即時(リアルタイム)で応答する必要があること。大量のデータをまとめてバッチ処理できるDNNの学習(トレーニング)の場合と異なり、短時間に応答する必要がある推論処理では、大規模なバッチ処理による遅延を許容しにくい。同社がバッチ処理なしでの性能を公表しているのはこのためである。