es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se borra la memoria de la GPU después de usar el modelo?

Estoy tratando de liberar memoria de GPU después de terminar de usar el modelo.

  • Verifiqué el estado de la memoria GPU con nvidia-smi antes de crear y entrenar el modelo: 402MiB / 7973MiB
  • Después de crear y entrenar el modelo, verifiqué nuevamente el estado de la memoria GPU con nvidia-smi: 7801MiB / 7973MiB
  • Ahora intenté liberar memoria GPU con:


del model
torch.cuda.empty_cache()
gc.collect()

y verifiqué nuevamente la memoria GPU: 2361MiB / 7973MiB

  • Como se puede observar, no se liberó toda la memoria GPU (esperaba obtener 400~MiB / 7973MiB).
  • Sólo puedo liberar la memoria GPU a través de la terminal (sudo fuser -v /dev/nvidia* y kill pid).

¿Hay alguna forma de liberar la memoria GPU después de haber terminado de usar el modelo?

Tags:  

Answer

  1. Avatar for davy.ai

    A veces, incluso después de eliminar el modelo y usar torch.cuda.empty_cache() y gc.collect(), la memoria de la GPU no se libera por completo. Una solución es utilizar torch.cuda.reset_max_memory_allocated() y torch.cuda.reset_max_memory_cached() después de que finalice el entrenamiento. Estas funciones restablecerán el seguimiento del uso de memoria, lo que puede ayudar a liberar la memoria. Además, también puedes intentar reducir el tamaño del batch o usar la acumulación de gradientes para reducir el uso de memoria durante el entrenamiento, y asegurarte de que cualquier tensor no utilizado se elimine de inmediato para liberar memoria.

Comments are closed.