GPU %100'de değil — işlemci darboğazını başka sebeplerden ayırmak

Düşük GPU kullanımının en az sekiz açıklaması var ve yalnızca biri işlemci sınırı — burada onları eleme sırası, iki dakikada meseleyi bitiren bedava bir deneyle başlıyor.

Ekranındaki katman (overlay) ekran kartını %60'ta gösteriyor ve kare hızı beklediğinden düşük. Biri sana bunun bir işlemci darboğazı olduğunu söylüyor, sen de işlemciler hakkında okumaya başlıyorsun.

Olabilir. Ama "GPU %100'ün altında" cümlesinin en az sekiz açıklaması var, çoğunu kontrol etmek hiçbir şeye mal olmuyor ve gerçek bir işlemci sınırı bunlardan yalnızca biri. Bu sayfa onları tek tek eliyor.

Önce, o yüzde aslında ne

GPU kullanımı, GPU'nun elinde iş bulunduğu zamanın oranıdır — ne kadar sıkı çalıştığı değil. Önemsiz bir yükü boşta geçiren bir kart, kuyrukta her an bir şey olduğu için %100 okuyabilir; kendisinden istenen her şeyi yapan bir kart ise kuyruk sürekli boşaldığı için %60 okuyabilir. İlk bir ipucu, fazlası değil: tek başına GPU'nun neyi beklediğini söyleyemez.

İki dakikada meseleyi bitiren deney

Her şeyden önce bunu yap, çünkü bedava ve belirleyici.

  1. Tekrarlanabilir bir sahnede kare hızını not et.
  2. Çözünürlüğü ciddi biçimde düşür — bir kademe değil, büyük bir adım.
  3. Aynı sahneyi yeniden ölç.

Kare hızı neredeyse hiç kıpırdamıyorsa sınırın GPU değildi. İşinin çoğunu elinden aldın ve karşılığında hiçbir şey almadın; demek ki hızı başka bir şey belirliyordu.

Kare hızı kabaca orantılı biçimde yükseliyorsa aslında GPU sınırlıydın ve kullanım yüzdesi seni yanıltıyordu.

Teşhisin tamamı bu, ve hiçbir araç gerektirmiyor. Aşağıdaki her şey o "başka bir şey"in ne olduğunu bulmak için.

Ucuz açıklamalar, sırasıyla

1. Bir sınırdasın

Ulaştığın sayı tam olarak yenileme hızın, oyun içindeki FPS sınırın, sürücü tarafındaki bir kare limiti ya da bir gecikme özelliğinin otomatik kare limitiyse hiçbir şey darboğaz değil — GPU boşta, çünkü ona durmasını sen söyledin. Bu bir yanlış alarm, ve elemesi on saniye.

2. Kart boşta bırakılmıyor, geri tutuluyor

Frekansını yükseltmeyen bir GPU ile işi olmayan bir GPU aynı şey değil. Yük altında sürücünün kendisi frekansları neden aşağıda tuttuğunu adıyla söylüyor: termal koruma, fabrika değerinin altına çekilmiş bir güç limiti, karttan yavaşlamasını isteyen bir uygulama, ya da takılmamış veya tam oturmamış bir PCIe güç konnektörü. Sonuncusu, düzgün takılana kadar frekans yükseltmeyi reddeden bir karttır — bir kablo sorunu, bir ayar değil. Takılma taraması kısa bir yük altında sürücüye bunu soruyor ve sürücünün saydığı sebepleri raporluyor.

3. Oyun işlemcinin bir kısmına hapsedilmiş

Aramaya gitmezsen görünmüyor. Oyun sürecine uygulanmış dar bir işlemci yakınlığı (affinity) maskesi ya da varsayılan bir CPU set, oyunun yaptığı her şeyin o işlemcilere sığmak zorunda olması demek; makinenin geri kalanı boş dururken. Kaynağı şunlardan biri olabilir: eski bir optimizasyon script'i, forumdan kopyalanmış bir start /affinity kısayolu, ya da bir kez ayarlanıp unutulmuş bir süreç aracı.

Nasıl anlarsın: Görev Yöneticisi → Ayrıntılar, oyuna sağ tıkla, Benzeşmeyi ayarla. Her işlemci işaretli değilse cevabın bu — oradan genişlet, ya da kuralı yazan araçta kaldır.

