允许在Cuda中使用静态大型数组

时间:2014-11-05 15:16:48

标签: cuda

我工作的Gpu是一款带有6GB VRAM的Tesla C2075。操作系统是使用cuda toolkit 5.5的Ubuntu 64位。 我需要做些什么来允许全局__device__静态数组大于2gb? 我在Google或StackOverflow中找不到很多相关主题。

1 个答案:

答案 0 :(得分:0)

我经常看到分配(动态至少)超过2GB数据的程序。因此理论上应该可以静态地分配__device__数组。为了尝试解决这个问题,我的建议如下:

  • 将图形驱动程序更新到最新版本(新驱动程序支持大量分配 - 最高6GB - 在K20上,它也应该在您的卡上支持它)
  • 将您的CUDA工具包更新为6.5(这可能没有必要,但CUDA 6.5可能会与最新的驱动程序相处得更好)

如果这不起作用,我会尝试分配页面锁定内存(固定)。检查 here 以获取更多信息。分配后,要使其在设备上可见,您需要映射它。这可以实现DMA传输,并且可能是更快的解决方案。我在分配最多5GB设备内存的程序中看到了这种方法 - 请参阅 here