在Ubuntu上切换Intel和Nvidia显卡:两种实用方法详解
在Ubuntu上切换Intel和Nvidia显卡:两种实用方法详解
在配备Intel和Nvidia双显卡的Ubuntu系统中,如何灵活切换显卡以平衡性能与功耗?本文将为您详细介绍两种切换方法:使用独立显卡运行特定应用和使用专有驱动程序。同时,文章还提供了如何监控GPU使用情况的实用工具,帮助您更好地管理系统资源。
如今,笔记本电脑上常见的配置是集成显卡和独立显卡的混合配置。集成的Intel显卡作为主要显卡,处理大多数不太密集的任务而不消耗太多电力,从而延长电池使用时间。对于游戏、3D渲染和其他图形密集型工作,应使用独立的Nvidia GPU。
检查您拥有的显卡
本教程专门针对Intel和Nvidia显卡(也称为视频卡)设置。它可能不适用于AMD显卡。因此,您必须确保您使用的是Nvidia显卡。
要在Linux中检查您的显卡,请使用以下命令:
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 Graphics和Nvidia Geforce RTX 3070 Ti。
方法一:使用Nvidia运行某些应用程序
实际上,Ubuntu提供了一种使用独立Nvidia显卡启动应用程序的方法。在启动器中,当您右键点击图标时,会注意到一个“使用独立显卡启动”的选项。这“独立显卡”就是您的独立显卡,此处为Nvidia。
在GNOME活动区域的应用程序中,您也可以看到此选项。
请注意,并不是每个使用此选项启动的应用程序都会实际使用Nvidia显卡。测试发现,尽管Firefox使用独立显卡启动,但许多其他应用程序如视频播放器、Inkscape等并未如此。
要从终端使用Nvidia驱动程序运行应用程序,您可以使用:
DRI_PRIME=1 应用名称
所以,如果您想用Nvidia运行Firefox,可以这样使用:
DRI_PRIME=1 firefox
此DRI_PRIME
环境变量似乎仅适用于开源的Nouveau驱动程序。如果您使用的是专有驱动程序,应使用:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 应用名称
方法二:使用专有的Nvidia驱动程序以及其附加工具
在GNOME活动区域中查找“附加驱动程序”工具:
您也可以在“软件和更新”工具中的附加驱动程序工具下找到它。
在这里,确保您使用的是专有的Nvidia驱动程序。选择最高版本,除非您拥有一张旧显卡,该显卡由遗留驱动程序(如图中的470)支持。
如果更改显卡驱动程序,您将需要重启系统。
在某些情况下,您会被提示签署MOK。只需使用一个密码,当您重新启动系统并看到蓝色的MOK屏幕时,用之前使用的密码进行签署。
无论如何,当您回到系统时,查找名为NVIDIA X Server的工具:
在这里,从左侧栏中选择PRIME配置文件,然后您将看到切换显卡驱动程序的选项:
性能模式意味着Nvidia将是所有应用程序的主要显卡。
按需模式是默认行为,即始终使用Intel集成驱动程序,只有在指定时才使用Nvidia(如方法一中所见)。
当您更改显卡配置文件时,您需要注销系统并重新登录以看到效果。
您也可以从命令行将Nvidia设置为主要显卡:
sudo prime-select nvidia
或者,如果您想从命令行使用Nvidia专有驱动程序运行应用程序,请使用:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name
额外提示:检查每个进程的显卡使用情况
使用Nvidia专有驱动程序,您还可以获得另一个方便的CLI工具nvidia-smi
。
只需运行如下命令:
nvidia-smi
它将一目了然地显示GPU使用统计信息:
如果您想像top命令一样持续监控GPU使用情况,可以将其与watch命令结合使用,如下所示:
watch -n1 nvidia-smi
它将每秒刷新一次统计信息。使用Ctrl+C停止运行程序。
结论
很惊讶地发现,开源的Nvidia Nouveau驱动程序没有CPU使用情况工具。专有驱动程序提供了方便的工具来切换显卡驱动程序和监控GPU使用情况。哪个驱动程序表现更好完全取决于您。建议自行实验并得出结论。