¿Puedo detener todos los procesos que utilizan CUDA en Linux sin necesidad de reiniciar?

StackOverflow https://stackoverflow.com/questions/4354257

  •  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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top