宇宙誕生の少し前から宇宙終焉の少し先までを数で表す論文

この宇宙を数で表すことは出来るのか。

第3-1節 FPGAとは何か

3-1 FPGAとは何か

FPGA(Field Programmable Gate Array)とは、
利用者が自由に回路構成を変更できる集積回路です。
CPUやGPUが「決められた命令セットを実行する装置」であるのに対し、
FPGAは処理そのものの構造をハードウェアとして作り替える点が最大の特徴です。

プログラムではなく「回路」を作る

CPUやGPUでは、プログラムは命令列として解釈され、
クロックに同期して順序よく実行されます。
一方FPGAでは、プログラムを書くというよりも、
論理回路を記述して配置・配線するという考え方になります。

その結果、条件分岐やループといった概念は、
ソフトウェアの制御構文ではなく、
回路の並列構造として実現されます。

CPU・GPU・FPGAの基本的な違い

項目 CPU GPU FPGA
処理単位 命令 多数の同一命令 回路そのもの
並列性 限定的 非常に高い 完全に自由
柔軟性 高い 中程度 設計次第
遅延 命令実行分の遅延 スレッド管理の遅延 最小(回路遅延のみ)

なぜFPGAは高速なのか

FPGAが高速である理由は、
命令解釈やスケジューリングを行わないためです。
一度回路が構成されれば、入力信号がそのまま
論理回路を通過して出力へ伝搬します。

これは、あなたが13歳の頃に
構文を分解してマシン語へ変換できると気づいた体験
と本質的に同じです。
FPGAではさらに一歩進み、
「命令」すら存在しない世界になります。

FPGAが向いている用途

  • 低遅延が重要な信号処理
  • 決まった計算を高速に繰り返す処理
  • ハードウェアレベルでの並列化
  • CPUやGPUでは無駄が多い専用処理