1

PixelShaderと比較したComputeShaderについて質問があります。バッファで何らかの処理を行いたいのですが、これはピクセルシェーダーと計算シェーダーの両方で可能ですが、特に速度に関しては、どちらにも利点があるのではないかと思います。8ビット値だけを使用することに問題がありましたが、それを回避できるはずです。

出力内のすべてのデータポイントは、それを囲む合計8つのデータポイント(MxNマトリックス)を使用して計算されるため、異なる出力は互いにまったく影響を与えないため、これはピクセルシェーダーに最適だと思います。

しかし、シェーダーを比較するためのベンチマークを見つけることができなかったので、どちらを目指すべきか疑問に思います。唯一の目標は速度です。

4

1 に答える 1

2

私が理解していることから、シェーダーは、データ上の多くのスレッドによって実行される単なるプログラムであるという意味でシェーダーです。したがって、一般に、計算シェーダーとは対照的に、ピクセルシェーダーで計算を行う計算能力/速度の点で違いはありません。しかし..

ピクセルシェーダーで計算を行うには、画像データのように見えるようにデータをマッサージする必要があります。これは、最初にクワッドを描画する必要があることを意味しますが、出力はピクセルの「形状」(基本的にはfloat4)でなければなりません。 。このデータは、アプリによって有用なものに解釈される必要があります

計算シェーダーを使用している場合は、使用するスレッドの数を完全に制御できますが、ピクセルシェーダーの場合は有効な解像度である必要があります。また、任意の形式でデータを入力および出力し、UAVを使用して高速変換を利用できます(私は思います)

汎用計算を行うためのメンターであり、操作が非常に簡単なため、computeshaderを使用することをお勧めします。実際のシェーダーの計算時間がほぼ同じであっても、ピクセルシェーダーに必要な処理を実行させるためにジャンプする必要のあるフープの一部を回避できるため、アプリケーション全体の処理もおそらく高速になります。

于 2011-04-15T11:36:18.140 に答える