如何解释deviceQuery
样本输出的纹理内存信息以了解纹理内存大小?这是我的纹理内存的输出。
Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65535),3D=(2048,2048,2048)
Max Layered Texture Size (dim) x layers 1D=(16384) x 2048 , 2D=(16384,16384) x 2048
这是一个常见的误解,但在 CUDA GPU 中没有“纹理内存”之类的东西。只有纹理,它们是通过具有内置缓存、过滤和寻址限制的专用硬件访问的全局内存分配,这导致您在文档和设备查询中看到报告的大小限制。因此,限制大致是全局内存的可用量(允许在 CUDA 数组中进行填充和对齐)或您已经引用的尺寸限制。
输出显示最大纹理尺寸为:
对于 1D 纹理 65536 对于 2D 纹理 65536*65535 对于 3D 纹理 2048*2048*2048
如果您想要以字节为单位的大小,请将其乘以最大通道数 (4) 和最大子像素大小 (4B)。
(对于分层纹理,将获得的尺寸相关数字乘以获得的最大层数。)
但是,这是单个纹理的最大大小,而不是所有纹理的可用内存。