我面临一个简单的问题,我对cudaMalloc的所有调用均失败,这给了我一个内存不足的错误,即使它只是我分配的一个字节也是如此。

cuda设备可用,并且还有很多可用的内存(bot已通过相应的调用进行检查)。

知道可能是什么问题吗?

最佳答案

请尝试在代码本身的开头调用cudaSetDevice(),然后依次调用cudaDeviceSynchronize()和cudaThreadSynchronize()。

如果只有一个设备,则为cudaSetDevice(0)。默认情况下,CUDA运行时将初始化设备0。

cudaSetDevice(0);
cudaDeviceSynchronize();
cudaThreadSynchronize();

请回复您的观察。如果仍然失败,请指定操作系统,体系结构,CUDA SDK版本,CUDA驱动程序版本。如果可能,请提供失败的代码/代码段。

关于cudaMalloc总是内存不足,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13940600/

10-13 07:48
查看更多