FPGA と GPU

ディープラーニングのための FPGA と GPU

FPGA は、低レイテンシーと柔軟性を必要とするディープラーニング・アプリケーションに最適な選択肢です。

FPGA ディープラーニングのメリット:

  • FPGA は、さまざまな機能を持つように再プログラムできる回路を搭載し、驚異的な柔軟性とコスト効率を実現させます。

  • GPU に比べると、FPGA は低レイテンシーが重視されるディープラーニングのアプリケーションで優れたパフォーマンスを発揮します。

  • FPGA は、電力効率とパフォーマンスの要件のバランスをとって細かく調整することができます。

author-image

投稿者:

FPGA とは?

Field Programmable Gate Array (FPGA) は、プログラム可能なハードウェア・ファブリックを搭載した集積回路です。グラフィックス・プロセシング・ユニット (GPU) や ASIC とは異なり、FPGA チップ内の回路の内容は固定されていないため、必要に応じて再プログラムできます。この機能により、FPGA は長い開発期間や膨大な設計や製作の投資額を要する ASIC に代わる優れた代替手段となります。

テクノロジー業界では近年になって、機械学習とディープラーニングに FPGA を採用するようになりました。2010 年に、Microsoft Research は、ウェブ検索を加速するための取り組みの一部として、FPGA 上で AI のユースケースの 1 つを実証しました。[f : Project Catapult、Microsoft*、microsoft.com/en-us/research/project-catapult/] FPGA は、カスタムの特定用途向け集積回路 (ASIC) を開発するコストや複雑性を伴うことなく、高速性、プログラム可能性、柔軟性を組み合わせたパフォーマンスを発揮します。5年後には Microsoft* の Bing 検索エンジンは FPGA を使用し、ディープラーニングへの応用の価値を証明しました。FPGA を使用して検索ランキングを加速し、Bing は、スループットで 50% 増を実現しました。[f : Project Catapult、Microsoft*、microsoft/en-us/research/project-catapult/]

ディープラーニングで FPGA を採用する理由

画像認識などの初期の AI ワークロードは、並列化に大きく依存しています。GPU は、ビデオやグラフィックスのレンダリングに特化しているため、機械学習とディープラーニングでの使用が普及してきました。GPU は並列処理に優れ、非常に多くの算術演算を同時に実行します。つまり、同じワークロードを何度も繰り返し実行しなければならない場合に、驚くほどの加速を発揮します。

しかし、GPU 上で AI を実行する場合には制約があります。GPU は、特定のディープラーニングのワークロード向けに構築されたチップである ASIC ほどのパフォーマンスを発揮しません。

FPGA は、統合型 AI を搭載したハードウェアのカスタマイズを可能にし、GPU または ASIC と同様の動作を行うようプログラムすることができます。FPGA の再プログラムできる再構成可能な性質により、急速に進化する AI を取り巻く環境との相性が良く、設計者はアルゴリズムを迅速にテストし、市場投入までの期間を短縮します。FPGA は、ディープラーニングのアプリケーションやその他の AI ワークロードに優れたメリットをいくつか備えています:

高スループットと低レイテンシーで優れたパフォーマンスを発揮: FPGA は、CPU を介してビデオストリーミング、文字起こし、行動認識などのリアルタイムのアプリケーションの確定的なレイテンシーや本質的に低いレイテンシーを発揮します。設計者は、ゼロからニュートラル・ネットワークを作り上げ、モデルに最適な FPGA を構築できます。
優れた価値とコスト: FPGA はさまざまな機能やデータタイプのために再プログラム化できるため、最もコスト効率の高いハードウェアの選択肢の 1 つになります。さらに、FPGA は、AI 以外にも活用できます。追加の機能を同じチップに統合することで、設計者はコストとボードの占有面積を節約できます。FPGA は長い製品寿命を持ち、FPGA を搭載したハードウェア設計の場合、製品寿命を数年または数十年単位で伸ばします。この特徴から、産業防衛、医療、自動車市場での使用に最適です。
低消費電力: FPGA により、設計者はハードウェアをアプリケーションに合わせて微調整し、電力効率の要件を満たすことができます。また、FPGA は、複数の機能に対応し、チップからより多くのエネルギー効率を発揮します。FPGA のチップ全体ではなく、機能に合わせて FPGA の一部を使用することができるため、FPGA は複数の機能を並列で実行できます。 

FPGA における AI とディープラーニングの使用例 

