全局记忆细节

时间:2012-11-07 17:10:28

标签: cuda

这是CUDA Global Memory, Where is it?关于GSmith回应的后续问题。这些Q代表CC> 2.0案例。

当我查找我的Nvida卡的spec时,它会列出2GB的“内存”。我开始相信这是这张卡的“全球”记忆。也就是说,这是GDDR3内存,它位于“片外”,但在卡上。这是正确的吗?

我没有看到规格'记忆'为零的情况。有人存在吗?也就是说,我可以拥有一张没有片外存储器的卡吗?因为我所有的纹理,局部和恒定的记忆实际上都存在于固定的和映射主机内存。

我可以通过固定2GB以上的主机内存来扩展全局内存使用量吗?我可以使用我所有的片外全局内存(2GB)并添加(1GB)更多全局固定内存吗?或者我是否明白这张卡只能提供最大2GB的寻址空间?即我只能访问2GB的mem,unPinned,pinned,mapping或任何组合。

如果设备使用固定主机内存(未映射),我是否需要从开发人员到主机的Memcpy?也就是说,mem在物理上位于主机端。它正在被设备使用,所以他们都可以看到它。为什么我需要将它复制到主机,当它已经存在时。它似乎默认为“映射”。 (什么机制阻止了这种双重访问?)

如何将共享内存映射到全局内存? (我没有在文档中找到任何提及。)这是一个“映射”安排还是我仍然需要将它从全局复制到共享,然后再回来? (这可以节省我的复制步骤吗?)

1 个答案:

答案 0 :(得分:1)

建议您one question per question

  

当我查看我的Nvida卡的规格时,它会列出2GB的内存'。我已经开始相信这是全球的'这张卡的记忆。也就是说,这是驻留在片外的GDDR3内存,但是在卡上。这是正确的吗?

  

我没有看到任何情况下的规格记忆'是零。有人存在吗?也就是说,我可以拥有一张没有片外存储器的卡吗?因为我所有的纹理,局部和恒定的记忆实际上都存在于固定的和映射主机内存。

最接近这个想法的NVIDIA可能在Ion 2 chipset。但是没有具有cuda功能的nvidia独立显卡,板载内存为零。

  

我可以通过固定超过2GB的主机内存来扩展全局内存使用量吗?

您可以固定2GB以上的主机内存。然而,这并没有扩展全局内存。它确实可以实现各种功能,例如改进的主机设备传输速率,重叠的复制和计算,以及来自GPU的主机内存的零拷贝访问,但这与您使用全局内存的内容不同。零拷贝技术可能最接近于将全局内存扩展到主机内存(概念上),但从GPU的角度来看零拷贝非常慢。

  

如果设备使用固定主机内存(未映射),我是否需要从开发人员到主机的Memcpy?

是的,您仍然需要来回cudaMemcpy数据。

  

也就是说,mem在物理上位于主机端。它正在被设备使用

我不知道这个概念来自哪里。也许您指的是zero-copy,但与访问全局内存中的数据相比,零拷贝相对较慢。在小数据大小的情况下应该明智地使用它,并且绝不是一种直接的方法来大量增加卡上全局内存的有效大小。

  

如何将共享内存映射到全局内存?

共享内存不会自动映射到全局内存。该方法是在共享和全局内存之间来回复制您需要的数据。