Graphics Processing Unit（グラフィックス プロセッシング ユニット、略してGPU）、画像処理装置（がぞうしょりそうち）は、コンピュータゲームに代表されるリアルタイム画像処理に特化した演算装置あるいはプロセッサである。グラフィックコントローラなどと呼ばれる、コンピュータが画面に表示する映像を描画するための処理を行うICから発展した。特にリアルタイム3DCGなどに必要な、定形かつ大量の演算を並列にパイプライン処理するグラフィックスパイプライン性能を重視している。現在の高機能GPUは高速のビデオメモリ（VRAM）と接続され、頂点処理およびピクセル処理などの座標変換やグラフィックス陰影計算（シェーディング）に特化したプログラム可能な演算器（プログラマブルシェーダーユニット）を多数搭載している。プロセスルールの微細化が鈍化していることからムーアの法則は限界に達しつつあるが、設計が複雑で並列化の難しいCPUと比較して、個々の演算器の設計が単純で並列計算に特化したGPUは微細化の恩恵を得やすい。さらにHPC分野では、CPUよりも並列演算性能にすぐれたGPUのハードウェアを、より一般的な計算に活用する「GPGPU」がさかんに行われるようになっており、そういった分野向けに映像出力端子を持たない専用製品や、深層学習ベースのAI向けに特化した演算器を搭載したハイエンド製品も現れている。

 歴史 

 1970年代〜1980年代 

コンシューマPC向けGPUの起源は1970年代から1980年代のグラフィックコントローラにさかのぼる。当時のグラフィックコントローラは、矩形や多角形の領域を単純に塗り潰したり、BitBlt（Bit Block Transfer、ビット単位でのブロック転送）などにより、2次元画像に対して簡単な描画処理を行うだけであり、その機能と能力は限定的だった。

グラフィックコントローラの中には、いくつかの命令をディスプレイリストとしてまとめて実行したり、DMA転送を用いることでメインCPUの負荷を減らしたりするものもあった。このような専用のグラフィックコントローラを用いずに、DMAコントローラで処理したり、汎用CPUをグラフィック処理専用に割り当てたグラフィックサブシステムを充てるコンピュータも存在した。汎用的なグラフィックス・コプロセッサは古くから開発されてきたが、当時の技術的な制約から安価な製品では機能や性能に乏しく、また高機能なものは回路の規模が増大し非常に高価なものとならざるを得ず、結果的にパーソナルコンピュータへ広く採用されることはなかった。

1980年代から1990年代前半にかけてはBit Block Transferをサポートするチップと、描画を高速化するチップは別々のチップとして実装されていたが、チップ処理技術が進化するとともに安価になり、VGAカードをはじめとするグラフィックカード上に実装され、普及していった。1987年のVGA発表とともにリリースされたIBMの8514グラフィックスシステムは、2Dの基本的な描画機能をサポートした最初のPC用グラフィックアクセラレータとなった。AmigaはビデオハードウエアにBlitterを搭載した最初のコンシューマ向けコンピュータであった。

1980年代後半から1990年代前半の日本国内で広く普及していたPCとしてPC-9800シリーズがあるが、同シリーズのグラフィックの描画に関連するチップにはGDCと、GRCG・EGCがある（CRTCなどもあるが、描画には関係しない）。GDCには直線・円弧・四角塗りつぶしなどの図形描画機能があり、この記事で扱っているタイプのLSIである。GDCは登場時点では比較的高機能・高性能であったが、CPUの性能向上によりその利点は薄くなっていった（そのため、当時の開発者でもそれを正確に把握していない者も多い）。GRCGは複数プレーンへの同時描画（98ではプレーンごとにセグメントアドレスを動かす必要があり面倒だった）や描画時のマスク操作などをハードウェアで行えるもので、EGCはGRCGの強化版（Enhanced Graphic Charger）である。EGCはEPSONが比較的後期まで追随しなかったことや、NECがハードウェアの仕様の公開に非積極的になった以降ということもあり、あまりよく知られていない。さらに、AGDC（Advanced 〜）やEEGC（あるいはE2GC）といったチップに至っては、非公開情報を集めた文献にもその名前以外には殆ど全く情報がない。

 1990年代 

