「GPGPU」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の4版が非表示) | |||
| 15行目: | 15行目: | ||
== 歴史 == | == 歴史 == | ||
=== 古代 === | === 古代 === | ||
N社のGPUでは1クロックで64ビクセルを一斉に画像処理する(A社は128ピクセル)。 | |||
「これ[[SIMD]]の代わりに使えるんじゃね?」 | 「これ[[SIMD]]の代わりに使えるんじゃね?」 | ||
その昔、こんなことを思いついた人がいました。 | |||
* 巨大なint型などの[[配列]]を[[テクスチャ画像]]に無理やり変換し、 | * 巨大なint型などの[[配列]]を[[テクスチャ画像]]に無理やり変換し、 | ||
* それを[[ピクセルシェーダー]]で数値として取り出し計算させ、 | * それを[[ピクセルシェーダー]]で数値として取り出し計算させ、 | ||
* [[レンダーターゲット]]([[GPU]]の描画先テクスチャ)を巨大な配列に変換する | * [[レンダーターゲット]]([[GPU]]の描画先テクスチャ)を巨大な配列に変換する | ||
こんな面倒なことをするより「[[構造体]]の配列を送信できる[[バーテックスバッファ]]と[[バーテックスシェーダー]]を使ったほうが便利じゃん」と思うかもしれませんが、この当時(SM 3.0 = DirectX 9)は[[GPU]]から[[データ]]を取得(出力)する手段が[[レンダーターゲット]](GPUの描画先テクスチャ)しかありませんでした。 | |||
[[3DCG]]でも高度に[[カプセル化]]された3Dモデルを扱う[[ライブラリ]]から頂点データ(private宣言されている)を抜き出す手段がなく「GPUからGetDataできたら嬉しいな。このメーカーのGPUだけ動かねえ」なんてことがありました。 | |||
[[3DCG]]でも高度に[[カプセル化]]された3Dモデルを扱う[[ライブラリ]] | |||
なので当時はピクセルシェーダーとレンダーターゲットが使われていました。 | |||
=== 近代 === | === 近代 === | ||
その後、SM4.0から「[[コンピュートシェーダー]]」が登場したことで無理にデータをテスクチャ画像化する必要がなくなり、[[バーテックスバッファ]]のように「構造体の配列」を送信する手法が使えるようになった。これにより飛躍的に手軽になった。 | その後、SM4.0から「[[コンピュートシェーダー]]」が登場したことで無理にデータをテスクチャ画像化する必要がなくなり、[[バーテックスバッファ]]のように「構造体の配列」を送信する手法が使えるようになった。これにより飛躍的に手軽になった。 | ||
この世代から処理は主にゲームであればバーテックスシェーダーで使われる回路で実行されるようになりました。 | |||
つまり従来はピクセルシェーダーの性能に依存していましたがバーテックスシェーダーの性能が重要になりました。 | つまり従来はピクセルシェーダーの性能に依存していましたがバーテックスシェーダーの性能が重要になりました。 | ||
| 38行目: | 39行目: | ||
[[category: GPU]] | [[category: GPU]] | ||
[[category: GPGPU]] | |||