4. Oyun yanlış ekran kartında çalışıyor

Bir dizüstünde, ya da tümleşik grafiği açık bir masaüstünde, oyun zayıf bağdaştırıcıda render edilmeye başlayabiliyor. Ayrık kart o zaman düşük kullanımı dürüstçe raporluyor: gerçekten bir şey yapmıyor. Oyun başına tercihin nasıl kaldırılacağını oyun hangi ekran kartında çalışıyor anlatıyor.

5. PCIe bağlantısı olması gerekenden dar

Bir kez bakmaya değer, ve ölçüsünü kaçırmamaya değer. Aynı nesilde hatların yarısı anakartın kendi tasarımı olabilir — işlemcinin hatlarından beslenen bir M.2 disk grafik yuvasını bölüyor — ve bağlantının yarıya inmesi kare hızını yarıya indirmez; senin kartında ne kadara mal olduğu burada ölçülmedi. Üzerine gidilmeye değen durum, iki ucun da desteklediğinden düşük eğitilmiş bir bağlantı: bir yükseltici, sınırda bir temas, hiç gelmemiş bir hat. Kartı çıkar, yeniden tak.

6. GPU veriyi bekliyor, işlemciyi değil

Henüz birleştirilmemiş bir kare GPU'yu boşta bırakıyor, ve sebebi yavaş bir varlık okuması, derlenmekte olan bir shader ya da diskten geri gelen sayfalar olabilir. Bir kullanım grafiğinde bu, işlemci sınırıyla birebir aynı görünüyor ve farklı bir sorun — bkz. oyunlarda ani FPS düşmeleri.

7. Render iş parçacığının ihtiyaç duyduğu çekirdeği başka bir şey tutuyor

Toplam işlemci kullanımı burada yanlış sayı. Sekiz çekirdekli bir makinede tamamen dolmuş tek bir çekirdek toplamda mütevazı görünüyor, ve o çekirdeği tutan bir arka plan işi render iş parçacığının önünde kuyruğa giriyor.

Gerçek bir işlemci sınırı neye benzer

Yukarıdaki liste tükendiğinde geriye kalan durum gerçektir ve tanınabilir bir şekli var:

Bir ölçüm koşusu ayrıca koşunun ne kadarının sunum çağrısının içinde bloke geçtiğini de kaydediyor — o, GPU ve kuyruk baskısıdır; ne kadar yüksekse ortalama FPS'teki herhangi bir değişiklik işlemci tarafındaki hiçbir şey hakkında o kadar az şey söyler. Gerisini Benchmark'ı okumak anlatıyor.

Gerçek bir işlemci sınırı için ne yapılır

Dürüst cevap şu: bu büyük ölçüde bir yazılım sorunu değil, ve aksini iddia eden sayfalar insanların elinde kayıt defteri listeleriyle kalmasının sebebi.

Neye yaramaz

Eşzamanlı çoklu iş parçacığını ya da verimlilik çekirdeklerini kapatmak: bu tavsiyenin arkasındaki sayılar hiçbir yöntem yayımlamamış kaynaklardan geliyor, yani bilinen çok çekirdekli kapasiteyi doğrulanmamış bir kazançla takas etmiş olursun. Çekirdek bellek yönetimi değerleri ve zamanlayıcı çözünürlüğü zorlamaları: burada doğrudan reddediliyor, her yerde ölçümsüz. Bellek temizleyiciler: belleği kıt olmayan bir makinede daha fazlasını boşaltmak ölçülebilir hiçbir şeyi değiştirmiyor.

İlgili

CS2 mi oynuyorsun? Hangi başlatma seçeneğinin hâlâ bir şey yaptığı ve görüntü menüsünde karelerin asıl nerede olduğu: CS2'de FPS nasıl artırılır, kasma neden olur? Ölçüme dayalı kontrol listesi

w0a sen istemeden hiçbir Windows ayarını değiştirmez; bir optimizasyon yeni bir değer yazmadan önce eskisini kaydeder. Haber al

Bu sayfa yardımcı oldu mu?

Eksik olan neydi, ya da ne işe yaramadı? Bunların hepsini okuyoruz.

Bu sayfa sorununu çözmediyse bize yaz — hangi makaleyi okuduğunu da ekle, o makaleyi düzeltelim.