1990年代に入ると、シリコングラフィックス (SGI) が自社のグラフィックワークステーション用のグラフィックライブラリとして開発・実装したがOpenGLに発展して標準化され、標準化されたグラフィックライブラリとそのAPIに対応したハードウェアアクセラレータ、という図式が登場する。

実装当初のIRIS GLはソフトウェアによるものであったが、SGIでは当初よりこのAPIをハードウェアによって高速処理させる (ハードウェアアクセラレーションを行う) ことを念頭に設計しており、程なくIRIS GLアクセラレータを搭載したワークステーションが登場する。ただし、当初のIRIS GLアクセラレータはまだ単体の半導体プロセッサではなく、グラフィックサブシステムは巨大な基板であった。

1990年代の初めごろ、Microsoft Windowsの普及とともに、グラフィックアクセラレータへのニーズが高まり、WindowsのグラフィックスAPIであるGDIに対応したグラフィックアクセラレータが開発された。

1991年にS3 Graphicsが開発した"S3 86C911"は、最初のワンチップ2Dグラフィック・アクセラレータであった。"86C911"という名は設計者がその速さを標榜するためポルシェ911にちなんで名付けた。86C911を皮切りとして数々のグラフィック・アクセラレータが発売された。

1995年には3DlabsがOpenGLアクセラレータのワンチップ化に成功し、低価格化と高パフォーマンス化が加速度的に進行し始める。また同年に登場したインテルのPentium Proプロセッサの処理能力は同時代のRISCプロセッサの領域に差し掛かっており、このCPUとワンチップ化によって価格を下げたOpenGLアクセラレータのセットは、それまでメーカーに高収益をもたらしていたグラフィックワークステーションというカテゴリーにローエンドから価格破壊を仕掛ける原動力となった。

1995年までには、あらゆる主要なPCグラフィックチップメーカーが2Dアクセラレータを開発し、とうとう汎用グラフィックス・コプロセッサは市場から消滅した。

1995年に3dfxによりVoodooという3Dアクセラレータが発売された。家庭用PCの性能上のボトルネックを考慮してゲーム用に最適化されたGlideというAPIも用意され、家庭用PC上で当時のアーケードゲームに匹敵する品質のグラフィックを実現した。Voodooシリーズは、1990年代後半の家庭用PCゲームの品質向上を牽引したシリーズとなった。

1995年にマイクロソフトがWindows 95とともに開発したゲーム作成及びマルチメディア再生用のAPI群DirectXではさらにグラフィック・アクセラレータの性能が強化された。DirectXのコンポートネントのひとつDirect3Dは3Dグラフィック処理のハードウェア化を想定したレンダリング・パイプラインを持っていた。

1997年当時のグラフィック・アクセラレータはレンダリングのみしかサポートしていなかったが、この頃からZバッファ、アルファブレンディング、フォグ、ステンシルバッファ、テクスチャマッピング、テクスチャフィルタリングなどの機能を次々搭載し、3Dグラフィック表示機能を競うようになった。DVD-Video再生支援機能を備えるチップも現れた。

VDP等の汎用グラフィック・プロセッサについては、カーナビ等の表示用に使用され新たな市場を形成している。90年代後半からは、携帯電話に多色表示がもちいられるようになり、その分野においても有用な市場を形成している。

一方、システムの低価格化を目的に、チップセットのノースブリッジにグラフィックコアの統合を行った、統合チップセットが1997年ころから登場し始める。1999年の「Intel 810」チップセットの登場で、低価格機には統合チップセットの使用が定着し始めた。

3DCGの中核とも言えるジオメトリエンジンは高コストが許容されるグラフィックワークステーションでは専用プロセッサとして搭載されていたが、PCでは長らくCPUが担う機能であった。しかし、ジオメトリエンジンの別名とも言えるハードウェアによる座標変換・陰影計算処理（; ハードウェアT&L）が1999年にPC向けにリリースされたDirectX 7にて標準化され、またこのハードウェアT&Lを世界で初めて実装して製品化したNVIDIA GeForce 256を定義する言葉として「GPU」という名称が提唱されることとなった。ハードウェアT&Lの実装によって、NVIDIA社製品は他社製品と比較して突出した高性能を発揮するようになった。これ以後、ジオメトリエンジンとしての機能をCPUに任せる3dfx Voodooシリーズは目立って高性能とは言えなくなった。

 2000年代 

