Uso meu MacBook Pro de 15 polegadas no início de 2011 para quase tudo sob o sol - monitoro frequentemente qual GPU está ativa usando gfxCardStatus . Percebi algumas idiossincrasias na maneira como o OS X decide quando alternar os processadores gráficos:
- A maioria dos aplicativos que exigem o X11 acionará a troca automática, mas nem todos
- Parece que todo aplicativo que requer java acionará a troca automática, embora eu não o tenha testado com aplicativos que não são da GUI.
- Alguns aplicativos (como Mathematica ou XCode), que PODERAM exigir uma GPU de alto desempenho, forçarão o movimento para o cartão discreto imediatamente, mesmo que apenas sejam acionados para uma tarefa trivial (alternar dinamicamente no aplicativo seria interessante, fora de tópico)
- Muitos aplicativos herdados (silverlight) que não têm nenhum negócio em pedir meu cartão discreto o forçarão de forma irrelevante
- Finalmente, alguns aplicativos (GIMP, em particular) que definitivamente poderiam se beneficiar de uma GPU discreta, na verdade, não pedem nada.
A Apple documenta como escolhe quando trocar de cartão? Os aplicativos podem fazer uma solicitação no nível do sistema operacional para o cartão discreto, se existir?
macos
gpu
development
agentroadkill
fonte
fonte
Respostas:
Em um nível alto, é como uma transmissão automática - quando você pressiona o acelerador suavemente, o acelerador aumenta, mas quando você pisa no pedal do acelerador, o motor reduz a velocidade da transmissão para aumentar a vantagem mecânica.
Você pode influenciar a mudança para a poderosa GPU pressionando a API com um trabalho significativo e espera que a "transmissão" despache esse carregamento para a GPU não integrada.
A documentação da API está toda no Xcode (e online também, mas eu prefiro usar a pesquisa no Xcode para procurar um documento).
Eu começaria com:
Esses links abrangem o Mac Pro e a seção "O que você deve saber ao usar o OpenCL" contém uma observação útil de que a Sessão 508 da WWDC 2013: Trabalhando com o OpenCL descreve como alternar entre duas GPUs em um Mac portátil usando considerações de energia.
fonte
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.
o desenvolvedor possa optar por enviar trabalho para essa GPU, o sistema operacional decidirá se é permitido e arbitrará isso, mas o aplicativo poderá enviar seu trabalho para lá, à vontade.