OS X, grafik işlemcilerini ne zaman değiştireceğine nasıl karar verir?


9

2011 başlarında MacBook Pro'yu güneşin altında neredeyse her şey için kullanıyorum - gfxCardStatus kullanarak hangi GPU'nun aktif olduğunu sık sık izliyorum . OS X'in grafik işlemcilerini ne zaman değiştireceğine nasıl karar verdiğine dair bazı bilgilerimi fark ettim:

  • X11 gerektiren ÇOK uygulamalar otomatik geçişi tetikleyecek, ancak hepsi değil
  • Java gerektiren her uygulama otomatik geçişi tetikleyecek gibi görünüyor, ancak bunu GUI olmayan uygulamalarla test etmedim.
  • Yüksek performanslı bir GPU gerektirebilecek bazı uygulamalar (Mathematica veya XCode gibi), yalnızca önemsiz bir görev için başlatılmış olsa bile, ayrı bir karta hareketi hemen zorlar (uygulama içi dinamik geçiş serin, konu dışı)
  • Ayrık kartımı isteyen hiçbir işi olmayan birçok eski uygulama (gümüş ışık)
  • Son olarak, kesinlikle ayrı bir GPU'dan yararlanabilecek bazı uygulamalar (özellikle GIMP) aslında bunu istemez.

Apple, kartların ne zaman değiştirileceğini nasıl seçtiğini belgeliyor mu? Uygulamalar varsa ayrı kart için işletim sistemi düzeyinde bir istekte bulunabilir mi?


Apple Developer belgeleri yardımcı olabilir: developer.apple.com/metal
Khürt Williams

Yanıtlar:


5

Yüksek seviyede, otomatik bir şanzıman gibidir - gaza hafifçe bastığınızda gaz kelebeği artar, ancak gaz pedalına bastığınızda motor mekanik avantajı artırmak için şanzımanı aşağı kaydırır.

API'yı önemli çalışmalarla vurarak güçlü GPU'ya geçişi etkileyebilir ve "iletimin" bu yükü entegre olmayan GPU'ya göndermesini bekleyebilirsiniz.

API üzerindeki belgelerin hepsi Xcode'da (ve çevrimiçi de, ancak bir belgeyi avlamak için Xcode'da aramayı kullanmayı tercih ediyorum).

Şununla başlıyorum:

Bu bağlantılar Mac Pro'yu kapsar ve "OpenCL kullanırken bilmeniz gerekenler" bölümünde, WWDC 2013 Oturum 508: OpenCL ile çalışma, güç değerlendirmeleri kullanılarak Mac taşınabilir bilgisayardaki iki GPU arasında nasıl geçiş yapılacağı anlatılmaktadır.


İlgi çekici görünüyor. Daha sonra Mac bilgisayarımda olduğumda Xcode belgelerini kontrol edeceğim.
agentroadkill

Net olmak gerekirse - uygulamanın ayrık veya entegre grafikler kullanması gerekip gerekmediğine karar vermek tamamen uygulamanın geliştiricisine mi bağlıdır? İşletim sistemi bu çağrıyı kendisi yapmıyor mu?
agentroadkill

@agentroadkill Tam tersini söyleyebilirim - geliştirici işletim sistemine şu anda neler olduğunu sorabilir ve bir şeyleri etkileyebilir, ancak işletim sistemi işi birden çok çakışan girdiye göre planlamaya karar verir. Sonuçta, onlarca uygulama GPU çağrılarını sürekli olarak gerçekleştirebilir.
bmike

Doğru, işletim sistemi nihayetinde arama yapar, ancak bağlantılı makaleye göre: DeviceSelectCL shows how to identify the offline GPU that is not connected to a display, and then use the CL device corresponding to this GPU.Yani geliştirici işi GPU'ya göndermeyi seçebilir, işletim sistemi izin verilip verilmeyeceğine karar verir ve bunu isteğe bağlı olarak çalıştırabilir.
agentroadkill
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.