我的CUDA纹理内存的大小是多少?

时间:2012-09-09 15:13:51

标签: memory cuda

如何解释deviceQuery样本输出的纹理内存信息以了解纹理内存大小? 这是我纹理记忆的输出。

  

最大纹理尺寸尺寸(x,y,z)1D =(65536),2D =(65536,65535),3D =(2048,2048,2048)
  最大分层纹理尺寸(暗)x层1D =(16384)x 2048,2D =(16384,16384)x 2048

2 个答案:

答案 0 :(得分:8)

这是一种常见的误解,但在CUDA GPU中没有“纹理记忆”这样的东西。只有纹理,这是通过专用硬件访问的全局内存分配,具有内置缓存,过滤和寻址限制,这会导致您在文档和设备查询中报告的大小限制。所以限制要么大致全局内存的空闲量(允许在CUDA数组中填充和对齐)或者已经引用的维度限制。

答案 1 :(得分:3)

输出显示最大纹理尺寸为:

对于1D纹理65536 对于2D纹理65536 * 65535 对于3D纹理2048 * 2048 * 2048

如果您想要以字节为单位的大小,请将其乘以最大通道数(4)和最大子像素大小(4B)。

(对于分层纹理,将您获得的相关数字乘以您获得的最大图层数。)

但是,这是单个纹理的最大大小,而不是所有纹理的可用内存。