Estaba programando en CUDA y me saltó un error al intentar depurar con cuda-gdb. Imagino que a mucha gente le habrá pasado lo mismo y posiblemente no todo el mundo habrá podido solucionarlo. El problema es que no se puede usar el depurador si ese dispositivo (device) está siendo usado para el servidor X11. Como es el caso de la mayoría, dado que solo tenemos un dispositivo (una sola GPU) voy a exponer exactamente cual es el error y como solucionarlo al menos en gran parte de los casos.
El error es el siguiente:
Starting program: programa parametros
error: All CUDA devices are used for X11 and cannot be used while debugging.
Yo estoy usando Ubuntu, pero esto se aplica a todos los usuarios de gnome, y lo que hay que hacer es desde la consola (Ctrl+Alt+F1). Para para el servidor necesitamos permisos como root por lo tanto usaremos sudo para Ubuntu y su para el resto de distribuciones.
sudo /etc/init.d/gdm stop #para ubuntu y gnome sudo /etc/init.d/kdm stop #para kubuntu y kde #en el caso del resto de distribuciones en las que hay #un usuario root propiamente dicho usaremos lo siguiente su /etc/init.d/gdm stop #para gnome /etc/init.d/kdm stop # para kde #para ejecutar el depurador de cuda lo llamaremos de la siguiente forma /usr/local/cuda/bin/cuda-gdb
con esto ya estaría resuelto.
En otro post más adelante explicaré un poco en que consiste CUDA y sus grandes ventajas y algún que otro inconveniente que presenta.

