CUDA での L2 キャッシュの使用について、他のスレッドを検索しました。しかし、解決策を見つけることができません。L2 キャッシュを利用するにはどうすればよいですか? その使用のための呼び出し関数または宣言はありますか? 同様に、共有メモリを使用するには、 を使用します__device__ __shared__
。L2キャッシュにそのようなものはありますか??
2357 次
1 に答える
4
L2 キャッシュは、デバイス コードに対して透過的です。L1 でヒットしなかったメモリ (グローバル、ローカル、サーフェス、テクスチャ、定数、および命令) へのすべてのアクセスは、L2 に移動します。すべての書き込みは L2 を通過します。
CUDA C プログラミング ガイド F.4.2 : グローバル メモリ
このセクションでは、L2 についてさらに詳しく説明します。
コンパイラ フラグ -dlcm=cg を使用すると、グローバル アクセスを L1 でキャッシュ解除し、L2 でキャッシュすることができます。
CUDA C プログラミング ガイド B.5 : メモリ フェンス関数
関数 __threadfence() を使用して、グローバル メモリへのすべての書き込みが L2 で確実に見えるようにすることができます。
関数 __threadfence_system() を使用して、グローバル メモリへのすべての書き込みがホスト スレッドから見えるようにすることができます。
于 2012-09-09T15:01:43.403 に答える