¿Puedo detener todos los procesos que utilizan CUDA en Linux sin necesidad de reiniciar?
-
08-10-2019 - |
Pregunta
¿Es posible detener toda la Ejecución del proceso de uso de la GPU a través de CUDA, sin necesidad de reiniciar la máquina?
Solución
La utilidad lsof ayudará con esto. Usted puede obtener una lista de los procesos de acceso a sus tarjetas de NVIDIA con:
lsof /dev/nvidia*
A continuación, utilice matar o pkill para terminar los procesos que desee. Tenga en cuenta que es posible que no quieren matar a X si se está ejecutando. En mi sistema de escritorio, tanto X como kwin también están accediendo a la GPU.
Otros consejos
puede comprobar los procesos con nvidia-smi
y después
kill -9 <pid>
Respuesta larga:
lsof /dev/nvidia*
le da PID se ejecutan en su tarjeta GPU que será similar a: lsof: Error de estado de PID: No existe el fichero o directorio
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 7215 ******* mem CHR 195,255 434 /dev/nvidiactl
python 7215 ******* mem CHR 195,0 435 /dev/nvidia0
y
awk '{print $2}'
selecciona la columna de la PID (en mi caso es la segunda columna) y
xargs -I {} kill {}
mata a esos puestos de trabajo PID.
Respuesta corta:
Se puede utilizar el siguiente comando para eliminar todos a la vez.
¡Cuidado! Este comando eliminará todos los PID mostrando para lsof / dev / nvidia *. Hacer funcionar lsof / dev / nvidia * primero para confirmar estos puestos de trabajo son los que quieren eliminar.
lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}
Finalizar el trabajo por un solo comando.