In che modo OS X decide quando passare ai processori grafici?


9

Uso il mio MacBook Pro da 15 "dei primi anni del 2011 per quasi tutto sotto il sole - spesso controllo quale GPU è attiva usando gfxCardStatus . Ho notato alcune idiosincrasie su come OS X decide quando cambiare i processori grafici:

  • La maggior parte delle app che richiedono X11 attiveranno la commutazione automatica, ma non tutte
  • Sembra che ogni app che richiede Java attiverà il passaggio automatico, anche se non l'ho testato con app non GUI.
  • Alcune app (come Mathematica o XCode) che POTREBBERO richiedere una GPU ad alte prestazioni costringono immediatamente il movimento sulla scheda discreta, anche se attivate solo per un'attività banale (il passaggio dinamico in-app sarebbe bello, fuori tema)
  • Molte app legacy (silverlight) che non hanno attività commerciali chiedendo la mia carta discreta la forzeranno senza regar
  • Infine, alcune app (GIMP, in particolare) che potrebbero sicuramente beneficiare di una GPU discreta in realtà non lo richiedono affatto.

Apple documenta come sceglie quando cambiare le carte? Le app possono fare una richiesta a livello di sistema operativo per la scheda discreta se esiste?


I documenti per gli sviluppatori Apple possono essere utili: developer.apple.com/metal
Khürt Williams,

Risposte:


5

Ad alto livello, è come una trasmissione automatica: quando si preme delicatamente il gas, l'acceleratore aumenta ma quando si preme il pedale dell'acceleratore il motore sposta la trasmissione verso il basso per aumentare il vantaggio meccanico.

Puoi influenzare il passaggio alla potente GPU colpendo l'API con un lavoro significativo e aspettandoti che la "trasmissione" invii tale carico alla GPU non integrata.

La documentazione sull'API è tutta in Xcode (e anche online, ma preferisco usare la ricerca su Xcode per cercare un documento).

Vorrei iniziare con:

Quei collegamenti coprono Mac Pro e la sezione "Cosa dovresti sapere quando usi OpenCL" contiene una nota utile che la Sessione 508 del WWDC 2013: Lavorare con OpenCL descrive come passare da una GPU in un portatile Mac usando considerazioni sulla potenza.


Sembra interessante. Controllerò i documenti Xcode quando sarò sul mio Mac più tardi.
agentroadkill,

Quindi, per essere chiari: sta interamente allo sviluppatore dell'applicazione decidere se l'app deve utilizzare una grafica discreta o integrata? Il sistema operativo non effettua questa chiamata da solo?
agentroadkill,

@agentroadkill Direi il contrario: lo sviluppatore può chiedere al sistema operativo cosa sta succedendo ora e può influenzare le cose, ma il sistema operativo sta decidendo di pianificare il lavoro in base a più input in conflitto. Dopotutto, potresti avere dozzine di app che chiamano continuamente le GPU.
bmike

Giusto, il sistema operativo alla fine effettua la chiamata, ma per l'articolo collegato: 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.Quindi lo sviluppatore può scegliere di spingere il lavoro su quella GPU, il sistema operativo deciderà se è permesso e arbitrarlo, ma l'app può spingere il suo lavoro lì, a piacimento.
agentroadkill,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.