nvidia-smi
에 process ID가 나오지 않을 때 해결방법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를 반환한다.