3

CUDA での L2 キャッシュの使用について、他のスレッドを検索しました。しかし、解決策を見つけることができません。L2 キャッシュを利用するにはどうすればよいですか? その使用のための呼び出し関数または宣言はありますか? 同様に、共有メモリを使用するには、 を使用します__device__ __shared__。L2キャッシュにそのようなものはありますか??

4

1 に答える 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 に答える