새소식

Dev record/Ubuntu

[Ubnutu] RuntimeError: CUDA out of memory. Tried to allocate 374.00 MiB (GPU 0; 10.91 GiB total capacity; 5.96 GiB already allocated; 232.94 MiB free; 6.00 GiB reserved in total by PyTorch)

  • -
반응형

문제 상황

모델 학습을 시도하였는데 다음과 같은 에러 코드가 발생했다.

RuntimeError: CUDA out of memory. Tried to allocate 374.00 MiB (GPU 0; 10.91 GiB total capacity; 5.96 GiB already allocated; 232.94 MiB free; 6.00 GiB reserved in total by PyTorch)

 

 

해결 방안

nvidia-smi로 GPU 메모리 점유 상황을 확인해봤다.

앞서 돌렸던 모델이 GPU 메모리를 여전히 점유하고 있어서 발생한 문제 상황이었다.

해당 프로세서를 PID를 보고 정리한다.

sudo kill -9 <PID number>

ex)
sudo kill -9 26200

예를 들어 위 프로세서들 중 PID 26200이 GPU 메모리의 3164 MiB를 먹고 있다.

프로세서명을 보면 /opt/conda/bin/python 로 작성되어 있다.

이는 높은 확률로 이전에 파이썬으로 실행한 딥러닝 모델이 남아있던 것이다.

이를 kill 명령어로 죽인뒤 다시 확인해본다.

 

7437 MiB만큼 점유하고 있다가 6927 MiB로 떨어진 것을 확인할 수 있다. 

뿐만 아니라 비슷하게 6055 역시 많은 GPU 메모리를 점유하고 있고 이것도 죽이면 메모리가 깔끔하게 정리가 되고

다시 모델을 학습 시도하면 해결된다.

그리고 nvidia-smi를 매번 번거롭게 입력해서 확인하기 보다 watch 명령어를 이용해서 실시간으로 보는 것도 하나의 방법이다.

https://barrer.tistory.com/56

 

[Ubuntu] 우분투 메모리 사용량 실시간 확인 방법

sudo apt-get install htop 문제 상황 GPU와 CPU에서 메모리가 얼마나 사용되고 있는지 실시간으로 확인이 필요했다. 해결 방안 간단하게 2가지만 사용하면 실시간으로 확인이 가능하다. 1. watch nvidia-smi GP

barrer.tistory.com

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.