3-11 CPU・GPU・FPGAの本質的な違い
ここまで、
CPU・GPU・FPGAそれぞれの仕組みを見てきました。
本節では、
「何が違うのか」ではなく
「なぜ違うのか」
という観点で整理します。
CPU:命令を順に実行する汎用処理装置
CPUは、
- 命令を1つずつ取り出し
- 順序通りに実行する
ことを基本とした設計です。
柔軟性が高く、
あらゆる処理を記述できますが、
並列性は限定的です。
GPU:同じ命令を大量のデータに適用する
GPUは、
- 同じ処理
- 大量のデータ
を同時に扱うために最適化されています。
画像処理やAI推論のように、
処理内容が揃っている場合
に非常に高い性能を発揮します。
FPGA:処理そのものを回路として構成する
FPGAは、
- 命令を実行する
- プログラムを解釈する
という考え方を持ちません。
処理の流れそのものを回路として作る
点が最大の特徴です。
決定的な違いは「時間の扱い方」
CPU・GPUでは、
処理時間は
命令の並びと実行回数
に依存します。
FPGAでは、
処理時間は
回路の遅延として決まります。
そのため、
- 遅延が一定
- リアルタイム性が高い
- 予測可能な動作
が得られます。
用途による使い分け
- 制御・汎用処理 → CPU
- 画像処理・AI → GPU
- リアルタイム・専用処理 → FPGA
どれが優れているかではなく、
目的に合った選択
が重要です。
第3章のまとめ
FPGAは、
- 論理
- タイミング
- 配置配線
- 物理I/O
すべてを設計者が意識する、
最もハードウェアに近い計算機
です。
この特性こそが、
CPU・GPUでは代替できない
FPGAの価値を生み出しています。