「GPGPU」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
14行目: 14行目:
 
* 巨大なint型などの[[配列]]を[[テクスチャ画像]]に無理やり変換し、
 
* 巨大なint型などの[[配列]]を[[テクスチャ画像]]に無理やり変換し、
 
* それを[[ピクセルシェーダー]]で数値として取り出し計算させ、
 
* それを[[ピクセルシェーダー]]で数値として取り出し計算させ、
* レンダーターゲット(GPUの描画先テクスチャ)を巨大な配列に変換する
+
* [[レンダーターゲット]]([[GPU]]の描画先テクスチャ)を巨大な配列に変換する
  
「構造体の配列を送信できるバーテックスバッファとバーテックスシェーダーを使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)はGPUからデータを取得する手段がレンダーターゲット(GPUの描画先テクスチャ)以外にがなかった。GPUに送信した頂点データを計算前に単純にそのまま返してもらうことすらできなかった(なお現在は頂点データをGetDataできる)。なのでピクセルシェーダーとレンダーターゲットが使われていた。
+
「[[構造体]]の配列を送信できる[[バーテックスバッファ]][[とバーテックスシェーダー]]を使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)は[[GPU]]から[[データ]]を取得する手段が[[レンダーターゲット]](GPUの描画先テクスチャ)以外にがなかった。CPU側から送信したデータを見ることすらできない。一方通行。なのでピクセルシェーダーとレンダーターゲットが使われていた。
  
 
=== 近代 ===
 
=== 近代 ===

2020年6月18日 (木) 07:25時点における版

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

概要

2D画像処理の各種フィルタをGPGPUで実装している例も多い。 人工知能深層学習でも使われている。

かつては仮想通貨マイニングでも使われた。ただ仮想通貨のマイニングの計算式は特定のアルゴリズムであるため、コスパを向上させる目的でGPGPUではなくASICと主流になっている。

歴史

古代

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

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

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

近代

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