[英]“The launch timed out and was terminated” error with Bumblebee on Linux
When running a long kernel (especially in debug mode with some memory checking) on a CUDA-enabled GeForce GPU with Bumblebee, I get the following error: 在带有Bumblebee的启用CUDA的GeForce GPU上运行长内核(尤其是在调试模式下,需要进行一些内存检查)时,出现以下错误:
CUDA error 6: the launch timed out and was terminated CUDA错误6:启动超时并被终止
This seems to be caused by the NVIDIA driver's watchdog. 这似乎是由NVIDIA驱动程序的看门狗引起的。 A solution is available here . 这里有一个解决方案。 However, why is this happening while using Bumblebee and optirun
to run a simple CUDA kernel (ie I do not use my NVIDIA GPU for display)? 但是,为什么在使用Bumblebee和optirun
运行简单的CUDA内核时发生这种情况(即,我不使用NVIDIA GPU进行显示)?
The command I used to launch the program is: 我用来启动程序的命令是:
optirun [cuda-memcheck] ./my_program program_options
The solution (found here ) was to use the --no-xorg
option for optirun
, ie: 解决方案(在此处找到)是对optirun
使用--no-xorg
选项,即:
optirun --no-xorg [cuda-memcheck or cuda-gdb] ./my_program program_options
Indeed, the default behavior of optirun
is to create a secondary X server which will then be subject to the driver's watchdog. 实际上, optirun
的默认行为是创建辅助X服务器,该服务器随后将受到驱动程序的监视。 By using the --no-xorg
option, we can avoid the unnecessary consequences of this extra X server. 通过使用--no-xorg
选项,我们可以避免这种额外的X服务器的不必要的后果。 This new option is available since Bumblebee 3.2 . 从Bumblebee 3.2开始,此新选项可用。
It also provides a way to use cuda-gdb
and avoid the following error: 它还提供了一种使用cuda-gdb
,可以避免以下错误:
fatal: All CUDA devices are used for display and cannot be used while debugging. 致命的:所有CUDA设备都用于显示,并且在调试时不能使用。 (error code = 24) (错误代码= 24)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.