FPGAでディープラーニングを加速:速度、柔軟性、エネルギー効率
FPGAでディープラーニングを加速:速度、柔軟性、エネルギー効率
私は最近、シリコンバレーで開催された2018年Xilinx開発者フォーラムに参加し、ニューラル ネットワークのFPGAへの展開におけるAI関連課題を解決したと主張するスタートアップMipsologyを知りました。大胆なビジョンで設立されたMipsologyは、従来の展開制約から解放され、あらゆるニューラル ネットワークを最高性能で加速できることをFPGAで実証しています。
Xilinxの新しいAlveoボードを使用し、Mipsologyは毎秒20,000枚以上の画像処理を、ResNet-50、Inception-V3、VGG-19を含む人気ネットワーク群で達成しました。
ニューラル ネットワークとディープラーニングとは
人間の脳のニューロンの網に着想を得たニューラル ネットワークは、ディープラーニング(DL)の基盤です。DLは、ネットワークに大量のデータを提示することで、タスクを自律的に遂行するよう学習させる数学的フレームワークです。ニューラル ネットワークの学習プロセス(数百万のラベル付きサンプルを提示)に続き、推論フェーズでは学習済みモデルが新しいデータに対する結果を予測します。
例えば、音声認識ネットワークは数千の音声録音で学習させ、その後リアルタイムで話し言葉を文字起こしするために展開されます。
なぜ推論に極限の性能が必要か
推論には、学習(一度しか行われない)よりも遥かに多く、毎秒数十億〜数兆回の加算と乗算が必要です。したがって、推論が本番AIシステムにおける計算需要の主要ドライバーとなっています。
ディープラーニング推論のための4つのハードウェア オプション
エンジニアは伝統的に4つのプロセッサ カテゴリに頼ってきました。電力消費が多く柔軟性が低い順に:CPU → GPU → FPGA → ASIC。以下の表に主な違いをまとめます。
CPU、GPU、FPGA、ASICのDLコンピューティング比較(出典:Lauro Rizzatti)
- CPUは最大の柔軟性を提供するが、DLワークロードでは高レイテンシと低スループットに悩まされる。
- GPUは大規模並列性を発揮するが、大量の電力を消費し、強力な冷却が必要。
- ASICは特定タスクに極めて効率的だが、長い開発サイクルと固定アーキテクチャのため、急速に進化するモデルには不向き。
- FPGAは高スループット、低消費電力、再構成可能性を兼ね備え、動的な推論ワークロードに最適。
なぜFPGAが推論で優れるか
最新FPGAは数百万のロジック エレメント、数千のDSPブロック、埋め込みメモリとARMコアを備え、すべて並列動作します。単一クロック サイクルで数百万の同時演算を引き起こし、DLワークロードに自然にマッピングされる毎秒数兆回の計算を可能にします。
CPU/GPUに対するFPGAの主な利点:
- 任意のデータ精度をサポートし、低精度演算でスループットを向上。
- 同等ワークロードでCPU/GPUの5〜10分の1の電力包絡線。
- 再構成可能:新しいモデル対応のために新しいシリコンを製造せず、同一デバイスをアップデート可能。
- デバイス スケーラビリティ:ハイエンド データセンター カードからコンパクトなエッジ モジュールまで、幅広い展開シナリオに対応。
課題とトレードオフ
強みがある一方で、FPGAには急峻な学習曲線があります。高性能設計には専用のハードウェア記述言語と並列処理の深い理解が必要で、ソフトウェア中心のワークフローに慣れたチームにとって障壁となり得ます。
それでも、速度、柔軟性、エネルギー効率の組み合わせを求める組織にとって、FPGAは今日のディープラーニング推論において最も魅力的なプラットフォームと言えます。
モノのインターネットテクノロジー
- ディープラーニング:インテリジェントオートメーションで産業を変革
- ディープラーニングがライフサイエンスの検査自動化に革命をもたらす
- AI、機械学習、ディープラーニングの違いを徹底解説
- AppleとIBM Watsonが提携、エンタープライズモバイル機械学習を強化
- 深穴加工で比類なき安定性を実現:ケナメタル油圧チャックエクステンション
- CEVA、エッジ深層ニューラルネット推論向け次世代AIプロセッサ「NeuPro-S」発表
- ニューロモルフィックチップ:AI性能の次なるフロンティア
- ICP Mustang-F100:リアルタイム ディープラーニング推論向けFPGAアクセラレーター
- ETSIが初のAIセキュリティ標準の青写真を公開
- 医療分野におけるAI・深層学習のアウトソーシング:データプライバシーの保護
- AIがハイテクセクターの指数関数的成長を牽引する役割