如何在GPU中实现恒定的内存和纹理内存?我知道设备内存不是流式多处理器,而是DRAM.共享存储器是片上存储器,可能是SRAM.
我还读到了某些地方,参数通过常量内存传递给内核(即,内核函数的参数从CPU复制到GPU常量内存).它是否正确?
纹理存储器和常量存储器分配在全局存储器使用的片外存储器中,但是通过专用硬件访问.两个存储器都有自己的缓存空间(非常小)和特殊功能,如2D纹理存储器的2D预取或恒定存储器的广播.
内核参数存储在Fermi和Kepler GPU的常量存储器中,在较旧的G80/90/200 GPU上存储在共享存储器中.
有关缓存大小和这些特殊功能的更多详细信息,请参阅"CUDA C编程指南".