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

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

人工知能 (AI) は、日々アップデートされるニューラル・ネットワーク・モデル、テクニック、そしてユースケースに応じて急速に進化しています。すべてのマシンラーニングやディープラーニングのアプリケーションに最適な単一のアーキテクチャーはありませんが、FPGA は GPU やその他のタイプのハードウェアに比べて明確な利点を提供できます。

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 ディープラーニング・アクセラレーション・スイート は、インテル® FPGA での推論を加速できるツールや最適化されたアーキテクチャーを提供します。OpenVINO™ ツールキットとのインターフェイスにより、カスタム・ネットワークをサポートするスケーラビリティーを提供します。
インテル® FPGA SDK for OpenCL* ソフトウェア・テクノロジーは、インテル® CPU とインテル® FPGA の両方をターゲットとする開発を加速します。開発者は、インテル® FPGA の独自の機能を活用して、低い電力効率と低いレイテンシーのアクセラレーションを提供できます。
インテル® FPGA ディープラーニング・テクノロジー・ソリューションは、開発時間とコストを削減するために、さまざまな製品ファミリーとソフトウェア・ツールを展開しています。ディープラーニングのユースケースで特に力を発揮するハードウェア製品は次のとおりです:
インテル® Stratix® 10 NX FPGA は、インテル初の AI に最適化された FPGA です。行列同士の積または行列ベクトル積向けに調整された AI Tensor ブロックが、AI に最適化された新しい種類のブロックとして組み込まれています。

インテル® Agilex™ FPGA および SoC は、最大 40% 高いパフォーマンスを実現し、2 また最大 40% 低消費電力2  をデータセンター、ネットワーク、エッジ・コンピューティングの用途で実現しました。

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

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

インテルは AI の普及のために、FPGA、GPU、ASICアクセラレーター、汎用コンピューティング向けの CPU の 4 種類のシリコンを提供しています。全てのアーキテクチャーは特有のニーズに対応するため、インフラストラクチャー設計者は、各 AI アプリケーションに対応する最適のアーキテクチャーを選択できます。パワーとパフォーマンスに最適化され、幅広いコンピューターの種類に対応しているため、いつでも手持ちの案件に最適なツールを手に入れることができます。

人工知能に関する追加リソース

コンピューター・ビジョン、機械学習、ディープラーニングなど、さまざまなハードウェアの種類で AI を導入するための最新のテクノロジーをご覧ください。

AI 向けインテル® FPGA

インテル® FPGA により、市場投入が早く、スケーラブルでカスタマイズ可能なソリューションを提供できます。

詳細

AI 向けのインテル® FPGA テクノロジー・ソリューション

インテル® FPGA ハードウェア、インテル® ディストリビューションの OpenVINO™ ツールキット、インテル® FPGA ディープラーニング・アクセラレーション・スイートについてご覧ください。

詳細

インテル® AI テクノロジー

AI アプリケーションをシームレスに構築し、大規模に展開しやすくするインテル® ハードウェアとソフトウェア・ツールをご覧ください。

詳細

インテル® テクノロジーを使用するには、対応するハードウェア、ソフトウェア、またはサービスの有効化が必要となる場合があります。

絶対的なセキュリティーを提供できる製品やコンポーネントはありません。

コストと結果は状況によって変わります。

インテルは、サードパーティーのデータについて管理や監査を行っていません。正確さを評価するには、他のソースを参照する必要があります。

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® SSE2、インテル® SSE3、インテル® SSSE3 命令セットなどの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 

免責事項

2 この比較は、インテル® Agilex® FPGA および SoC ファミリーと、インテル® Stratix® 10 FPGA によるシミュレーション結果に基づいており、変更されることがあります。本資料には、開発中の製品、サービス、プロセスに関する情報が含まれています。ここに記載されているすべての情報は、予告なく変更されることがあります。最新の予測、スケジュール、製品仕様、ロードマップをご希望の方は、インテルの担当者までお問い合わせください。