CUDA プログラミングで「共有メモリ 16 KB + L1 キャッシュ 48 KB」と「共有メモリ 48 KB + L1 キャッシュ 16 KB」の両方を使用する場合の違いを教えてください。時間の実行で何を期待すべきですか? GPU 時間が小さくなると予想されるのはいつですか?
1741 次
1 に答える
4
Fermi および Kepler nVIDIA GPU では、各 SM に 64KB のメモリ チャンクがあり、16/48 または 48/16 共有メモリ/L1 キャッシュとして構成できます。どのモードを使用するかは、カーネルが共有メモリをどれだけ使用するかによって異なります。カーネルが多くの共有メモリを使用している場合、48KB の共有メモリとして構成すると占有率が高くなり、パフォーマンスが向上することに気付くでしょう。
一方、カーネルが共有メモリをまったく使用しない場合、またはスレッドごとにごく少量しか使用しない場合は、48KB L1 キャッシュとして構成します。
「非常に少量」がどの程度かは、CUDA ツールキットに含まれるスプレッドシートであり、こちらからも入手できる占有計算機でおそらく最もよく説明されます。このスプレッドシートを使用すると、ブロックごとに異なる共有メモリと異なるブロック サイズの影響を調べることができます。
于 2012-04-16T21:55:52.080 に答える