카테고리 없음

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) 시점에서 꼭 사용하자!

 

 

반응형