Semicon Campus半導体を、知るところから。
メニュー
企業の方へ

CPUとGPUは何が違うのか?AIでGPUが使われる理由を初心者向けに解説

半導体の基礎

スマートフォンの顔認識や画像生成が速くなると、「GPUが強いから」と説明されることがあります。

でも、CPUとGPUは、単純な上位・下位の関係ではありません。
CPUも並列処理をしますし、GPUも何でも速いわけではありません。
違いの中心は、少数の複雑な仕事を柔軟に進めるか、大量の似た仕事を同時に流して総量を増やすか、という設計の重点です。

先に答えると:CPU(Central Processing Unit)は、OSやアプリの制御、分岐、順序に依存する処理などを、少数の高機能なコアで低い待ち時間で進めることを重視します。GPU(Graphics Processing Unit)は、多数の演算資源へ大量のスレッドを割り当て、同じ種類の計算をまとめて処理し、単位時間あたりの仕事量(スループット)を高めることを重視します。AIでGPUが多く使われるのは、行列積やベクトル演算など、同じ計算を大量のデータへ繰り返す仕事が多いからです。
CPU分岐や制御を含む、幅広い処理を少数の高機能コアで進める。
GPU似た計算を大量の演算資源へ配り、全体の処理量を伸ばす。
AIとの相性行列・ベクトル・積和演算に大きなデータ並列性がある。
CPUと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とGPUは協調して動くCPU / host制御・準備分岐・I/OGPU / devicekernel実行大量の演算データ・命令を渡し、結果を受け取る
代表的なCPU-GPU協調では、CPUが制御しGPUが適した並列部分を受け持ちます。
境界を先に確認:GPUはチップ内部の「CPUコアを何千個も並べたもの」ではありません。CPUのコアとGPUの演算lane、compute unit、SMなどは、機能の粒度や制御方式が異なります。製品名や世代によって呼び方も変わるため、この記事では共通する設計傾向として説明します。

CPUは、複雑な命令列を柔軟に進める

CPUの強みは、計算を一つずつしかできないことではありません。現代の高性能CPUは、複数コア、SIMD(1つの命令で複数データを扱う方式)、SMT、命令レベル並列性などを使って並列に働きます。重要なのは、少数のスレッドでも処理を前へ進められるよう、制御へ多くの回路を使っている点です。

たとえば、プログラムに「条件が成立したらA、成立しなければB」という分岐があるとします。CPUは分岐予測で次に必要になりそうな命令を先に取り込み、実行できる命令を探し、命令同士の依存関係を見ながら順序を調整します。Out-of-Order Execution(OoO、順番を入れ替えた実行)は、前の命令の結果を待つ間に、独立した別の命令を進める仕組みです。

このため、CPUコアには命令フェッチ、デコード、スケジューラ、整数・浮動小数点・ベクトルの実行ユニット、ロード/ストア機構、レジスタ、キャッシュ、分岐予測器などが組み合わされています。キャッシュは、よく使う命令やデータをプロセッサに近い場所へ置き、メインメモリまで取りに行く待ち時間を減らす記憶領域です。

CPUコアは計算以外の仕組みも厚い分岐予測次を先読みOoO順序を調整キャッシュ待ち時間を減らす実行ユニット種類を使い分け複雑な命令列を止めないための制御
CPUは算術器だけでなく、分岐・依存・メモリ待ちを扱う制御回路へ資源を配分します。

GPUは、大量の似た仕事を演算資源へ配る

GPUの強みは、たくさんの独立したデータへ同じ種類の演算を適用しやすいことです。GPUは多数のスレッドを保持し、スレッドのまとまりをスケジュールします。NVIDIAではwarp、AMDではwavefrontなど、呼称は異なりますが、同じ命令を複数のデータへ適用するSIMD/SIMT的な考え方が中心です。

GPUは、あるスレッド群がメモリ待ちになったとき、別のスレッド群を実行することで演算器を空けにくくします。個々のスレッドが最短で終わることより、全体として一秒あたりにどれだけ仕事を終えられるかを重視する考え方です。これがスループットです。

