PyTorch utilizează un alocator intern de memorie cache (Caching Allocator) pentru a accelera alocările pe GPU. Atunci când un tensor este șters din Python, memoria fizică VRAM nu este returnată imediat sistemului de operare, ci rămâne rezervată în pool-ul de cache PyTorch pentru reutilizare rapidă.
import torch
if torch.cuda.is_available():
# Memorie efectiv utilizată de tensori activi
utilizata = torch.cuda.memory_allocated() / (1024 ** 2)
# Memorie totală rezervată de alocator în VRAM
rezervata = torch.cuda.memory_reserved() / (1024 ** 2)
print(f"Alocată: {utilizata:.1f} MB | Rezervată: {rezervata:.1f} MB")
# Eliberarea memoriei rezervate neutilizate către driverul NVIDIA
torch.cuda.empty_cache()
Deși empty_cache() eliberează memoria rezervată pentru alte procese, nu poate rezolva o eroare reală de lipsă de VRAM cauzată de un batch size prea mare sau de un model prea extins.
Întrebări & Exemple practice:
Gestiunea Memoriei GPU: empty_cache și memory_allocatedAi o întrebare despre Gestiunea Memoriei GPU: empty_cache și memory_allocated sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.