2012-04-16 11 views
4

をキャッシュするには、あなたはCUDAプログラミングで「L1およびL2」キャッシュや「のみL2」キャッシュの両方を使用しての違いを説明してくださいもらえますか?時間の実行ではどうすればよいですか?いつ私はより小さなGPU時間を期待することができますか?私はL1とL2の両方のキャッシュを有効にするか、単にL2を有効にしますか?おかげCUDAプログラミング - L1およびL2は

答えて

8

は、通常は、有効になって両方のL1およびL2キャッシュを残すでしょう。できるだけメモリアクセスを統合する必要があります。つまり、ワープ内のスレッドは同じ128Bセグメント内のデータにできるだけアクセスする必要があります(このトピックの詳細はCUDA Programming Guideを参照してください)。

一部のプログラムは、このように最適化されることができない、そのメモリアクセスは、例えば、完全にランダムです。そのような場合、L1キャッシュをバイパスすることで、たとえば4バイトなどの128Bライン全体のロードを避けることができます(最低32バイトなのでロードします)。明らかに、効率の向上があります.128から4の有効バイトが32から4に改善されました。

+1

ありがとうTom!私はまだ投票できません!しかし、あなたの答えは私にとって非常に便利です:) –

関連する問題