Sizin GPU'nuz, sizin projeniz KYC'siz kripto ödemeNasıl ödeme yapılır
Türkçe
Hesabım
İlk proje rehberi

Yetersiz bellek: GPU'yu değiştirmeden önce neyin engellediğini bulun.

Bir bellek hatası, GPU'nun otomatik olarak çok küçük olduğu anlamına gelmez. Önce hangi kaynağın etkilendiğini ve hatanın ne zaman oluştuğunu belirleyin, ardından aynı ayarlarla tek bir girdiyi yeniden işleyin. Daha sonra her seferinde bir değişkeni azaltın: eşzamanlı öğe sayısı, boyutlar veya veri uzunluğu. İşe yarar sonuç, geçen bir durum, yeniden üretilebilir bir sınır veya daha iyi tanımlanmış bir sorundur; rastgele seçilmiş yeni bir kiralama değil.

Bu sayfada

1. Yeniden başlatmadan önce mesajı ve bağlamı saklayın

Kuyruğa iş eklemeyi bırakın. Hatanın tam metnini, ilgili dosyayı veya sorguyu, birlikte işlenen öğe sayısını ve ulaşılan adımı not edin. Model mi yükleniyordu, hesaplama mı ilerliyordu yoksa çıktı mı yazılıyordu? Ayarları bir notta, tamamlanmış sonuçları da kendi klasöründe saklayın.

Donmuş bir ekran veya açıklama olmadan kapanan bir uygulama, nedeni belirlemek için yeterli değildir. Varsa günlüğünü bulun. Bağlantı kesintisi, geçersiz bir girdi ve dolmuş bellek arayüzde benzer belirtiler üretebilir. Yazılım hiçbir şey belirtmiyorsa «neden belirlenemedi» yazın ve bir teşhis uydurmak yerine asgari bir deneme hazırlayın.

2. GPU belleğini, sistem belleğini ve disk alanını ayırın

GPU belleği, kart üzerindeki hesaplama öğeleri için kullanılır. Sunucunun RAM'i ve depolama alanı başka ihtiyaçları karşılar. BriefGPU GPU kartlarında gösterilen kapasiteler, gerçekten kullanılabilir RAM'i veya diski tanımlamaz. Mesajda belirtilen kaynağı ve ortamınızın bilgilerini kontrol edin.

Python'da MemoryError bir bellek ayırma hatasını belirtir; bu ad tek başına VRAM yetersizliğini göstermez. ENOSPC kodu ise hedef cihazda yetersiz alan anlamına gelir. Bu işaretler araştırmayı yönlendirir, ancak işlemi konumlandırmak için yine uygulamanın günlüğü gerekir.

2. GPU belleğini, sistem belleğini ve disk alanını ayırın
Gözlemİlk kontrolDaha büyük bir GPU'nun tek başına çözemeyeceği şeyler
Hesaplama sırasında CUDA out of memory mesajıKartın kullanılan belleği, diğer işler ve grup boyutuYazılım uyumsuzluğu veya bozuk bir dosya
Dosyalar okunurken MemoryErrorSüreç belleği, RAM'e yüklenen veri miktarıTüm klasörün sistem belleğine yüklenmesi
Dışa aktarma sırasında No space left on deviceÇıktı veya geçici klasörün alanı ve olası kotasıDolu bir disk veya depolama sınırı
Kullanılabilir mesaj olmadan kapanan uygulamaGünlük, ulaşılan adım ve tek bir girdi üzerinde denemeHâlâ bilinmeyen bir neden

3. Tek bir girdiye ve tek bir etkin işe dönün

Önce kendi başlattığınız işlemleri kontrol edin. Bir önizleme, eski bir oturum veya ikinci bir araç hâlâ çalışıyor olabilir. Durumlarını sakladıktan sonra gereksiz hale gelen görevleri düzgün şekilde kapatın. Tanımadığınız bir süreci sonlandırmayın ve birkaç dakika teşhis kazanmak için tüm ortamı yeniden başlatmayın.

