PyTorch için yeni bellek optimizasyon çözücüsü geliştirildi
Öne çıkanlar
- Yeni çözücü grafik optimizasyonundaki tepe RAM tüketimini 20 kat azalttı.
- Kayan pencere ve Hirschberg algoritması birleştirilerek geri izleme adımı kaldırıldı.
- Varsayılan çözücü 100 elemanda çökerken yeni yöntem 2 bin elemanı işleyebildi.
PyTorch hesaplama grafiği oluştururken bellek bütçesine göre hangi işlemlerin saklanacağını ve hangilerinin yeniden hesaplanacağını 0/1 sırt çantası problemi olarak modelliyor. Varsayılan dinamik programlama çözücüsü, tüm durum tablosunu bellekte tuttuğu için büyük modellerde yüksek RAM tüketimine yol açıyordu. Geliştirici Jędrzej Maczan, kayan pencere ve Hirschberg algoritmasını birleştiren yeni bir sırt çantası çözücüsü hazırlayarak PyTorch deposuna ekledi.
Yeni dp_knapsack_sliding_hirschberg çözücüsü, tam iki boyutlu dinamik programlama matrisi yerine yalnızca iki satırı bellekte tutarak kayan pencere tekniğini kullanıyor. Hirschberg yaklaşımı sayesinde probleme böl ve yönet stratejisi uygulanıyor ve sonradan geri izleme adımına gerek kalmadan saklanacak işlemler doğrudan belirleniyor. Bu yöntem bellek tablosunun boyutunu belirgin şekilde küçültüyor ve aşırı RAM kullanımının önüne geçiyor.
Yapılan testlerde yeni algoritmanın planlama sırasındaki tepe RAM kullanımını 20 kat düşürdüğü ve yaklaşık yüzde 37 çalışma zamanı hızlanması sağladığı bildirildi. Geliştirici, 64 GB RAM bulunan sistemde varsayılan çözücünün 100 elemanda çöktüğünü, yeni çözümün ise 2 bin elemanlı problemleri sorunsuz işlediğini aktardı. Harici bağımlılık istemeyen kullanıcıların yapılandırma ayarını değiştirerek yeni çözücüyü hemen devreye alabileceği kaydedildi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.