スマートフォンの顔認識や画像生成が速くなると、「GPUが強いから」と説明されることがあります。
でも、CPUとGPUは、単純な上位・下位の関係ではありません。
CPUも並列処理をしますし、GPUも何でも速いわけではありません。
違いの中心は、少数の複雑な仕事を柔軟に進めるか、大量の似た仕事を同時に流して総量を増やすか、という設計の重点です。
CPUとGPUは、コンピューターのどこにいるのか
CPUとGPUはどちらも計算を担うプロセッサですが、コンピューターの中で受け持つ役割が少し違います。CPUはOS、アプリケーション、入出力、条件分岐、処理の順番を管理する中心的な汎用プロセッサです。GPUはもともと画面に表示する画像を作る装置として発達しましたが、現在は一般の並列計算を実行するアクセラレータとしても使われます。
アクセラレータとは、CPUだけで行うより適した仕事を、別の計算資源へ任せるためのプロセッサです。ディスクリートGPUを使う場合、CPUをhost、GPUをdeviceと呼び、CPUがデータを準備してGPUのkernel(GPU上で実行する計算プログラム)を起動する形が典型です。ただし、統合型GPUやcoherentな構成など、メモリの見え方は製品と接続方式で異なります。
CPUは、複雑な命令列を柔軟に進める
CPUの強みは、計算を一つずつしかできないことではありません。現代の高性能CPUは、複数コア、SIMD(1つの命令で複数データを扱う方式)、SMT、命令レベル並列性などを使って並列に働きます。重要なのは、少数のスレッドでも処理を前へ進められるよう、制御へ多くの回路を使っている点です。
たとえば、プログラムに「条件が成立したらA、成立しなければB」という分岐があるとします。CPUは分岐予測で次に必要になりそうな命令を先に取り込み、実行できる命令を探し、命令同士の依存関係を見ながら順序を調整します。Out-of-Order Execution(OoO、順番を入れ替えた実行)は、前の命令の結果を待つ間に、独立した別の命令を進める仕組みです。
このため、CPUコアには命令フェッチ、デコード、スケジューラ、整数・浮動小数点・ベクトルの実行ユニット、ロード/ストア機構、レジスタ、キャッシュ、分岐予測器などが組み合わされています。キャッシュは、よく使う命令やデータをプロセッサに近い場所へ置き、メインメモリまで取りに行く待ち時間を減らす記憶領域です。
GPUは、大量の似た仕事を演算資源へ配る
GPUの強みは、たくさんの独立したデータへ同じ種類の演算を適用しやすいことです。GPUは多数のスレッドを保持し、スレッドのまとまりをスケジュールします。NVIDIAではwarp、AMDではwavefrontなど、呼称は異なりますが、同じ命令を複数のデータへ適用するSIMD/SIMT的な考え方が中心です。
GPUは、あるスレッド群がメモリ待ちになったとき、別のスレッド群を実行することで演算器を空けにくくします。個々のスレッドが最短で終わることより、全体として一秒あたりにどれだけ仕事を終えられるかを重視する考え方です。これがスループットです。
ただし、GPUが常に全laneを使えるわけではありません。同じグループのスレッドが同じ経路を進むなら効率よく動けますが、半分がA、半分がBへ分岐すると、経路を順番に処理している間に一部laneが待つことがあります。これをbranch divergence(分岐発散)と呼びます。GPUは分岐命令を実行できないのではなく、同じグループ内で経路がばらばらになると利用率が下がり得るのです。
「CPUは直列、GPUは並列」では足りない
CPUとGPUを説明するとき、「CPUは直列、GPUは並列」と言いたくなります。しかしこれは入口としても補足が必要です。CPUもマルチコア、SIMD、SMT、OoOで多くの処理を並行して進めます。一方、GPUもスレッドを一つずつ魔法のように同時完了させるのではなく、スレッド群をスケジューラが切り替えながら演算器へ流しています。
より正確な言い方は、「CPUは少数の複雑な仕事を低レイテンシで柔軟に進めることへ重点を置き、GPUは大量のデータ並列性を前提に総スループットを高めることへ重点を置く」です。レイテンシは一つの仕事が終わるまでの待ち時間、スループットは単位時間に終わる仕事の量です。
AIでGPUが多く使われるのは、行列計算が大量にあるから
AIとGPUの相性を一言で言うなら、「同じ種類の計算を、非常に多くのデータへ繰り返す構造があるから」です。ニューラルネットワークでは、入力データと重みを掛け合わせて足し合わせる積和演算が大量に現れます。層の計算には行列積、ベクトル演算、畳み込みなどが使われ、これらはデータを分割して複数の演算資源へ配りやすい場合があります。
行列積を例にします。行列Aと行列Bから行列Cを作るとき、Cの各要素はAの行とBの列の積を足し合わせて求めます。Cを小さなタイルへ分け、それぞれを別のthread blockへ割り当てれば、たくさんの計算を並行して進められます。GPUがAIを速くするのは、「AI」という名前に特別な効果があるからではなく、こうしたデータ並列なkernelを多数の演算資源で処理しやすいからです。
畳み込みも、画像や特徴マップの局所領域へ同じような計算を繰り返します。実装によっては行列積に近い形へ変換してGPUで処理します。ただし実際のAI処理には、活性化関数、正規化、データ配置、インデックス処理、メモリ移動、複数装置間の通信なども含まれます。すべてが同じ割合でGPU向きとは限りません。
ここまで読んで「GPUはAI専用の部品なのか」と感じたら、答えは違います。GPUは、画像処理、科学計算、シミュレーションなど、十分なデータ並列性がある仕事にも使われます。AIとの接点は、GPUの出自ではなく、計算の形にあります。
GPUを使えば何でも速いわけではない
GPUの演算器を十分に働かせるには、独立した仕事がまとまって存在し、データを効率よく読み書きできる必要があります。仕事が小さすぎると、GPU kernelを起動する準備やCPU-GPU間のデータ転送にかかる時間が、計算そのものより大きくなることがあります。
また、前の計算結果が出ないと次へ進めない強い直列依存、スレッドごとに違う分岐、ばらばらなメモリアクセスなどがあると、GPUの資源を使い切りにくくなります。ディスクリートGPUでは、CPU側のメモリとGPU側の高速メモリの間でデータを移す設計もあり、転送量や接続方式が実行時間へ影響します。
そのため、「GPUの方が高性能」という表現だけでは判断できません。1スレッドの待ち時間、全体のスループット、メモリ帯域、実際のアプリの完了時間、性能あたりの電力など、どの指標を比べるかを決める必要があります。同じGPUでも、プログラムの書き方やデータの配置で結果が変わります。
CPUとGPUを比べるときは、設計資源の配分を見る
CPUとGPUの違いは、単なるコア数やクロック数だけでは表せません。CPUは、分岐予測、命令の順序調整、キャッシュ、複雑な制御などへ相対的に大きな資源を割きます。GPUは、製品ごとの差はあるものの、多数の演算laneやスレッドを保持する仕組み、メモリ帯域、行列向け演算器などへ重点を置きます。
「GPUには何千個ものCPUがある」という説明が危険なのは、同じ“core”という言葉でも中身の粒度が違うからです。CPUコアは一つの複雑な命令列を扱う機能のまとまりであり、GPUで数えられる演算laneやCUDA coreなどは、GPU内部の別の階層にある実行資源です。数だけを並べても、性能の意味は揃いません。
| 見る項目 | CPUの設計傾向 | GPUの設計傾向 |
|---|---|---|
| 主な目標 | 少数スレッドの低レイテンシと汎用性 | 大量スレッドの総スループット |
| 制御 | 分岐予測・OoOなどで複雑な流れに対応 | スレッド群をまとめてスケジュール |
| 得意な仕事 | OS、制御、分岐、順序依存 | 行列、ベクトル、画像、大量独立データ |
| 注意点 | 超大規模な同型並列では資源を活かしにくい場合 | 小規模、分岐発散、転送支配で不利な場合 |
CPU・GPUの違いから用途を決める
CPUとGPUの違いを学んだら、実際に使うソフトと処理を一つ決め、対応GPU、データの大きさ、メモリ、OSを確認します。コア数の大小だけで買い替えず、今のPCで試せる範囲と本体更新を比較しましょう。公開情報の要約や文章作成に使う生成AIの学習も別の入口です。生成AIをクラウドで使う場合と、自宅でモデルを実行する場合では必要なPC条件が異なります。
比較前の確認メモ:使用ソフト、対応GPUとVRAM、CPU・主メモリ、処理時間と予算。今の環境で試せる範囲と、更新が必要な箇所を分けてから候補を選びましょう。
AIはGPUだけで動くわけではない
AIでGPUが多く使われるからといって、GPUがAIの必要条件ではありません。TensorFlowはCPUとGPUの双方を計算デバイスとして扱います。GoogleのTPUは機械学習向けの専用ASIC(特定用途向け集積回路)で、大規模な行列演算を中心に設計されています。IntelのNPUも、深層学習を支援するアクセラレータの例です。
つまり、AI処理ではCPU、GPU、TPU、NPUなどを、必要なレイテンシ、スループット、メモリ容量、電力、ソフトウェア対応に応じて使い分けます。CPUが前処理や制御を担当し、GPUや専用アクセラレータが行列演算を担当する分担もあります。端末上の推論では、電力や応答時間を重視して別の構成を選ぶこともあります。
よくある誤解を整理する
CPUは1個ずつしか計算できませんか?
いいえ。CPUもマルチコア、SIMD、SMT、命令レベル並列性などを使います。違いは、GPUよりも少数の複雑な命令列を低レイテンシで柔軟に進めることへ重点がある点です。
GPUはCPUの上位互換ですか?
いいえ。小規模な処理、強い直列依存、分岐発散、データ転送が支配的な処理では、GPUの演算資源を活かしにくいことがあります。CPUとGPUは協調して使う設計が代表的です。
GPUのコア数が多いほど、必ずAIが速いですか?
いいえ。コアという言葉の粒度がCPUとGPUで異なり、メモリ帯域、行列向け演算器、データ配置、ソフトウェアなども結果へ影響します。数だけの比較はできません。
AIはGPUがないと動きませんか?
いいえ。CPUでも動作し、TPUやNPUなど別のアクセラレータもあります。GPUが多く使われる主因は、AIの主要計算に大量のデータ並列性があることです。
CPUは、分岐や制御を含む複雑な仕事を少数の高機能コアで低レイテンシに進めます。
GPUは、大量の似た計算を多数の演算資源へ配り、総スループットを高めます。
AIでGPUが多く使われるのは行列・ベクトル・積和演算と相性がよいからですが、GPUだけが選択肢ではありません。
この記事の知識を、次の仕事・学習へつなげる
計算条件・性能評価の記録の経験を、対象・作業・確認した結果で整理します。担当範囲と必要経験、勤務地、勤務・出張、教育体制を比較すると、次に補う知識も具体的になります。
参考資料
- NVIDIA: CUDA Programming Guide
- AMD ROCm: HIP programming model
- TensorFlow: Use a GPU
- Google Cloud: TPU architecture
- Google Research: In-Datacenter Performance Analysis of a Tensor Processing Unit
- Intel: Core Ultra Processor Datasheet
短編抽出メモ
視聴者の疑問:CPUとGPUは何が違い、なぜAIではGPUが多いのか。
残す因果:設計目標(低レイテンシ/総スループット)→演算資源の配分→データ並列性→行列・積和演算→AIとの相性。
科学的境界:CPUも並列処理する、GPUはCPUの上位互換ではない、GPUコア数をCPUコア数と直接比較しない、AIはGPU必須ではない。
45〜60秒候補:冒頭のCPU/GPU比較から、行列をタイルへ分割し、AIとGPUの相性を説明する部分。
シリーズ導線
この記事は「超入門 → 仕組み → 業界動向 → 投資・キャリア視点」のうち、プロセッサの仕組みを理解する入口です。次に読む記事として、公開済みのGPUとAIの並列処理を案内します。
さらに半導体の仕組みを学ぶなら、まずは関連解説で「計算をする回路」と「計算を支えるプロセッサ」のつながりを追ってみてください。

