MicrosoftがリアルタイムAIのためのProject Brainwaveを発表 (Microsoft unveils Project Brainwave for real-time AI)

Posted: 2017/09/11 カテゴリー: Uncategorized
タグ:, , , , , , , , , , , , , ,

image


image

Doug Burger (MicrosoftのDistinguished Engineer)

本日、Hot Chips 2017で、我々のMicrosoft内のチームが、Project Brainwaveというコードネームの、新たな深層学習高速化プラットフォームを発表しました。Project Brainwaveは、深層学習モデルのクラウド ベースの提供でのパフォーマンスと柔軟性において、大きな飛躍を実現しているので、このポストでさらなる詳細を共有できて嬉しく思います。我々は、リアルタイムAI向けのシステムを設計しました。これは、システムが、リクエストを受信するのと同じ速度で、非常に低いレイテンシでリクエストを処理することを意味しています。クラウド インフラストラクチャはライブのデータ ストリーム (検索クエリ、ビデオ、センサー ストリーム、ユーザーとのやり取りなど) を処理するので、リアルタイムAIがますます重要になりつつあります。

Project Brainwaveシステムは、3つの主要レイヤーで構築されています。

  1. 高パフォーマンスの分散システム アーキテクチャ
  2. FPGA上に合成されたハードウェアDNNエンジン
  3. 訓練済みモデルのスムーズなデプロイのための、コンパイラーとランタイム

第一に、Project Brainwaveは、Microsoftがここ数年にわたってデプロイしてきた、巨大なFPGAインフラストラクチャを活用しています。高パフォーマンスのFPGAを我々のデータセンター ネットワークに直接接続することで、我々は、DNNをハードウェア マイクロサービスとして提供できます。DNNをリモートFPGAのプールにマッピングし、ソフトウェアなしに、サーバーがDNNを呼び出すことが可能です。このシステム アーキテクチャは、(CPUが入力リクエストを処理する必要がないので) レイテンシを減らし、(ネットワークがリクエストをストリーミングするのと同じ速度で、FPGAがリクエストを処理するので) 非常に高いスループットを可能にします。

第二に、Project Brainwaveは、市販のFPGA上に合成された、強力な「ソフト」DNN処理ユニット (DPU) を使っています。多数の企業 (大企業や多数のスタートアップ) が、ハード コードされたDPUを構築しています。これらのチップのいくつかは高いピーク パフォーマンスを持っていますが、設計時に演算子とデータ型を選択しなければならず、これは柔軟性を制限します。Project Brainwaveは異なるアプローチを取っており、幅広いデータ型にわたってスケールし、希望のデータ型を合成時の決定にする設計を提供しています。この設計は、より優れた、より最適化された多数の機能ユニットを提供するために、FPGA上のASICデジタル信号処理ブロックと、合成可能なロジックを組み合わせています。このアプローチは、2つの方法で、FPGAの柔軟性を活用しています。第一に、我々は、モデルの精度を失うことなくパフォーマンスを向上する、高度にカスタマイズされた限定された精度のデータ型を定義しました。第二に、我々は、研究のイノベーションをハードウェア プラットフォームに迅速に (典型的には数週間で) 組み込むことができます。これは、この動きの速い領域では不可欠です。結果として、我々は、ハード コードされたDPUチップの多くに匹敵する (または、それらより優れた) パフォーマンスを達成しています。

image

Hot Chipsでは、Intelの新しい14nm Stratix 10 FPGAを使って、Project Brainwaveのデモが行われました。

第三に、Project Brainwaveは、幅広い人気の高い深層学習フレームワークをサポートするために設計されたソフトウェア スタックを組み込んでいます。我々は、Microsoft Cognitive ToolkitとGoogleのTensorFlowをすでにサポートしており、他の多くのフレームワークをサポートすることを計画しています。我々は、グラフ ベースの中間表現を定義しました。我々は、人気の高いフレームワークの訓練済みモデルをこの中間表現に変換し、それから、我々の高パフォーマンスのインフラストラクチャにコンパイルします。

我々は、バッチ実行なしで幅広い複雑なモデルにわたる実際の高パフォーマンスを示すために、このシステムのアーキテクチャを設計しました。DNNアクセラレーターを構築している企業や研究者は、しばば畳み込みニューラルネットワーク (CNN) を使ったパフォーマンス デモを示します。CNNは非常に計算集中型なので、高パフォーマンスの数値を達成するのは、比較的簡単です。こういった結果は、自然言語処理のためのLTSMやGRUといった、他のドメインのより複雑なモデルでのパフォーマンスには当てはまらないことが多くあります。パフォーマンスを高めるためにDNNプロセッサーがよく使うもう1つのテクニックは、バッチ処理を多用してディープ ニューラル ネットワークを実行することです。このテクニックはスループット ベースのアーキテクチャ (および、訓練などのオフラインのシナリオ) に有効ですが、リアルタイムAIにはそれほど有効ではありません。大きなバッチでは、バッチ内の最初のクエリは、そのバッチ内の多数のクエリのすべてが完了するのを待たなければなりません。リアルタイムAI向けに設計された我々のシステムは、スループットを向上させるためにバッチ処理を使うことなく、LTSMといった複雑でメモリ集中型のモデルを処理することができます。

Hot Chipsでは、Eric ChungJeremy Fowersが、Intelの新しい14nm Stratix 10 FPGAに移植されたProject Brainwaveシステムのデモを行いました、

初期のStratix 10シリコン上でも、移植されたProject Brainwaveシステムは、バッチ処理なしで (Resnet-50より5倍大きい) 巨大なGRUモデルを実行し、過去最高のパフォーマンスを達成しました。このデモは、Microsoftのカスタム8ビット浮動小数点フォーマット (“ms-fp8”) を使いました。このフォーマットは、幅広いモデルにわたって (概して) 精度の損失が起こりません。我々は、Stratix 10が、この巨大なGRUで39.5 TFLOPSを持続し、各リクエストを1ミリ秒以下で実行したことを示しました。このパフォーマンスのレベルでは、Brainwaveアーキテクチャは、サイクルあたり130,000以上の計算操作の実行を持続しました (各10サイクルごとに、1つのマクロ命令が発行されます)。そのため、Stratix 10上で実行されるProject Brainwaveは、非常に困難なモデル上で、前例のないレベルの確かなリアルタイムAIのパフォーマンスを達成しています。我々は、今後数四半期にわたってこのシステムをチューニングするので、さらなる大幅なパフォーマンス改善を期待しています。

(Bingなどの我々のサービスを通した間接アクセスを補完して) お客様がProject Brainwaveから直接恩恵を受けられるように、我々は、この強力なリアルタイムAIシステムをAzureユーザーにもたらすための作業をしています。近い将来、我々は、いつAzureのお客様が自分の最も複雑な深層学習モデルを過去最高のパフォーマンスで実行できるようになるのかについての詳細を、明らかにする予定です。大規模に組み込まれた、お客様が利用可能なProject Brainwaveシステムによって、Microsoft Azureは、リアルタイムAI向けの業界トップの機能を持つことになります。

関連情報:


広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中