DirectX 8世代では、グラフィックスパイプライン中の一部の処理をユーザープログラマーが自由に記述できるプログラマブルシェーダーが導入されるようになった。プログラマブルシェーダーは頂点シェーダー (Vertex Shader) とピクセルシェーダー (Pixel Shader) の2種類が用意され、頂点シェーダーは頂点座標や光源ベクトルの頂点単位での座標変換および頂点単位での陰影計算（シェーディング）を、ピクセルシェーダーはピクセル単位での陰影計算をそれぞれ担当する設計だった。特に従来の固定機能シェーダーではポリゴン単位（頂点単位）でしか陰影計算を実行できなかったのに対し、ピクセル単位での陰影計算もできるプログラマブルピクセルシェーダーの導入により、表現の自由度と解像度（精細度・品質）が飛躍的に向上した。ただし、シェーダープログラムの記述に使える言語は原始的なアセンブリ言語が基本であり、記述可能なプログラム長（命令数）もごく限られていたため、開発効率や再利用性などの面で課題を抱えていた。なお、頂点シェーダープログラムとピクセルシェーダープログラムを実行するハードウェアユニット（演算器）のことを、それぞれ頂点シェーダーおよびピクセルシェーダーとも呼んでいた。後にNVIDIAでCUDAを開発するIan Buckはこの最初の世代のプログラマブルシェーダーから既にGPGPUに着手しており、厳しい制約下ではあったもののレイトレーシングの高速化についての論文を発表している。

また、この世代になるとマルチテクスチャ、キューブマップ、アニソトロピック（異方性）フィルタ、ボリュームテクスチャなどが新たにサポートされ、HDRIによるレンダリングや動的な環境マッピングの生成が可能になった。動画の再生や圧縮にシェーダーを使う技術も搭載された (Intel Clear Video、PureVideo、AVIVO、Chromotion)。

DirectX 9世代になると、このプログラマブルシェーダーがさらに進化し、シェーダーのプログラムを書くための専用の高級言語であるCg、HLSL、GLSLなどが開発され、シェーダーを物理演算などゲームでの3Dグラフィック表示以外の演算に使うことも多くなった。Windows Vistaに搭載された機能のひとつ「Windows Aero」 (Desktop Window Manager) は画面表示にプログラマブルシェーダー（ピクセルシェーダー2.0）を利用するので、この世代のビデオチップが必須になっている（Windows Aero Glassを使用しなければDirectX 8世代以前のビデオチップでもWindows Vista自体は稼働する）。また、Mac OS XのCore ImageではOpenGLのプログラマブルシェーダーを利用して2Dグラフィックのフィルタ処理を行っている。

DirectX 10世代ではさらに自由度が増し、「シェーダーモデル4.0」 (SM 4.0) に基づくグラフィックスパイプラインが導入され、頂点シェーダーとピクセルシェーダーの間でジオメトリシェーダー (Geometry Shader) によるプリミティブ増減処理を行なえるようになった。ジオメトリシェーダーはOpenGL 3.2でも標準化されている。

グラフィックス描画処理では3次元空間を構成する表現のために三角形を色付けするピクセルシェーディング処理の負荷が、精細度や特殊処理などによって大きく変化するため、固定のハードウェアパイプライン構成ではボトルネックになることが多かった。この制約を解消するために、DirectX 10世代では演算ユニットを汎用化する統合型シェーダーアーキテクチャ (:en:unified shader architecture) によって固定のパイプラインの一部をより柔軟な構成に変更した。頂点シェーダーとジオメトリシェーダー、そしてピクセルシェーダーの機能をあわせもつ統合型シェーダー (Unified Shader) を多数搭載して動的に処理を振り分けることによってプログラムの自由度と共にボトルネックを解消し、演算回路数の増加に比例した画像描画処理速度の向上を得た。なお、この統合型シェーダーアーキテクチャによるハードウェアレベルでの汎用化が、GPUにおける汎用演算（GPGPU）の発展と普及を加速させていくことになる。

