CPUとGPUの得意なこと、不得意なこと

最近はCPUもGPUも高性能化の一途をたどっており、どちらも複数のコアを持っていることから、その違いがよくわからないという方が多いようです。

私も両者がここまで似た構造になるとは思っておらず、「そういえば明確な違いとはなんだろう?」と考えさせられました。

そこで今回は、CPUとGPUの明確な違いについて解説したいと思います。

CPU=難敵を少数相手にする

CPUとGPUの大きな違いは「処理すべき対象の性質」と「同時並行の数」です。簡単に言うと、CPUは少数の難敵を相手にする強者、と言うイメージですね。

2020年時点でCPUのコア数は最大16~28程度ですが、GPUは実に4000~5000個です。このコア数=ゲームで言うところの味方の数、と考えれば違いがはっきりイメージできるのではないでしょうか。

CPUは「少数精鋭パーティ」なのです。CPUは、分岐予測機構や、スーパースカラ(命令処理の実行回路を複数持ち、複数の命令処理を同時実行する仕組み)や、Out of order実行(機械語プログラム中の命令の並び順ではなく、データなどの依存関係から処理可能な命令を判断し、そのつど開始・実行・完了させる機構)などを搭載しています。

このように複雑な命令発行、処理の仕組みを持つために、難解なプログラムでも高速に処理できることが強みです。

GPU=倒しやすい敵を複数同時に相手にする

一方GPUは、同じ内容の比較的簡単な処理を、数千単位で同時に実行できます。したがって、条件分岐の少ない簡単なプログラムを短時間で効率よく処理するには、GPUが適しています。

しかし、条件分岐が複雑になればなるほど処理速度は落ちていき、CPUに比べて10分の1以下にまで落ちてしまうのです。

また、1サイクルにかかる時間もCPUのほうがGPUより数倍早いため、実際にはCPU側よりも数十倍遅いことになります。

画像処理のように膨大なデータを一定の規則に従って大量に処理するのは、GPUの得意技です。一方、少しでも難敵が現れると途端に弱くなってしまうのがGPUともいえます。

GPUはループ処理が得意、CPUは条件分岐が得意

ここまでの内容をもう少し違う言い方で述べると、GPUは単純かつ膨大なループ処理が得意である一方、CPUは「もし~ならば」といった条件分岐処理が得意だといえます。

これが「GPUはforの回路」「CPUはif elseの回路」と言われる所以です。ゲームのグラフィック処理は、結果がはっきりした単純な処理を膨大にこなすため、短時間で簡単なループ処理を同時に実行できるGPUのほうが適しています。

しかし、10年ほど前にはGPUよりもCPUの負荷のほうが高いタイトルなどもあり、ゲームの作り方によってどちらが優位かは、まちまちです。

最近のゲームであれば、GPU性能が重視されるため、CPUよりもGPUにお金をかけるべきです。CPUは極論をいえば「GPUの足を引っ張らない範囲なら何でもよい」というレベルかもしれません。

CPUとGPUの特徴や違い、理解していただけたでしょうか?

G-Tune x G-GEEKコラボPCはいつでも最安値!

「G-Tune」と当サイト「G-GEEK」のコラボモデルが登場!なんとG-Tuneで販売されているゲーミングPCよりも最大4万円も安いモデルがあります。期間限定なので今すぐチェックすべし!

激安ゲーミングPCの詳細はこちら

SNSでもご購読できます。