ETC/Trouble Shooting

CUDA error: out of memory

elliz 2023. 9. 10. 18:19

모델을 가져오는 과정에서 다음과 같은 에러 발생 시, 해결과정에 대한 내용을 작성하였습니다.

CUDA error: out of memory

\

원인은 다음 중 하나일 것입니다.

  1. 실행 중인 프로세스가 GPU 메모리를 차지하고 있다. ▶ 사용하지 않는 프로세스를 종료한다
  2. 코드 실행에 필요한 GPU 메모리가 부족하다 ▶ 메모리 요구량을 줄인다 (예: batch_size 축소)

해결방법

  • 실행 중인 프로세스 확인

nvidia-smi 명령어를 사용하여 실행 중인 프로세스를 확인합니다.

저자의 경우, GPU 메모리의 대부분을 차지하는 두 개의 프로세스가 있음을 확인했습니다. 

다음 명령어를 통해 실행 중인 프로세스를 종료하여 GPU 메모리를 확보합니다.

  • kill 옵션
    • 9: 강제 종료(kill)
    • 15: 정상 종료(terminating)
$ kill -15 [PID]

 

  • 실행 중인 프로세스가 없다면
    해당 코드를 실행하기에 GPU 메모리가 부족하다는 것입니다.

이럴 때는 batch size를 줄여보거나 GPU 메모리를 구입하면 해결될 것입니다.