CUDA Out Of Memory 관련 팁

황준하·2023년 1월 1일
0

CUDA out of memory 관련 이슈 팁들

한국 파이토치 포럼: https://discuss.pytorch.kr/t/cuda-out-of-memory/216/6

공식 github issue(성지? 라고 함): https://github.com/pytorch/pytorch/issues/16417

+) torch.cuda.empty_cache() 오류 관련 이슈: https://github.com/huggingface/transformers/issues/1742

내가 만난 문제

여러 모델을 만들어준 후에 for문을 통해 model을 불러와 돌리게 되는데 학습 과정 중 OOM 에러 발생. (5~6번째 모델에서)

혹시나 GPU에 계속 쌓여서 그런게 아닐까싶어 train이 종료되고 gpu를 비우는 방법을 검색하게 됨.

+) OOM에러가 뜨면 gpu위에 할당한 데이터들이 남아 있어 노트북을 그 때마다 커널 재시작을 해야 하는게 번거로웠음.

해결

del명령어로 지워버리면 확실히 해결이 됨! [gpu에 올라간 모델 할당 해제]

코드는 아래와 같다.

import torch
import gc

with torch.no_grad(): tmp_model
del tmp_model
gc.collect()
torch.cuda.empty_cache()

0개의 댓글