我之所以问这个问题,是因为我发现一些文章基本上说,一些计算机已经通过一些专有的图形驱动程序启用了 Optimus 技术,例如来自 Ubuntu Wiki 页面和这是来自 pilot6 的,而很多人仍在寻找通过互联网安装 Bumblebee 的方法。所以,我感到很困惑。同时,虽然我的笔记本电脑 Lenovo Thinkpad P50 在上面链接的文档中被列为受支持的系统,但我还没有成功安装专有的 nvidia-361 驱动程序(请参阅这个问题),文档告诉我它正在我的系统上运行。我对文档的权威性有点怀疑。
有谁能提供一些可靠的来源、证据和实际经验(或确认技术,如果尚未找到成功实例)来确认 Ubuntu 16.04 确实原生支持混合显卡(一个集成卡和一个独立卡)不比 Bumblebee 差?我通过简单的搜索还没有建立足够的信心。谢谢!
答案1
目前,据我所知,在 Linux 下,关于 Nvidia 混合显卡(所谓的 Optimus 技术),有三种可能性:
- 熊蜂。虽然这个项目似乎已经夭折,但事实并非如此(披露:我是开发团队的一员)。由于我们都很忙,所以它已经慢慢发展了很长一段时间,但最近情况有所好转,我们得到了新贡献者的帮助。4.0 版本进展顺利,主要是修复了一些错误,并且 primus 后端成为默认后端(大多数人不会注意到,因为他们已经在使用它了)。Bumblebee 允许您在集成的 Intel 芯片上运行桌面和显示器,同时在独立的 Nvidia 卡上运行选定的应用程序。它可以使用 nouveau 或 nvidia 驱动程序(假设它们支持您的卡,它们应该都支持),并依靠 bbswitch 进行电源管理(如果使用 nouveau,可以选择使用 vga_switcheroo)。在性能方面,由于其工作方式,Bumblebee 存在 PCIe 瓶颈,这意味着您无法实现非常高的帧速率(这实际上没什么用),而且您永远无法达到专用 Nvidia 卡的全部性能。如果您笔记本电脑上的某些显示输出连接到 Nvidia 芯片(联想笔记本电脑上通常是 HDMI),Bumblebee 允许您使用它们,但这需要一些配置,可能远非理想,而且最重要的是没有经过测试,因为没有任何 Bumblebee 开发人员拥有受影响的笔记本电脑。否则,Bumblebee 可以使用 DRI2 或 DRI3。
- 主要的。这是该技术的正确解决方案,并且是在正确的级别实现的:驱动程序、内核、Xorg……PRIME 允许您使用与 Bumblebee 相同的设置,但是,出于法律考虑,仅支持 nouveau。除此之外,由于 i915 驱动程序需要进行更改,它还存在一些撕裂问题。此外,nouveau 在性能方面仍存在很多问题,因此在获得正确的重新计时之前,您的性能可能会低于 Bumblebee + nvidia 设置(Bumblebee + nouveau 显然存在同样的问题)。PRIME 不依赖 bbswitch 进行电源管理,而是使用 nouveau/kernel 集成电源管理。据我所知,PRIME 还允许您非常透明地使用连接到 Nvidia 芯片的输出。在 DRI2 上运行时,它需要进行一些配置(取决于您是否还安装了 Bumblebee/bbswitch,确切的数量可能会有所不同),但没有什么突出的。VDPAU 在此模式下也受支持(但同样仅适用于 nouveau 驱动程序)。在 DRI3 上运行时,使用起来非常顺畅(以至于 Bumblebee 可能会在下一版本中获得对此模式的支持)。但是,您无法获得 VDPAU 支持,而且显然也无法获得 Nvidia 输出支持。
- 逆向 PRIME。这里的想法是将 Nvidia 卡用于包括台式机在内的所有设备,并仅将 Intel 芯片用作笔记本电脑显示器的输出接收器。nouveau(具有与上述相同的性能问题)和 nvidia(例如,使用 Ubuntu 下的专用 nvidia-prime 工具)均支持此功能。这意味着您根本无法省电(并且在所有阶段都会增加功耗),但与 PRIME 一样,您可以轻松充分利用任何显示输出。在此模式下,使用 nvidia 驱动程序时,您可以充分利用专用卡。这也是唯一一种可以使用 nvidia 驱动程序在 Nvidia 芯片上运行 VDPAU 的配置。但是,由于 i915 驱动程序需要进行更改,因此它也存在一些撕裂问题。此模式仅适用于 DRI2。事实上,这与您不能在 PRIME+DRI3 中使用输出的原因相同:反向 PRIME 实际上是支持使用另一张卡输出的名称(无论是在这里在 Nvidia 上运行时使用的 Intel 输出,还是在上面在 Intel 上运行时使用的 Nvidia 输出),并且目前在 DRI3 下不起作用。
请注意,CUDA 或 OpenCL 之类的东西不需要任何这些工具,只需要一点点配置,但 Bumblebee 作为一种模式可以轻松使用它们,同时仍然可以获得其其他优势。
使用 DRI3 时,PRIME 和 Bumblebee 可以共存,但在 DRI2 下或切换到反向 PRIME 需要切换配置文件并重新启动 X 服务器。因此,根据您的需要,我建议如下:
- 如果你不关心性能,但关心易用性(主要是外部输出——如果受影响的话)和 FLOSS,那么选择主要的。
- 如果你更关心性能,但经常在电池模式下使用笔记本电脑,并且不想一直重启 X 服务器,那么可以选择熊蜂。
- 如果你关心性能,并且大部分时间都在使用笔记本电脑时插上交流电(并且不关心节省一些额外的电量),请查看逆向 PRIME使用 nvidia(当偶尔使用电池运行时,您可以使用 nvidia-prime 切换到仅英特尔模式,但我不确定在此设置中 Nvidia 卡是否已关闭)。
答案2
Ubuntu 16.04 当然支持混合显卡解决方案,尤其是具有英特尔显卡和支持 Optimus 的 NVIDIA 显卡的笔记本电脑。不要安装bumblebee
,它不再处于开发阶段,最新版本是 2013 年 4 月的。目前在两种显卡之间切换的解决方案是nvidia-prime
,可在官方 Ubuntu 存储库中找到。要使一切正常工作,最重要的是驱动程序的安装方式。在这里您可以找到安装驱动程序的说明,这样一切很可能都能正常工作:
答案3
安装 bumblebee 而不是 nvidia-prime 的一个原因是,使用 bumblebee,您可以更轻松地在两个 GPU 之间切换。使用 nvidia-prime,您只能为 X 会话选择一个 GPU。这意味着,如果您想切换 GPU,则必须重新启动 X 会话。使用 bumblebee,无需重新启动 X 服务器。
本博客包含 16.04 版 bumblebee 的安装说明。评论部分还详细讨论了安装 bumblebee 而不是 nvidia-prime 的原因。
答案4
PRIME 现在可以与 NVidia 专有驱动程序完美配合(我的是 367),所以我的猜测是,尽管@Archange 的回答非常广泛和详细,但 PRIME 不再对性能产生任何影响,并且可能是现在性能方面的最佳选择。
@Archange,或者您的意思是使用 nouveau 它真的可以自动发生,就像 Windows 风格一样?