【じーぴーじーぴーゆー】

GPGPU とは?

最終更新:
💡 グラボは絵を描くだけじゃない、計算の達人でもあるんだ

GPUをグラフィックス以外の計算にも使うこと。AIの行列演算や科学シミュレーションなど、並列化に向く処理に活用し、性能は処理内容や構成による。

📌 このページのポイント
GPUを、描画以外の計算にも使う CPU側のプログラム 処理を起動し、データや結果を扱う GPUで並列に計算 + + + + + + + + 起動・入力 結果 例:行列演算や科学シミュレーション CPUも並列処理できる データ移動なども含め、性能を考える
CUDAのCPU/GPU分担を説明する例。GPU内の枠は並列の計算を表し、実際のコア数やCPUとの速度比ではない。機器や処理内容で構成・性能は異なる。
ひよこ ひよこ
GPGPUって、GPUとは違うの?
ペンギン先生 ペンギン先生
GPUはもともとグラフィックス向けに発展したプロセッサーだよ。その並列処理能力を、描画以外の計算にも使うことがGPGPU。すべてのGPUのコア数が同じという意味ではなく、多数の処理を並行して進める特徴を使うんだ。
ひよこ ひよこ
なんでCPUじゃダメなの?
ペンギン先生 ペンギン先生
CPUでも計算できるし、複数のスレッドなどで並列処理もできるよ。GPUは、多数の処理を並列に進める用途に向いている。細かな分岐や、順番に依存する処理などでは、GPUに移すだけで速くなるとは限らないんだ。
ひよこ ひよこ
AIの学習では、何をGPUで計算するの?
ペンギン先生 ペンギン先生
行列演算などをGPU向けに実装したライブラリを利用できるよ。CPUは1個ずつしか計算できないという説明は正確ではない。速さはデータ量、計算の構成、機器などによるので、数週間が必ず数時間になるといった固定の倍率では説明できないんだ。
ひよこ ひよこ
CUDAって、それがGPGPUの道具なの?
ペンギン先生 ペンギン先生
CUDAはNVIDIAのGPUを計算に使うプラットフォームだよ。対応するライブラリやAIのフレームワーク経由でも使える。OpenCLは、GPUに加えてCPUなどの異なる処理装置を対象にした並列プログラミングの標準なんだ。
ひよこ ひよこ
GPUに任せるとき、CPUは何をしているの?
ペンギン先生 ペンギン先生
CUDAのモデルでは、CPU側で始めたプログラムがGPUの処理を起動し、データのコピーや完了待ちなども行えるよ。CPUとGPUの役割を分担する。計算だけでなく必要なデータの移動なども含めて、構成を考えるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「GPGPU」って出てきたら「GPUを描画以外の計算にも使うこと」と思えばだいたいOK!
📖 おまけ:英語の意味
「General-Purpose computing on Graphics Processing Units」 = GPU上の汎用計算
💬 グラフィックス専用だったGPUを「汎用(General-Purpose)」に使おうという発想から生まれた名前だよ

参考資料

← 用語集にもどる