統合型シェーダーアーキテクチャを採用したNVIDIA GeForce 8シリーズではWindows / Mac OS X / Linux用の標準的な汎用Cコンパイラ環境 (CUDA) が提供され、一方ATI Radeon HD 2000シリーズではハードウェアに直接アクセスできる環境 () が、そしてRadeon HD 4000シリーズ以降ではATI Stream（Brook+言語と抽象化レイヤーであるCAL）によるアクセス手段が用意されている。これにより科学技術計算やシミュレーション、画像認識、音声認識など、GPUの演算能力を汎用的な用途へ広く利用できるようになった（GPGPU）。また、特定のハードウェアベンダーやプラットフォームに依存しないOpenCLというヘテロジニアス計算環境向け標準規格に続き、米マイクロソフト社からDirectX 11 APIの一部としてGPGPU用APIであるDirectCompute（コンピュートシェーダー）がリリースされた（のちにDirectComputeをバックエンドとするGPGPU向けC++言語拡張・ライブラリとしてC++ AMPも登場した）。DirectX 11のシェーダーモデル5.0では、前述のコンピュートシェーダーに加え、頂点シェーダーとジオメトリシェーダーの間に、ポリゴンの細分割・詳細化（サブディビジョンサーフェイス）をGPUで行なうテッセレーションシェーダー（ハルシェーダー、固定機能テッセレータ、ドメインシェーダー）が追加された。テッセレーションシェーダーはOpenGL 4.0、コンピュートシェーダーはOpenGL 4.3でも標準化されている。

なお、主にDirectXに最適化されたGeForceやRadeonなど3Dゲーム向け製品と異なり、業務用ワークステーションなど高い信頼性や耐久性が必要とされる業務用途に特化して設計されたNVIDIA Quadroシリーズ、およびAMD FireProシリーズが存在する。これら業務用製品はDirect3DよりもOpenGLおよびOpenGL対応アプリケーションに最適化されており、CAD、HPC、金融、CG映像、建築/設計、DTP、研究開発分野において採用されている。そのほか、NVIDIA TeslaシリーズやAMD FireStreamシリーズ（のちにAMD FireProに統合）といった、GPGPU専用製品も登場している。

 2010年代～2020年代 

主なCPUメーカーは、従来のCPU機能だけにとどまらず、1つのCPUチップ内に複数のCPUコア（マルチコア）を搭載すると同時に、画像出力専用回路としてGPUコアも統合した製品を提供するようになった。例えば、米AMDでは「AMD Fusion」構想において1つのダイ上に2つ以上のCPUとGPUを統合し、米インテル社でもCore i5、Core i7、Core i3でのSandy Bridge世代から、同様の製品を提供している。なお、従来型のUMA、つまり単にCPUとGPUのチップを統合して物理メモリを共有するだけでは、CPUとGPUのメモリ空間が統一されることにはつながらない。HSAにおけるhUMAなどのように、CPUとGPUのメモリ空間を統一するためにメモリ一貫性を確保する仕組みが用意されることで初めて、CPU-GPU間のメモリ転送作業が不要となる。また、CPUとGPUの外部メモリが共用されるため、CPUチップの外部メモリバスにはCPUのアクセス帯域に加えてGPUのアクセス帯域も加わる。このため、仮にCPUチップに極めて高い性能のGPUを統合しても、統合チップのメモリアクセス帯域も相応に増強されないと、それがボトルネックとなって性能向上は望めない。

GPU用のメモリ規格として長らくDDR系およびGDDR系が採用されてきたが、2015年6月に発売されたAMD Radeon R9 Fury Xでは、新しい規格系統のHigh Bandwidth Memory (HBM) が世界で初めて採用された 。しかし、高性能だが高価格なHBMの採用はコンシューマー用途では進まず、GDDR5の後継規格であるGDDR5XやGDDR6が採用されるようになっている。

2010年代後半にGPGPUという手法が広く普及したことで、HPC分野でもGPUを多用するようになった。特に深層学習（ディープラーニング）ベースのAI用途にGPUの需要が高まっている。VRAMに関しては費用対効果の面から、HPC用途ではたとえ高コストでも広帯域・大容量のHBM、ゲームなどのコンシューマー用途ではたとえ低帯域でも低コストのGDDRという棲み分けが起きている。

