为了节省功耗,在最近的图形架构中,在离散的高性能和集成的低性能GPU之间动态切换是常见的,其中高性能GPU仅在需要额外性能时才启用。
这项技术被标记为nvidia Optimus和AMD Enduro两个主要GPU供应商。
然而,由于这些技术的非标准化运作方式,从开发人员的角度管理它们可能是一场噩梦。例如,来自nvidia的this PDF关于这个问题,他们解释了作为开发人员在一个平台上管理nvidia Optimus时必须担心的许多复杂性,局限性和陷阱。
例如,在上面链接的PDF中,以下是在Windows上选择GPU的提示:
extern "C" {
_declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
}
但是,这仅适用于Windows平台上的nvidia GPU。在OSX / Linux和AMD硬件上,AMD / Intel的等价物是什么?
所以我的问题更详细,我怎么能
我正在使用nVidia硬件在Ubuntu 16.04-amd64下使用C ++ 14 / Qt5.7代码库。