无法在CUDA中分配大量内存块(PAGING_BUFFER_SEGMENT_SIZE?)

时间:2013-02-13 12:38:05

标签: cuda malloc

我知道这个WDDM问题只允许分配一定大小的块:

  
    

由WDD设备上的cudaMalloc()或cuMemAlloc()创建的单个内存分配的最大大小限制为MIN((系统内存大小,以MB为单位 - 512 MB)/ 2,PAGING_BUFFER_SEGMENT_SIZE)。对于Vista,PAGING_BUFFER_SEGMENT_SIZE约为2 GB。

  

但我不知道这是不是我的问题。 我写了一个程序,找到可以使用cudaMalloc分配的最大内存块。我在几台机器上运行它,所有的Windows 7都有至少8GB的系统内存。所以我应该总是能够分配PAGING_BUFFER_SEGMENT_SIZE。

好的,特斯拉没问题。在Quadro FX5800上,我可以分配~1.8GB + ~1.8GB + ~0.3GB - 很好。但在大多数GTX上,我只能分配高达~800MB的块。另一方面,在GTX680上,我可以一次性分配所有4GB?我无法看到这种行为背后的任何系统。

如何判断PAGING_BUFFER_SEGMENT_SIZE在某个系统上的值是多少?

0 个答案:

没有答案