第2章 GPUの仕組み
- 2-1 GPUとは何か(CPUとの違い)
- 2-2 GPUが得意な処理・不得意な処理
- 2-3 並列処理の基本(SIMD / SIMT)
- 2-4 スレッドとワープ(実行モデル)
- 2-5 GPUのメモリ構造
- 2-6 CPUとGPUの協調動作
- 2-7 GPUの応用分野
第2章 GPUの仕組み
第2-2節 GPUが得意な処理・不得意な処理
GPU(Graphics Processing Unit)は、
同じ計算を大量のデータに対して同時に実行する
ことに特化した演算装置です。
もともとは画像描画のために設計されましたが、
現在では数値計算やシミュレーションなど、
幅広い分野で利用されています。
GPUが得意な処理
GPUが最も力を発揮するのは、次のような処理です。
- 画像や映像の各画素に対する同一計算
- 多数の点や頂点に対する座標変換
- 行列演算・ベクトル演算
- 物理シミュレーションにおける粒子計算
これらの処理に共通する特徴は、
「処理内容は同じで、対象となるデータだけが異なる」
という点です。
なぜGPUはそのような処理が速いのか
GPU内部には、非常に多くの演算器が配置されています。
これらは、同じ命令を同時に実行することを前提として設計されています。
そのためGPUでは、
- 命令切り替え
- 複雑な分岐制御
- 逐次的な処理管理
といった制御処理が最小限に抑えられています。
結果として、
演算器を大量に並べ、並列に計算を進めることができます。
GPUが不得意な処理
一方で、GPUが苦手とする処理も明確に存在します。
複雑な条件分岐
条件分岐が多い処理では、GPUの性能は大きく低下します。
GPUでは、多数のスレッドが同じ命令を同時に実行します。
もし分岐によって異なる処理が必要になると、
内部では両方の処理を順番に実行し、
不要な結果を捨てる動作が行われます。
これは並列性を損なう原因となります。
逐次処理や状態管理
- 前の計算結果が次の入力になる処理
- 処理順序が厳密に決まっている処理
- 排他制御やロックが必要な処理
これらはGPUには向いておらず、
CPUの方が適しています。
CPUとの役割分担
GPUはCPUの代わりではありません。
- 制御・判断・分岐 → CPU
- 大量の単純計算 → GPU
この役割分担によって、
全体として高い性能が実現されます。
技術計算・CADとの関係
CADや数値解析では、
同じ計算を多数の要素に適用する場面が多く存在します。
そのため計算部分をGPUに任せ、
制御やデータ管理をCPUが担当することで、
処理効率を大きく向上させることができます。
次節では、
GPUの並列処理がどのような実行モデルで実現されているのかを解説します。