9 votos

¿Cómo decide OS X cuándo cambiar de procesadores gráficos?

Utilizo mi MacBook Pro de 15" de principios de 2011 para casi todo bajo el sol, a menudo monitoreo qué GPU está activa usando gfxCardStatus. He notado algunas peculiaridades en cómo OS X decide cuándo cambiar de procesador de 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 he probado esto con aplicaciones no GUI.
  • Algunas aplicaciones (como Mathematica o XCode) que PODRÍAN requerir una GPU de alto rendimiento forzarán el cambio a la tarjeta discreta de inmediato, incluso si solo se inician para una tarea trivial (el cambio dinámico dentro de la aplicación sería genial, aunque es tema aparte)
  • Muchas aplicaciones heredadas (silverlight) que no tienen razón para pedir mi tarjeta discreta la forzarán de todas formas
  • Finalmente, algunas aplicaciones (como GIMP, en particular) que definitivamente podrían beneficiarse de una GPU discreta en realidad ni siquiera la solicitan.

¿Documenta Apple cómo elige cuándo cambiar de tarjetas? ¿Pueden las aplicaciones hacer una solicitud a nivel de sistema operativo para la tarjeta discreta si existe?

0 votos

Los documentos del desarrollador de Apple pueden ayudar: developer.apple.com/metal

4voto

Oskar Puntos 1242

A alto nivel, es como una transmisión automática: cuando presionas suavemente el acelerador, el acelerador aumenta, pero cuando pisas fuerte el pedal del acelerador, el motor reduce la velocidad de la transmisión para aumentar la ventaja mecánica.

Puedes influir en el cambio a la GPU potente 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 sobre la API está toda en Xcode (y también en línea, pero prefiero buscar en Xcode para buscar un documento).

Yo comenzaría con:

Esos enlaces cubren el Mac Pro y la sección "Lo que debes saber al usar OpenCL" contiene una nota útil que la Sesión 508 de la WWDC 2013: Trabajar con OpenCL describe cómo cambiar entre dos GPUs en un Mac portátil considerando la potencia.

0 votos

Se ve interesante. Revisaré los documentos de Xcode cuando esté en mi Mac más tarde.

0 votos

Entonces, para ser claros - ¿es completamente responsabilidad del desarrollador de la aplicación decidir si la aplicación debe usar gráficos discretos o integrados? ¿El sistema operativo no toma esta decisión por sí mismo?

0 votos

@agentroadkill Diría que es todo lo contrario: el desarrollador puede preguntarle al sistema operativo qué está sucediendo ahora y puede influir en las cosas, pero el sistema operativo decide programar el trabajo basándose en múltiples entradas conflictivas. Después de todo, podrías tener docenas de aplicaciones haciendo continuamente llamadas al GPU de la máquina.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X