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 アプリケーションに対応する最適のアーキテクチャーを選択できます。パワーとパフォーマンスに最適化され、幅広いコンピューターの種類に対応しているため、いつでも手持ちの案件に最適なツールを手に入れることができます。