我面临一个简单的问题,我对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/