(Error) CUDA out of memory

(Error) CUDA out of memory


1. Batch Size를 바꿔준다

Batch size를 담고 있는 파일로 이동해서 gpu~관련 부분의 숫자 크기를 작게 조정한다. 근데 아무리 작게 해도 계속 out of memory가 발생하거나, 배치사이즈가 너무 작아서 한 번 훈련하는데 9일 이상 걸리게 될 수도 있음.

2. GPU 비워주기

트레이닝을 하다보면, 중간에 끊기더라도 GPU가 비워지지 않기도 한다. 따라서 훈련 동안 쓴 GPU를 비워주면 됨.
@Terminal
아래 명령어를 실행하면 현재 실행 중인 GPU의 사용량과, 돌아가는 프로그램을 확인할 수 있음

nvidia-smi

아래와 같이 특정 PID를 입력해서 프로그램을 종료할 수 있음. 그러나 현재 보고 있는 디스플레이가 종료되거나, 별 용량을 쓰지도 않는 사소한 프로그램만 종료될 뿐 효과가 없음.

sudo kill -9 [PID]

그럴땐 아래와 같이 Python관련 작업을 모두 종료해주면 됨.

sudo pkill -9 python

그리고 다시 nvidia-smi해보면 GPU용량이 비워져있고 트레이닝도 다시 잘 됨.