CUDA编程 - L1和L2缓存

时间:2012-04-16 20:10:12

标签: cuda coalescing

请您解释在CUDA编程中同时使用“L1和L2”缓存或“仅L2”缓存之间的区别?在时间执行中我应该期待什么?我什么时候能期望更小的gpu时间?当我启用L1和L2缓存或只启用L2?感谢

1 个答案:

答案 0 :(得分:9)

通常,您将启用L1和L2缓存。您应尽可能尝试合并内存访问,即warp中的线程应尽可能多地访问同一128B段中的数据(有关此主题的更多信息,请参阅CUDA Programming Guide)。

某些程序无法以这种方式进行优化,例如,它们的内存访问完全是随机的。对于这些情况,绕过L1高速缓存可能是有益的,从而避免在您只需要时加载整个128B线路,例如4个字节(由于这是最小的,您仍将加载32B)。显然有一个效率增益:来自128的4个有用字节从32增加到4。