ただし、GPUが常に全laneを使えるわけではありません。同じグループのスレッドが同じ経路を進むなら効率よく動けますが、半分がA、半分がBへ分岐すると、経路を順番に処理している間に一部laneが待つことがあります。これをbranch divergence(分岐発散)と呼びます。GPUは分岐命令を実行できないのではなく、同じグループ内で経路がばらばらになると利用率が下がり得るのです。

GPUではスレッドの足並みが効率を左右する同じ経路分岐発散全laneが同じ命令経路A / Bへ分かれる模式図のlane数は実製品のwarp幅を示さない
GPUの効率は、並列数だけでなく、同じ実行グループが似た経路を進めるかにも左右されます。

「CPUは直列、GPUは並列」では足りない

CPUとGPUを説明するとき、「CPUは直列、GPUは並列」と言いたくなります。しかしこれは入口としても補足が必要です。CPUもマルチコア、SIMD、SMT、OoOで多くの処理を並行して進めます。一方、GPUもスレッドを一つずつ魔法のように同時完了させるのではなく、スレッド群をスケジューラが切り替えながら演算器へ流しています。

より正確な言い方は、「CPUは少数の複雑な仕事を低レイテンシで柔軟に進めることへ重点を置き、GPUは大量のデータ並列性を前提に総スループットを高めることへ重点を置く」です。レイテンシは一つの仕事が終わるまでの待ち時間、スループットは単位時間に終わる仕事の量です。

レイテンシとスループットを分けて考えるCPU仕事A仕事BGPU同じ時間に多くの仕事を流す
CPUとGPUの違いは、並列処理の有無ではなく、どの規模の並列性を前提にするかです。

AIでGPUが多く使われるのは、行列計算が大量にあるから

AIとGPUの相性を一言で言うなら、「同じ種類の計算を、非常に多くのデータへ繰り返す構造があるから」です。ニューラルネットワークでは、入力データと重みを掛け合わせて足し合わせる積和演算が大量に現れます。層の計算には行列積、ベクトル演算、畳み込みなどが使われ、これらはデータを分割して複数の演算資源へ配りやすい場合があります。

行列積を例にします。行列Aと行列Bから行列Cを作るとき、Cの各要素はAの行とBの列の積を足し合わせて求めます。Cを小さなタイルへ分け、それぞれを別のthread blockへ割り当てれば、たくさんの計算を並行して進められます。GPUがAIを速くするのは、「AI」という名前に特別な効果があるからではなく、こうしたデータ並列なkernelを多数の演算資源で処理しやすいからです。

畳み込みも、画像や特徴マップの局所領域へ同じような計算を繰り返します。実装によっては行列積に近い形へ変換してGPUで処理します。ただし実際のAI処理には、活性化関数、正規化、データ配置、インデックス処理、メモリ移動、複数装置間の通信なども含まれます。すべてが同じ割合でGPU向きとは限りません。

行列積はタイルに分けて配れる入力行列A×出力Cのタイルタイルごとにthread blockへ割り当てる実装やデータ配置によって効率は変わる
行列積の出力をタイルへ分割すると、大量の類似計算をGPUへ配りやすくなります。

ここまで読んで「GPUはAI専用の部品なのか」と感じたら、答えは違います。GPUは、画像処理、科学計算、シミュレーションなど、十分なデータ並列性がある仕事にも使われます。AIとの接点は、GPUの出自ではなく、計算の形にあります。

GPUを使えば何でも速いわけではない

GPUの演算器を十分に働かせるには、独立した仕事がまとまって存在し、データを効率よく読み書きできる必要があります。仕事が小さすぎると、GPU kernelを起動する準備やCPU-GPU間のデータ転送にかかる時間が、計算そのものより大きくなることがあります。

また、前の計算結果が出ないと次へ進めない強い直列依存、スレッドごとに違う分岐、ばらばらなメモリアクセスなどがあると、GPUの資源を使い切りにくくなります。ディスクリートGPUでは、CPU側のメモリとGPU側の高速メモリの間でデータを移す設計もあり、転送量や接続方式が実行時間へ影響します。

そのため、「GPUの方が高性能」という表現だけでは判断できません。1スレッドの待ち時間、全体のスループット、メモリ帯域、実際のアプリの完了時間、性能あたりの電力など、どの指標を比べるかを決める必要があります。同じGPUでも、プログラムの書き方やデータの配置で結果が変わります。

