본문 바로가기
AI프로그래밍 리뷰/프로그래밍

리눅스 터미널에서 딥러닝 학습 강제 중단했을때 GPU에 남은 메모리 정리하는 방법

by 펄서까투리 2020. 4. 2.

# 세줄요약 #

  1.  ps aux | grep python  명령어를 사용하여 딥러닝 학습을 실행시킨 python 파일의 실행 ID를 찾는다.
  2. 찾은 아이디가 예를 들어 '1234' 라면,  sudo kill -9 1234  명령어를 사용하여 Kill 명령어를 내린다.
  3. nvidia-smi 명령어로 GPU 메모리가 정리되었는지 확인한다.

 

# 상세리뷰 #

* 리눅스 터미널에서 ctrl+c 등으로 머신러닝 학습 프로세스를 강제로 종료할 시에는 간혹 프로세스가 완전히 종료되지 않고 GPU 메모리에 데이터가 남아있는 경우를 볼 수 있다.

* 이를 확인하려면 터미널 상에  nvidia-smi  명령어를 입력하여 GPU 가동 현황을 볼 수 있다.

>>> nividia-smi

- 위와 같이 4개의 GPU 모두 사용 현황을 확인할 수 있는데 오른쪽에 'GPU-Util'을 보면 GPU가 가동 중이진 않으나(머신러닝 학습 시 GPU 가동 중일 경우 90% 이상으로 표시된다) 중간에 'Memory-Usage'를 보면 메모리가 가득 차 있는 것을 알 수 있다.

- 이러한 경우에는 다시 학습을 실행시키려할 경우 메모리가 가득차서 학습이 되지 않는다. 해결책은 아래와 같다.

 

1. ps aux | grep python  명령어를 사용하여 딥러닝 학습을 실행시킨 python 파일의 실행 ID를 찾는다.

>>> ps aux | grep python
jovyan    4894 63.6 18.5 136732984 48807976 pts/2 Tl Apr06 565:54 python main.py

- 터미널에 명령어를 치면 위와 같이 나온다. python이 실행 중인 프로세스를 찾는 것.

- 실행 ID는 위의 예시의 경우에는 '4894'이다.

 

2. 찾은 아이디가 예를 들어 '1234' 라면,  sudo kill -9 1234  명령어를 사용하여 Kill 명령어를 내린다.

>>> sudo kill -9 4894

 

3. nvidia-smi 명령어로 GPU 메모리가 정리되었는지 확인한다. 

>>> nividia-smi

 

- 처음 그림과 비교하면 이번에는 메모리도 모두 비워져있고, 아래에 프로세스 현황 또한 없는 것(No running processes found)을 확인할 수 있다.

 

728x90
728x90

댓글