Ich verwende mein 15 "MacBook Pro Anfang 2011 für fast alles unter der Sonne - ich überwache häufig, welche GPU mit gfxCardStatus aktiv ist . Ich habe einige Besonderheiten bei der Entscheidung von OS X festgestellt, wann Grafikprozessoren gewechselt werden sollen:
- Die meisten Apps, für die X11 erforderlich ist, lösen eine automatische Umschaltung aus, jedoch nicht alle
- Es scheint, dass jede App, die Java benötigt, die automatische Umschaltung auslöst, obwohl ich dies nicht mit Nicht-GUI-Apps getestet habe.
- Einige Apps (wie Mathematica oder XCode), für die möglicherweise eine Hochleistungs-GPU erforderlich ist, erzwingen sofort eine Bewegung auf die diskrete Karte, selbst wenn sie nur für eine triviale Aufgabe gestartet werden (dynamisches Umschalten in der App wäre cool, kein Thema).
- Viele ältere Apps (Silverlight), bei denen es nicht darum geht, nach meiner diskreten Karte zu fragen, erzwingen dies ohne Rücksicht
- Schließlich verlangen einige Apps (insbesondere GIMP), die definitiv von einer diskreten GPU profitieren könnten, überhaupt nicht danach.
Dokumentiert Apple, wie es den Kartenwechsel auswählt? Können Apps eine Anforderung auf Betriebssystemebene für die diskrete Karte stellen, falls vorhanden?
macos
gpu
development
Agentroadkill
quelle
quelle
Antworten:
Auf hohem Niveau ist es wie bei einem Automatikgetriebe - wenn Sie leicht auf das Gas drücken, steigt der Gashebel, aber wenn Sie auf das Gaspedal treten, schaltet der Motor das Getriebe herunter, um den mechanischen Vorteil zu erhöhen.
Sie können den Wechsel zur leistungsstarken GPU beeinflussen, indem Sie mit erheblichem Aufwand auf die API klicken und erwarten, dass die "Übertragung" diese Last an die nicht integrierte GPU weiterleitet.
Die Dokumentation zur API befindet sich alle in Xcode (und auch online, aber ich bevorzuge die Suche in Xcode, um nach einem Dokument zu suchen).
Ich würde beginnen mit:
Diese Links beziehen sich auf den Mac Pro, und der Abschnitt "Was Sie bei der Verwendung von OpenCL wissen sollten" enthält einen hilfreichen Hinweis, dass in WWDC 2013, Sitzung 508: Arbeiten mit OpenCL, beschrieben wird, wie Sie unter Berücksichtigung der Stromversorgung zwischen zwei GPUs in einem tragbaren Mac wechseln.
quelle
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.
Damit der Entwickler die Arbeit auf diese GPU übertragen kann, entscheidet das Betriebssystem, ob dies zulässig ist, und entscheidet darüber, aber die App kann die Arbeit dort nach Belieben übertragen.