CUDA out of memory — собрал список того, что реально помогает (а не магия)

Теги: #GPU
Рейтинг: 60% · 21 голосов
Machine learning и deep learning: обучение и дообучение моделей, датасеты, PyTorch, TensorFlow, эксперименты, метрики, MLOps и аналитика данных.
Ответить
Аватара пользователя
middlewarlock
Сообщения: 43
Зарегистрирован: 12 май 2026, 05:30

CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение middlewarlock »

Третий день воюю с torch.OutOfMemoryError на 3090 (24GB), батч уже 1, всё равно падает на втором forward. Что вообще можно сделать кроме как купить A100?
👍1 ❤️ 🔥1 😄1 🤔
✔ Лучший ответ сформирован автоматически — Kutz
Дополню чеклист пунктом, которого в треде не хватает: прежде чем крутить флаги, снимите torch.cuda.memory_summary() и memory_snapshot. Частая история — жрёт не модель, а валидация без torch.no_grad() или накопление лосса в список без .item(), когда граф вычислений тянется через всю эпоху. Один такой баг съедает больше памяти, чем экономит весь bitsandbytes вместе взятый.
Перейти к ответу →
Аватара пользователя
Tcraw62981
Сообщения: 41
Зарегистрирован: 11 май 2026, 21:02

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение Tcraw62981 »

Базовый чеклист: gradient_checkpointing включить, оптимизатор на 8-bit (bitsandbytes AdamW), mixed precision bf16. Это обычно режет память в 2-3 раза без потери качества.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
tcpmaker
Сообщения: 4
Зарегистрирован: 17 май 2026, 12:51

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение tcpmaker »

И gradient accumulation вместо большого батча. batch=1, accum=16 даёт эффективный батч 16, а память как у единицы. Удивительно сколько людей про это забывает.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
egor13
Сообщения: 8
Зарегистрирован: 11 май 2026, 12:43

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение egor13 »

gradient_checkpointing помогло, дошло до эпохи! Но скорость упала процентов на 30, это норма?
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
Omoto
Сообщения: 120
Зарегистрирован: 12 май 2026, 03:05

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение Omoto »

Да, это плата за пересчёт активаций на backward. 20-30% оверхед это ожидаемо. Если есть запас памяти после оптимизаций можно выборочно чекпойнтить только часть слоёв.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
Bill2001
Сообщения: 86
Зарегистрирован: 16 май 2026, 20:24

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение Bill2001 »

Ещё совет: смотри на фрагментацию. PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True реально спасает когда память вроде есть, но аллокатор не может выделить непрерывный блок.
👍1 ❤️ 🔥 😄2 🤔
Аватара пользователя
valru
Сообщения: 63
Зарегистрирован: 11 май 2026, 05:24

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение valru »

О, вот это последнее у меня и было — падало при наличии 3GB свободных. expandable_segments починил. Спасибо всем, записал в заметки.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
vuemaker
Сообщения: 34
Зарегистрирован: 22 май 2026, 16:44

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение vuemaker »

Сохранил тред, лучше любого стековерфлоу-ответа честно.
👍3 ❤️1 🔥2 😄1 🤔2
Аватара пользователя
Kutz
Сообщения: 71
Зарегистрирован: 16 май 2026, 02:21

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение Kutz »

✔ Лучший ответ — сформирован автоматически
Дополню чеклист пунктом, которого в треде не хватает: прежде чем крутить флаги, снимите torch.cuda.memory_summary() и memory_snapshot. Частая история — жрёт не модель, а валидация без torch.no_grad() или накопление лосса в список без .item(), когда граф вычислений тянется через всю эпоху. Один такой баг съедает больше памяти, чем экономит весь bitsandbytes вместе взятый.
👍1 ❤️1 🔥1 😄 🤔
Аватара пользователя
m3power
Сообщения: 42
Зарегистрирован: 16 май 2026, 21:33

Re: CUDA out of memory — собрал список того, что реально помогает (а не магия)

Сообщение m3power »

@Tcraw62981, к твоему чеклисту одна оговорка: на 3090 стоит брать именно bf16, а не fp16 — Ampere его умеет нативно, и не придётся возиться с loss scaling и ловить NaN на середине обучения. А вместо обычного 8-bit оптимизатора советую paged_adamw_8bit: он ещё и пиковые аллокации переживает, выгружая страницы состояния оптимизатора в обычную RAM.
👍 ❤️ 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Машинное обучение и Data Science»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость