「GPGPU」の版間の差分

提供:MonoBook
ページの作成:「'''GPGPU'''(読み:じーぴーじーぴーゆー)とは、GPUで画像処理以外の計算をやらせてみようというものである。 一般的には…」
 
編集の要約なし
1行目: 1行目:
'''GPGPU'''(読み:じーぴーじーぴーゆー)とは、[[GPU]]で画像処理以外の計算をやらせてみようというものである。
'''GPGPU'''(読み:じーぴーじーぴーゆー)とは、[[GPU]]で画像処理以外の計算をやらせてみようというものである。


一般的には[[テクスチャ]]を巨大な配列に見立てて、それを[[ピクセルシェーダー]]で計算し、別のテクスチャに結果を吐き出すという方式である。
== 概要 ==
2D画像処理の各種フィルタをGPGPUで実装している例も多い。
[[人工知能]]の[[深層学習]]でも使われている。
 
かつては[[仮想通貨]]の[[マイニング]]でも使われた。ただ仮想通貨のマイニングの計算式は特定の[[アルゴリズム]]であるため、[[コスパ]]を向上させる目的で[[GPGPU]]ではなく[[ASIC]]と主流になっている。
 
== 歴史 ==
=== 古代 ===
「これ[[SIMD]]の代わりに使えるんじゃね?」
 
その昔、こんなことを思いついた人がいた。
* 巨大なint型などの[[配列]]を[[テクスチャ画像]]に無理やり変換し、
* それを[[ピクセルシェーダー]]で数値として取り出し計算させ、
* レンダーターゲット(GPUの描画先テクスチャ)として取得し、巨大な配列に変換する


2D画像処理の各種フィルタをGPGPUで実装している例も多い。
「構造体の配列を送信できるバーテックスバッファとバーテックスシェーダーを使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)はGPUからデータを取得する手段がレンダーターゲット(GPUの描画先テクスチャ)以外にがなかった。GPUに送信した頂点データを計算前に単純にそのまま返してもらうことすらできなかった(なお現在は頂点データをGetDataできる)。
 
なのでピクセルシェーダーとレンダーターゲットが使われていた。


[[仮想通貨]]の[[マイニング]]や[[人工知能]]の[[深層学習]]などでも使われた。
=== 近代 ===
その後、SM4.0から「コンピュートシェーダー」が登場したことで、無理に画像化する必要がなくなった。
バーテックスバッファのように構造体の配列を送信する手法が使えるようになった。
飛躍的に手軽になった。

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

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

概要

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

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

歴史

古代

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

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

  • 巨大なint型などの配列テクスチャ画像に無理やり変換し、
  • それをピクセルシェーダーで数値として取り出し計算させ、
  • レンダーターゲット(GPUの描画先テクスチャ)として取得し、巨大な配列に変換する

「構造体の配列を送信できるバーテックスバッファとバーテックスシェーダーを使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)はGPUからデータを取得する手段がレンダーターゲット(GPUの描画先テクスチャ)以外にがなかった。GPUに送信した頂点データを計算前に単純にそのまま返してもらうことすらできなかった(なお現在は頂点データをGetDataできる)。

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

近代

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