GPU
じーぴーゆー
大量の単純計算を並列実行するプロセッサ。描画専用から機械学習の主役へと役割を広げた。
概要
GPU(Graphics Processing Unit)は、大量の単純な計算を同時に実行することに特化したプロセッサです。もともとは3Dゲームの画面描画のために生まれましたが、「同じ計算を膨大なデータに一斉に適用する」という得意技が機械学習の計算とぴったり重なったことで、いまやAI時代の計算基盤の主役になりました。
CPUが「少数の賢いコアで複雑な処理を順にこなす」プロセッサだとすれば、GPUは「数千個の単純なコアで同じ処理を一斉にこなす」プロセッサです。汎用の何でも屋であるCPUに対し、GPUは特定の型の仕事だけを圧倒的な物量で片付ける専門家であり、両者は置き換えではなく分業の関係にあります。
なぜ生まれたか
3Dグラフィックスの描画は、画面上の何百万ものピクセルそれぞれについて「この点は何色か」を計算する仕事です。ピクセル同士の計算はほぼ独立していて、順番に処理する必要がありません。1990年代、ゲームの3D化が進むとCPUだけでは描画が追いつかなくなり、この「独立した同種の計算を大量に」という性質に特化した専用チップとしてGPUが登場しました。少数の高性能コアを磨くのではなく、単純なコアを可能な限り敷き詰めるという、CPUとは正反対の設計思想です。
転機は2006〜2007年頃、NVIDIAがCUDAという開発環境を公開し、GPUを描画以外の汎用計算に使う道(GPGPU)を開いたことです。そして2012年、画像認識コンテストでGPU学習させたニューラルネットワークが圧勝すると、深層学習の計算 — 実体はほぼ行列の掛け算 — がGPUの得意技そのものだったことが決定的になりました。ゲーム用の周辺機器だったGPUは、こうしてデータセンターの争奪戦の的へと変貌したのです。
詳細
CPUとGPU — 設計思想の対比
CPUのコアは、分岐予測や大きなキャッシュ、高速な逐次処理など「一つの流れをできるだけ速く進める」ための仕掛けにシリコンの大半を割いています。OSのスケジューリングやアプリのロジックのように、分岐が多く前の結果に次が依存する処理はCPUの領分です。対してGPUは、それらの仕掛けを削ってでも演算ユニットを数千個並べ、同じ命令を大量のデータに一斉に適用します(SIMD的な実行モデルと呼ばれます。Single Instruction, Multiple Data — 一つの命令で複数のデータを処理する方式です)。CPUのスレッドが数個〜数十個の世界なのに対し、GPUは数万のスレッドを同時に走らせることを前提に設計されています。
このため実際のプログラムでは両者が協調します。CPU上のプロセスがデータを準備してGPUのメモリへ転送し、計算カーネルを投げ、結果を回収する — GPUはあくまでCPUから仕事を委託される「アクセラレータ(加速装置)」です。このデータ転送がボトルネックになりやすく、「計算は速いのに転送で台無し」はGPUプログラミングの典型的な落とし穴です。
機械学習の主役になった理由
深層学習の学習も推論も、計算の中身はほぼ行列の掛け算です。行列積は「独立した掛け算と足し算の膨大な集まり」であり、GPUの並列実行モデルにこれ以上ないほど適合します。CPUで数週間かかる学習がGPUでは数日に縮む — この速度差は単なる快適さの問題ではなく、「試せる実験の回数」の差となってモデルの品質を直接左右します。近年のGPUは行列演算専用回路(NVIDIAのTensor Coreなど)まで搭載し、もはや「グラフィックス」の名を超えた機械学習向けプロセッサへ進化しています。同様の発想の専用チップ(GoogleのTPUなど)も登場していますが、CUDAを中心としたソフトウェア資産の厚みがNVIDIA製GPUの優位を支えています。
学習だけでなく推論でもGPUは重要です。LLMのような巨大モデルは、応答一回の計算量が膨大なうえ、モデル自体がGPUメモリ(VRAM)に収まるかどうかが動かせるか否かの分かれ目になります。「このモデルはVRAM何GBで動くか」は、LLM時代のインフラ選定の第一の質問です。
実務事情 — クラウドGPUとコスト
GPUサーバは高価で、最新のデータセンター向けGPUは1枚数百万円、電力と冷却の要求も桁違いです。そのため実務ではクラウドのGPUインスタンスを時間借りするのが基本形になっています。ただしGPUインスタンスは通常の仮想マシンの数倍〜数十倍の単価で、しかも需要過熱で「借りたくても空きがない」ことさえ珍しくありません。学習ジョブは中断可能な安価枠(スポットインスタンス)で回す、推論は使った分だけ課金されるサーバレス型のGPUサービスに寄せる、複数ジョブでGPUを共有するためにKubernetesでスケジューリングする、といったコスト工夫が定番です。
もう一つの実務知識は「GPUを使えば何でも速くなるわけではない」ことです。恩恵があるのは、分岐が少なく同種の計算が大量にある処理 — 機械学習、画像・動画処理、科学技術計算、暗号資産のマイニングなど — に限られます。Webアプリのビジネスロジックのような分岐だらけの処理はCPUのほうが速く、GPUに載せても遊ばせるだけです。「仕事の形がGPU向きか」を見極めることが、GPUという道具を使いこなす出発点になります。