CUDA中全局内存和纹理内存有什么区别?

3
CUDA中全局内存和纹理有什么区别?为了加快从主机到设备的内存复制,哪个更好?我将用它们进行图像处理。我看过双边滤波的示例。它使用纹理而不是全局内存。请解释一下。谢谢。

我觉得你是指"双线性"插值,而不是"双边"插值。 - njuffa
@njuffa:有双线性滤波器和双边滤波器两种。双线性滤波器使用双线性插值,而双边滤波器则是一种非线性滤波器。 - brano
双边滤波器是一种用于去除图像噪声的滤波器。 它是一种广泛使用的滤波器,但其算法非常耗时。 然而,我注意到一些CUDA示例中包含了双边滤波器。 我想知道使用纹理而不是全局内存的好处是什么。 - Alex.Brown
1个回答

2
纹理内存是指映射到全局内存的硬件单元。无论纹理单元是否映射到该全局内存,主机内存和GPU内存之间的复制始终使用全局内存。您可以在CUDA programming guide中了解更多关于纹理内存的内容。双边滤波示例使用纹理单元通过利用纹理单元缓存机制来增加内存吞吐量。
使用纹理内存的好处包括:
  • 启用全局内存缓存
  • 能够缓存数据以最大化2D空间局部性
  • 硬件线性插值
  • 硬件处理越界地址

请问使用纹理而不是全局内存的好处是什么? - Alex.Brown
我已经添加了使用纹理内存的好处。请理解,纹理单元的每个特性都可以通过软件(内核)仅使用全局内存来解决。 - brano

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