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

What's the difference between global memory and texture in CUDA?

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

我想要一些解释。 谢谢。

纹理内存是指映射到全局内存的硬件单元。
在主机内存和 GPU 内存之间执行复制总是在涉及全局内存的情况下完成,纹理单元是否映射到那块全局内存并不重要。

您可以在 CUDA programming guide

中阅读有关纹理内存的更多信息 Bilateral filtering Sample使用纹理单元,利用纹理单元缓存机制提高内存吞吐量。

使用纹理内存的好处:

  • 启用全局内存缓存
  • 缓存数据以最大化 2D 空间局部性的能力
  • 硬件中的线性插值
  • 在硬件中处理 out-of-bounds 个地址