一方グラフィックスAPIに関しては、Mantleを皮切りとして、Metal、DirectX 12およびVulkanのように、ハードウェアにより近い制御を可能とするローレベル (low-level) APIが出現することとなった。ローレベルAPIはいずれもハードウェア抽象化レイヤーを薄くすることによるオーバーヘッドの低減や描画効率の向上を目的としており、またマルチコアCPUの活用を前提とした描画あるいは演算コマンドリストの非同期実行といった機能を備えている。また、GPUでリアルタイムレイトレーシングを実現する動きも加速しつつある。2009年にが、2011年にのOpenRLが、そして2018年にマイクロソフトの (DXR) とAppleのMetal Ray Tracingが発表された。NVIDIA GeForce RTXシリーズはDXRのハードウェアアクセラレーションに対応する最初のGPUである。

2020年にはインテルが同社としては1998年に発売した「Intel 740」以来、22年ぶりの単体GPUである「iris Xe Max」を発売し、更に2022年にインテルはPC向けで同社初の本格的な単体GPUである「Intel Arc」を発売した。NVIDIAとAMDの2社がほぼ寡占しているPC向けの単体GPU市場にインテルが本格参戦する状況になった。実態としては最上位でもミドルクラスの性能であり、Resizable BAR 非対応のマシンでのパフォーマンスの大幅低下やドライバの完成度の低さやアイドル時の電力効率の低さなどで主要2社の製品に劣るものの、既に十分使える製品となっているため、主要2社に対するカウンターとしての存在感を示すことには成功したと言える。また、2023年8月になると人工知能のGPUに対する需要の爆発な成長が故GPUは供給不足に直面している。

 GPUの構造 

DirectX 10世代以降のGPUは統合型シェーダーアーキテクチャに基づいて設計されており、Intel GMAなどの一部を除きGPGPUにも対応している。

 NVIDIA Fermiアーキテクチャの例 

NVIDIAのGPUは、統合型シェーダーアーキテクチャを採用したGeForce 8 (G80) シリーズ以降、Warp単位（32ハードウェアスレッド）での並列処理実行が特徴となっている 。NVIDIAのGT200アーキテクチャでは、単精度CUDAコア (SPCC) と倍精度ユニット (DPU) が分かれていたが、Fermiでは単精度CUDAコア16個を2グループ組み合わせ、倍精度演算器16個と見立てて実行している。

 ホストインターフェース
 GigaThreadスケジューラ
 グラフィックスプロセッシングクラスタ (GPC)
 ラスタライザ
 ストリーミングマルチプロセッサ (SM)
 命令キャッシュ (I-Cache)
 Warpスケジューラ
 命令ディスパッチユニット
 レジスタファイル
 Uniformキャッシュ
 ジオメトリコントローラ
 ストリーミングマルチプロセッサコントローラ (SMC)
 CUDAコア
 ディスパッチポート
 命令コントローラ
 浮動小数点ユニット (FP Unit)
 整数ユニット (INT Unit)
 結果キュー
 LOAD/STOREユニット (LD/ST)
 特殊関数ユニット (SFU) - 超越関数の実行を行なう
 共有メモリ / L1キャッシュ 
 テクスチャユニット
 テクスチャL1キャッシュ
 テッセレータ (PolyMorph Engine) 
 相互接続ネットワーク
 (ROP)
 L2キャッシュ
 メモリコントローラ

 AMD GCNアーキテクチャの例 
AMDのGPUは、Radeon HD 2000～HD 6000シリーズにおいてVLIWを採用していたが、HD 7000シリーズ以降では、グラフィックスだけでなくGPGPUでも性能を発揮できるようにするために、非VLIWなSIMDとスカラー演算ユニットにより構成されたGraphics Core Next (GCN) アーキテクチャを採用している。AMD GPUではWavefront単位（64ハードウェアスレッド）での並列処理実行が特徴となっている。

 リクエスト調停
 スカラーL1キャッシュ
 命令L1キャッシュ
 コンピュートエンジン
 非同期コンピュートエンジン (ACE)
 コンピュートシェーダー (CS) パイプ 
 スケーラブルグラフィックスエンジン
 グラフィックス (GFX) コマンドプロセッサー (GCP)
 ワークディストリビュータ
 コンピュートシェーダー (CS) パイプ 
 プリミティブパイプ
 ハイオーダーサーフィス (HOS)
 テッセレート
 ジオメトリ
 ピクセルパイプ
 スキャンコンバーション
 レンダーバックエンド (RB)
 コンピュートユニット (CU) / 統合シェーダーコア
 命令フェッチ (IF) 調停
 SIMDプログラムカウンタ (PC) &命令バッファ (IB)
 命令調停 (Instruction Arbitration)
 分岐&メッセージユニット
 送出/グローバルデータ共有 (GDS) デコード
 ベクターメモリデコード
 スカラーデコード
 スカラー演算装置 (Scalar ALU)
 レジスタ
 演算装置 (ALU)
 ベクターデコード
 混合精度SIMDユニット (MP SIMD Unit)
 レジスタ
 混合精度ベクター演算装置 (MP Vector ALU)
 ローカルデータ共有 (LDS) デコード
 ローカルデータ共有メモリ
 データL1キャッシュ
 アドレスユニット
 L1ベクターデータキャッシュ
 データ返却ユニット
 クロスバー (XBAR)
 L2キャッシュ
 メモリコントローラ

 組み込みシステム 

 ゲーム機 

