fatal: All CUDA devices are used for display and cannot be used while debugging. Geforce 710m and Intel HD4000

I want to debug my cuda application. On ubuntu when I try to debug this I get error: “fatal: All CUDA devices are used for display and cannot be used while debugging”. My notebook has two video cards: the first is geforce 710m (compute capability 2.1) and the second is intel hd 4000. Can I use intel card for displaying video and geforce for cuda computations? I tried to debug my application in console line interface (without gui) using cuda-gdb, but it’s so grin. I would like to debug in eclipse nsight. Can you help me? Also I’ve tried to debug applications in windows in visual studio nsight edition, but I can’t debug kernel code, only host code.

The answer is not a simple one. It depends on the design of your laptop, whether the intel device and nvidia device are completely separable or not. It may also depend on system BIOS settings.

Normally, preemption could be used to assist single-GPU debugging, but preemption is not available on cc2.x device only cc3.5 and higher

Thank for your response. You’ve confirmed my thoughts on it. Is there some way to know are intel and nvidia devices separated? BIOS has very simple settings. In it I can just select to use switchable graphics or uma graphic (my laptop is lenovo).

Sure, if you have access to the schematics and the BIOS source code.

In practical terms, there is no way to know except by experimentation or hearsay. AFAIK, most newer laptops don’t have separable graphics. If the dGPU is powered up, it is part of the display driver stack. If it is not part of the display driver stack (e.g. because you have switched your BIOS to the UMA graphics setting), the dGPU is usually powered off by the BIOS and laptop hardware.

As I mentioned, preemption would usually be the other option (to debug on a GPU that is also part of the display system) but preemption is not available on cc2.x devices.

Thank you very much for you explanation.