Başarısız olan girdiyi tek başına, kalitesini düşürmeden yeniden işleyin. Tek başına geçip grup halinde başarısız oluyorsa eşzamanlı öğe sayısı bir ipucu haline gelir. Örneğin dörtlü bir grubu ikiye, gerekirse bire düşürün. Klasördeki dosya sayısı aynı kalır; yalnızca aynı anda işlenen miktar değişir.

Bazı araçlar bellek zirvelerini sınırlamak için sıralı işleme sunar. Diffusers özellikle bir görüntü grubunun kod çözümünün bölünmesini belgeler. Bu olanak kullanılan ardışık düzene bağlıdır: başka bir model için bulunmuş bir ayarı etkinleştirmeden önce o düzenin seçeneklerine bakın.

4. İstenen sonucu kaybetmeden yükü azaltın

Tek bir girdi başarısız oluyorsa boyutlarını veya uzunluğunu inceleyin. Bir görüntü için 2.048 × 2.048'den 1.024 × 1.024'e geçmek piksel sayısını dörde böler. Bu, toplam belleğin dörde bölüneceğini garanti etmez: model ve diğer öğeler kendi ihtiyaçlarını korur. Bir azaltma ancak çıktı gerekli ayrıntıları koruyorsa kabul edilebilir.

Bir asistan için sağlanan belgeleri, soruyu ve oluşturulan yanıtı birbirinden ayırın. Oluşturma önbelleği uzun bağlamda daha fazla bellek tüketebilir; kesin mekanizmalar modele bağlıdır. Daha kısa bir isteği veya her seferinde tek bir sorguyu deneyin. Yanıtı içeren pasajı çıkarıp sorunun çözüldüğü sonucuna varmayın.

Orijinal girdiyi her zaman saklayın. Deneme varyantını adlandırın ve neyi değiştirdiğini yazın. Araç döşeme bölme veya belirli öğeleri RAM'e aktarma sunuyorsa, belgelerini inceleyin; ek yerlerini, kaliteyi ve gözlenen süreyi kontrol edin. VRAM'den tasarruf sağlayan bir seçenek kısıtı başka bir yere taşıyabilir.

5. Ayrılan bellek ile kullanılabilir belleği karıştırmayın

PyTorch'ta ayırıcının ayırdığı bellek ile tensörlerin kapladığı bellek iki farklı ölçümdür. Kullanılmayan önbelleği boşaltmak hâlâ etkin olan tensörleri serbest bırakmaz. Dolayısıyla bir temizleme komutu, aşırı büyük bir yükü uyumlu bir yüke dönüştürmez.

Uygulamanızı temiz bir şekilde yeniden başlatmak işe yarıyorsa, ardından aynı küçük durumu yeniden oynatın ve sonucu not edin. Yeniden başlatma sonrası bir başarı, tek başına giderilmiş bir bellek sızıntısını kanıtlamaz. Aynı geçişte kullanım her seferinde artıyorsa, bu gözlemi saklayın ve yeniden başlatmaları biriktirmeden önce yazılımın belgelerine veya desteğine başvurun.

Örnek: sorunu on iki görselden oluşan bir klasörde yalıtmak

Bu, donanım ölçümü içermeyen örnek bir senaryodur. Bir serbest çalışan, ikisi büyük boyutlu ve ince metin içeren on iki görsel hazırlar. Dörtlü gruplar hâlinde işleme başarısız olur. Hata mesajını saklar, ardından büyük görsellerden birini tek başına, başlangıç kalitesinde dener. Tablo, olası gözlemlerin nasıl yorumlanacağını gösterir.

Bu senaryoda, ikili grupları ancak iki büyük görseli birlikte ve birkaç sıradan görseli kontrol ettikten sonra benimser. Dışa aktarılan dosyalarda metni ve kenar hatlarını kontrol eder. Bu sonucu tüm görsel boyutlarına, tüm modellere veya başka bir yazılıma genellemez.

