NAVER AI Tech/Pytorch
10. GPU OOM(Out Of Memory) 해결방법
코딩소비
2023. 11. 17. 14:28
Out Of Memory 문제?
1. batch size 줄여라
2. GPU clean
3. 다시 실행
!pip install GPUtil
import GPUtil
GPUtil.showUtilization() # 현재 GPU 상태를 보여줌!! iteration 마다 메모리가 늘어나는지 확인.
torch.cuda.empty_cache() # 사용되지 않는 cache clean. 근데.......... 경험상 도움이 되지 않았던 경우가 많았다.
** Tip:
1. training loop 내에서 tensor로 축적되는 변수를 확인해서 없애줄 것.(=메모리 낭비)
- 1-d tensor의 경우 python 기본 객체로 변환. tensor.item 을 활용해서 메모리 적재되는 것을 방지하자.
2. del명령어 적절히 사용하기.
- python 특성 상 loop이 끝나도 메모리를 차지하기 때문에 사용하지 않는 변수는 메모리에서 삭제하면서 관리하자.
3. 에러 발생 시 try-except 문을 활용해서 batch_size를 1로 조절하는 코드를 구현하도록 하자.
4. Inference 시점에서는 torch.no_grad() 구문을 사용해서 backward pass 시 쌓이는 메모리를 방지하자.