ジー‐ピー‐ジー‐ピー‐ユー【GPGPU】
GPGPU
読み方:ジーピージーピーユー
GPGPUとは、元来は画像処理用のGPU(Graphics Processing Unit)の演算性能を、本来の画像処理以外の用途のために汎用的に利用する概念、技術のことである。
GPUは特に3次元グラフィック用計算のために、大量の計算を高速で行うことが要求されてきたが、画像処理に限定せず汎用的に活用するために考えだされたのがGPGPUである。計算速度が高速であるため、世界トップクラスのスーパーコンピュータにも使われるようになってきた。
GPGPUをフルに活用するためには、汎用プロセッサとは異なるプログラミングが必要である。最大限活用するためには、そのアーキテクチャに適したプログラミング技術が求められ、そのためのフレームワークとしては例えば業界標準のOpenCLがある。
なお、多くのGPUがGPGPUとして利用できるようになり、単にGPUだけでもGPGPUの意味を含んでいる場合も多い。
GPGPU
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/07/24 10:06 UTC 版)
GPGPU(General-purpose computing on graphics processing units; GPUによる汎用計算)とは、GPUの演算資源を画像処理以外の目的に応用する技術のことである[1][2]。ビッグデータなどを含む科学技術計算に対し大量の計算を実行できるというメリットのため、広く使われるようになった[3]。2022年、単一マシンとしては世界初のエクサスケールコンピュータとなった米HPEの「フロンティア」にもベクトル計算用にAMDのGPUが搭載されるなど、世界最速を競うスーパーコンピュータでの利用も一般的である。
注釈
- ^ 処理を行うCPUと、データを置くメインメモリの間のバスの速度がコンピュータ全体の計算性能の上限を規定することをフォン・ノイマン・ボトルネックと言う。GPUとメインメモリについても同様のボトルネックが発生するため欠点として挙げている。
- ^ つまり、固定長ベクトル命令しか扱えず、固定長レジスタの長さに一致しない端数のデータについて別途考慮が必要になるという問題が発生する。 伝統的にスーパーコンピュータで多用されてきた専用設計のベクトルプロセッサであれば可変長ベクトル命令が扱え、端数のデータに対して別途考慮する必要がない上に効率よく計算が行えるため、GPUが採用する固定長レジスタは欠点となる。
- ^ 疎行列にアクセスする際に行われる、巨大な配列データを大域的にインデックス参照で引いてくるランダムメモリアクセスを多用する操作は、一般的なスカラ型のCPUやGPGPUにとってはフォン・ノイマン・ボトルネックにより苦手な処理となる。
- ^ NVIDIAのRTX30シリーズでは単精度と倍精度で演算器の個数に64倍の差があり、理論上の倍精度の演算性能も単精度の1/64となる[47]
- ^ 例えばGPGPU向けのTesla P100では半精度での演算性能が2倍になるよう設計されている[49]
- ^ NVIDIA Ampere A100など
- ^ Direct X9以前のシェーダーは固定機能の演算を提供するものであったが、DirectX 10以降のDirectComputeAPIではGPUをゲームなどでの汎用的な計算に用いることが可能なコンピュートシェーダーが利用できる。[88]。
- ^ 例としてゲームエンジンのUnreal Engine 4やLuminous StudioのパーティクルシステムにおいてGPGPU技術の利用がある [89]。
- ^ 例えばOpenACCやOpenMPなどを用いると並列処理用に書かれていない通常のC言語のソースに対して指示行を追加することでGPUに処理をオフロードすることが可能である[109]
出典
- ^ GPGPU | ビジネスパートナー | 東芝デジタルメディアエンジニアリング株式会社
- ^ GPGPUソリューション | HPCシステムズはすべての研究開発者に計算力を提供します。
- ^ Hisa Ando 2017, p. 19.
- ^ 株式会社インプレス (2016年10月6日). “【後藤弘茂のWeekly海外ニュース】 NVIDIA次世代SoC「Xavier」は進化版DenverとVoltaを搭載”. PC Watch. 2023年6月19日閲覧。
- ^ “プロセッサ開発のセンス ~第4回 ベクトル・プロセッサ~ | 株式会社エヌエスアイテクス (NSITEXE,Inc.)” (2023年2月22日). 2023年6月18日閲覧。
- ^ a b “「ベクトル型スパコンは高すぎる」、GPU利用のHPCが本格化 - @IT”. atmarkit.itmedia.co.jp. 2023年6月21日閲覧。
- ^ 西川善司 (2019). ゲーム制作者になるための3Dグラフィックス技術 改訂3版. インプレス. p. 76. ISBN 978-4295007869
- ^ Hisa Ando 2017, p. 213.
- ^ 2005年からNVIDIAに所属しており、CUDAを考案するなどGPGPUの第1人者として業界を牽引している。
- ^ a b “Ian Buck | Research Projects”. graphics.stanford.edu. 2023年5月30日閲覧。
- ^ a b published, Alan Dang (2009年9月3日). “Exclusive Interview: Nvidia's Ian Buck Talks GPGPU” (英語). Tom's Hardware. 2023年5月30日閲覧。
- ^ ASCII. “業界に痕跡を残して消えたメーカー CG業界を牽引したSGI (1/4)”. ASCII.jp. 2023年5月30日閲覧。
- ^ “Ray Tracing on Programmable Graphics Hardware”. graphics.stanford.edu. 2023年5月30日閲覧。
- ^ a b Inc, Aetas. “2009年,本格始動するGPGPUの世界・前編~GPGPUって何?”. 4Gamer.net. 2023年5月29日閲覧。
- ^ 株式会社インプレス (2022年1月24日). “ビデオカードの品薄と価格高騰に振り回された1年、買い取り価格が購入時より高値になる事も ~ アキバのショップ店員が語る2021年 その2 ~”. AKIBA PC Hotline!. 2023年5月30日閲覧。
- ^ 一乘, 宮田; 誠史, 高橋; 篤, 黒田 (2005). “Gpuコンピューティングの動向と将来像”. 芸術科学会論文誌 4 (1): 13–19. doi:10.3756/artsci.4.13 .
- ^ AMD Radeon™ R9シリーズ・グラフィックス・カード, 2 ops/cycle × 1050 MHz × 4096 cores.
- ^ AMD FirePro™ S9170サーバーGPU
- ^ GPGPUのキラーアプリケーションは「グラフィックス」 - @IT
- ^ 4Gamer.net ― OpenGLはDirectX 11を超え,OpenGL ESは据え置き型ゲーム機と同等以上に。Khronosの最新動向レポート
- ^ PGI GPU用アクセラレータコンパイラ 情報サイト - GPU / GPGPU / CUDA 対応、CUDA Fortran
- ^ これからの並列計算のためのGPGPU連載講座(V) 疎行列ベクトル積を題材としたCUDA最適化プログラミング
- ^ Harish, Pawan; Narayanan, P. J. (2007). “Accelerating large graph algorithms on the GPU using CUDA”. Lecture Notes in Computer Science (Springer Berlin Heidelberg) 4873: 197-208. doi:10.1007/978-3-540-77220-0_21 .
- ^ 【レビュー】549ドルのGeForce GTX TITAN対抗馬「Radeon R9 290X」をベンチマーク - PC Watch
- ^ 【4Gamer.net】[特集]「GeForce 8800」のポイントをブロックダイアグラムから探る
- ^ 【4Gamer.net】 - 西川善司の3Dゲームエクスタシー - ATI, Radeon X1000シリーズ発表でSM3.0世代に突入
- ^ 【後藤弘茂のWeekly海外ニュース】GTCの目玉の1つ「Tegra 4/4i」のCPUアーキテクチャ
- ^ Kepler GPUアーキテクチャとプログラム最適化 (2) GPUはどうやって命令を処理しているのか | マイナビニュース
- ^ 【後藤弘茂のWeekly海外ニュース】PlayStation 4で採用されたAMDのGCNアーキテクチャ
- ^ コンピュータアーキテクチャの話 (322) GPUが用いるメモリのアクセス時間の短縮方法 | マイナビニュース
- ^ a b 第5回 GPUの構造 | G-DEP
- ^ 4Gamer.net ― 「GeForce GTX TITAN」登場。500円玉より大きなモンスターGPUの“性能以外”を徹底解説
- ^ AMD、R580コアをベースにしたHPC専用プロセッサ「Stream Processor」 | マイナビニュース
- ^ AMDのGPGPU戦略は新章へ - ATI Streamの展望、DirectX Compute Shaderの衝撃 (1) Radeon HD 4000シリーズでネイティブGPGPU | マイナビニュース
- ^ AMD's RV670 does double-precision at half the speed | TG Daily
- ^ AMD FireStream™9250 - FirePro Server - 製品情報 - 株式会社エーキューブ
- ^ AMD FirePro S9100 - FirePro Server - 製品情報 - 株式会社エーキューブ
- ^ AMD FirePro S9150 - FirePro Server - 製品情報 - 株式会社エーキューブ
- ^ NVIDIA Tesla C1060 - 株式会社 日本コンピューティングシステム
- ^ Tesla C2050 / C2070 GPUコンピューティングプロセッサ
- ^ NVIDIA TESLA C2050 - 株式会社 エルザ ジャパン
- ^ 4Gamer.net ― NVIDIA,Keplerベースの新世代Teslaを発表。「GK110」コア採用の「Tesla K20」が年内に登場予定
- ^ NVIDIA Tesla K20 | 株式会社 エルザ ジャパン
- ^ NVIDIA、最上位GPUアクセラレータ「Tesla K40」を発表 | マイナビニュース
- ^ SC14 - NVIDIAが最上位の科学技術計算用GPU「Tesla K80」を発表 | マイナビニュース
- ^ “サーバー用のGPUアクセラレーター、Tesla K40 と Tesla K80”. NVIDIA Corporation. 2015年10月28日閲覧。
- ^ “西川善司の3DGE:GeForce RTX 30シリーズのアーキテクチャを探る。CUDA Coreの増量とRT Coreの高性能化に注目だ”. 4Gamer. 2023年6月21日閲覧。
- ^ 大原雄介 (2015年3月18日). “【レビュー】NVIDIA GeForce GTX TITAN Xを試す - Maxwell世代の新フラグシップGPUの実力を探る (13) ベンチマーク結果「Basemark CL v1.1」”. マイナビニュース. 2015年11月26日閲覧。
- ^ “【後藤弘茂のWeekly海外ニュース】コンピューティングとグラフィックスへ分化するNVIDIA GPU - PC Watch”. 2023年6月20日閲覧。
- ^ Hisa Ando 2017, p. 148,150.
- ^ Hisa Ando 2017, p. 304.
- ^ Hisa Ando 2017, p. 306.
- ^ 後藤弘茂のWeekly海外ニュース: GeForce GTX 280の倍精度浮動小数点演算
- ^ 4Gamer.net ― AMD,世界初のDX11 GPU「ATI Radeon HD 5800」を発表。HD 4800の大幅な進化形
- ^ 4Gamer.net ― 「ATI Radeon HD 5800」徹底分析(3)~3Dグラフィックスに特化したAMD
- ^ 科学技術計算向け演算能力が引き上げられたGPUアーキテクチャ「Fermi」 (2) 科学技術計算向けのさまざまな工夫 | マイナビニュース
- ^ GTC 2014 - GPUの浮動小数点演算の精度:理論と実践(前編) | マイナビニュース
- ^ ハイブリッドアーキテクチャでスパコン市場に挑むNVIDIA - 後藤弘茂のWeekly海外ニュース(PC Watch, Impress社、2012年4月16日配信、2012年4月16日閲覧)
- ^ How to Access Global Memory Efficiently in CUDA C/C++ Kernels | Parallel Forall
- ^ 【後藤弘茂のWeekly海外ニュース】NVIDIA新世代GPU「Maxwell」のSMアーキテクチャ - PC Watch
- ^ 【後藤弘茂のWeekly海外ニュース】 AMDの新GPUアーキテクチャ「Graphics Core Next」の秘密
- ^ NVIDIA GPUの構造とCUDAスレッディングモデル
- ^ Variable Syntax (Windows)
- ^ tile_static Keyword
- ^ 高速演算記 第25回 「Kepler解説その2 〜Kepler世代の新機能〜」 | G-DEP
- ^ Using Shared Memory in CUDA C/C++ | Parallel Forall
- ^ コンピュータアーキテクチャの話 (336) CPUと異なるGPUにおけるコアと2次キャッシュの関係性 | マイナビニュース
- ^ コンピュータアーキテクチャの話 (337) 実はそれほど速くはないGPUのメモリアクセス時間 | マイナビニュース
- ^ 「Skylake-K」とはいかなるCPUなのか。「Core i7-6700K」ベンチマークで新世代マイクロアーキテクチャの実態を探る - 4Gamer.net
- ^ 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第4回 ~GPGPU性能引き上げのカギとなるCPUとGPUの連携 - PC Watch
- ^ 【後藤弘茂のWeekly海外ニュース】NVIDIAの次期GPU「Pascal」の概要 - PC Watch
- ^ [GTC 2016]西川善司の3DGE:Teslaとして登場した新世代GPU「Pascal」,その詳細に迫る - 4Gamer.net
- ^ » アクセラレータプログラミングの未来
- ^ 4Gamer.net ― 見えてきたAMDの次世代GPUアーキテクチャ。なぜAMDはVLIWを捨てるのか
- ^ レンダリング手法について-CPU or GPU? | KeyShot™総合サイト
- ^ cuBLAS - NVIDIA CUDA ZONE
- ^ cuFFT - NVIDIA CUDA ZONE
- ^ clMath - AMD
- ^ Thrust - NVIDIA CUDA ZONE
- ^ Bolt C++ Template Library - AMD
- ^ スパコン最大の学会「SC13」に見る先端技術 (5) SC13 - CPU-GPU統一メモリを実現したCUDA 6(後編) | マイナビニュース
- ^ OpenCL* 1.2 の活用: インテル® プロセッサー・グラフィックスでバッファーコピーを最小限に抑えてパフォーマンスを向上する方法 | iSUS
- ^ NVIDIA CUDA 6.0 Unified Memory Performance | Acceleware Ltd.
- ^ 【後藤弘茂のWeekly海外ニュース】AMD、新GPU「Tonga」がHSAの最終形であることを明らかに - PC Watch
- ^ » コンパイラ、そしてもっと:アクセラレーター・プログラミング
- ^ KAKEN - GPUによるFFT計算の自動チューニング手法の研究(22680002) - 2011年度研究実績報告書
- ^ GPUとXeon Phi、どちらが計算処理アクセラレータに最適か? - 実際の実行性能を比較するワークショップを首都大学東京が開催 (4) アクセラレータの課題と問題点が語られたパネルディスカッション | マイナビニュース
- ^ 清原隆行『HLSL シェーダーの魔導書 シェーディングの基礎からレイトレーシングまで』翔泳社、2021年6月9日、454頁。ISBN 978-4798164281。
- ^ 西川善司 (2019). ゲーム制作者になるための3Dグラフィックス技術 改訂3版. インプレス. p. 44. ISBN 978-4295007869
- ^ ベクトル型スパコンの存在意義――地球シミュレータのいま (1/2) - ITmedia エンタープライズ
- ^ "これからの並列計算のためのGPGPU連載講座(I) GPUとGPGPUの歴史と特徴", 東京大学情報基盤センター, 大島聡史
- ^ SIGGRAPH 2005 - GPUをCPU的に活用するGPGPUの可能性 (5) GPGPU向けプログラミング言語の登場が始まる | マイナビニュース
- ^ [1]
- ^ [2]
- ^ [3]
- ^ [4]
- ^ 4Gamer.net ― NVIDIA製GPUが「Photoshop」「After Effects」「Premiere Pro」の最新版「CS4」アクセラレーションをサポート。ムービーでその効果をチェック
- ^ ZDNet Japan Staff (2010年4月12日). “アドビ、クリエイティブ製品の最新版「CS5」を5月28日に一斉発売”. CNET Japan. 2010年8月18日閲覧。
- ^ GPU changes (for CUDA and OpenGL) in After Effects CC (12.1) | After Effects region of interest
- ^ GPUレイトレーシング | NVIDIA
- ^ [SIGGRAPH 2014]NVIDIAがゲーム向けのリアルタイム大局照明,IntelはHaswell用DX12ドライバのデモを一般展示セクションで披露 - 4Gamer.net
- ^ AMDは新GPU「Radeon Pro」を,NVIDIAは360度ビデオ用SDKをアピール。プロセッサメーカーによる「SIGGRAPH 2016」の展示をレポート - 4Gamer.net
- ^ Radeon ProRender Technology - AMD
- ^ Doc:JA/2.6/Manual/Render/Cycles/GPU Rendering - BlenderWiki
- ^ NVIDIA iray | NVIDIA
- ^ NVIDIA iray - Design Rendering with CUDA Parallel Processing | NVIDIA
- ^ NVIDIA Advanced Rendering: NVIDIA Iray
- ^ Bitcoinマイニングはまさに軍拡競争、素人お断りの現状とは? - GIGAZINE
- ^ Hisa Ando 2017, p. 232.
- 1 GPGPUとは
- 2 GPGPUの概要
- 3 特徴と課題
- 4 適合分野
- 5 参考文献
GPGPU
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/06 11:56 UTC 版)
「Microsoft DirectX」の記事における「GPGPU」の解説
DirectXはバージョン11において、GPGPU用APIであるDirectComputeをDirect3Dの一部(コンピュートシェーダー)として包括的に実装している。OpenGLもまたバージョン4.3において、Direct3Dと同様のコンピュートシェーダーを導入している。なお、Direct3D/OpenGLともに、GPGPUを含むクロスプラットフォームなヘテロ環境用アクセラレーターAPIであるOpenCLとの連携(相互運用)を行なう拡張機能が用意されている。
※この「GPGPU」の解説は、「Microsoft DirectX」の解説の一部です。
「GPGPU」を含む「Microsoft DirectX」の記事については、「Microsoft DirectX」の概要を参照ください。
GPGPU
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/10 13:52 UTC 版)
「PlayStation 4」の記事における「GPGPU」の解説
本機ではGPUでグラフィック処理以外の汎用演算処理を行うGPGPUが特に重視されている。GPUはその特性から単純な演算の繰り返しに長けており、浮動小数点演算においては本機のGPUはCPUに対して11.5倍も高速に処理を行うことができ(FLOPS比)、物理演算などを担わせれば高い性能を発揮することができる。PS3のCellに搭載されたSPUコアもSIMD浮動小数点演算を得意としていたが、本機ではこれをGPGPUによって担わせている。 GPGPUはGPUでグラフィック処理と汎用演算の双方を行うものであるが、グラフィック描画処理を実行する中で適宜余った性能を汎用演算に振り分けるという事は難しく、そのためグラフィック処理を抑え汎用演算のために性能を余剰させなければならないこと、加えて特にNVIDIAのGPUではグラフィック処理と汎用演算で内部メモリーの扱い方が異なるため、その都度モードを切り替える必要があり双方を同時に実行できない事などが問題点だった。そこで本機ではPS3で活用されたSPURS(SPU Runtime System; 余ったSPUなどのリソースを仮想化し自律的に演算処理を行わせる仕組み)を参考に、グラフィック処理と汎用演算を効率よく同時に行うことができるようカスタマイズが施されているとされる。その例としてGPUコアからL1/L2キャッシュをバイパスし10GB/sの帯域幅で直接メインメモリーを読み書きできるようになっていること、L2キャッシュに新たにvolatileタグが設けられメインメモリーに直接書き込むデータを区別できるようにされており結果としてGPUのキャッシュメモリーをすべてグラフィック処理用に効率よく割くことができるようになっていることなどが挙げられている。これらによりGPGPUをCPUのような感覚で容易に行うことができるとされている。 GPGPUを支援するものとして前述のHSAなどがあるが、このようなアーキテクチャに基づいた統一的なプログラミング言語およびAPIを利用した場合は開発が容易になる反面処理効率を高めることが難しくなることから、SCEはまず独自の最適化技術を用いた独自シェーダー (PlayStation Shader Language; PSSL) を提供する。またそれに続いてより深いレベルでのハードウェアアクセス、中期段階としてOpenGLやDirectXなどの汎用API対応および完全なハードウェアアクセスも提供していくとした上で、長期的には開発を容易にするためCPUとGPUで同じプログラミング言語を使えるようにすることが目標とされている。
※この「GPGPU」の解説は、「PlayStation 4」の解説の一部です。
「GPGPU」を含む「PlayStation 4」の記事については、「PlayStation 4」の概要を参照ください。
GPGPU
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/25 13:20 UTC 版)
GPGPUに関しては、統合型シェーダーアーキテクチャの出現以降、NVIDIA社によるCUDA、KhronosグループによるOpenCL、マイクロソフト社によるDirectComputeといったAPIの整備・標準化も進んでいる。APIごとに特色はあるが、カーネル記述方式などに概ね似通った特徴を持つ。ただしCPUとGPUはメモリ空間が異なるため、まずCPU側のメモリからGPU側のメモリに入力データをコピーしてGPUに処理を実行させ、さらに処理後の結果を出力データとしてGPU側のメモリからCPU側のメモリにコピー(リードバック)する必要があるなど、プログラミングモデルは分散メモリ環境に近く、煩雑である。 AMDはCPUとGPUを統合したAPUを開発しているが、さらにCPUとGPUのメモリ空間までをも統合し、データ転送の手間を減らしてGPGPUアプリケーションソフトウェアの実装を容易にするための仕組みとしてHeterogeneous System Architecture (HSA) を提唱・推進している。 「GPGPU」も参照
※この「GPGPU」の解説は、「並列計算」の解説の一部です。
「GPGPU」を含む「並列計算」の記事については、「並列計算」の概要を参照ください。
GPGPU
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/13 18:41 UTC 版)
詳細は「GPGPU」を参照 GPGPU (General-Purpose computing on Graphics Processing Units) は、「GPU (Graphics Processing Unit) による汎用計算」という意味の頭字語(イニシャリズム)で、GPU Computingとも呼ばれることがある。この文脈におけるComputingはグラフィックス処理に限らない計算処理全般を意味している。 GPUはその本来の用途であるグラフィックスパイプラインの要求に由来する高い計算能力とスループットを持つ、SIMDタイプの高性能高並列プロセッサである。GPUにおける演算ユニットの最小単位は「ストリームプロセッサ」あるいは「ストリーミングプロセッサ」と呼ばれることがあるが、このストリームプロセッサ1つ1つは単純な構造であり、オペレーティングシステム (OS)・アプリケーションソフトウェアの実行や周辺機器制御などの汎用処理全般をつかさどるマイクロプロセッサすなわちCPUのように複雑かつ広範な処理をこなすことはできない。しかし、単純な構造であるがゆえに集積度を高くすることができるため、理論演算性能(FLOPS値)に関していえば、GPUは同世代の製造プロセスにおけるCPUと比べて遥かに高い性能を持っている。また、CPUと比較して電力あたりの理論演算性能(ワットパフォーマンス、Performance per Watt)すなわち電力効率が高いのもGPUの特徴である。そのため、HPC分野においても、x86/x64ベースのCPUを多数用いるより、GPUを多数用いたほうが安価かつ効率的なシステムとなることが期待できる。 GPGPUのきっかけとなったプログラマブルシェーダーが登場した当初は、GPUはコンピュータグラフィックスに特化した設計であり、GPGPUプログラムの開発も難しかった。しかし、統合型シェーダーアーキテクチャの登場以降、CUDAやOpenCLのように、GPUを汎用の並列プロセッサとしてアクセス可能なプログラミングインターフェイス (API) およびプログラミング言語拡張の標準化とサポート・普及が始まっており、C言語のようなよく使われている言語も使用可能である。ただしCUDAやOpenCLなど、GPGPUをサポートするAPIにおいてデバイス側のカーネル記述に使われるC/C++は独自拡張が施されており、CPU向けのプログラム記述に使用される汎用C/C++とは異なる。また、CUDAはホスト側のC/C++にも拡張が入っており、専用のコンパイラを使用する必要があるなど、GPGPU対応アプリケーションソフトウェアを開発するためには従来のCPU向けプログラミングとは異なる技術や知識が必要となる。
※この「GPGPU」の解説は、「高性能計算」の解説の一部です。
「GPGPU」を含む「高性能計算」の記事については、「高性能計算」の概要を参照ください。
固有名詞の分類
- GPGPUのページへのリンク