GPU(描画・並列計算)— 同じ計算を大量にこなす職人

概要 — まず全体をつかむ

画面をなめらかに描いたり、AIの計算を高速にこなしたり。それを支えるのがGPU(画像処理装置)。同じ計算を大量に、いっせいにこなす職人です。

詳細 — 1段階ずつ追う

これは何をする係?

CPUが「少人数の万能な料理人」なら、GPUは「大人数の単純作業チーム」。小さな計算コアを何千個も持ち、同じ計算を一斉に走らせます。

グラフィックボード
GPU — 大量の並列計算を担う拡張カード

画面は無数の点(ピクセル)の集まり。それを同時に塗るのが得意なので、もともとは画面描画(Graphics)のための部品でした。

この部分をもっと深く(中級

GPUは、多数の単純なコア(シェーダコア/CUDAコアなど)を数千個そなえ、同じ命令を別々のデータへ一斉に適用します。この方式を SIMT(Single Instruction, Multiple Threads)と呼びます。

アニメーション『CPUとGPU(少数万能 vs 大量並列)』を開く
CPU と GPU の違いコアの「数」と「使い方」が正反対CPU少数(数個)の万能で速いコアコア速い・万能コア速い・万能コア速い・万能コア速い・万能処理のしかた ── 順番に1つずつ仕事1仕事2仕事3コア(1つ)複雑な仕事を、順番に1つずつ処理GPU多数(数千)の単純なコア小さな単純コアが何千個も処理のしかた ── いっせいに並列で同じ計算×大量配って、全コアで同時に描画・AIなど「同じ計算の大量繰り返し」はGPUが得意
  • オフロード — CPUが全体を制御し、重い並列計算だけをGPUへ渡す(丸投げして結果を受け取る)
  • VRAM — GPU専用の高速メモリ。数千コアへデータを供給するため、広いメモリ帯域が命
  • スレッドの束 — 多数のスレッドをまとめ(ワープ/ウェーブ)、同じ命令で流す

登場人物メモ:

  • ※1 シェーダコア/CUDAコア — GPU内の小さな演算ユニット。単純だが数が多い
  • ※2 メモリ帯域 — 1秒あたりに読み書きできるデータ量。コアが多いほど帯域が効く

CPUとの違い

  1. CPU — 複雑な処理を、順序立てて、少数で
  2. GPU — 単純な計算を、大量に、同時並行で

「1人の天才 vs 大勢の作業員」。仕事の性質でどちらが向くかが変わります。

アニメーション『CPUとGPU(少数万能 vs 大量並列)』を開く
CPU と GPU の違いコアの「数」と「使い方」が正反対CPU少数(数個)の万能で速いコアコア速い・万能コア速い・万能コア速い・万能コア速い・万能処理のしかた ── 順番に1つずつ仕事1仕事2仕事3コア(1つ)複雑な仕事を、順番に1つずつ処理GPU多数(数千)の単純なコア小さな単純コアが何千個も処理のしかた ── いっせいに並列で同じ計算×大量配って、全コアで同時に描画・AIなど「同じ計算の大量繰り返し」はGPUが得意
この部分をもっと深く(中級
  1. CPU — 少数の高性能コア。分岐予測やキャッシュで複雑・逐次な処理を速く
  2. GPU — 多数の単純コア。同じ計算を大量並列(スループット重視)に

設計思想が逆です。CPUは1つの仕事を速く終わらせる(レイテンシ重視)、GPUは大量の仕事をまとめてこなす(スループット重視)。だから両者は役割分担し、CPUが制御役・GPUが計算役になります。

描画以外の使いみち

同じ計算を大量に行う性質は、描画以外にも効きます。

  • AI・機械学習 — 大量の掛け算・足し算をまとめて処理
  • 動画のエンコード/編集 — 大量のピクセル処理
  • 科学計算・シミュレーション — 並列で回せる計算

近年GPUが注目されるのは、この「並列計算」がAIと相性抜群だからです。

この部分をもっと深く(中級

描画(グラフィックス)で培った並列演算は、汎用計算にも転用されました。これを GPGPU(General-Purpose computing on GPU)と呼びます。

  • AI・機械学習 — 行列積など大量の積和演算を一括処理。学習・推論の主役
  • 動画エンコード/編集 — 大量のピクセル処理を並列化
  • 科学計算・シミュレーション — 流体・物理など並列化しやすい計算

こうした計算を書くための API も整いました。CUDA(NVIDIA専用)、OpenCL(汎用)、描画では Vulkan/DirectX/Metal などです。近年GPUが注目されるのは、この並列計算がAIと相性抜群だからです。

⚠️ うまくいかないとき

  • 発熱・消費電力が大きい — 大量に動くぶん、電気と冷却を食う
  • 並列にできない処理は苦手 — 順番に依存する処理はCPU向き
  • 無くても動く — 簡単な用途ならCPU内蔵のグラフィック機能で足りることも
この部分をもっと深く(中級
  • 分岐が多い処理は苦手 — スレッドごとに進む道が分かれる(分岐ダイバージェンス)と、束で揃えられず並列度が落ちる
  • 逐次依存が強い処理 — 前の結果を待つ処理はCPU向き
  • メモリ帯域の壁 — 計算よりデータ供給が追いつかないと、コアが遊ぶ
  • 発熱・消費電力が大きい — 大量に動くぶん電力と冷却を食う。冷却不足でクロックが落ちることも

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. GPUが特に得意なのは?

2. CPUとGPUの得意分野の違いに近いのは?

3. GPUがもともと作られた目的に最も近いのはどれ?

4. GPUが特に力を発揮しやすいのはどれ?

5. GPUの弱点(うまくいかないとき)として正しいのはどれ?

6. メールやネット閲覧など簡単な用途しか使わない場合、GPUについて言えるのはどれ?

7. GPU を日本語で言うと「○○処理装置」です。○○に入る言葉を答えてください。

8. 近年GPUが特に注目される最大の理由は、GPUの並列計算が「ある分野」と相性抜群だからです。その分野を英字2文字で答えてください。