cuda - tengo - no hay suficiente espacio de almacenamiento sd
¿Cómo puedo vaciar la memoria de la GPU utilizando CUDA(el restablecimiento físico no está disponible) (5)
Mi programa CUDA se bloqueó durante la ejecución, antes de que se vaciara la memoria. Como resultado, la memoria del dispositivo permaneció ocupada.
Me estoy ejecutando en un GTX 580, para el cual no se admite nvidia-smi --gpu-reset
.
La colocación de cudaDeviceReset()
al principio del programa solo afecta el contexto actual creado por el proceso y no vacía la memoria asignada antes.
Estoy accediendo a un servidor de Fedora con esa GPU de forma remota, por lo que el restablecimiento físico es bastante complicado.
Entonces, la pregunta es: ¿hay alguna forma de vaciar la memoria del dispositivo en esta situación?
Aunque no debería ser necesario hacer esto en circunstancias que no sean excepcionales, la manera recomendada de hacer esto en los hosts de Linux es descargar el controlador nvidia haciendo
$ rmmod nvidia
con privilegios de root adecuados y luego volver a cargarlo con
$ modprobe nvidia
Si la máquina está ejecutando X11, deberá detener esto manualmente de antemano y reiniciarlo después. Los procesos de inicialización del controlador deben eliminar cualquier estado anterior en el dispositivo.
Esta respuesta se ha recopilado de los comentarios y se ha publicado como un wiki de la comunidad para que esta pregunta salga de la lista sin respuesta de la etiqueta CUDA.
Primer tipo
nvidia-smi
A continuación, seleccione el PID que desea matar
sudo kill -9 PID
También tuve el mismo problema, y vi una buena solución en quora, usando
sudo kill -9 PID.
vea https://www.quora.com/How-do-I-kill-all-the-computer-processes-shown-in-nvidia-smi
comprueba qué está usando tu memoria GPU con
sudo fuser -v /dev/nvidia*
Su salida se verá algo como esto:
USER PID ACCESS COMMAND
/dev/nvidia0: root 1256 F...m Xorg
username 2057 F...m compiz
username 2759 F...m chrome
username 2777 F...m chrome
username 20450 F...m python
username 20699 F...m python
Luego htop
el PID que ya no necesita en htop
o con
sudo kill -9 PID.
En el ejemplo anterior, Pycharm estaba comiendo mucha memoria, así que maté a 20450 y 20699.
en macOS (/ OS X), si alguien más está teniendo problemas con el sistema operativo, aparentemente pierde memoria:
- https://github.com/phvu/cuda-smi es útil para verificar rápidamente la memoria libre
- Al salir de las aplicaciones parece liberarse la memoria que usan. Salga de todo lo que no necesita, o salga de las aplicaciones una por una para ver cuánta memoria usaron.
- Si eso no lo corta (salir de aproximadamente 10 aplicaciones liberadas alrededor de 500 MB / 15% para mí), el mayor consumidor con diferencia es WindowServer. Puede forzar la salida, lo que también anulará todas las aplicaciones que esté ejecutando y lo desconectará. Pero es un poco más rápido que un reinicio y me devolvió al 90% de memoria libre en el dispositivo cuda.