CUDA编程 - L1和L2缓存

Sam*_*n I 5 cuda coalescing

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

Tom*_*Tom 9

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

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

  • 谢谢汤姆!我还不能投票!但你的回答对我来说非常有用:) (2认同)