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

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

第3−7節 GPUの実行モデル(SIMT)


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比較を理解するための
重要な前提知識
です。