Korzystam z mojego 15- calowego MacBooka Pro z 2011 r. Do prawie wszystkiego pod słońcem - często monitoruję, który procesor graficzny jest aktywny za pomocą gfxCardStatus . Zauważyłem pewne dziwactwa w tym, jak OS X decyduje, kiedy zmienić procesory graficzne:
- Większość aplikacji wymagających X11 uruchomi automatyczne przełączanie, ale nie wszystkie
- Wygląda na to, że każda aplikacja, która wymaga java, wyzwoli automatyczne przełączanie, chociaż nie przetestowałem tego z aplikacjami innymi niż GUI.
- Niektóre aplikacje (takie jak Mathematica lub XCode), które MUSZĄ wymagać wysokowydajnego procesora graficznego, natychmiast wymuszą przejście na kartę dyskretną, nawet jeśli uruchomią się tylko w przypadku trywialnego zadania (dynamiczne przełączanie w aplikacji byłoby fajne, nie na temat)
- Wiele starszych aplikacji (silverlight), które nie mają potrzeby prosić o moją dyskretną kartę, zmusi ją do powtarzania
- Wreszcie, niektóre aplikacje (w szczególności GIMP), które z pewnością mogłyby skorzystać z dyskretnego procesora graficznego, wcale o to nie proszą.
Czy Apple dokumentuje, w jaki sposób wybiera karty? Czy aplikacje mogą zgłaszać żądania dotyczące karty dyskretnej na poziomie systemu operacyjnego, jeśli takie istnieją?
macos
gpu
development
agentroadkill
źródło
źródło
Odpowiedzi:
Na wysokim poziomie jest to jak automatyczna skrzynia biegów - kiedy delikatnie naciskasz gaz, przepustnica zwiększa się, ale kiedy naciskasz na pedał przyspieszenia, silnik zmniejsza bieg skrzyni biegów, aby zwiększyć przewagę mechaniczną.
Możesz wpłynąć na przejście na potężny procesor GPU, uderzając interfejs API w znaczną pracę i oczekując, że „transmisja” wyśle to obciążenie do niezintegrowanego GPU.
Dokumentacja interfejsu API znajduje się w Xcode (i również w trybie online, ale wolę korzystać z wyszukiwania w Xcode, aby znaleźć dokument).
Zacząłbym od:
Łącza te dotyczą komputera Mac Pro, a sekcja „Co powinieneś wiedzieć podczas korzystania z OpenCL” zawiera przydatną notatkę, że WWDC 2013 Sesja 508: Praca z OpenCL opisuje, jak przełączać się między dwoma procesorami graficznymi w komputerze przenośnym na komputerze Mac, biorąc pod uwagę względy mocy.
źródło
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.
więc deweloper może zdecydować się na przekazanie pracy do tego procesora graficznego, system operacyjny zdecyduje, czy jest to dozwolone, i rozstrzygnie to, ale aplikacja może w dowolnym momencie przekazać swoją pracę.