6

GPUの共有メモリが異なるカーネル間で持続しないことを理解しています。ただし、L1キャッシュは異なるカーネル呼び出し間で持続しますか?

4

1 に答える 1

10

一貫性を保証するために、同じストリームまたはnullストリームのすべての操作間でSML1キャッシュが無効になります。ただし、GPUのL1キャッシュは、特定の実行スレッド内の時間的局所性を改善するように実際には設計されていないため、実際には問題ではありません。超並列プロセッサでは、重要なのは並列空間局所性です。これが意味するのは、互いに近くで実行されているスレッドが、互いに近くにあるデータにアクセスできるようにすることです。

キャッシュされたメモリロードが実行されると、それは単一のワープに対して実行され、キャッシュはそのワープ内のスレッドによってアクセスされるキャッシュラインを格納します(理想的には単一のラインのみ)。次のワープが同じキャッシュラインにアクセスすると、キャッシュがヒットし、レイテンシーが減少します。それ以外の場合、キャッシュは異なるキャッシュラインで更新されます。メモリアクセスが非常に分散している場合、後のワープは、再利用される前に、前のワープからキャッシュラインを削除する可能性があります。

別のカーネルが実行されるまでに、キャッシュ内のデータが有効になる可能性は低くなります。これは、前のカーネルに対してそのSMによって多くのワープが実行された可能性が高いためです。したがって、それが持続するかどうかは実際には問題ではありません。

于 2012-07-02T00:49:28.303 に答える