티스토리 뷰
이전엔 돌아가던 모델을 그대로 돌렸는데 CUDA에서 GPU메모리 에러가 뜨길래 terminal에서 nvidia-smi로 상태를 확인해보았습니다.
위의 Processes를 보시면 아무것도 돌아가는 것이 없지만 중간에 Memory-Usage를 보시면 이미 전체 메모리 중 2/3이상이 사용되고 있음을 알 수 있습니다.
가장 먼저 알아본 방법은 아래와 같습니다.
$ sudo kill -9 {process id}
https://jerrys-ai-lab.tistory.com/19
[ Linux ] GPU 메모리 할당 에러 해결 - Ubuntu 20.04
최근 Object Detection 관련 연구를 하기 위해 yolov4-keras 버전 github를 발견하여 돌려보다가 처음 보는 에러를 발견하였다. UnknownError: Failed to get convolution algorithm. This is probably because c..
jerrys-ai-lab.tistory.com
하지만 프로세스 자체가 표시되지 않는 지금과 같은 상황에는 이 방법을 사용할 수 없습니다.
이러한 상황에서 사용할 수 있는 방법은 다음과 같습니다.
for i in $(sudo lsof /dev/nvidia0 | grep python | awk '{print $2}' | sort -u); do kill -9 $i; done
https://honeyjamtech.tistory.com/63
[CUDA] GPU 메모리는 할당되어 있는데 프로세스가 안 나올때
사진은 없긴 한데 또 생기면 캡쳐해서 올리겠습니다. nvidia-smi 는 GPU의 사용량을 모니터링하기 위해 사용합니다. 여기에는 GPU가 몇 개인지 어떤 GPU인지, 메모리는 얼마나 사용하고 있는지, 파워
honeyjamtech.tistory.com
아예 반복문으로 GPU 메모리를 차지하는 프로세스들을 모두 찾고 지워버리는 코드.
이 코드를 적용하면 아래와 같이 GPU 메모리가 깔끔하게 청소됩니다.
다만, 제경우엔 원격 서버에 sudo와 lsof가 설치되어있지 않아 오류가 발생하여, 아래와 같은 두 코드로 설치를 진행한 후 다시 위의 코드를 적용했습니다.
apt-get update && \
apt-get -y install sudo
useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
출처 : https://stackoverflow.com/questions/25845538/how-to-use-sudo-inside-a-docker-container
apt install lsof
요약
1. nvidia-smi에 process가 뜰때는
$ sudo kill -9 {process id}
2. nvidia-smi에 process가 아예 보이지 않을때는
for i in $(sudo lsof /dev/nvidia0 | grep python | awk '{print $2}' | sort -u); do kill -9 $i; done
2.1 그런데 sudo나 lsof가 없어서 오류가 뜰경우
# sudo install
apt-get update && \
apt-get -y install sudo
useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
# lsof install
apt install lsof
2.2 한 후 다시
for i in $(sudo lsof /dev/nvidia0 | grep python | awk '{print $2}' | sort -u); do kill -9 $i; done
'문제 해결' 카테고리의 다른 글
[Dataset] DeepFashion dataset 다운로드 방법 (3) | 2022.04.26 |
---|---|
[링크 모음] CUDA, Tensorflow, Pytorch 재설치 및 GPU 인식 (0) | 2022.01.31 |
- Total
- Today
- Yesterday