- 第2章 GPUの仕組み
- 章トップ(目次)
- 2-1 GPUとは何か
- 2-2 GPUコアの構造
- 2-3 並列処理の考え方
- 2-x GPUの実行モデル(SIMT)
▶ 第3章 FPGAの仕組み
GPUの実行モデル(SIMT)
GPUが高い性能を発揮できる理由は、
単に「コア数が多い」からではありません。
GPUは、
SIMT(Single Instruction, Multiple Threads)
と呼ばれる実行モデルを採用しています。
SIMTとは何か
SIMTとは、
1つの命令を複数のスレッドで同時に実行する
方式です。
CPUのSIMDと似ていますが、
GPUでは
スレッドという単位
で管理される点が異なります。
ワープ(Warp)という単位
GPU内部では、
複数のスレッドが
ワープ(Warp)
と呼ばれるグループにまとめられます。
- 1ワープ=同一命令を実行
- 分岐はワープ単位で制御
そのため、
ワープ内で異なる分岐が発生すると、
直列実行
になり性能が低下します。
なぜGPUは分岐が苦手なのか
GPUは、
「全スレッドが同じ処理をする」
ことを前提に設計されています。
そのため、
- 条件分岐が多い
- スレッドごとに処理が異なる
といった処理では、
本来の並列性を活かせません。
CPUとの決定的な違い
CPUは、
分岐や例外処理を高速に行うため、
複雑な制御回路を備えています。
GPUは、
そのような制御を最小限に抑え、
演算器を大量に配置
する設計を選びました。
GPUは「待ち時間を隠す」
GPUは、
メモリアクセスなどで待ちが発生すると、
別のワープを即座に実行
します。
これは、
FPGAのように
「待ちを作らない」のではなく、
待ちを見えなくする
設計思想です。
この節の位置づけ
SIMTモデルを理解することで、
- なぜGPUは高速なのか
- なぜ不得意な処理があるのか
が明確になります。
これは、
CPU・GPU・FPGA比較を理解するための
重要な前提知識
です。