×
ハードウェア

ゲームに不可欠な「GPU」の働きや性能に関して知っておくべきこと


高解像度の3DゲームなどのPCゲームを楽しむために「グラフィックボード(ビデオカード)」はかかせません。このグラフィックボードに搭載される専用チップ「Graphics Processing Unit(GPU)」が一体どのような働きをしているのかを、ExtremeTechが分かりやすく解説しています。

How Graphics Cards Work - ExtremeTech
https://www.extremetech.com/gaming/269335-how-graphics-cards-work

◆CPUとGPU
コンピューターの演算を行うハードウェアとしてCPUが知られています。ゲームに大切なGPUを理解するために、より一般的なCPUと比較するところからExtremeTechは説明を始めています。

「3Dなどの映像を描画するのにCPUを使えないのか?」という素朴な疑問について、答えは「可能」だとのこと。実際に、「Ultima Underworld」のようなGPUが普及する以前のゲームの時代には、3D描画のレンダリングはCPUが行っていました。しかし、汎用性の高いハードウェアのCPUに処理を任せるには、非常に高性能なCPUが求められてしまい、現実的にゲームをプレイできるマシンがほとんどない、という状況になっていたそうです。


理論的には可能なCPUによるレンダリングでは負荷が高すぎるため、映像の描画に特化した機能を持つチップとしての役割を与えられたのがGPUというわけです。

◆GPUの構造
ExtremeTechは「GPUとは、ジオメトリのセットアップと実行、テクスチャマッピング、メモリアクセス、シェーダーなどを含む3Dエンジンのコード実行を適切にマッピングするための機能を持った特別なハードウェア」と説明しています。単一のアレイですべての作業を処理するよりも、特定の処理を行う専用リソースをチップ上に持たせる方が、作業負荷を減らし電力効率が高く、何よりも高速だとのこと。このような、映像描画に必要な特別な処理を行う機能を持たせたチップがGPUです。


◆GPUのコア
汎用性の高いCPUでは、効率的にシングルスレッドコードを実行するように設計されています。Intelのハイパースレッディングのような機能はあくまでシングルスレッドコアを並列することでマルチスレッド性能を高めるもので、基本的にはシングルスレッド処理に力点が置かれています。

これに対してGPUではCPUのコアに比べるとはるかに小さな処理能力単位としてのGPUコアを多数備えています。例えば、NVIDIAのPascalアーキテクチャにおけるローエンドモデルのGPUでさえ384個のコアを持つなど、CPUに比べると物理的に並列計算に向いた設計になっています。


GPUデザインでは「4096:160:64」のような3つの比を使うことがありますが、最初の数字はGPUコアの数を表しています。なお、コア数だけでGPUの性能を測ることは間違いだとのこと。それはアーキテクチャの違いによって効率が異なるからだそうです。

◆ブロック
GPUは「ブロック」と呼ばれるコア、スケジューラ、レジスタファイル、命令キャッシュ、テクスチャ・L1キャッシュ、エクスチャマッピングユニットなどを含む、コンピューティングリソースの最小単位で構成されています。ブロックの数が多いほど、クロックサイクルごとに並列に実行できる処理が多くなります。

このブロックを、NVIDIAでは「Streaming Multiprocessor(SM)」、AMDでは「Compute Unit(CU)」と呼んでいます。SM/CUの数だけで性能を測ることができないのはGPUコアと同様ですが、同一アーキテクチャ間では目安になります。例えば、AMDのAPU(GPU内蔵CPU)にはVegaアーキテクチャのCUが8個のものと11個のものがあり、後者の方がGPU性能は優れています。


◆テクスチャマッピングとレンダリング出力
GPUの主要なコンポーネントには「テスクチャマッピング」と「Render output unit(レンダリング出力ユニット)」の2つがあります。

・テスクチャマッピング
初期の3Dゲームでは、多角形を描画することが難しかったためテクスチャ処理はほとんど使われていませんでしたが、現在のゲームではテクスチャマッピングを利用しないものはほとんどないほどだとのこと。GPUデザインの「4096:160:64」の2番目の数字が、テクスチャマッピングユニットの数を表しています。

・Render output unit(レンダリング出力ユニット)
レンダリング出力ユニット(別名:raster operations pipelines)は、GPUの出力をモニターに表示するイメージに組み立てる場所です。レンダリング出力にGPUのクロック数を掛け合わした数が、ピクセルの塗りつぶし速度をコントロールします。つまり、レンダリング出力ユニットの数が多いほど、同時に多くのピクセルを出力できるということを意味しています。

◆メモリ帯域幅とメモリ容量
GPUの性能を決めるメモリの要素には「帯域幅」と「容量」があります。

・メモリ帯域幅
メモリ帯域幅とは、GPU用のVRAMのバッファーに1秒あたりにどれくらい多くのデータをコピーできるかを示す値です。高解像度かつ高度なビジュアルエフェクトによってGPUコアにコピーされるデータは増えるため、ゲーム映像のフレームレートを維持するためには、メモリ帯域幅が大きいことが要求されます。メモリ帯域幅はGPU性能のボトルネックになる可能性があるとのこと。そのため、どれくらいのメモリ帯域幅が要求されるかに大きな影響を与えるゲームエンジンの選択が重要となる場合があります。

・メモリ容量
帯域幅とともに、オンボードメモリの容量もGPU性能を決める上で重要になります。ゲームにおいて、特定の解像度での描画に必要とされるVRAMが利用可能なリソースを超えている場合、追加のテクスチャデータを保持するためにCPUのメインメモリを使う必要が出てきます。さらに、DRAMからデータを引き出すことになり、オンボードのVRAMに比べて圧倒的に遅延が発生します。このデータを取り出す速度のずれは、ゲーミング性能を大きく落とす原因となっています。

グラフィックボードメーカーは、ローエンドからミドルレンジの製品で、メモリ容量の異なるモデルを出す場合があります。当然、メモリ容量が多い特別版の価格は上乗せされるのが常です。しかし、ローエンドやミドルレンジクラスのグラフィックボードの場合、メモリ容量以外にボトルネックが存在することが多く、メモリをフルに使い切って性能ダウンが発生するということは少ないものだとのこと。そのため、プレイしたいゲームによっては、メモリ容量アップがまったく意味がない場合があるとExtremeTechは指摘しています。

・関連記事
IntelがディスクリートGPUを2020年にリリースすると発表 - GIGAZINE

仮想通貨マイニングバブルに沸くGPUメーカー、バブル終息後には悲惨な状況の可能性 - GIGAZINE

NVIDIAがゲーミングブランドからAMDを締め出そうとしている「GeForce Partner Program」問題とは? - GIGAZINE

90年代にすい星のごとく現れGPUトップ企業に上り詰めるも爆速で消えていった「3dfx Interactive」 - GIGAZINE

DirectX 12の異種混合GPU「EMA」でGeForceとRadeonをハイブリッドすると意外な結果に - GIGAZINE

複数のGPUを組み合わせてグラフィック性能を上げる「マルチGPU」ではどのようなメモリ管理がされているのか? - GIGAZINE

NVIDIAがGeForce GTX 970の「VRAM3.5GB問題」で訴えられる - GIGAZINE

in ハードウェア,   ゲーム, Posted by logv_to