10. GPU OOM(Out Of Memory) 해결방법

2023. 11. 17. 14:28NAVER AI Tech/Pytorch

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 시 쌓이는 메모리를 방지하자.

'NAVER AI Tech > Pytorch' 카테고리의 다른 글

9. Hyper-parameter tuning  (0) 2023.11.17
8. multi-GPU  (0) 2023.11.17
7. pytorch monitoring tools  (0) 2023.11.17
6. 모델 저장, 불러오기  (0) 2023.11.17
5. pytorch dataset  (0) 2023.11.16