FPGA は、音声認識やその他の自然言語処理ワークロードなど、アプリケーションが低レイテンシーと小さいバッチサイズを要求するときに、GPU を超えるパフォーマンスの優位性を発揮します。FPGA は、プログラム可能な I/O インターフェイスと高度に柔軟なファブリックにより、次のタスクに適しています:

I/O ボトルネックの克服。 FPGA は、データが低いレイテンシーでさまざまなネットワークを横断する必要がある場面で頻繁に使用されます。また、AI システムのパフォーマンスで最も制限になる要因として挙げられるメモリー・バッファリングの排除や、I/O ボトルネックを克服する際に驚くほど便利です。データの取り込みを加速することにより、FPGA は AI のワークフロー全体を高速化することができます。
AI のワークロードへの統合。 FPGA を使用することで、設計者はディープ・パケット検査や金融詐欺検出などの AI 機能を既存のワークロードに追加することができます。
センサーの融合化。FPGA は、カメラ、LIDAR、オーディオ・センサーなど、複数のセンサーからのデータ入力を処理することに長けています。この機能は、自動運転車両、ロボット、産業機器の設計にとって非常に貴重です。
高性能コンピューティング (HPC) クラスターにアクセラレーションを提供。 FPGA は、推論のためのプログラム可能なアクセラレーターとして機能することで、AI と HPC の融合を容易にすることができます。1
AI を上回る機能の追加。 FPGA は、チップを追加することなく、セキュリティー、I/O、ネットワーク、または前処理 / 後処理機能を追加できます。

インテル® FPGA ソフトウェア & ハードウェア

FPGA を使用する際に障壁となり得るものの 1 つとして、ハードウェアには通常、専門的なプログラミングと専門知識を要する点があります。インテルは、ソフトウェア・ベースのプログラミング・モデルにより、必要とされる専門知識を減らすように努めています。この高級言語による FPGA プログラミング・モデルにより、データ・サイエンティストやモデル開発者が、TensorFlow や Caffe などの共通 AI フレームワークを使用して、ニューラル・ネットワークを作成し、FPGA のアーキテクチャーの詳細を把握していなくても FPGA 上で展開できます。インテルは、プログラミング FPGA をこれまで以上に容易にするツールを開発しました:

インテル® ディストリビューションの OpenVINO™ ツールキットはコンピューター・ビジョン開発者に、FPGA など複数のハードウェア・プラットフォーム全体でモデルを高速化できる単一のツールを提供します。
インテル® FPGA AI スイートは、インテル® FPGA での推論を加速できるツールや最適化されたアーキテクチャーを提供します。OpenVINO™ ツールキットとのインターフェイスにより、カスタム・ネットワークをサポートするスケーラビリティーを提供します。
オープン FPGA スタック (OFS) は、カスタム FPGA ベース・プラットフォームおよびワークロード開発向けのフレームワークを提供する、オープンソースのソフトウェアとハードウェアのインフラストラクチャーです。すべてのソースコードは GitHub で入手できます。

インテル® FPGA ディープラーニング・テクノロジー・ソリューションは、開発時間とコストを削減するために、さまざまな製品ファミリーとソフトウェア・ツールを展開しています。ディープラーニングのユースケースで特に力を発揮するハードウェア製品は次のとおりです:

Intel Agilex® 5 FPGA および SoC は、高効率の AI およびデジタル信号処理 (DSP) 機能を提供する、業界初の AI テンソルによる拡張 DSP ブロックを特長とするミッドレンジの FPGA です。この製品ファミリーは、前世代のインテル® FPGA と比較して、平均 50% 高いファブリック性能と最大 42% 低い総消費電力を実現します2

AI 向けのインテルのポートフォリオ

AI の導入が進むに伴い、エンドポイントのデバイスから、エッジサーバー、データセンターまで、AI の用途や環境は驚くほど多様化します。すべての AI アプリケーションの要件を満たす単一のアーキテクチャー、チップ、フォーム・ファクターはありません。インフラストラクチャー設計者は、自分が選択したアーキテクチャーに繋げられる必要があります。

インテルは AI の普及のために、FPGA、GPU、加速のための ASIC、汎用コンピューティング向けの CPU の 4 種類のシリコンを提供しています。全てのアーキテクチャーは特有のニーズに対応するため、インフラストラクチャー設計者は、各 AI アプリケーションに対応する最適のアーキテクチャーを選択できます。消費電力とパフォーマンスが最適化された幅広いコンピューティング・タイプに対応しているため、いつでも目の前の業務に最適なツールを利用できます。