- 第3章 FPGAの仕組み
章トップ(目次)
3-1 FPGAとは何か
3-2 論理回路の基本構成(LUT / FF)
3-3 配線資源とスイッチ構造
3-4 クロックと同期設計
3-5 FPGAの設計方法(HDL)
3-6 CPU・GPU・FPGAの違い
3-7 構成データと再構成
3-8 タイミング設計と制約(STA)
3-9 配置配線(Place & Route)
3-10 I/Oとピン制約
3-11 CPU・GPU・FPGAの本質的違い
▶ 第2章 GPUの仕組み
GPUのメモリ階層
GPUの性能は、
演算器の数だけで決まるわけではありません。
実際には、
メモリアクセスの効率
が性能を大きく左右します。
なぜメモリ階層が重要なのか
GPUでは、
数千のスレッドが同時に動作します。
そのため、
- 同時アクセスが多い
- 待ち時間が発生しやすい
という特徴があります。
GPUはこれを前提に、
明確なメモリ階層
を設計しています。
グローバルメモリ
グローバルメモリは、
GPUがアクセスできる
最も大容量のメモリ
です。
- 全スレッドからアクセス可能
- レイテンシが大きい
- 帯域は広い
そのため、
アクセス方法を誤ると、
性能が大きく低下します。
メモリコアレッシング
GPUでは、
ワープ内のスレッドが
連続したアドレス
にアクセスすることで、
メモリアクセスをまとめることができます。
これを
メモリコアレッシング
と呼びます。
共有メモリ
共有メモリは、
同一ブロック内のスレッドで
高速に共有できるメモリ
です。
- レイテンシが小さい
- 明示的に使用
- 容量は小さい
CPUのキャッシュとは異なり、
設計者が
使い方を決める必要
があります。
レジスタ
GPUのレジスタは、
各スレッド専用に割り当てられます。
レジスタ使用量が多すぎると、
同時に実行できるスレッド数が減り、
並列度が低下
します。
CPUとの比較
- CPU:自動キャッシュ制御
- GPU:設計者が配置を意識
GPUでは、
アルゴリズムとメモリ配置
が不可分です。
FPGAとの違い
FPGAでは、
メモリも回路の一部として配置されます。
GPUは、
既存のメモリ構造をどう使うか
が設計の焦点になります。