Performans optimizasyonlarına izin veren GPU sürücülerinin diğer aygıt sürücülerinden farkı nedir?


12

Büyük iki GPU üreticisi, burada ve orada küçük bir performans artışı olan güncellenmiş sürücüleri sürekli olarak serbest bırakıyor gibi görünüyor. Aynı oyun için olduklarında, bahse girerim zamanla artar.

Bunu akılda tutarak, neden Windows'un belirli bir uygulaması veya sürümü veya benzeri bir şey için AMD veya Intel tweaking CPU sürücülerini hiç duymadık?


1
VTC'lerle ilgili olarak: Bu belirsiz değildir. GPU (ve CPU) sürücülerinde neyin ve neyin yanlış gittiğine dair özel bir neden var.
Ben Richards

1
CPU satıcıları sürüm güncellemeleri yapar. Bkz., Ör. Downloadcenter.intel.com/… (en sağdaki firmware'i tıklayın)
derobert

@derobert - İlginçtir, Intel'in Pentium fiyasosunu tekrarlamak gibi bir amacı yoktur. Ancak bu güncellemeler işlemci mikrokodu içindir ve "CPU sürücüleri" değildir. Mikrokod, çekirdek ve .exe dosyalarının makine kodundan daha düşük bir seviyede yürütülür .
talaş

CPU test kodunun (en azından kısmen) CPU'nun aldığı x86 talimatlarını gerçekleştirdiği gerçek işlemlere çevirmesinden sorumludur. Yani aslında grafik sürücülerine biraz benziyor. Elbette Intel, doğruluk konusunda nVidia'dan çok daha fazla önem veriyor, bu nedenle güncellemeleri büyük olasılıkla hata düzeltmeleri.
derobert

Yanıtlar:


13

İlk olarak, bazen belirli bir CPU için performansı artırabilecek veya verimliliği artırabilecek bir sürücü yamasının yayınlandığı durumlar vardır. Ama belli ki bu soruyu soruyorsunuz çünkü bu o kadar da yaygın değil. Ancak CPU sürücüsü optimizasyonlarının konsepti benzer.

GPU çok karmaşık bir devre parçasıdır. Bir CPU'da yapılması çok uzun süren belirli görevleri boşaltmak için var. Veri kümeleri ve bu verilerle ne yapılacağı hakkında talimatlar alırlar. GPU, verileri yönetilebilir bir şekilde sipariş edebilmeli ve ne yapacağını söylemek için talimatları yorumlayabilmelidir. Daha sonra veriler üzerinde bir dizi matematiksel işlem gerçekleştirmelidir. Bundan sonra, verileri yeniden yeniden sıralamalı ve sonuçları tamamlandığında işletim sistemine geri göndermelidir. Bu, bilgisayar grafik hattının çok basit bir açıklamasıdır . Verilerin programa hazır olması için atılması gereken çok sayıda adım vardır.

Şimdi, GPU komut kümelerini kabul etmeli ve donanımda çok karmaşık matematiksel işlemler uygulamalı olduğundan, bu boru hattı boyunca daha hızlı veya daha yavaş çalıştığı bilinen bazı şeyler olacaktır. Bir aygıt için sürücü yazmanın bir parçası, aygıta gönderilen verileri ve yönergeleri yorumlayarak, aygıtın anlayabilmesi için çevirmektir. Bir sürücü bunu yaparken, verilerin cihaza nasıl gönderileceği konusunda kararlar verebilir, böylece görevler mümkün olan en kısa süreyi alır. Bununla birlikte, bir sürücü genellikle hizmet verdiği program hakkında ne çok bilgi sahibi değildir. Programdan aldığı tek şey API çağrılarıdır ("bir çizgi çizin", "bir noktayı renklendirin", "bir üçgeni gölgeleyin" vb.). Yani, yapabileceği varsayımlar çok iyi değil.

AMD veya nVidia belirli oyunlar için performans iyileştirmeleri içeren bir sürücü güncellemesi yayınladığında, bunun anlamı sürücünün hangi oyunun grafik donanımını çağırdığını algılaması ve oyunun nasıl olduğu hakkında bilinen bir dizi sabit kodlu varsayımlara sahip olmasıdır. uygulamıştır. Oyunun hızlı bir şekilde bellek içine ve dışına değiştirilmesi gereken çok sayıda doku görüntüsü olabilir veya belirli aydınlatma efektleri üretmek için anında çok fazla renk harmanlaması olabilir. Genellikle bir oyunun yapacağı şey, bu hesaplamaların nasıl yapılacağını açıklayan küçük programlar ("gölgelendiriciler" olarak adlandırılır) uygulamaktır ve yürütmek için GPU'ya gönderilir. Sürücü oyunun donanımı nasıl kullandığını biliyorsa, verileri düzenleyebilir ve istenen görevi verimi ve verimliliği artıracak şekilde gerçekleştiren talimat setlerini seçebilir.

Ancak, ürün gönderildikten sonra, GPU'nun bazı kısımlarında hatalar bulunabilir. Çip tasarlanırken validasyonda kaçırılmayacak kadar belirsiz olabilir, ancak belirli bir oyunda ona zarar veren bazı hatalı veya bozulamaz davranışlara (hatta çökmelere) neden olduğu bulunabilir. Bu durumda sürücü, CPU tarafına bir miktar hesaplama yükleyerek veya GPU'ya veri besleme şeklini değiştirerek bu duruma girmeyecek şekilde bu hatalı durumu algılar ve etrafında çalışır. Bunlar yine sürücü güncellemeleri şeklinde yayınlanacak.

Temel olarak, donanımın performansını değiştirmez, sadece donanımı nasıl kullandığını değiştirir, böylece aynı veri kümesinde daha verimli ve hızlı bir şekilde çalışabilir.


Bir oyunun nasıl uygulandığını anlayan sürücü mühendisleri hakkında, bu, bazı oyunlardaki Nvidia açılış ekranlarının reklamlardan daha fazlası olup olmadığını merak ediyor.
Louis Waweru

2
@Louis Sadece reklam değiller. Çünkü NVidia, belirli oyun stüdyolarıyla özel ilişkiler sürdürüyor ve geliştiricilere NVidia grafik donanımı için oyun kodunu optimize etmeleri için yardım sunuyor. AMD de bunu yapıyor (bazen bir oyunda bir AMD logosu göreceksiniz), ancak NVidia'nın tarihsel olarak çok daha büyük bir varlığı vardı.
Ben Richards

Bunu tekrar okuduğumda, bunun harika bir cevap olduğunu ve onay işaretinin nerede olduğunu görüyorum. Keşke tüm cevaplar açıklamalarında bu kadar öğretici olsaydı.
Louis Waweru

Eğer entegre misiniz bu ( daha fazla sayı başka cömertlik örneği olarak)?
Louis Waweru

10

"CPU sürücüleri" nadiren bulunur ve kesinlikle yüklenebilir modüller değildir. Ara sıra "CPU sürücüsü", çok çekirdekli kontrol veya kesme işleminin bazı varyasyonları için gerekli olacaktır (örn. AMD çift çekirdeği, tam kullanım için bir WinXP sürücüsüne ihtiyaç duyuyordu). Aksi takdirde, çoğu işletim sistemi doğrudan CPU'ya erişmek için yapılandırılır ve oluşturulur. Bir sorun belirir ve ciddi ise, çekirdek kodu yamalanır ve çekirdek güncellemesi yayınlanır.

GPU'lar artık sadece çevre birimleri değil; ortak işlemcilere dönüştüler. "GPU sürücüsü" yalnızca aygıt erişimi sağlamakla kalmaz, aynı zamanda sürücüde paketlenen GPU için işleme algoritmaları (yani grafik alt programları) içerir. Bu "sürücülerin" boyutu bir hediye / ipucudur. Geliştirilmekte olan bu algoritmalar / alt programlar.


2
Bu, kartım için sürücü indirmelerinin neden 200MB'ın üzerinde olduğunu açıklıyor.
Louis Waweru

Bu sürücülerde 200 MB değerinde kod olduğundan şüpheliyim . Tüm bu algoritmalar ile ilgili bir avuç MB'den fazlası olsaydı şaşırırdım. >.>
user541686

1
@Mehrdad meraktan Nivida'nın sürücüsü için 7-zip ile EXE yükleyicisini açtım. Display.Driver klasörü 147 MB ​​boyutunda, 31 MB olan bir exe var, 660 KB'ın üzerindeki her dosya bir DLL.
Scott Chamberlain

@Scott: Bu exe neredeyse gerçek kodu içeren daha fazla dosyanın arşividir . Ben gerçek dosyaları en fazla megabayt bir avuç olmasını bekliyorum ... modulo içerebilecek herhangi bir kaynak, hangi kod değildir.
user541686

0

Sadece sürücüler değil, GPU'nun kendisi. GPU, çeşitli hesaplama türleri (örn. FFT) ve bellek manipülasyonu konularında uzmanlaşmıştır. Çoğu görevde paralel çalışabilir ve genel amaçlı bir CPU'dan daha etkili hale getirebilir.

Çalışan programlar hakkında daha iyi bilgi sahibi olarak, bu programlar için bellek işleme veya hesaplama işlemlerini optimize edebilirsiniz. GPU, hesaplamaların nasıl yapılacağı ve bellek manipülasyonlarının nasıl yapılacağı konusunda çok yönlüdür, bu nedenle mükemmel yazılım veya sürücünün hala yazılması gerekir. ;) İyileştirmeler için bolca yer var.

Diğer cihazların çoğu, kullanımında çok yönlü değildir. Bir PC'deki çoğu donanımın özelliklerinde çalışması, protokolleri takip etmesi gerekir, böylece sürücünün optimize edilmesi gerekmez.

A, CPU'yu unuttu. > _ <CPU optimize edilebilir. Çoğu yeni CPU modelinin içinde programlanabilir bir ürün yazılımı vardır, ancak performans artışı çabaya değmez. Sadece donanım oluşturma işlemindeki hataları düzeltmek için kullanılır.


"Yeni CPU modellerinin çoğunda programlanabilir bir ürün yazılımı bulunur."
Tim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.