如何以最快的速度将256字节的数据块从一个CUDA块传输到另一个?有没有一种方法可以比全局内存传输得更快?
理论上,在计算能力>=2.0的设备上,使用全局内存的块之间传输可能非常快,因为全局内存事务使用L1和L2缓存。
然而,在块之间安全地传输内存的唯一方法是在单独的内核调用中启动这些块。然后,您就失去了我刚才描述的理论优势,因为缓存是在调用之间刷新的。
在给定的内核调用中,您无法知道块将以何种顺序启动。
在CUDA中,在由单独内核调用启动的块之间传输数据是一种常见的模式,如果有足够的计算工作要做,则全局内存事务的延迟可以完全隐藏。