카테고리 없음
GPU Trouble Shooting
green_ne
2022. 1. 28. 13:28
- OOM = train 하면서 가장 많이 만나는 error
해당 error의 경우, 왜 발생했는지 알기 어렵. (ex. 어디서 발생했나? GPU가 거짓말을 하기도?)
대부분 iter를 돌아가 나타나며, 지속적인 상황 파악을 할 수 없어서 발생함.
해결책은 batch_size를 1로 하고, GPU clean하고, Run 돌려보는 것임.
- CUDNN_STATUS_NOT_INIT = GPU를 잘못 깔았거나, 제대로 안깔았을 경우 발생.
- device_side_assert = OOM의 일종
# GPU 상태 확인 (on Colab)
GPUtil.showUtilization()
# 결과가 아래로 갈수록 %가 늘어난다면, 메모리 누수가 있는 것임
참고 : https://brstar96.github.io/shoveling/device_error_summary/
추가적인 해결방안 tip.
- 일회성 1-d tensor는 Python 기본객체로 변환 (=> .item, float())
- 더이상 필요없는 변수는 del문으로 메모리에서 삭제
- batch_size = 1로 해서 실험
- torch.no_grad()을 사용하면, backward pass로 인한 memory buffer 현상 발생X
no_grad.context내에서 backward가 일어나더라도 memory추가 발생X
추론(inference) 시점에서 꼭 사용하자!
반응형