2012-09-09 86 views
2

我在CUDA中搜索了其他線程中關於L2緩存的使用情況。但是,無法找到解決方案。我如何使用L2 Cache?是否有任何調用函數或聲明使用?就像使用共享內存一樣,我們使用__device__ __shared__。有沒有什麼像L2 Cache?如何在CUDA中使用L2緩存

回答

3

L2緩存對設備代碼透明。所有對存儲器(全局,本地,表面,紋理,常量和指令)的訪問都不會在L1中進入L2。所有的寫作都通過L2。

CUDA C語言編程指南F.4.2:全球內存

本節提供L2更多的一些細節。

編譯器標誌-dlcm = cg可用於使全局訪問在L1中解除緩存並在L2中緩存。

CUDA C語言編程指南B.5:存儲器防護功能

功能__threadfence()可以被用來確保所有寫入全局內存在L2可見。

函數__threadfence_system()可用於確保所有對全局內存的寫入對主機線程均可見。

+0

因此,它喜歡通過一個名爲Cache的窗口從線程中看到全局內存? – Fr34K

相關問題