CUDA编程-L1和L2缓存

CUDA编程-L1和L2缓存,cuda,coalescing,Cuda,Coalescing,您能解释一下在CUDA编程中同时使用“一级和二级”缓存或“仅二级”缓存的区别吗?我应该期待什么样的及时执行?我什么时候可以期望更小的gpu时间?当我同时启用L1和L2缓存或仅启用L2时?谢谢通常您会同时启用L1和L2缓存。您应该尽可能多地合并内存访问,即扭曲中的线程应该尽可能多地访问同一128B段中的数据(有关此主题的更多信息,请参阅) 有些程序无法以这种方式进行优化,例如,它们的内存访问是完全随机的。对于这些情况,绕过一级缓存可能是有益的,从而避免在您只需要4个字节(因为这是最小值,所以您仍将

您能解释一下在CUDA编程中同时使用“一级和二级”缓存或“仅二级”缓存的区别吗?我应该期待什么样的及时执行?我什么时候可以期望更小的gpu时间?当我同时启用L1和L2缓存或仅启用L2时?谢谢

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


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

谢谢Tom!我还不能投票!但你的回答对我很有用:)