Utilizo mi MacBook Pro de 15 "de principios de 2011 para casi todo bajo el sol. A menudo monitorizo qué GPU está activa usando gfxCardStatus . He notado algunas idiosincrasias en cómo OS X decide cuándo cambiar los procesadores gráficos:
- La mayoría de las aplicaciones que requieren X11 activarán el cambio automático, pero no todas
- Parece que todas las aplicaciones que requieren Java activarán el cambio automático, aunque no lo he probado con aplicaciones que no son GUI.
- Algunas aplicaciones (como Mathematica o XCode) que PODRÍAN requerir una GPU de alto rendimiento forzarán el movimiento a la tarjeta discreta de inmediato, incluso si solo se activan para una tarea trivial (el cambio dinámico en la aplicación sería genial, fuera de tema)
- Muchas aplicaciones heredadas (silverlight) que no tienen por qué solicitar mi tarjeta discreta la obligarán a que no tenga en cuenta
- Finalmente, algunas aplicaciones (GIMP, en particular) que definitivamente podrían beneficiarse de una GPU discreta en realidad no la solicitan en absoluto.
¿Apple documenta cómo elige cuándo cambiar las tarjetas? ¿Pueden las aplicaciones hacer una solicitud de nivel de sistema operativo para la tarjeta discreta si existe?
macos
gpu
development
agentroadkill
fuente
fuente
Respuestas:
En un nivel alto, es como una transmisión automática: cuando presiona el acelerador suavemente, el acelerador aumenta, pero cuando pisa el pedal del acelerador, el motor reduce la transmisión para aumentar la ventaja mecánica.
Puede influir en el cambio a la potente GPU golpeando la API con un trabajo significativo y esperar que la "transmisión" envíe esa carga a la GPU no integrada.
La documentación en la API está en Xcode (y en línea también, pero prefiero usar la búsqueda en Xcode para buscar un documento).
Yo comenzaría con:
Esos enlaces cubren el Mac Pro y la sección "Lo que debe saber cuando usa OpenCL" contiene una nota útil de que la Sesión 508 de WWDC 2013: Trabajar con OpenCL describe cómo cambiar entre dos GPU en un portátil Mac usando consideraciones de energía.
fuente
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.
para que el desarrollador pueda optar por impulsar el trabajo a esa GPU, el sistema operativo decidirá si está permitido y arbitrará eso, pero la aplicación puede impulsar su trabajo allí, a voluntad.