GPGPU 【General-Purpose computing on Graphics Processing Units】 GPUコンピューティング / Graphics Processing Units computing
概要
GPGPU(General-Purpose computing on Graphics Processing Units)とは、画像処理を高速に実行するGPU(Graphics Processing Unit)の機能を、画像処理以外の用途に転用すること。GPGPUはコンピュータで画像や映像、3次元グラフィックス(3DCG)などの処理を担う特定用途の補助的なマイクロプロセッサの一種で、コンピュータグラフィックスの生成や動画圧縮・再生などに多用される数値計算やデータ処理を高速に実行する機能を持っている。
これを画像や映像とは直接は関係ない計算用途に流用するのがGPGPUで、分野によってはパソコン用の安価なグラフィックスカードでも多数を統合的に運用することで高価な並列計算機に匹敵する高速処理が可能なことから注目を集めている。
GPUは通常のマイクロプロセッサのような広汎で汎用的な機能を持っているわけではないが、内部に多数の演算器(機種によっては数千に及ぶ)を持ち、比較的単純な数値計算を多数のデータに並列に繰り返し適用するのが得意な構造になっている。
この特徴を活かし、画像処理に類似する処理の特徴を持つ分野において高速な並列計算システムを構築することができる。科学技術研究における数値計算やシミュレーションの一部、暗号解読や仮想通貨のマイニング、機械学習やニューラルネットワークといった人工知能(AI)の一部の分野などと相性が良いことが知られている。
当初は純粋にグラフィックス処理向けに設計されたGPU製品を利用者側で工夫して転用していたが、近年ではGPUメーカーも新たな需要・市場としてGPGPUを意識するようになり、GPUの設計を他用途でも使いやすい構造に改良したり、GPGPUを支援する機能やソフトウェア開発環境などを提供するなど、積極的に用途開拓に乗り出している。
GPGPUのための汎用的な開発環境としては、GPUメーカー大手NVIDIA社による「CUDA」(Compute Unified Device Architecture)、米アップル(Apple)社および業界団体クロノス・グループ(Khronos Group)による「OpenCL」(Open Computing Language)、米マイクロソフト(Microsoft)社による「DirectCompute」(ダイレクトコンピュート)などがある。