Pascal Architecture通过升级统一内存行为为CUDA开发人员带来了一个惊人的功能,允许他们分配比系统上更大的GPU内存。
我很好奇这是如何在幕后实施的。我已经通过" cudaMallocManaging"进行了测试。一个巨大的缓冲区并且nvidia-smi
没有显示任何内容(除非缓冲区大小在可用的GDDR下)。
答案 0 :(得分:1)
我很好奇这是如何在幕后实施的。我已经通过" cudaMallocManaging"进行了测试。一个巨大的缓冲区,nvidia-smi没有显示任何内容(除非缓冲区大小在可用的GDDR下)。
首先,我建议您对所有CUDA API调用proper CUDA error checking。从您的描述看,您似乎不是。
统一内存(UM)中的请求分页允许内存大小超出GPU物理DRAM内存,只能用于:
Pascal(或未来)GPU
CUDA 8(或未来)工具包
除此之外,您的设置应该可行。如果它不适合使用CUDA 8(不是CUDA 8RC)和Pascal GPU,请确保满足UM的要求(例如操作系统)并进行正确的错误检查。而不是试图推断nvidia-smi
发生了什么,而是对分配的内存进行实际测试。
有关该功能的更一般描述,我建议你this blog article。