2012-10-28 8 views
7

データトラフのテクスチャキャッシュを読み込むようにコードを書き直すのは理にかなっています(フィルタリングやその他のテクスチャユニットのオプションは必要ないと仮定しています)、それとも同じですか?どのようにL1キャッシュといくつかのトラフテクスチャユニットのいくつかのデータをロードする方法については?私はそのような戦略を使うことができるコードを持っていますが、それはまったく意味がありますか?CUDA:FERMIのテクスチャキャッシュはL1キャッシュとは別ですか?

FERMIのテクスチャキャッシュがL1キャッシュハードウェアとは別のハードウェアであることを明確にするために、言い換えれば、自分のコード用に合計L1 +テクスチャキャッシュボリュームを賢く使うことができますか?

答えて

11

別途です。テクスチャの読み込みはL1を経由しません。非テクスチャアプリケーション(つまり、補間やクランプのような機能を使用していない)の場合、テクスチャの主な利点は、キャッシュされる可能性のある大量のグローバルメモリを選択的に追加できることですL1で何が起こっているのか。小さなデータセットの場合、テクスチャリングはL1よりも良いパーフォーマンスを与えません。局所性と再利用性がある大規模なデータセットの場合、テクスチャキャッシュでカバーされている領域からのロードはL1(キャッシュコンフィグレーションによってはFermiのSMごとに16KBと小さいかもしれません)をスラッシュします。テクスチャキャッシュはアプリケーション全体に利益をもたらすことができます。テクスチャを使用するのは、L1でキャッシュするのと同じくらい高速ではなく、キャッシュされていないロードや、L1をスラッシュする分散ロードよりもはるかに高速であることをユーザーが経験することは珍しくありません。多くは、関連するデータのアクセスパターンとサイズに依存します。テクスチャキャッシュのサイズはSMあたり8KB程度です。はるかに大きな領域をキャッシュすることができますが、高いレベルの再利用と局所性がテクスチャキャッシュのパフォーマンスを確実に向上させます。テクスチャメモリは読み込み専用です。これに興味があるかもしれませんwebinar

+0

まさに私が探していた答え、ありがとう。 –

関連する問題