我已经在CUDA中搜索了其他使用L2缓存的线程。但是,无法找到解决方案。我如何使用L2缓存?是否有任何调用函数或声明供其使用?就像使用共享内存一样,我们使用__device__ __shared__
。 L2 Cache是否有类似的内容?
答案 0 :(得分:3)
L2缓存对设备代码是透明的。对未在L1中命中的内存(全局,局部,表面,纹理,常量和指令)的所有访问都转到L2。所有写入都通过L2。
CUDA C编程指南F.4.2:全局记忆
本节提供了有关L2的更多详细信息。
编译器标志-dlcm = cg可用于使全局访问在L1中缓存并缓存在L2中。
CUDA C编程指南B.5:记忆围栏功能
函数__threadfence()可用于确保所有对全局内存的写入在L2中都可见。
函数__threadfence_system()可用于确保对主机线程的所有对全局内存的写入都是可见的。