仕事の形で向き不向きが変わるGPUが得意大量・独立同じ演算条件次第大きなデータ転送と配置も確認CPUが有利な場合小規模・直列分岐が多い「高性能」はワークロードと指標を定義してから比べる
GPUの優位は仕事の性質に依存し、小規模処理や転送支配ではCPUが合理的な場合もあります。

CPUとGPUを比べるときは、設計資源の配分を見る

CPUとGPUの違いは、単なるコア数やクロック数だけでは表せません。CPUは、分岐予測、命令の順序調整、キャッシュ、複雑な制御などへ相対的に大きな資源を割きます。GPUは、製品ごとの差はあるものの、多数の演算laneやスレッドを保持する仕組み、メモリ帯域、行列向け演算器などへ重点を置きます。

「GPUには何千個ものCPUがある」という説明が危険なのは、同じ“core”という言葉でも中身の粒度が違うからです。CPUコアは一つの複雑な命令列を扱う機能のまとまりであり、GPUで数えられる演算laneやCUDA coreなどは、GPU内部の別の階層にある実行資源です。数だけを並べても、性能の意味は揃いません。

見る項目CPUの設計傾向GPUの設計傾向
主な目標少数スレッドの低レイテンシと汎用性大量スレッドの総スループット
制御分岐予測・OoOなどで複雑な流れに対応スレッド群をまとめてスケジュール
得意な仕事OS、制御、分岐、順序依存行列、ベクトル、画像、大量独立データ
注意点超大規模な同型並列では資源を活かしにくい場合小規模、分岐発散、転送支配で不利な場合
概念図:資源の重点が異なるCPU制御・cache・予測演算GPU制御・cache多数の演算資源実際の面積比や機能は製品・世代で異なる模式表現
CPUとGPUはどちらにも制御と演算がありますが、設計の重点が異なります。

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や専用アクセラレータが行列演算を担当する分担もあります。端末上の推論では、電力や応答時間を重視して別の構成を選ぶこともあります。

言い換えると:「AIだからGPU」ではなく、「AIの中にGPUが得意なデータ並列計算が多いので、GPUが有力な選択肢になる」です。モデルの種類、バッチサイズ、データ移動、利用できるソフトウェアによって、適した計算資源は変わります。
AIの計算資源はGPUだけではないCPU汎用・制御GPU並列計算TPUML専用ASICNPU端末推論など条件に合わせて役割分担・選択する
GPUは重要な選択肢ですが、AIにはCPUや専用アクセラレータも使われます。

よくある誤解を整理する

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だけが選択肢ではありません。
CPUとGPU、そしてAICPU制御・低レイテンシGPU大量並列・スループットAIの主要計算行列・ベクトル・積和CPUが準備・制御前処理・I/OGPU等が計算条件で使い分け勝敗ではなく、計算の性質に合わせて設計を選ぶ
CPUとGPUの違いを「どちらが上か」ではなく、設計目標と仕事の形の組み合わせで理解します。

この記事の知識を、次の仕事・学習へつなげる

計算条件・性能評価の記録の経験を、対象・作業・確認した結果で整理します。担当範囲と必要経験、勤務地、勤務・出張、教育体制を比較すると、次に補う知識も具体的になります。

参考資料

短編抽出メモ
視聴者の疑問:CPUとGPUは何が違い、なぜAIではGPUが多いのか。
残す因果:設計目標(低レイテンシ/総スループット)→演算資源の配分→データ並列性→行列・積和演算→AIとの相性。
科学的境界:CPUも並列処理する、GPUはCPUの上位互換ではない、GPUコア数をCPUコア数と直接比較しない、AIはGPU必須ではない。
45〜60秒候補:冒頭のCPU/GPU比較から、行列をタイルへ分割し、AIとGPUの相性を説明する部分。

シリーズ導線
この記事は「超入門 → 仕組み → 業界動向 → 投資・キャリア視点」のうち、プロセッサの仕組みを理解する入口です。次に読む記事として、公開済みのGPUとAIの並列処理を案内します。

さらに半導体の仕組みを学ぶなら、まずは関連解説で「計算をする回路」と「計算を支えるプロセッサ」のつながりを追ってみてください。

タイトルとURLをコピーしました