모델 Training중 발생한 cuda out of memory 에러 해결

민정·2022년 11월 18일
0

Trouble Shooting

목록 보기
3/6

AI 모델 Training 중에 서버에서 cuda out of memory 에러가 발생했습니다.

실행중인 프로세스 확인

먼저 nvidia-smi로 백그라운드에서 실행중인 프로세스가 있는지 확인합니다.

아래 화면에서는 No running processes found라고 뜨는데요, 만약 백그라운드에서 실행중인 프로세스가 있다면 실행중인 프로세스의 목록이 뜨게 됩니다.

해당 프로세스들이 GPU Memory Usage를 사용하고 있기 때문에, cuda out of memory 에러가 발행하는 것인데요, 만약 현재 실행하려는 프로세스가 아니라면, PID를 이용하여 프로세스를 kill해줍니다. 가끔 서버가 비정상적으로 종료된 경우, 프로세스가 정상적으로 종료되지 않고 백그라운드에 남을 수 있습니다.

kill -15 [PID]

만약 이 코드로도 프로세스가 종료되지 않는다면, 아래의 코드를 실행해주세요.

kill -9 [PID]

batch size 줄이기

만약 실행중인 프로세스가 없다면, Traning에서의 batch size를 줄이면 됩니다.

설정한 batch size의 개수만큼 데이터를 한 세트로 잡아 1 iteration의 Training을 수행하는데요, 이 과정에서 할당할 GPU Memory Usage가 부족하여 cuda out of memory 에러가 발생하기 때문입니다.

따라서 만약 모델 Training 과정에서 위와 같은 에러가 발생했다면, batch size를 줄이면 해결됩니다.

0개의 댓글