ゲーム業界においても、1990年代後半から3D描画能力の向上が求められ、ゲーム機（ゲームコンソール）ベンダーはGPUメーカーと共同で専用のGPUを開発するようになった。汎用機であるパーソナル・コンピュータ（PC）用GPUより先行した新機能やeDRAMの搭載で差別化したものが多い。また、汎用化・共通化のための分厚い抽象化層がほとんど不要な専用APIや専用マシン語が使えることもあいまって、同世代における下位や中位のPC用GPUよりも画像処理性能においては高性能である。

本節ではハードウェアT&Lあるいはそれに類する3次元コンピュータグラフィックスパイプラインを有するもののみを列挙する。

 PlayStationに搭載されたGeometric Transfer Engine (GTE)
 SCE製。ハードウェアジオメトリエンジンをPC用GPUより5年ほど先行して搭載している。CPU内のコプロセッサとして動作する。
 なおGTEとは別に、GPUと呼ばれるフレームバッファを扱う2Dグラフィックス処理用のチップも搭載している。
 PlayStation 2に搭載されたGraphics Synthesizer (GS)
 SCE製。GPUにeDRAMをVRAMとしてオンダイで混載し、2560bitという広帯域な内部バスを実現した。eDRAMはゲーム機用GPUに多用されるようになった。
 PlayStation 3に搭載されたRSX Reality Synthesizer (RSX)
 NVIDIAとSCEが共同開発した。G70ベースであると説明されている。
 PlayStation Vitaに搭載されたPowerVR SGX543MP4+
 Imagination TechnologiesとSCEが共同開発した。
 NINTENDO 64に搭載されたRCP
 SGI（現AMD）製。座標計算や音声処理を全て内蔵DSPによるSIMD演算で行う構造で、これは現代で言えば頂点シェーダーによるGPGPUを行うことに相当する先鋭的なもの。
 ニンテンドー ゲームキューブに搭載されたFLIPPER
 ATI（現AMD）製。旧ArtXが担当、NEC製造。
 Wiiに搭載されたHollywood
 AMD製。NEC製造。
 Wii Uに搭載されたRadeon HD
 AMD製。Radeon HD 4000世代。
 ニンテンドー3DSに搭載されたPICA200
 ディジタルメディアプロフェッショナルが開発した。
 ドリームキャスト、NAOMIに搭載されたPowerVR2
 VideoLogic製。NEC製造。。
 Xboxに搭載されたXGPU
 NVIDIA製。GeForce3と4の中間世代のアーキテクチャ。Xboxは世界で最初にプログラマブルシェーダー対応のGPUを搭載したゲーム機となった。
 Xbox 360に搭載されたXenos
 AMD製。統合型シェーダーアーキテクチャをPC用GPUより先行して搭載している。DirectX 9世代とDirectX 10世代の中間に相当する。
 Nintendo Switchに搭載されたNVIDIA Tegraのカスタマイズ品
 NVIDIA製。カスタム品であることは公式発表されているが、ベースとなったGPUがどの世代なのかは非公表である。
 Vulkan 1.1、OpenGL 4.5以降、OpenGL ES 3.2に対応。

なおXbox One、PlayStation 4においては、それぞれAMD製のx86互換APUのカスタマイズ版が搭載されており、GPGPUの活用とPCゲームからの移植性を重視したアーキテクチャとなっている。