C++ AMP を使用する必要がある (または使用しない) 場合は?
AMP のオーバーヘッドとは何ですか? データを GPU メモリにコピーして戻すのにかかる時間は? AMP がパフォーマンスを低下させ始めるときの最小データ サイズはどれくらいですか?
C++ AMP を使用する必要がある (または使用しない) 場合は?
AMP のオーバーヘッドとは何ですか? データを GPU メモリにコピーして戻すのにかかる時間は? AMP がパフォーマンスを低下させ始めるときの最小データ サイズはどれくらいですか?
データのコピーは、やりすぎない限り、それほど大きなオーバーヘッドではありません。たまに大きなデータのチャンクをいくつかコピーするのは問題ありません。たとえば、ゲームは通常、各フレームの各オブジェクトのインスタンス データをコピーします。これは、やりすぎるとパフォーマンスが低下する可能性がありますが、通常は問題ありません。特に、それらは 3D ジオメトリのようなものをコピーしません。
一般に、ユースケースは、各データが個別に処理される大量のデータに対する単純な(最大で FSM と考えてください) 計算用です。
パフォーマンスに関しては、プロファイルが唯一の確実な方法です。GPU はまったく異なる獣であり、最小データ サイズは実際には手元の計算とデータの広がりに依存します。たとえば、複数のスレッドが同じ方法で分岐しない場合、GPU はそれをあまり好みません。