OS X如何确定何时切换图形处理器?


9

我使用2011年初的15英寸MacBook Pro在阳光下几乎可以使用所有东西-我经常使用gfxCardStatus监视哪个GPU处于活动状态。我注意到OS X如何决定何时切换图形处理器的一些特质:

  • 需要X11的MOST应用将触发自动切换,但并非全部
  • 似乎每个需要Java的应用程序都会触发自动切换,尽管我还没有使用非GUI应用程序对此进行测试。
  • 某些可能需要高性能GPU的应用程序(例如Mathematica或XCode),即使只是为执行一项琐碎的任务而启动(即使应用程序内部进行动态切换也很酷,这都是话题)
  • 许多没有业务要求我提供离散卡的旧版应用程序(silverlight)将迫使其放弃使用
  • 最后,某些绝对可以从独立GPU中受益的应用程序(尤其是GIMP)实际上根本不需要它。

Apple是否记录了何时切换卡的选择方式?应用程序可以针对离散卡发出操作系统级别的请求吗?


Apple开发人员文档可能会有所帮助:developer.apple.com/metal
赫尔特·威廉姆斯

Answers:


5

在较高的层次上,它就像是自动变速箱-轻轻踩油门时,油门会增加,但是踩踏油门踏板时,发动机会降档以增加机械性能。

您可以通过大量工作来击中API,从而影响切换到功能强大的GPU的工作,并期望“传输”将负载分配给非集成的GPU。

API的文档全部在Xcode中(并且也在线),但我更喜欢在Xcode上使用搜索来寻找文档。

我将从以下内容开始:

这些链接涵盖了Mac Pro,“使用OpenCL时的注意事项”部分包含有用的注释,即WWDC 2013会话508:使用OpenCL 介绍了如何基于功耗考虑在Mac便携式计算机中的两个GPU之间进行切换。


看起来很有趣。稍后在Mac上时,我将检查Xcode文档。
agentroadkill 2015年

所以要明确-由应用程序开发人员决定应用程序应使用离散图形还是集成图形?操作系统本身不会发出此调用吗?
agentroadkill

@agentroadkill我会说相反的话-开发人员可以询问OS现在正在发生什么并可能影响事物,但是OS决定根据多个冲突的输入来安排工作。毕竟,您可能连续有数十个应用程序在机器上执行GPU调用。
bmike

是的,操作系统最终会做出决定,但是根据链接的文章: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.因此,开发人员可以选择将工作推送到该GPU,操作系统将决定是否允许该工作并进行仲裁,但该应用可以随意将工作推送到该GPU。
agentroadkill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.