我有一台GTX Titan Z显卡。它有两个GPU,总内存为12 GB(6GB + 6GB)。当我在Cuda Sample(V6.5)文件夹中使用DeviceQuery应用程序查看规范时,它显示了两个设备,每个设备的总内存为4 GB。此外,在我的C ++代码中,我只能访问4GB内存。另一方面,当我运行GPU-Z软件时,它会显示两个Titan Z,每个都有6GB内存。任何人都可以解释导致这个问题的原因以及如何解决?
答案 0 :(得分:5)
这里的问题是程序被编译为32位应用程序。使用32位,程序只能处理4GB内存。检查设备规格(cudaGetDeviceProperties
)的CUDA调用似乎认识到了这一事实,并且仅报告您实际可以使用的4GB。
编译为64位应用程序应解决此问题。