错误后CUDA停止工作

错误后CUDA停止工作,cuda,Cuda,在我的CUDA程序出现以下错误后: CUDA error at scan.cu:231 code=4(cudaErrorLaunchFailure) "cudaMemcpy(odata, g_odata, sizeof(int) * N, cudaMemcpyDeviceToHost)" 我修复了它并重新编译了程序,但程序没有继续。它在命令行提示符下停止,我不得不使用control+C终止它 我重新启动机器后,它成功地运行了 如何在不重新启动的情况下修复此问题 我正在使用Ubuntu12

在我的CUDA程序出现以下错误后:

CUDA error at scan.cu:231 code=4(cudaErrorLaunchFailure) 
"cudaMemcpy(odata, g_odata,   sizeof(int) * N, cudaMemcpyDeviceToHost)"
我修复了它并重新编译了程序,但程序没有继续。它在命令行提示符下停止,我不得不使用control+C终止它

我重新启动机器后,它成功地运行了

如何在不重新启动的情况下修复此问题

我正在使用Ubuntu12.04和CUDA5.5GTX550TiBoost


谢谢

我也遇到过类似的问题,CUDA在出错后根本无法工作,但在重新加载内核模块后又重新开始工作。我没有解释为什么会发生这种情况,但我有一个脚本可以重新加载内核模块:


投票表决。我误解了这个问题。在许多情况下,您不需要如此复杂的脚本来完成此任务<代码> SUDO RMMOD英伟达< /COD>将卸载NVIDIA模块。此后,任何CUDA操作(以root用户身份),例如运行
nvidia smi-a
,都会自动强制重新加载模块(这两种操作都需要root权限,如您所示)。当然可以,但在一两种情况下,我需要一个如此复杂的脚本,我更希望只有一个。如何运行该脚本?我是Linux新手。我尝试了‘sudo rmmod nivida’,但它说‘错误:模块nvidia正在使用’,我暂时解决了这个问题。我切换到tty1并重新启动桌面“模块nvidia正在使用”通常意味着您有X正在运行。脚本本身不会处理这种情况,也不会简单地键入
sudormmod nvidia
。您需要手动停止X,以便英伟达模块变得未被使用。如果不需要X,请将机器设置为在运行级别3而不是5中启动。