728x90

OOM(Out Of Memory)문제로, 더 이상 실행을 위해 할당할 메모리가 남지 않았다는 의미이다. 아래와 같은 방법으로 문제를 해결할 수 있다.

 

1. 코드 시작 부분에서 메모리 캐시 비우는 코드 추가하기

import gc
import torch

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

 

그래도 해결되지 않는 경우 아래의 명령어로 어디에 얼마나 쓰이는지 알 수 있다. 또한 강제로 프로세스를 종료함으로써 문제를 해결할 수 있다.

 

2. 직접 프로세서 종료시키기

1) command line에서 nvidia-smi 명령어로 메모리 확인

nvidia-smi

이런 식으로 표가 나온다.

2) command line에서 ps aux | grep python 명령어로 실행중인 파이썬 파일의 프로세스 ID를 볼 수 있다.

ps aux | grep python

3) 빨간 색으로 표시한 ID 18, 즉 가장 위에 나오는 PID를 kill한다.

kill -9 18

# kill -9 18 10754 --> 잉처럼 프로세스 여러 개를 한꺼번에 kill할 수도 있다.

원래 그런지는 모르겠으나 맨 위의 프로세스 id 하나를 kill 했더니 모든 프로세스가 종료되고 맨 아래 프로세스(파랑색으로 표시)만 남았다.

 

맨 아래 가장 최신의 프로세스는 kill이 안되는 것 같다. pid를 입력해서 kill해봤자 계속 pid가 바뀌면서 내가 입력한 프로세스는 없다고 나온다.("No such process"라는 문구가 나온다.)

 

4) 위의 과정을 모두 거치고 다시 파이썬 파일을 실행시켜보면 정상 작동할 것이다.

 

 

728x90