Смотрят размер модели/активаций/батча, фрагментацию, утечки графа; пробуют меньший batch, checkpointing, AMP; empty_cache — лишь костыль.
Разбор
torch.cuda.memory_summary() помогает.
- Лишний retain_graph и рост списков loss на GPU.
- Eval без no_grad держит граф.
- Фрагментация иногда требует перезапуска процесса.
Итог
OOM лечат уменьшением активаций и устранением утечек графа.