「GPGPU」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
7行目: 7行目:
  
 
かつてはGPGPUは[[仮想通貨]]の[[マイニング]]でも使われた。ただ仮想通貨のマイニングの計算式は特定の[[アルゴリズム]]([[ハッシュ関数]])であり頻繁に変化するものではないため、[[コスパ]]を向上させる目的でGPGPUから[[FPGA]]へ、FPGAから[[ASIC]]へと変移していった。
 
かつてはGPGPUは[[仮想通貨]]の[[マイニング]]でも使われた。ただ仮想通貨のマイニングの計算式は特定の[[アルゴリズム]]([[ハッシュ関数]])であり頻繁に変化するものではないため、[[コスパ]]を向上させる目的でGPGPUから[[FPGA]]へ、FPGAから[[ASIC]]へと変移していった。
 +
 +
 +
== 向いていない処理 ==
 +
=== 小さい処理 ===
 +
CPUからGPUを呼び出すには「準備」が必要です。この準備段階はものすごく重たい処理なのでメインの処理量が少ない場合は逆に遅くなることがあります。
  
 
== 歴史 ==
 
== 歴史 ==

2024年4月16日 (火) 06:36時点における版

GPGPU(読み:じーぴーじーぴーゆー)とは、GPUで画像処理以外の計算をやらせてみようというものである。

概要

最近話題の人工知能深層学習でも使われている。

2D画像処理の各種フィルタをGPGPUで実装している例も多い。GPUといえば画像処理であるが、2D画像処理に関してはアルゴリズムによってはピクセルシェーダーで計算するよりもコンピュートシェーダーで計算した方が書きやすいこともある。

かつてはGPGPUは仮想通貨マイニングでも使われた。ただ仮想通貨のマイニングの計算式は特定のアルゴリズムハッシュ関数)であり頻繁に変化するものではないため、コスパを向上させる目的でGPGPUからFPGAへ、FPGAからASICへと変移していった。


向いていない処理

小さい処理

CPUからGPUを呼び出すには「準備」が必要です。この準備段階はものすごく重たい処理なのでメインの処理量が少ない場合は逆に遅くなることがあります。

歴史

古代

「これSIMDの代わりに使えるんじゃね?」

その昔、こんなことを思いついた人がいた。

構造体の配列を送信できるバーテックスバッファバーテックスシェーダーを使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)はGPUからデータを取得する手段がレンダーターゲット(GPUの描画先テクスチャ)以外になかった。正確には「一部のGPUでは」取り出せなかった。

CPU側からGPU側に送信したデータを見ることすらできない。完全に一方通行。 3DCGでも高度にカプセル化された3Dモデルを扱うライブラリから頂点データ(private宣言されている)を抜き出す手段がなく「GPUからGetDataできたら嬉しいな。このメーカーのGPUだけ動かねえ」なんてことがあった。

なのでピクセルシェーダーとレンダーターゲットが使われていた。

近代

その後、SM4.0から「コンピュートシェーダー」が登場したことで、無理にテスクチャ画像化する必要がなくなった。 バーテックスバッファのように構造体の配列を送信する手法が使えるようになった。 飛躍的に手軽になった。