Python 프로세스를 종료시켜도 GPU Memory를 반환하지 않고, nvidia-smi에 process ID가 나오지 않을 때 해결

Chanyong·2022년 9월 28일
0

TIL

목록 보기
5/7

Python 프로세스를 종료시켜도 GPU Memory를 반환하지 않고, nvidia-smi에 process ID가 나오지 않을 때 해결방법

Shutting down the Python process does not return GPU memory and process ID does not appear in nvidia-smi


에러 발생 상황

Pytorch의 DDP를 사용하던 중, 학습을 종료시키고자 Ctrl+C를 입력하여 프로세스를 종료하였다. 그러나 GPU Memory를 반환하지 않았으며, Process를 Kill하기 위해 nvidia-smi 또는 ps 명령어를 이용하려고 했다.
1. nvidia-smi에는 Process ID가 뜨지 않았음.
2. 노드에 연결된 다른 GPU에서 학습 진행중인 Python 프로세스가 있어 어떤 프로세스를 종료시켜야할지 알 수 없는 상황.

해결

Python 프로세스가 종료되더라도 이를 알지 못하고 child process가 GPU memory를 반환하지 않는 문제, 즉 child process가 zombie 상태로 남아있는 것임.
Zombie 상태의 Python 프로세스는
ps aux | grep python
명령어를 치면 Python <defunct\> 인 프로세스가 나온다. 이 프로세스 + Parent Process까지 Kill하면 GPU memory를 반환한다.

profile
AI Accelerator 연구

0개의 댓글