用于 CUDA 的 NVIDIA 卡和用于 Ubuntu 16.04(戴尔 xps 9560)显示的 Intel 集成卡

用于 CUDA 的 NVIDIA 卡和用于 Ubuntu 16.04(戴尔 xps 9560)显示的 Intel 集成卡

我在一台戴尔 XPS 9560 笔记本电脑上使用 Ubuntu 16.04,这台笔记本电脑与 Linux 高度兼容。这台笔记本电脑提供两张显卡:

  • NVIDIA GeForce GTX 1050
  • 英特尔高清显卡 630

我只想将 NVIDIA 卡用于 CUDA,因为它只有 4GB RAM 和用于图形用户界面的 Intel 卡。

问题:

  • 如果可以,nvidia 卡将不再可见。因此,如果我调用 nvidia-smi,视频卡将被禁用。
  • 如果不工作,我就会得到黑屏。

答案1

该解决方案基于这个 GitHub 要点

我的系统信息:

  • 戴尔 XPS 9560
  • 我已经安装了 CUDA 9.2 和 Nvidia 显示驱动程序 396.37
  • Ubuntu 内核是 4.15.0-24-generic
  • 我正在使用 gd3

步骤1

通过编辑此文件来修改 GRUB 配置:

sudo vim /etc/default/grub

并改变:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

到:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_rev_override=1"

最后使用此命令更新 GRUB:

sudo update-grub

如果你愿意,你可以使用这个工具grub 定制器通过添加蓝色突出显示的文本:

GRUB 编辑器屏幕 - 文本添加到以 linux 开头的行

重新启动计算机-非常重要!!

第2步

创建一个在计算机关闭时选择英特尔 GPU 的服务,为此创建一个新文件:

sudo vim /etc/init.d/intel-gpu

包含此内容:

#!/bin/bash
# /etc/init.d/intel-gpu

### BEGIN INIT INFO
# Provides:          intel-gpu
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Selects the intel GPU over the NVIDIA
### END INIT INFO

case "$1" in 
    start)
        ;;
    stop)
        /usr/bin/prime-select intel
        ;;
    *)
        echo "Usage: /etc/init.d/intel-gpu start|stop"
        exit 1
        ;;
esac

exit 0

添加可执行权限:

sudo chmod +x /etc/init.d/intel-gpu

并注册新服务:

sudo update-rc.d intel-gpu defaults

步骤3

现在,我们确保在启动计算机时,lightdm、gdm3 等将使用 Intel GPU,因为上次关闭计算机时我们已启用此 GPU。现在,我们必须在登录帐户时启用 NVIDIA GPU。但是,我们需要 root 访问权限才能执行此操作,并且我们不想每次登录时都提示一个要求输入密码的窗口。为了解决这个问题,我们将在 sudo 配置文件中创建一个命令别名。

首先使用以下命令打开 sudo 配置文件:

sudo visudo

然后将此内容附加到文件末尾:

User_Alias ADMINS = <your_user>
Cmnd_Alias PRIME_SELECT = /usr/bin/prime-select
ADMINS ALL = NOPASSWD: PRIME_SELECT

<your_user>您的用户名在哪里?

这使得我们无需输入密码即可调用 prime-select。

步骤4

添加自动启动脚本,一旦 lighdm 已经开始使用 Intel 的 GPU,即可将显卡更改为 NVIDIA。为此,附加此命令创建一个新文件,如下所示:

vim ~/.config/autostart/nvidia-gpu.desktop

并添加如下内容:

[Desktop Entry]
Name=NVIDIA GPU
Exec=sudo prime-select nvidia
Type=Application
Terminal=false

重启电脑

现在,您可以使用 NVIDIA GPU 中的所有内存。您可以通过调用命令“nvidia-smi”来验证这一点:

nvidia-smi 输出

答案2

为了避免在某些情况下注销和登录时出现问题,建议避免执行第 4 步。如果只在需要时激活 NVIDIA 卡,还有助于延长笔记本电脑的电池寿命。但是,这不太实用,因为sudo prime-select nvidia每次都必须打开终端并写入。为了克服这个“问题”,我做了一个 gnome 3 扩展来解决这个问题。

为了使其工作,你只需要转到此文件夹:

cd ~/.local/share/gnome-shell/extensions/

然后克隆这个存储库:

git clone https://github.com/marcvivet/enable_cuda
mv enable_cuda [email protected]

然后按Alt+ F2,输入“r”(重新启动桌面)或直接重新启动。

完成后,转到 gnome 3 Tweak Tool 并启用扩展。

禁用时结果应为 NVIDIA 灰色图标:

顶栏中的图标

当您单击图标启用 CUDA 时,则显示绿色。

相同的绿色图标

此扩展非常简单,我不会对 NVIDIA 卡的当前状态进行任何检查。因此,如果您使用此图标,请不要使用终端...

相关内容