コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「Graphics Processing Unit」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Cewbot (会話 | 投稿記録)
94行目: 94行目:
2010年代後半に[[GPGPU]]という手法が広く普及したことで、[[高性能計算|HPC]]分野でもGPUを多用するようになった。特に深層学習([[ディープラーニング]])ベースのAI用途にGPUの需要が高まっている。VRAMに関しては費用対効果の面から、HPC用途ではたとえ高コストでも広帯域・大容量のHBM、ゲームなどのコンシューマー用途ではたとえ低帯域でも低コストのGDDRという棲み分けが起きている<ref>{{Cite news|title=【後藤弘茂のWeekly海外ニュース】 Intelなどプロセッサベンダーがけん引するHBM3規格|date=2018-03-20|last=株式会社インプレス|url=https://pc.watch.impress.co.jp/docs/column/kaigai/1112395.html|accessdate=2018-11-12|language=ja-JP|work=PC Watch}}</ref>。<!-- 以前の版には「HPCではゲームよりも遥かに大きなデータを処理する必要がある」という記述があったが、それは正しいものの見方ではない。コンシューマー環境で膨大なデータを扱うことは単に費用対効果の面で見合わない(扱いたくても扱えない)というだけの話。 -->
2010年代後半に[[GPGPU]]という手法が広く普及したことで、[[高性能計算|HPC]]分野でもGPUを多用するようになった。特に深層学習([[ディープラーニング]])ベースのAI用途にGPUの需要が高まっている。VRAMに関しては費用対効果の面から、HPC用途ではたとえ高コストでも広帯域・大容量のHBM、ゲームなどのコンシューマー用途ではたとえ低帯域でも低コストのGDDRという棲み分けが起きている<ref>{{Cite news|title=【後藤弘茂のWeekly海外ニュース】 Intelなどプロセッサベンダーがけん引するHBM3規格|date=2018-03-20|last=株式会社インプレス|url=https://pc.watch.impress.co.jp/docs/column/kaigai/1112395.html|accessdate=2018-11-12|language=ja-JP|work=PC Watch}}</ref>。<!-- 以前の版には「HPCではゲームよりも遥かに大きなデータを処理する必要がある」という記述があったが、それは正しいものの見方ではない。コンシューマー環境で膨大なデータを扱うことは単に費用対効果の面で見合わない(扱いたくても扱えない)というだけの話。 -->


一方グラフィックスAPIに関しては、[[Mantle (API)|Mantle]]を皮切りとして、[[Metal (API)|Metal]]、DirectX 12および[[Vulkan (API)|Vulkan]]のように、ハードウェアにより近い制御を可能とするローレベル (low-level) APIが出現することとなった。ローレベルAPIはいずれも[[Hardware Abstraction Layer|ハードウェア抽象化レイヤー]]を薄くすることによるオーバーヘッドの低減や描画効率の向上を目的としており、またマルチコアCPUの活用を前提とした描画あるいは演算コマンドリストの非同期実行といった機能を備えている。また、GPUでリアルタイム[[レイトレーシング]]を実現する動きも加速しつつある。2009年に{{仮リンク|NVIDIA OptiX|en|OptiX}}<ref>[http://www.nvidia.co.jp/object/optix_jp.html NVIDIA&#x00ae; OptiX アプリケーション・エンジン | NVIDIA]</ref><ref>[https://developer.nvidia.com/optix NVIDIA&#x00ae; OptiX Application Acceleration Engine | NVIDIA]</ref><ref>[https://news.mynavi.jp/article/20091014-gtc06/ GTC - NVIDIA「OptiX」を解説、レイトレーシングはインタラクティブの時代へ (1) なぜ、今、レイトレーシングなのか | マイナビニュース]</ref>が、2011年に{{仮リンク|イマジネーションテクノロジーズ|en|Imagination Technologies}}の{{仮リンク|OpenRL|en|OpenRL}}<ref>[http://www.4gamer.net/games/017/G001762/20110920023/ 4Gamer.net ― PowerVRのImaginationが“ハイエンドGPU”の設計に着手。ハイブリッドレンダリングハードウェア,そして新API「OpenRL」とは?]</ref>が、そして2018年に[[マイクロソフト]]の{{仮リンク|DirectX Raytracing|en|DirectX Raytracing}} (DXR) と[[アップル (企業)|アップル]]の[[Metal (API)|Metal Ray Tracing]]が発表された。NVIDIA GeForce RTXシリーズはDXRのハードウェアアクセラレーションに対応する最初のGPUである。
一方グラフィックスAPIに関しては、[[Mantle (API)|Mantle]]を皮切りとして、[[Metal (API)|Metal]]、DirectX 12および[[Vulkan (API)|Vulkan]]のように、ハードウェアにより近い制御を可能とするローレベル (low-level) APIが出現することとなった。ローレベルAPIはいずれも[[Hardware Abstraction Layer|ハードウェア抽象化レイヤー]]を薄くすることによるオーバーヘッドの低減や描画効率の向上を目的としており、またマルチコアCPUの活用を前提とした描画あるいは演算コマンドリストの非同期実行といった機能を備えている。また、GPUでリアルタイム[[レイトレーシング]]を実現する動きも加速しつつある。2009年に{{仮リンク|NVIDIA OptiX|en|OptiX}}<ref>[http://www.nvidia.co.jp/object/optix_jp.html NVIDIA&#x00ae; OptiX アプリケーション・エンジン | NVIDIA]</ref><ref>[https://developer.nvidia.com/optix NVIDIA&#x00ae; OptiX Application Acceleration Engine | NVIDIA]</ref><ref>[https://news.mynavi.jp/article/20091014-gtc06/ GTC - NVIDIA「OptiX」を解説、レイトレーシングはインタラクティブの時代へ (1) なぜ、今、レイトレーシングなのか | マイナビニュース]</ref>が、2011年に{{仮リンク|イマジネーションテクノロジーズ|en|Imagination Technologies}}の{{仮リンク|OpenRL|en|OpenRL}}<ref>[http://www.4gamer.net/games/017/G001762/20110920023/ 4Gamer.net ― PowerVRのImaginationが“ハイエンドGPU”の設計に着手。ハイブリッドレンダリングハードウェア,そして新API「OpenRL」とは?]</ref>が、そして2018年に[[マイクロソフト]]の{{仮リンク|DirectX Raytracing|en|DirectX Raytracing}} (DXR) と[[Apple]]の[[Metal (API)|Metal Ray Tracing]]が発表された。NVIDIA GeForce RTXシリーズはDXRのハードウェアアクセラレーションに対応する最初のGPUである。


== GPUの構造 ==
== GPUの構造 ==
249行目: 249行目:


=== チップセットまたはCPU統合GPUのみ手がけている企業 ===
=== チップセットまたはCPU統合GPUのみ手がけている企業 ===
* [[アップル (企業)|アップル]] (自社製[[System-on-a-chip|SoC]]専用。外販はしていない)
* [[Apple]] (自社製[[System-on-a-chip|SoC]]専用。外販はしていない)
* [[SiS]] (かつては単体製品も提供していた)
* [[SiS]] (かつては単体製品も提供していた)



2021年5月20日 (木) 10:52時点における版

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

NVIDIA製のGPU - GeForce 6600 GT

歴史

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 〜)[1]やEEGC(あるいはE2GC)といったチップに至っては、非公開情報を集めた文献にもその名前以外には殆ど全く情報がない。

1990年代

1990年代に入ると、シリコングラフィックス (SGI) が自社のグラフィックワークステーション用のグラフィックライブラリとして開発実装したIRIS GL英語版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年にマイクロソフトWindows95とともに開発したゲーム作成及びマルチメディア再生用のAPI群DirectXではさらにグラフィック・アクセラレータの性能が強化された。DirectXのコンポートネントのひとつDirect3D当初から[要出典]3Dグラフィック処理のハードウェア化を想定したレンダリング・パイプラインを持っていた。

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

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

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

ハードウェアによる座標変換・陰影計算処理(: Hardware Transform and Lighting; ハードウェアT&L)は1999年にリリースされたDirectX 7にて標準化され[2]、またこのハードウェアT&Lを世界で初めて実装して製品化したNVIDIA GeForce 256を定義する言葉として「GPU」という名称が提唱されることとなった。ハードウェアT&Lの実装によって、NVIDIA社製品は他社製品と比較して突出した高性能を発揮するようになった。これ以後、3dfx Voodooシリーズも目立って高性能とは言えなくなった。

2000年代

3次元グラフィックスのパイプライン処理

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

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

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

GeForce 8800の内部構造
統合シェーダーである「Streaming Processor」が128個搭載されている。これにより最大500GFLOPS超で処理する。

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

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

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

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

2010年代

主なCPUメーカーは、従来のCPU機能だけにとどまらず、1つのCPUチップ内に複数のCPUコア(マルチコア)を搭載すると同時に、画像出力専用回路としてGPUコアも統合した製品を提供するようになった。例えば、米AMDでは「AMD Fusion」構想において1つのダイ上に2つ以上のCPUとGPUを統合し[9][5]、米インテル社でもCore i5Core i7Core i3でのSandy Bridge世代から、同様の製品を提供している[10][11][12]。なお、従来型の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) [13]が世界で初めて採用された[14] [15] [16]。しかし、高性能だが高価格なHBMの採用はコンシューマー用途では進まず、GDDR5の後継規格であるGDDR5XGDDR6が採用されるようになっている。

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

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

GPUの構造

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

NVIDIA Fermiアーキテクチャの例

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

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

AMD GCNアーキテクチャの例

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

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

組み込みシステム

ゲーム機

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

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

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

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

その他

近年[いつ?]携帯電話カーナビゲーションシステムの表示機能の高度化が著しく、組み込みシステムにおいて用いられていたVDPに代わって、OpenGL ES対応のプログラマブルシェーダーを搭載したGPUが採用されることが増えてきている。特に使用メモリと消費電力を抑える要求から、PowerVRのシェアが高い[要出典]

「GPU」という名前

「GPU」は、1999年にNVIDIA Corporationが、GeForce 256の発表時に提唱した呼称である[46] [47]。それまでビデオカード上の処理装置は「ビデオチップ」と呼ばれていたが、GeForce 256はハードウェアT&Lを世界で初めて搭載し、3次元コンピュータグラフィックスの内部計算および描画処理におけるCPU側の負荷を大幅に軽減するコプロセッサとしての地位を確立したことから、NVIDIA社は「Graphics Processing Unit」と命名した。

GPUと同様の名称として、Visual Processing Unit (VPU) が存在する。「VPU」は、3Dlabs Inc.が、Wildcat VP(量産品としては世界初の汎用シェーダー型設計のGPU[要出典])の発表時に命名した[48]。なお、VPUの呼称に関しては、ATI TechnologiesRadeon 9500/9700の発表時に提唱したと誤解されることがある[49]が、実際は、3DlabsのWildcat VPの発表が先行している。また、ATIがVPUの呼称を使ったのは、当時は3Dlabsと提携していたからでもある。

現在[いつ?]はAMD (旧ATI) も主にGPUの呼称を使用している。

統合GPU

一般に、チップセットおよびCPU内蔵GPU(統合GPU、iGPU)のグラフィック機能は単体チップ型のGPU(ディスクリートGPU、dGPU)に劣るが、消費電力やコスト面では有利である。このため、オフィススイートやネットアクセスなどを中心とした高性能が必要ない用途が想定され、低価格が求められる業務用端末(クライアント)機向けや、低発熱・低消費電力が求められるノートパソコンなどでは単体チップのGPUではなく、統合GPUが多く搭載されている。比較的高性能なGPUを使用するゲーム機でもコストダウンを目的としてGPUの統合化が進んでいる。

高性能なGPUの利用を前提とするAeroを搭載したWindows Vistaの登場以降、チップセット内、およびCPUパッケージ内に統合されているGPUコアの性能が向上してきたため、GPU単体の製品はローエンドの物から3Dゲームの快適なプレイやCADオペレーション・3DCG制作におけるプレビュー用途を想定した、比較的高価で高性能なものへとシフトしている。

GPU 開発企業

チップセットまたはCPU統合GPUのみ手がけている企業

  • Apple (自社製SoC専用。外販はしていない)
  • SiS (かつては単体製品も提供していた)

他社へのライセンス供与のみを行なう企業

過去にGPUまたはビデオチップを手がけていた企業

脚注

  1. ^ 小口哲司他 (1987年). “μPD7220後継のグラフィックス・コントローラLSI, コピーや塗りつぶし機能を強化 - 日経エレクトロニクス1987.2.23” (PDF). Oguchi R&D. 2020年11月15日閲覧。
  2. ^ Microsoft releases DirectX 7.0 | Windows Server content from Windows IT Pro
  3. ^ Schechter, Greg (2006年3月19日). “DWM's use of DirectX, GPUs, and hardware acceleration” (英語). Greg Schechter's Blog. 2009年2月14日閲覧。
  4. ^ 【レビュー】初の統合型シェーダーアーキテクチャ「GeForce 8800シリーズ」を試す (1) 新アーキテクチャで登場したG80 | マイナビニュース
  5. ^ a b 日経エレクトロニクス 2007/10/8 「プロセサはマルチ×マルチへ」
  6. ^ AMDのGPGPU戦略は新章へ - ATI Streamの展望、DirectX Compute Shaderの衝撃 (1) Radeon HD 4000シリーズでネイティブGPGPU | マイナビニュース
  7. ^ MicrosoftがGPGPU開発向けC++の拡張「C++ AMP」を発表 - 多和田新也(AFDSレポート)、PC Watch、Impress(2011年6月17日付配信、2012年3月24日閲覧)
  8. ^ テッセレーションの概要
  9. ^ 現実路線へ修正されたAMDのFUSION - 後藤弘茂のWeekly海外ニュース、PC Watch、Impress(2007年12月25日付配信、2012年3月24日閲覧)
  10. ^ Intelの次期CPU「Ivy Bridge(アイビーブリッジ)」を裸にする - 後藤弘茂のWeekly海外ニュース、PC Watch、Impress(2012年3月2日付配信、2012年3月24日閲覧)
  11. ^ Intel NehalemとAMD FUSION 両社のCPU+GPU統合の違い - 後藤弘茂のWeekly海外ニュース、PC Watch、Impress(2007年10月11日付配信、2012年3月24日閲覧)
  12. ^ CPUとGPUの境界がなくなる時代が始まる2009年のプロセッサ - 後藤弘茂のWeekly海外ニュース、PC Watch、Impress(2008年12月2日付配信、2012年3月24日閲覧)
  13. ^ 5981_High_Bandwidth_Memory_HBM_FNL - High-Bandwidth-Memory-HBM.pdf
  14. ^ 【レビュー】初のHBM搭載ビデオカード「Radeon R9 Fury X」を試す - PC Watch
  15. ^ これが“4096”の性能だ:“Fiji”と“HBM”の実力を「Radeon R9 Fury X」で知る (1/5) - ITmedia PC USER
  16. ^ Hot Chips 27 - AMDの次世代GPU「Fury」 (1) HBMを採用したAMDのGPU「Radeon R9 Fury」 | マイナビニュース
  17. ^ 株式会社インプレス (2018年3月20日). “【後藤弘茂のWeekly海外ニュース】 Intelなどプロセッサベンダーがけん引するHBM3規格” (日本語). PC Watch. https://pc.watch.impress.co.jp/docs/column/kaigai/1112395.html 2018年11月12日閲覧。 
  18. ^ NVIDIA® OptiX アプリケーション・エンジン | NVIDIA
  19. ^ NVIDIA® OptiX Application Acceleration Engine | NVIDIA
  20. ^ GTC - NVIDIA「OptiX」を解説、レイトレーシングはインタラクティブの時代へ (1) なぜ、今、レイトレーシングなのか | マイナビニュース
  21. ^ 4Gamer.net ― PowerVRのImaginationが“ハイエンドGPU”の設計に着手。ハイブリッドレンダリングハードウェア,そして新API「OpenRL」とは?
  22. ^ NVIDIA TESLA: A UNIFIED GRAPHICS AND COMPUTING ARCHITECTURE P.44 IEEE 2008年
  23. ^ ホワイトペーパー; NVIDIA の次世代 CUDA™コンピュートアーキテクチャ: Fermi™
  24. ^ An Introduction to Modern GPU Architecture P.44 NVIDIA
  25. ^ NVIDIA GPUの構造とCUDAスレッディングモデル
  26. ^ a b c d e f g h i j k l m n o p NVIDIA (2009年). “Whitepaper; NVIDIA's Next Generation CUDA™ Compute Architecture: Fermi™ (V1.1)”. pp. 7-8. 2015年12月5日閲覧。
  27. ^ a b c ■後藤弘茂のWeekly海外ニュース■ DirectX 11でも強力なNVIDIAの新GPU「GF100」 PC Watch 2010年1月19日
  28. ^ a b c d e f GPU Computing Applications P.42 NVIDIA 2011年
  29. ^ NVIDIA (2009年). “Whitepaper; NVIDIA's Next Generation CUDA™ Compute Architecture: Fermi™ (V1.1)”. p. 11. 2015年12月5日閲覧。
  30. ^ 4Gamer.net ― NVIDIA,Fermi世代の次期GeForce「GF100」グラフィックスアーキテクチャを発表
  31. ^ AMD's Graphics Core Next Preview: AMD's New GPU, Architected For Compute P.3 2011年12月21日
  32. ^ a b c d e f g h i j k l m n o p q r s t u v w AMD GRAPHIC CORE NEXT P.10 AMD 2011年7月
  33. ^ a b c d e f g h i j k l m n AMD GRAPHIC CORE NEXT P.39 AMD 2011年7月
  34. ^ a b c AMD GRAPHIC CORE NEXT P.24 AMD 2011年7月
  35. ^ AMD GRAPHIC CORE NEXT P.33 AMD 2011年7月
  36. ^ 【特別企画】歴代家庭用ゲーム機を軒並み分解――TGS2008「ゲーム科学博物館」より(7ページ目) | 日経 xTECH(クロステック)
  37. ^ 後藤弘茂のWeekly海外ニュース - PLAYSTATION 3のグラフィックスエンジンRSX
  38. ^ PS Vitaで採用されるGPUコア「PowerVR SGX543MP4+」のImaginationに聞く「+」の意味。PowerVRは次世代ゲーム機への採用も目指す!? - 4Gamer.net
  39. ^ 【西川善司】Wii UのGPU性能と新型コントローラに秘められた「コアゲーマー求心」の裏戦略 - 4Gamer.net
  40. ^ [CEDEC 2012]3DSはまだその実力を100%発揮できていない!? 3DSが搭載するGPUコア「PICA200」の詳細 - 4Gamer.net
  41. ^ 後藤弘茂のWeekly海外ニュース - NVIDIAチーフ・サイエンティスト インタビュー(下)
  42. ^ 3Dグラフィックス・マニアックス (5) GPUとシェーダ技術の基礎知識(5) | マイナビニュース
  43. ^ NVIDIA Gaming Technology Powers Nintendo Switch | NVIDIA Blog
  44. ^ Conformant Products - The Khronos Group Inc
  45. ^ 【後藤弘茂のWeekly海外ニュース】PlayStation 4のAPUアーキテクチャの秘密 - PC Watch
  46. ^ CreativeからGeForce 256搭載ビデオカードが登場 - AKIBA PC Hotline! 1999年10月9日号
  47. ^ GeForce 256
  48. ^ 3Dlabs Wildcat VP760 Datasheet
  49. ^ ATIがDirectX 9に対応したVPU「RADEON 9700」をリリース
  50. ^ Appleから利用停止宣告を受けたImaginationの今 - EE Times Japan
  51. ^ 4Gamer.net ― ATIにお別れ。AMD,ATIブランドを統合し,GPUは「AMD Radeon」に

外部リンク

関連項目