「GPGPU」の版間の差分
Administrator (トーク | 投稿記録) ページの作成:「'''GPGPU'''(読み:じーぴーじーぴーゆー)とは、GPUで画像処理以外の計算をやらせてみようというものである。 一般的には…」 |
編集の要約なし |
||
| 1行目: | 1行目: | ||
'''GPGPU'''(読み:じーぴーじーぴーゆー)とは、[[GPU]]で画像処理以外の計算をやらせてみようというものである。 | '''GPGPU'''(読み:じーぴーじーぴーゆー)とは、[[GPU]]で画像処理以外の計算をやらせてみようというものである。 | ||
== 概要 == | |||
2D画像処理の各種フィルタをGPGPUで実装している例も多い。 | |||
[[人工知能]]の[[深層学習]]でも使われている。 | |||
かつては[[仮想通貨]]の[[マイニング]]でも使われた。ただ仮想通貨のマイニングの計算式は特定の[[アルゴリズム]]であるため、[[コスパ]]を向上させる目的で[[GPGPU]]ではなく[[ASIC]]と主流になっている。 | |||
== 歴史 == | |||
=== 古代 === | |||
「これ[[SIMD]]の代わりに使えるんじゃね?」 | |||
その昔、こんなことを思いついた人がいた。 | |||
* 巨大なint型などの[[配列]]を[[テクスチャ画像]]に無理やり変換し、 | |||
* それを[[ピクセルシェーダー]]で数値として取り出し計算させ、 | |||
* レンダーターゲット(GPUの描画先テクスチャ)として取得し、巨大な配列に変換する | |||
「構造体の配列を送信できるバーテックスバッファとバーテックスシェーダーを使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)はGPUからデータを取得する手段がレンダーターゲット(GPUの描画先テクスチャ)以外にがなかった。GPUに送信した頂点データを計算前に単純にそのまま返してもらうことすらできなかった(なお現在は頂点データをGetDataできる)。 | |||
なのでピクセルシェーダーとレンダーターゲットが使われていた。 | |||
=== 近代 === | |||
その後、SM4.0から「コンピュートシェーダー」が登場したことで、無理に画像化する必要がなくなった。 | |||
バーテックスバッファのように構造体の配列を送信する手法が使えるようになった。 | |||
飛躍的に手軽になった。 | |||
2020年6月18日 (木) 07:21時点における版
GPGPU(読み:じーぴーじーぴーゆー)とは、GPUで画像処理以外の計算をやらせてみようというものである。
概要
2D画像処理の各種フィルタをGPGPUで実装している例も多い。 人工知能の深層学習でも使われている。
かつては仮想通貨のマイニングでも使われた。ただ仮想通貨のマイニングの計算式は特定のアルゴリズムであるため、コスパを向上させる目的でGPGPUではなくASICと主流になっている。
歴史
古代
「これSIMDの代わりに使えるんじゃね?」
その昔、こんなことを思いついた人がいた。
「構造体の配列を送信できるバーテックスバッファとバーテックスシェーダーを使ったほうが便利じゃん」と思うかもしれないが、この当時(SM 3.0 = DirectX 9)はGPUからデータを取得する手段がレンダーターゲット(GPUの描画先テクスチャ)以外にがなかった。GPUに送信した頂点データを計算前に単純にそのまま返してもらうことすらできなかった(なお現在は頂点データをGetDataできる)。
なのでピクセルシェーダーとレンダーターゲットが使われていた。
近代
その後、SM4.0から「コンピュートシェーダー」が登場したことで、無理に画像化する必要がなくなった。 バーテックスバッファのように構造体の配列を送信する手法が使えるようになった。 飛躍的に手軽になった。