Memory 合并访问模式对CUDA中的纹理和表面记忆重要吗?

Memory 合并访问模式对CUDA中的纹理和表面记忆重要吗?,memory,cuda,textures,nvidia,Memory,Cuda,Textures,Nvidia,在我使用CUDA的经验中,我最喜欢使用CUDA数组引用的纹理内存,因为它具有2D/3D空间缓存机制,并且我的输入数据在大多数情况下都可以安排为2D纹理。现在我遇到了一个问题,我可以将输入建模为线性阵列和2D纹理。(顺便说一句,当我谈论纹理内存时,我总是指将其与2D CUDA数组引用一起使用。)我知道在使用常规全局内存时,合并访问模式非常重要;如果扭曲中的线程读取连续地址,且基址与64字节边界对齐,则整个扭曲可以通过单个内存访问(合并访问)进行维护。我想知道,合并访问模式对于纹理记忆是否也很重要。

在我使用CUDA的经验中,我最喜欢使用CUDA数组引用的纹理内存,因为它具有2D/3D空间缓存机制,并且我的输入数据在大多数情况下都可以安排为2D纹理。现在我遇到了一个问题,我可以将输入建模为线性阵列和2D纹理。(顺便说一句,当我谈论纹理内存时,我总是指将其与2D CUDA数组引用一起使用。)我知道在使用常规全局内存时,合并访问模式非常重要;如果扭曲中的线程读取连续地址,且基址与64字节边界对齐,则整个扭曲可以通过单个内存访问(合并访问)进行维护。我想知道,合并访问模式对于纹理记忆是否也很重要。我认为不应该,因为纹理记忆的目的是不同的;它针对彼此接近的2D/3D访问进行了优化,并且据我所知,它使用所需的像素和一些周围的行和列更新纹理缓存。因此,我认为2D纹理内存中一行的连续访问模式并不有利,相反,它可能会用周围的行-列数据污染纹理缓存并降低性能。无论如何,这只是我在阅读《编程指南》和其他参考资料后的想法,我想确定一下:合并访问模式对于纹理内存是否像在常规全局内存中一样重要?

不,合并访问模式对于NVIDIA CUDA GPU上的纹理访问不重要