我正在运行一个CUDA库,我需要针对内存问题和其他问题进行调试。但是当我将cuda-gdb附加到进程时,我得到了错误
错误:所有CUDA设备都用于X11,在调试时无法使用。
我理解错误,但必须有一种方法可以调试问题。由于我只有1个GPU,因此关闭X11实际上是不切实际的。
在非Nvidia硬件上,我认为有一种方法可以模拟cuda gpu。即使我有一个NVIDIA gpu,这可以设置为调试吗?
答案 0 :(得分:3)
首先,当您使用Linux时,您处于一个幸运的位置,因为您可以在调试时轻松地杀死X.
但是,如果您真的想在调试时坚持运行X,那么运气不好,因为不可能是一个很好的理由:显示驱动程序有一个名为watchdog timer的保护机制当使用的GPU也驱动显示器时启用。看门狗定时器会中断任何运行时间更长的AFAIR 5s的内核。这是为了防止GPU锁定。
或者,您可以尝试使用ocelot,但我不确定它提供的调试功能有多好。