こんにちは。2025年1月に起きたdeepseekショックの際、私はAIエンジニアという職業柄、GPUの需要が減らないだろうと思っていたので手放すことはなく、結果的に株価も戻ってきたため安心しているこの頃です。
しかし、AMDが企業向けのGPU出荷を増やしていたり、中国でもAI用途のGPU開発が盛んにおこなわれているという話を聞くと、計算量やメモリくらいにしか目が向かないと購入・売りタイミングを逃してしまうと考えました。そこで、一度GPUの技術仕様を理解したいという目的で、調査を実施しました。
本記事は以下のような項目についてまとめてますが、文章量が多いため2回に分けています。よければ次回の記事もご覧いただけると幸いです。
- GPUの基本的な仕組みと役割
- メモリアーキテクチャ(種類や制約、なぜサイズが上がりにくいのか)
- 並列処理の仕組みとGPUが得意な計算
- 最新のGPUで使われる用語や数値の意味(AMDの新型GPUの仕様などを具体例として)
- TPUとの違いと適用範囲、代替可能性
- FPGA、ASICとの比較
- GPUの歴史的な進化と現在の寡占状況が続く可能性
1. GPUの基本的な仕組みと役割
GPU(Graphics Processing Unit)とは、コンピュータグラフィックスの演算処理を専門に行うプロセッサです。1999年に半導体メーカーのNVIDIA(エヌビディア)社が最初に開発し、「世界初のGPU」としてGeForce 256を発表しました 1。CPU(中央処理装置)が少数の高性能コアで汎用的な処理を担うのに対し、GPUは多数のコアを搭載しており並列処理(パラレル処理)に特化しています。GPUは画像処理装置とも呼ばれ、特に3Dグラフィックスの描画や動画処理など同じ種類の計算を大量に同時実行する場面で高い性能を発揮します。
CPUのコア数が数個~数十個であるのに対し、GPUのコア数は数百~数千にも達します 1。例えば最新のNVIDIAのGeForce RTX 4090では16,384基もの演算コア(CUDAコア)を搭載しています。このようにコア数が非常に多いGPUは、同時に大量のデータを処理できるため、並列計算に非常に向いています。
一方で、GPUの各コアはCPUのコアほど高性能ではなく、複雑な処理や順序依存の強い処理は苦手です。そのためコンピュータでは、複雑な判断や制御はCPU、繰り返しの多い単純計算はGPUといったように役割分担させ、協調して動かすのが一般的です。
GPUの主要な構造としては、演算を行うコア(演算ユニット)が多数集まった演算基盤、データを蓄える専用のメモリ(VRAM)、データの一時的な保存や高速アクセス用のキャッシュメモリなどがあります。GPUコアは大量の計算を並列に処理するために設計されており、それらを効率よく動かすためにメモリアクセスを支えるキャッシュ階層も備えています 2。GPUはこの仕組みにより、画素単位の繰り返し計算やベクトル演算などを高速に処理することが可能です。
GPUの主な用途として真っ先に挙げられるのがリアルタイム3Dグラフィックスを扱うゲーム分野です。GPUは膨大な数のピクセル描画やポリゴン演算を高速にこなせるため、最新のゲームでは現実さながらの美しい映像表現を実現しています。実際、ゲーミングPCには高性能なGPU搭載のグラフィックボードが不可欠で、GPUの性能次第でゲームの画質やフレームレート(滑らかさ)が大きく左右されます。
また近年ではAI(人工知能)や機械学習の計算にもGPUが活躍しています。画像認識やディープラーニングのように、大量のデータに対する同種の計算を反復する処理では、GPUによる並列計算が学習・推論を大幅に高速化します。さらに科学技術計算(シミュレーションや気象予測、分子動力学など)や、映像編集・レンダリング、高解像度映像のリアルタイムエンコードなど、高い並列性が要求される分野でGPUは広く利用されています。
ポイント:GPUとCPUの違い・役割
- GPUは画像処理など単純で大量の計算を並列に処理するのが得意なプロセッサ。数千規模のコアを搭載し、一度に多くのデータを計算できる。
- CPUは汎用の中央処理装置で、複雑で順序立った処理を行うのが得意。コア数は少ないが高性能で、OSやアプリの論理的制御を担う。
- 協調動作:重い処理ではCPUとGPUが協力し、CPUが難しい判断を、GPUが大量の計算を担当することで効率的に処理する。
- 主な用途:GPUはゲームのグラフィックス描画や動画処理、AIの機械学習計算、科学計算などで活躍し、CPUは一般的なプログラムの実行全般を受け持つ。
2. GPUメモリの仕組みと制約
GPUには専用の高速メモリとしてVRAM(ビデオメモリ)が搭載されています 3。VRAMはGPUが処理する画像データや行列データなどを一時的に保存するメモリで、GPUと直接やり取りします 3。このVRAMは、一般的なPCのメインメモリ(DRAM)よりも遥かに高いデータ帯域幅(一度に転送できるデータ量)を持つのが特徴です 3。グラフィックス処理では膨大なピクセルデータをリアルタイムに読み書きする必要があるため、VRAMの高速なデータ転送能力が不可欠です 3。例えば最新のGPUでは、VRAM帯域幅が数百GB/秒にも達し、大量のテクスチャや頂点データをスムーズにやり取りできます。
VRAMにはいくつかの種類があります。代表的なのがGDDR(Graphics DDR)メモリとHBM(High Bandwidth Memory)です 3。GDDRは従来からGPUに使われてきたメモリで、比較的安価かつ低消費電力で容量あたりのコストが低いという利点があります 3。現在主流のGDDR6や高速版のGDDR6Xは、高クロック動作によって非常に高いデータ転送レートを実現しており、ゲーミング向けGPUなどに広く採用されています 3。
一方、HBMはメモリチップを積層してGPUコアの近くに配置する新しい方式のメモリで、非常に広いバス幅(インターフェース幅)を持つことで一度に大量のデータを転送できるのが特徴です 3。HBM2やHBM3といった世代があり、例えばHBM2Eでは1チップで毎秒410GBもの帯域幅を持つものもあります 4。HBMは高速・高帯域ですが高価で容量あたりのコストが大きいため、主にデータセンター向けやハイエンドGPUで使われます 3。
GPUメモリ(VRAM)の構造は、GPUコアと複数のメモリチップがメモリバスと呼ばれるインターフェースで接続された形になっています。メモリバスの幅(ビット幅)が広いほど一度に送れるデータ量が増え、またメモリのクロックが高いほど転送速度が上がります。そのため「容量」「バス幅」「動作周波数」によってVRAMの性能(帯域幅)が決まります。
例えば256ビットのバス幅を持つGDDR6メモリを搭載したGPUでは、バス幅128ビットの製品に比べて倍のデータを同時に転送できるため、同じクロックなら帯域幅も2倍近くになります。一般に高性能なGPUほど広いバス幅と高速なメモリクロックを持ち、VRAMの帯域幅が大きいです 3。VRAM容量も高性能GPUでは8GB、12GB、24GBと大きく、膨大なテクスチャやモデルデータを丸ごと格納できるようになっています 3。一方、ライトな用途向けGPUやノートPC内蔵GPUでは、4GB前後の容量や128ビット未満のバス幅でも十分な場合があります 3。用途に応じて適切なVRAM容量・帯域幅が選ばれるわけです。
ただし、VRAMは物理的にGPUボード上に実装されるため増設や交換ができず、そのGPUの容量が上限となります。必要以上に大容量化するとコストや消費電力も増加するため、GPUメーカーはコストと性能のバランスを見て容量を決めています。例えばゲーム用途のGPUでは現在8~16GB程度が主流ですが、最新のハイエンドGPUではクリエイターや研究用途を意識して24GB以上搭載するモデルも登場しています。一方で、もしVRAM容量が不足するとテクスチャなどを逐次読み込みする必要が生じ、処理のボトルネックになってしまいます。そのため高解像度ゲームやプロ向け映像処理ではVRAM容量は多いほど安心です。
GPUメモリへのアクセスを支える仕組みとしてキャッシュメモリも重要です。GPU内部にはL1キャッシュやL2キャッシュといった小容量・高速の記憶領域があり、頻繁に使うデータを一時的に蓄えることで毎回VRAMにアクセスしなくても済むようになっています 2。GPU全体で共有される大きめのL2キャッシュと、各演算ユニット(SMやCU)ごとに設けられたL1キャッシュが協調し、メモリアクセスの遅延を隠蔽します 2。
さらにGPUにはレジスタファイルや、プログラマが共有メモリとして使えるメモリ(LDSやSharedメモリ)なども搭載され、これらもキャッシュの役割を果たします。総じて、GPUは「高速だが容量の小さいメモリ」から「低速だが容量の大きいメモリ」へ階層構造でつながっており、メモリ階層を駆使して膨大なデータを効率よく処理しています 2。
メモリに関する制約としては、まず容量制約が挙げられます。VRAM容量は物理的なチップ数や技術によって上限がありますし、価格との兼ね合いもあります。次に帯域幅の制約です。メモリバスの幅や動作周波数により最大帯域が決まりますが、アクセスの仕方(連続的かランダムか)によっては実効帯域が下がる場合もあります 5。例えばアクセスが不規則だとメモリ転送が効率的に行えず、GPUコアが待ち時間を生じることがあります。またレイテンシ(遅延)の問題もあり、どれだけ帯域が広くてもデータが手元に来るまでの遅延を完全にはゼロにできません。GPUでは多数のスレッドを走らせて待ち時間を隠す工夫(後述するワープスケジューリング)で遅延を緩和していますが、この点もメモリの制約と言えます。
ポイント:GPUメモリとキャッシュの基礎
- VRAM(ビデオメモリ):GPU専用の高速メモリ。メインメモリより帯域幅が非常に広く、グラフィックス処理で必要な高速データ転送を実現する 3。容量がGPUの性能に影響し、高画質ゲームや映像処理では大容量が求められる。
- メモリの種類:GDDR系メモリ(現行はGDDR6/6Xなど)は主流でコストパフォーマンスに優れる。HBM系メモリは高帯域だが高価で、ハイエンドGPUやAI向けGPUに搭載 3。
- 帯域幅とバス幅:VRAMの帯域幅=バス幅×クロック×データレートで決まる。バス幅が広い(例:256bit以上)ほど一度に送れるデータが多く、高性能GPUほどバス幅が広い傾向 3。
- キャッシュ:GPU内部の小容量メモリ。L1/L2キャッシュが頻繁なデータを保持し、VRAMへのアクセスを減らす 2。これによりメモリアクセスの遅延を隠し、並列計算ユニットを休ませずに済むようにしている。
3. GPUの並列処理の仕組み
GPUが高い並列処理能力を発揮できる背景には、その独特のアーキテクチャとスレッド並列実行モデルがあります。まず、NVIDIA社のGPUでは演算ユニットのことをCUDAコアと呼び、AMD社のGPUではストリームプロセッサ(SP)と呼ぶなど名称は異なりますが、基本的には同様の役割を持つ演算回路です 5。
GPU内部ではこれらのコアがグループ(NVIDIAではSM:Streaming Multiprocessor、AMDではCU:Compute Unit)を形成し、多数集積されています。各グループは一定数のコアと制御回路、ローカルなキャッシュを持ち、CPUでいうところの「マルチコアプロセッサ」のような単位として機能します 5。
例えばNVIDIAのある世代では「1つのSMにCUDAコアが32基」などと定義され、GPU全体ではそのSMが複数搭載されます 5。GPUのスペック表に記載される「CUDAコア数○○基」や「ストリームプロセッサ数○○基」は、実際には内部の演算器の総数を示しており、基本的な性能指標の一つです。
GPUが並列処理を行う際には、大量のスレッド(並列に実行される軽量な処理の単位)を同時に走らせます。NVIDIA GPUの場合、スレッドはワープ (Warp) と呼ばれるグループにまとめられて実行されます。1ワープ=32スレッドと規定されており 5、同じワープ内の32個のスレッドは同じ命令を同期して実行する仕組みです 5。
これをSIMT(Single Instruction, Multiple Threads)アーキテクチャとも呼び、単一の命令を複数のスレッドで一斉に処理することで効率よく並列計算を行います 6。例えばGPUで1000個のデータを処理する場合、32個ずつのワープに分けて一斉に同じ処理を行わせることで、CPUで1個ずつ処理するより遥かに短時間で完了させることができます。ワープ内のスレッドは基本的に同じ命令を実行しますが、一部のスレッドだけ異なる処理(条件分岐など)をすると性能が低下するため、GPUで高効率を出すにはできるだけ分岐の少ない並列計算が望ましいです 6。
NVIDIA GPUでは1つのSMが複数のワープを同時に保持・スケジューリングし、あるワープがメモリ待ちで停滞している間に別のワープを実行するといった隠蔽措置で高い演算資源の利用率を維持しています 6。こうした仕組みにより、GPUは大量のスレッドを入れ替えながら途切れなく実行し、演算ユニットをフル稼働させることで驚異的な並列性能を発揮します。
GPUの演算コアはシェーダーユニットとも呼ばれます。元々GPUはグラフィックス用にシェーダー(陰影計算)という処理を行う専用回路を持っていましたが、現在では頂点シェーダーもピクセルシェーダーも統合されたプログラマブル・シェーダーユニットが多数搭載される形になっています。
シェーダーユニット(演算コア)の数を大幅に増やすことでGPUの並列演算能力は飛躍的に向上しました。例えば2000年代前半のGPUでは数十基程度だったシェーダーユニット数が、現在のGPUでは数千基規模になっています。この「演算器をとにかく大量に並べる」というアプローチが、GPUの高性能の根幹です。GPUは単精度浮動小数点演算(後述のFP32)など比較的簡単な計算を大量に同時並行で行うことを得意とし、それに特化したハードウェアリソース配分になっています。逆に言えば、各コアはシンプルな計算しかできないため、CPUのように高度な制御や多様な命令実行は不得手ですが、その分数で補う設計になっているのです。
近年のGPUには、通常のシェーダーユニットに加えて特定用途向けの専用回路が搭載されるようになりました。その代表例がレイトレーシングコア(RTコア)とテンソルコアです。レイトレーシング(Ray Tracing)とは、光線をシミュレーションして現実に近い陰影や反射を描き出す描画技術で、映画のCG制作などで使われてきました 7。
従来のラスタライズ手法では表現が難しいリアルな影や鏡面反射・屈折などを再現できますが、計算量が莫大でリアルタイム処理が困難でした。そこでNVIDIAは2018年のGeForce RTX20シリーズ(開発コード「Turing」)からハードウェアでレイトレーシング処理を高速化するRTコアをGPUに内蔵しました 7。RTコアはシェーダーとは別に、光線がシーン内のオブジェクトと衝突する計算(レイと三角形の交差判定など)を高速に行う専用ユニットです。
これにより従来のGPUでは難しかったリアルタイムレイトレーシングが可能となり、ゲームでも現実的な映り込みや影を表現できるようになりました。例えばRTコアを搭載したGPUは、同等クラスの旧世代GPUに比べてレイトレーシング処理性能が何倍も向上し、CPUと比べれば数十倍以上高速に光線演算をこなします7。なおAMDのGPUでも、RDNA2アーキテクチャ(Radeon RX 6000シリーズ)以降でレイアクセラレータと呼ばれるRTコア相当の機能が搭載されています 7。
テンソルコア(Tensor Core)は、主にAIのディープラーニング計算を高速化するためにNVIDIAが導入した専用回路です。初搭載は2017年のデータセンター向けGPU「Tesla V100」(Voltaアーキテクチャ)で、以降コンシューマ向けのGeForce RTX20(Turing)シリーズから一般のGPUにも組み込まれました。テンソルコアは行列の積和演算(Matrix Multiply-Accumulate)を高速に実行する回路で、複数の乗算と加算を1クロックで並列に行います 8。
ディープラーニングのニューラルネットワーク計算は行列演算の連続なので、テンソルコアにより大幅な高速化が可能です 8。例えばテンソルコアは半精度浮動小数点(FP16)やINT8といった精度で一度に4×4行列同士の積算を行うなど、通常のCUDAコアでは不可能なレベルの並列演算を専門に担当します。その結果、同じディープラーニング計算でもテンソルコアを使えば従来比で何倍ものスループットを発揮できます。
実際、NVIDIA A100と呼ばれるデータセンターGPUでは、テンソルコアによりFP64(倍精度浮動小数点)演算ですら非常に高い性能を示し、大量データの高速分析を可能にしています 8。テンソルコアの搭載数もGPUによって異なり、例えばGeForce RTX 4090では第4世代のテンソルコアが512基も統合されています。こうした専用コアの追加により、GPUは汎用計算のみならず特殊用途でも性能を発揮できる多機能プロセッサへと進化しつつあります。
ポイント:GPUの並列処理と専用コア
- CUDAコア / ストリームプロセッサ:GPU内の基本的な演算ユニット(呼称が違うだけで役割は同じ)。大量のコアをグループ化して並列処理を行う 5。
- ワープ(Warp):NVIDIA GPUでのスレッド実行単位。1ワープ=32スレッドで構成され、同じ命令を同時実行する 5。このSIMT方式により高効率な並列演算を実現。
- シェーダーユニット:グラフィックス用の演算ユニット。現在は汎用化され大量にGPUに搭載。演算器の数を増やすことでGPU性能は向上してきた。
- RTコア:リアルタイムレイトレーシング用の専用コア。光線と物体の交差計算を高速化し、現実的な光の表現を可能にする 7。NVIDIAのRTXシリーズで初搭載。
- テンソルコア:AIの行列演算を高速化する専用コア。複数の乗算加算を並列実行し、ディープラーニングの計算を飛躍的に高速化 8。Volta世代からNVIDIA GPUに搭載。
参考
- 1: 〖3分解説〗CPUとGPUの違いをわかりやすく紹介!用途やコア数も | プログラミングスクールならテックキャンプ
- 2: GPUアーキテクチャとGPUプログラミングの話が面白かった #Shader – Qiita
- 3: VRAMとは?グラフィックメモリの種類と役割を解説 – ITとPCに関連する用語の解説
- 4: AIメモリは、HBM2Eか、GDDR6か – セミコンポータル
- 5: NVIDIA GPUの構造とCUDAスレッディングモデル
- 6: The Role of Warps in Parallel Processing | DigitalOcean
- 7: RTコアとは? 実現できることや特徴、性能を解説! – | 法人様向けパソコンならドスパラプラス
- 8: Tensorコアとは何なのか?性能や特徴について解説! – | 法人様向けパソコンならドスパラプラス