Объяснение нехватки памяти CUDA в Pytorch

#python #machine-learning #deep-learning #pytorch #out-of-memory

#python #машинное обучение #глубокое обучение #pytorch #нехватка памяти

Вопрос:

Кто-нибудь может помочь мне объяснить значение этой распространенной проблемы в Pytorch?

Модель: EfficientDet-D4

Графический процессор: RTX 2080Ti

Размер пакета: 2

 CUDA out of memory. Tried to allocate 14.00 MiB (GPU 0; 11.00 GiB total capacity; 8.32 GiB already allocated; 2.59 MiB free; 8.37 GiB reserved in total by PyTorch)
  

В любом случае, я думаю, что модель и графический процессор здесь не важны, и я знаю, что решением должно быть уменьшение размера пакета, попытка отключить градиент при проверке и т. Д. Но я просто хочу знать, в чем смысл 8.32 GiB while у меня есть 11 GiB , но я не могу выделить 14.00 MiB больше?

Дополнение: я пытаюсь наблюдать nvidia-smi во время тренировки с размером пакета = 1, что потребовалось 9.5 GiB для моего графического процессора.

Комментарии:

1. Можете ли вы проверить процессы, которые используют память вашего графического процессора? Существует ли какой-либо предыдущий процесс-призрак, который уже занимал память в устройстве GPU?

2. Я перезапускаю ядро, убиваю все процессы после каждой попытки, поэтому я уверен, что там ничего нет (даже пытаюсь перезагрузить мой компьютер)

3. Вы можете увидеть использование графического процессора с помощью nvidia-smi

4. @Tomer, я это знаю, но он просто поднял до 10 ГБ, а затем выпустил все после появления ошибки, я отредактирую вопрос

5. попробуйте torch.cuda.empty_cache() и расскажите нам, как это происходит.

Ответ №1:

У меня есть ответ от @ptrblck в сообществе Pytorch. Там я описал свой вопрос более подробно, чем этот вопрос.

Пожалуйста, проверьте ответ здесь .