Örnek: sorunu on iki görselden oluşan bir klasörde yalıtmak
Senaryo denemesiVarsayımsal gözlemYerel karar
Aynı anda dört görselBellek hatasıHatayı koru ve grubu küçült
Bir büyük görsel, aynı ayarlarlaEksiksiz ve kabul edilebilir çıktıHedef kalite bu tek durumda geçebilir
İki büyük görsel birlikteEksiksiz ve kabul edilebilir çıktılarBu grubu kısa bir kesitte dene
Görsel yoğun biçimde küçültüldüHesaplama tamamlandı, metin okunamıyorTeknik başarıya rağmen bu küçültmeyi ele

Başka bir kapasitenin haklı bir seçenek hâline geldiği durum

GPU belleği eksikliği belirlendiğinde, vazgeçilmez durum tek başına başarısız olduğunda ve kalitenizle uyumlu küçültmeler yeterli olmadığında başka bir kartı karşılaştırın. İlgili yazılımı, sürümü, parametreleri ve girdiyi saklayın: bu dosya bir sonraki denemeyi karşılaştırılabilir kılar. Kaç GB daha fazlasının tam olarak yeterli olacağını çıkarsamanızı sağlamaz.

Model yüklemesindeki bir hata, grubu küçültmenin faydasını da sınırlayabilir: yükün önemli bir kısmı ilk girdiden önce mevcuttur. Hassasiyet veya niceleme seçenekleri çalıştırma koşullarını ve bazen sonuçları değiştirir; ayrı bir deneme gerektirirler. Parti eklemek, birden çok kartın belleğini otomatik olarak birleştirmez.

İşe yarar bir teşhisle bitirin

Çıkış notunuz beş öğeden oluşur: mesaj ve adım, şüphelenilen kaynak, saklanan girdi, geçen veya başarısız olan ayar, yapılan kalite kontrolü. Hâlâ bilinmeyenleri ekleyin. Hiçbir küçük durum çalışmıyorsa, tüm partiyi tekrarlamayı bırakın ve bu bilgilerle yardım isteyin.

Diski boşaltmak için tek orijinallerinizi silmeyin, birden çok parametreyi aynı anda düşürmeyin ve kısmi bir çıktıyı başarı saymayın. Geçerli sonuçları yedeklemek için zaman ayırın. Teşhis belirsizliği azaltmalıdır; sonsuz bir ayar seansına dönüşmesine gerek yok.

Sık sorulan sorular

Birkaç megabaytlık bir JPEG görseli bellek yetersizliğine yol açabilir mi?

Evet. Sıkıştırılmış dosyanın boyutu, işlenmesi sırasında kullanılan verileri doğrudan temsil etmez. Boyutlarını, kanallarını ve istenen işlemleri not edin. Orijinal bir sürümü saklayın ve tüm klasörü değiştirmeden önce tek bir görselle test edin.

Her hatadan sonra tüm önbellekleri boşaltmalı mıyım?

Hayır. Önce önbelleği ve işlevini belirleyin. Dosyaları silmek, bazı öğelerin yeniden indirilmesine veya yeniden hesaplanmasına yol açabilir; bir bellek önbelleğini temizlemek hâlâ etkin olan verileri serbest bırakmaz. Yazılımınızın belgelenmiş komutlarını kullanın ve saklanması gerekenlerin bir kopyasını alın.

Neden ilk geçiş çalışıyor da sonraki başarısız oluyor?

Birkaç neden hâlâ mümkündür: daha zorlayıcı yeni bir girdi, etkin başka bir görev veya program tarafından saklanan veriler. Uygulamayı temiz bir şekilde yeniden başlattıktan sonra aynı küçük girdiyi tekrar çalıştırın ve koşulları not edin. Bu gözlem teşhise yardımcı olur, ancak tek başına bir bellek sızıntısını kanıtlamaz.

Hesaplamayı tamamlayan daha küçük bir ayar projeyi doğrulamaya yeter mi?

Hayır. Çıktıyı açıp beklenen ölçütleri doğrulamak gerekir. Okunaksız bir görsel ya da doğru belgenin gizli bir yanıtı, program artık hata bildirmese bile projenin başarısız olduğunu gösterir.

Kendi hızınızda ilerleyin

Biraz yöntem, başlangıcı değiştirir.

Kılavuzları aç