7

テクスチャのフェッチは非常にコストのかかる操作だと聞いたことがあります。しかし、いくらですか?算術乗算の 10 倍のように。

たとえば、3D テクスチャ フェッチを 1 回必要とする画像を処理する 3D ルックアップ テーブル手法があります。

http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html

シェーダーで一部の行列積とベクトル積だけで変換できたとしても、3D-LUT は性能面で有用であると期待できますか?

3D-LUT とマトリックス/ベクターの積は単なる例です。私が知りたいのは、正確な実行時間を測定する前に、テクスチャ フェッチによるオーバーヘッドを見積もる一般的な方法です。または、GLSL オーバーヘッドの「チートシート」のようなものはありますか?

4

1 に答える 1

9

それは常に依存します。テクスチャ フェッチに関する懸念事項の 1 つは、メモリ帯域幅と、これに関連するキャッシュ効率です。キャッシングは、隣接するフラグメントが隣接するテクセルにアクセスする場合に最適化されています。私はいくつかのベンチマークを行いましたが、そのようなシナリオでは、最も近いものを使用したサンプリングまたは双一次フィルターを使用したサンプリングと直接使用したものの違いにさえ気づきませんでしたtexelFetch

3D テクスチャをカラー ルックアップとして使用した別のシナリオでは、キャッシュ効率が大きな懸念事項になりました。実際、画像の内容はパフォーマンスに大きく影響します。私のベンチマーク シナリオは 1920x1080 フレームの後処理であり、非常にキャッシュに適したコンテンツ (ms オフィスのスクリーンショット) を使用して、操作で約 0.35 ミリ秒を測定しましたが、ランダム ノイズを含む画像では、処理時間は最大 4 ミリ秒になりました。 (バイリニア フィルタリングを使用) または ~2ms (最も近い/ texelFetch)。

もちろん、これは特定のシナリオとハードウェアに大きく依存するため、私ができる唯一のアドバイスは、ベンチマーク/プロファイルを作成することです。

于 2013-09-14T15:38:17.110 に答える