programming/AI

(딥러닝)CUDA out of memory 해결방법

limmmmm 2022. 11. 10. 14:41
반응형
반응형

#pytorch

#NVIDIA

 

Pytorch에서 모델을 학습시킬 때, 간혹 "CUDA out of memory"의 오류가 발생하면서 학습이 진행이 안되는 경우가 있는데, 가지고 있는 GPU의 memory 크기보다 사용하려는 모델 또는 데이터의 크기가 커서 발생한 오류입니다.

(혹은 CUDA, cudnn 연결이 제대로 되지 않아서 발생할 수 있음, 모든걸 다 해보고 안되면 CUDA 및 cudnn 재설치 하길 바람.)

https://limmmmm.tistory.com/4

 

(윈도우) 딥러닝 환경구축(NVIDIA, CUDA, cudnn, 파이토치)

아나콘다는 설치가 되어 있다는 가정하에 시작 순서는 NVIDIA -> CUDA -> cudnn -> 환경변수 설정 -> 파이토치 설치 딥러닝 환경에서 작업을 하다보면 갑자기 CUDA를 변경해야 하는 상황이 생겨서 따로

limmmmm.tistory.com

1. Batch Size 줄이기

- 학습에 사용하려는 데이터의 크기도 크고, Batch Size도 커서 메모리를 다 차지해 버릴 수 있으니까 DataLoader 만들 시 Batch Size를 줄여보면 됨.

- ex) 제가 Input Data : (128(배치사이즈), 2016, 17),의 데이터로 Transformer를 통해 학습하려 했는데, Out of Memory가 뜨더라구요 알고보니까 데이터가 들어가면서 GPU 메모리를 32GB 이상 차지해버려서 그렇더라구요..

- 배치를 16으로 줄여버리니까 정상동작 했어요

 

2. 모델 Unit 수 줄이기

- 배치사이즈를 다 줄였는데도 오류가 난다면 모델 파라미터**를 확인하면서 Unit 줄이면 됩니다.

 

*파라미터 확인방법

- tensorflow

model.summary()

 

- pytorch

pip install pytorch_model_summary
pytorch_model_summary.summary(model, x, show_input=True)

 

위의 테스트 진행할 때 "nvidia-smi -l" 등으로 실시간 GPU 소모량 확인하면서 진행하시면 훨씬 수월합니다.

 

더 좋은 방법이 있으면 알려주세요. 수정하겠습니다

반응형