CPUとGPU
難解な数学の問題を一人で次々と解く「天才教授」と、簡単な足し算数万問を手分けして一斉に解く「小学生数千人」のチームワークのようなものです。
定義 CPUはコンピュータの頭脳として、複雑で多様な命令を順番通りに素早く処理する中央処理装置です。一方、GPUは数千個の小さな計算コアが集まり、単純で反復的な計算を一斉に同時処理する画像処理装置です。
天才教授1人と小学生数千人の違い
コンピュータの中で、CPUとGPUは働き方がまったく異なります。CPUは少数の極めて優秀な作業員(コア)で構成されています。複雑な論理判断やプログラムの実行のように、段階を踏んで深く考える必要がある作業にとても強いのが特徴です。一度に1つずつ問題を解決していく直列処理方式を採用しています。
それに対してGPUは、単純な計算が得意な作業員が数千人も集まっている構造です。微積分のような難しい問題は解けませんが、1+1のような簡単な計算なら瞬く間に数万問を終わらせてしまいます。膨大なデータを同時に分散して解く並列処理方式に特化しているからです。
もし難問10問を順番に解かなければならないならCPUのほうが圧倒的に速いです。しかし、簡単な足し算10万問を1秒で終わらせる必要があるなら、数千人で一気に取り掛かるGPUのほうが圧倒的に速くなります。
画面の描画からAIまで、GPUの大活躍
GPUはもともと、モニターにゲーム画面や3Dグラフィックスを表示するために作られました。画面は数百万個の点(ピクセル)で構成されていますが、各ピクセルの色や明るさを計算する作業は、極めて単純な演算の繰り返しです。数千個のコアがピクセルを1つずつ分担し、同時に画面を描く作業にうってつけだったのです。
ところが近年、人工知能(AI)ブームが巻き起こったことでGPUの需要が爆発しました。ディープラーニングなどのAI学習も、中身を見れば巨大な数値の塊(行列)をひたすら掛け算・足し算する作業だからです。高度な推論というよりも、とてつもない量の単純計算をひたすらこなす必要があります。
結局のところ、グラフィックスを素早く描くために作られた作業員たちが、AIの膨大なデータ学習にも完璧にフィットしたことで、GPUは今や人工知能発展のコアエンジンとして確固たる地位を築きました。
もう少し詳しく言うと:2人はライバルではなく名コンビ
CPUとGPUのどちらが優れているかを比べることには意味がありません。両者は得意分野がまったく異なり、コンピュータの中で完璧なチームワークを発揮して働いているからです。全体の指揮官は依然としてCPUです。
OSを動かし、マウスのクリックを検知し、どのプログラムを実行するか判断するといった全体の管理はすべてCPUが担っています。その中で、ゲームの描画演算やAIモデルの計算のような重く大規模な計算が必要になると、GPUへ作業の塊を委託します。
もう少し正確に言えば、GPUは単独ではパソコンを起動することすらできません。CPUという頼もしい司令塔が全体の処理を統制し道筋をつけてくれて初めて、GPUはその性能をフルに発揮できるという相互補完的な関係なのです。
🤔 よくある誤解
GPUさえ高性能なら、CPUが低スペックでもパソコンは絶対に速くなる。
GPUがいくら優秀でも、作業全体を指揮してデータを送るCPUが遅いと、GPUに仕事が届かず処理が滞る「ボトルネック現象」が発生してしまいます。
GPUはCPUよりあらゆる面で優れた上位互換のパーツである。
GPUは大量の単純計算に特化しているだけです。プログラムの制御や複雑な論理判断といったコンピュータの根幹となる作業は、依然としてCPUにしかこなせません。
🧺 日常で出会う場面
CPUは複雑な仕事を順番に指揮する「頭脳」であり、GPUは単純な大量計算を一斉にこなす「作業部隊」です。