如何在CUDA中使用L2缓存

3

我已经搜索了有关在CUDA中使用L2缓存的其他线程。但是,无法找到解决方案。我该如何利用L2缓存?是否有调用函数或声明来使用它?就像使用共享内存一样,我们使用__device__ __shared__。是否有类似于此的东西可用于L2缓存?

1个回答

4

L2缓存对设备代码是透明的。所有对内存(全局、本地、表面、纹理、常量和指令)的访问,如果不命中L1,则会进入L2。所有写入都通过L2。

CUDA C编程指南 F.4.2 :全局内存

本节提供了有关L2的更多细节。

编译器标志 -dlcm=cg 可用于使全局访问在L1中无缓存,并在L2中进行缓存。

CUDA C编程指南 B.5 :内存屏障函数

函数__threadfence()可用于确保全局内存中的所有写入在L2中可见。

函数__threadfence_system()可用于确保所有对全局内存的写入对主机线程可见。


那么,这就像通过名为缓存的窗口从线程中查看全局内存一样? - Fr34K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接