我是 Ubuntu 14.04,并且有 NVIDIA 显卡 820m,运行驱动程序 v331。
在 Windows 上,我们可以选择使用哪个 GPU 来运行应用程序。在 Ubuntu 上如何做到这一点?
更新:
我的问题被标记为重复回答,这没有帮助
在 Bumblebee 应用程序设置程序中,我将几个应用程序设置为在性能模式下运行,但在关闭应用程序后,它会被重置为无法识别(见下图)
以前,系统设置 > 详细信息中的图形曾经是 Nvidia,但不是 Intel Haswell,这意味着没有使用 nvidia :-/
答案1
复制粘贴自这里
当前版本的 nvidia-prime 使用一张显卡来支持整个桌面。您可以使用 nvidia 或 intel 登录。
自 13.10 以来,我一直遇到 bumblebee 问题。现在对我有用的是 nvidia-prime。这允许您在 nvidia 控制面板中选择要使用的图形驱动程序。这仅适用于 lightdm (unity)。我自己在 Ubuntu 14.04 上使用它
如何安装
1. 使用 nvidia 驱动
打开仪表板(超级/Windows 键)并输入“驱动程序”。打开“附加驱动程序”选择 nvidia 二进制(331.xx)驱动程序。
点击“应用更改”。等待驱动程序下载并安装完成,点击“关闭”。
2. 移除大黄蜂并安装 prime
按 ctrl-alt-t 打开 shell。
首先让我们确保我们拥有最新的软件目录。
sudo apt-get update
现在删除与大黄蜂相关的所有内容。
sudo apt-get purge bumblebee*
然后安装 prime。
sudo apt-get install nvidia-prime
现在重新启动计算机。
如何使用 prime
电脑重启后,打开仪表盘并输入“nvidia”。打开“Nvidia x-server 设置”。
在这里,您可以选择英特尔或 nvidia 显卡驱动程序。选择英特尔可最大程度地节省电量,选择 nvidia 可获得最佳性能。
更换显卡后,您必须注销并重新登录才能应用更改。
nvidia-prime 和 bumblebee 的区别
当前版本的 nvidia-prime 使用一张显卡来显示整个桌面。您可以使用 nvidia 或 intel 登录。使用 bumblebee,您可以使用特定显卡启动单个程序,就像在 Windows 上一样。
遗憾的是,我无法让大黄蜂在 ubuntu 13.10 或更高版本上运行......
答案2
如果你想为整个会话,然后使用 Prime 选择它,注销,然后重新登录即可。
但是,如果你真的想选择使用哪个 GPU对于每个应用程序,那么您必须使用DRI_PRIME
这些特定应用程序的环境变量,而不是使用系统范围的 Prime 设置。
理想情况下,建议使用 Prime 程序将集成 GPU(图形处理单元)预设为默认(系统范围)GPU,即建议将集成 Intel 显卡设置为默认显卡,因为它可以节省电量,有助于保持计算机在较低温度下运行等等。然后,当您决定运行要求很高的 3D 应用程序时,您可以使用它来DRI_PRIME
告诉系统必须使用您的 Nvidia GPU 来运行此类特定应用程序。
如上所述这里和这里,一旦你使用 Prime “告诉”系统你的集成 Intel GPU 是系统范围内默认使用的 GPU,你就可以通过运行以下命令告诉你的 Nvidia GPU 运行特定的应用程序:
DRI_PRIME=1 specific-application
...specific-application
例如,3D 建模应用程序或 3D 游戏或任何其他需要具有更强大图形处理能力的 GPU 的程序在哪里。例如,如果您希望 Nvidia GPU 处理Inkscape应用程序,只需运行:
DRI_PRIME=1 inkscape
为了运行搅拌机使用 Nvidia GPU 而不是集成的 Intel GPU,只需运行:
DRI_PRIME=1 blender
假设您希望 Blender 始终使用 Nvidia GPU,而不是集成的 Intel GPU。在这种情况下,您可以使用文本编辑器(例如 GEdit、Nano、Mousepad、Leafpad 等)来编辑 Blender 的.desktop
文件:
sudo gedit /usr/share/applications/blender.desktop
...然后替换这个:
Exec=/usr/bin/blender %u
...有了这个:
Exec=DRI_PRIME=1 /usr/bin/blender %u
...然后只需保存文件,退出文本编辑器,然后单击“应用程序”菜单中的图标启动 Blender。“应用程序”菜单上的每个应用程序图标都是一个.desktop
文件,因此如果您进行修改,例如,您实际上是在修改“应用程序”菜单中的 Blender 应用程序快捷方式,因此当您单击此类快捷方式时,它会以设置为的方式blender.desktop
运行 Blender (即使用 Nvidia GPU 运行 Blender)。DRI_PRIME
1
如果您不知道当前默认 GPU 是什么,请运行以下命令:
glxinfo | grep "OpenGL renderer"
为了查看设置时激活了哪个 GPU DRI_PRIME=1
,请运行以下命令:
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
如果您的集成 Intel GPU 已设置为默认(系统范围)GPU,则第一个命令(glxinfo | grep "OpenGL renderer"
)将通知您 Intel 是glxinfo
默认运行的 GPU,第二个命令(DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
)将通知您 Nvidia 是运行的 GPU DRI_PRIME=1 glxinfo
(即 Nvidia 不是默认/系统范围的 GPU,但DRI_PRIME=1
成功将 Nvidia 设置为积极的GPU 为该特定过程发起的DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
)。
答案3
经过反复试验,我发现您需要将以下两行附加到您想要默认使用 dgpu 的应用程序的 .desktop 文件中。
PrefersNonDefaultGPU=true
X-KDE-RunOnDiscreteGpu=true
然后,它会为您提供使用集成 gpu 而不是独立 gpu 启动的选项。对于命令行,运行以下命令,它将生成一个名为 prime-run 的脚本,您可以从命令行调用该脚本,例如在 dgpu 上打开 gedit 将是prime-run gedit
。
这是命令。
echo "sudo apt-get install -y sed
echo \"#/bin/bash
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
exec \\\"\\\$@\\\"\" >| /usr/bin/prime-run
sed -i 's%#%#!%' /usr/bin/prime-run " >| script.sh
sudo chmod +x /usr/bin/prime-run
sudo bash script.sh
sudo rm script.sh