如今,在笔记本电脑上混合配置两个显卡已变得更为常见。一般情况下你的笔记本计算机都会有两个显卡。Intel 的集成显卡或者是专用 Nvidia GeForce。
集成的英特尔显卡充当主要驱动程序时,它可以处理大多数不太密集的计算任务,从而减少消耗电量,延长电池续航时间。
对于游戏、3D 渲染和其他此类图形繁重工作,应该使用专用显卡,例如 Nvidia GPU。
在本教程中,我还将向您展示如何在 Ubuntu 和以及其它 Linux 发行版在两个显卡之间切换工作。
有两种方法可以做到这一点。您可以明确使用 Nvidia 显卡,而不是 Intel 显卡来运行应用程序。也可以更改设置始终使用 Nvidia 显卡。如果您使用 Nvidia 专有驱动程序而不是开源驱动程序,显卡切换会非常容易。
✋
本教程专门针对 Intel 和 Nvidia 显卡(也称为视频卡)设置。它可能不适用于 AMD。
因此,您必须确保您使用的是Nvidia 显卡。要在 Linux 检查您的显卡,请运行命令 lspci | grep VGA:
lspci | grep VGA
lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (rev 0c)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [Geforce RTX 3070 Ti Laptop GPU] (rev a1)
正如您在上面的输出中看到的,此笔记本电脑配备 Intel Iris Xe 显卡和 Nvidia Geforce RTX 3070 Ti。现在,让我们看看如何使用 Nvidia 而不是集成的 Intel 显卡驱动程序。
实际上,Ubuntu 提供一种使用专用 Nvidia 显卡启动应用程序的方法。在启动器中,右键单击图标时,您会注意到使用独立显卡启动选项。
这个独立显卡就是你的专用显卡,在本例中是 Nvidia。您也可以在 GNOME 活动区域的应用程序中看到此选项。
请注意,并非每个使用此选项启动的应用程序实际上都会使用 Nvidia 显卡。我们对其进行测试,发现虽然 Firefox 以专用图形驱动程序启动,但许多应用程序(例如视频播放器、Inkscape 等)却没有。
📋
我如何知道应用程序是否使用 Nvidia 显卡?可以使用 Nvidia 专有驱动程序附带的命令行工具 nvidia-smi 来做这一点。我将在本教程的下一部分中讨论它。
要从终端使用 Nvidia 驱动程序的运行应用,您可以使用设置环境变量 DRI_PRIME 并将值设置为1 后面是你要运行的应用启动命令 application_name:
DRI_PRIME=1 application_name
例如,如果您必须使用 Nvidia 运行 Firefox,您可以运行命令 DRI_PRIME=1 firefox:
DRI_PRIME=1 firefox
DRI_PRIME 环境变量似乎仅适用于 NVIDIA 的开源驱动程序 Nouveau。如果您使用专有驱动程序,则应该使用:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name
💡
使用专有的 NVIDIA 驱动程序可以使切换图形驱动程序甚至监控每个进程的 GPU 使用情况变得更加容易。下一节将介绍它。
在 GNOME 活动区域中查找“附加驱动程序”工具,您还可以在“软件和更新”工具的“附加驱动程序”工具找到它。
在这里,确保您使用的是专有的 Nvidia 驱动程序。除非您有旧版驱动程序支持的较旧显卡(下图中的 470),否则请选择最高版本。
如果更改图形驱动程序,则必须重新启动系统。在某些情况下,系统会提示您签署 MOK。
只需使用密码,当您重新启动系统并看到蓝色 MOK 屏幕时,请使用您之前使用的密码对其进行签名。
当您重新启动计算机系统时,请搜索 NVIDIA X Server 的工具:
在这里,左侧边栏转到 PRIME 配置文件,然后您将看到在图形驱动程序之间进行更改的选项。
性能模式意味着 Nvidia 将成为所有应用程序运行时的主要图形驱动程序。
按需是默认行为,其中始终使用 Intel 集成驱动程序,并在指定时使用 Nvidia,如你在上面的第一个方法中看到那样。
💡
当您更改图形配置文件时,您必须退出系统并重新登录才能看到效果。
您也可以运行命令 sudo prime-select nvidia,将 Nvidia 设置为主驱动程序:
sudo prime-select nvidia
myfreax@myfreax-tuxedo:~$ sudo prime-select nvidia
[sudo] password for abhishek:
Info: selecting the nvidia profile
Deleting /lib/modprobe.d/nvidia-runtimepm.conf
Updating the initramfs. Please wait for the operation to complete:
Done
如果您想在终端使用 Nvidia 专有驱动程序的运行应用程序,请运行如下命令:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name
借助 Nvidia 专有驱动程序,您还可以获得另一个方便的 CLI 工具 nvidia-smi 。你可以在终端直接运行它。并且它会一目了然地显示 GPU 使用情况统计信息:
nvidia-smi
如果你想像使用 top 命令一样持续关注 GPU 的使用情况,你可以将它与 watch 命令组合起来运行,命令将会是这样的 watch -n1 nvidia-smi。并且每秒都会刷新统计数据。使用ctrl+c停止正在运行的程序。
watch -n1 nvidia-smi
开源的 Nvidia Nouveau 驱动程序缺少类似于 nvidia-smi 的CLI工具查看 GPU 使用情况。我们认为开源的 Nvidia Nouveau 驱动程序应该有一个。
专有驱动程序提供了方便的工具,用于在图形驱动程序之间切换和监控 GPU 使用情况。哪个驱动程序表现更好完全取决于您。