Ubuntu 16.04 上用于 CUDA 的 NVIDIA 卡和用于显示的 AMD 卡

Ubuntu 16.04 上用于 CUDA 的 NVIDIA 卡和用于显示的 AMD 卡

我使用的是 Ubuntu 16.04,因为我觉得这个操作系统更适合处理卷积神经网络 (CNN)。安装 Ubuntu 的过程很顺利,直到我想在同一系统上设置两个显卡:

  • NVIDIA 970 GTX
  • AMD R9 380

我希望将 NVIDIA 卡仅用于 CUDA,以便能够使用其所有图形内存,并将 AMD 用于图形用户界面。为此,所有显示器都将插入此卡。

问题:

  • 当我安装 nvidia 和 cuda 8.0 驱动程序时一切似乎正常,但是当我安装 AMD 驱动程序时,我无法登录 lightdm。
  • 如果我将显示器插入 AMD 卡上,它会说 lightdm 在低图形模式下运行并且什么都不工作。
  • 修改 xorg.conf 文件没有任何区别,因为它被 gpu-manager 覆盖

我找不到任何解释如何操作的教程。

答案1

在开始之前,我建议安装 ssh,以便在出现问题时能够远程关闭系统。为此,请使用以下命令:

sudo apt-get install ssh

要关闭系统,您必须使用另一台计算机或移动设备进行 ssh 并使用此命令:

sudo shutdown -r now

步骤1

首先,您必须物理移除 AMD 卡,保留 NVIDIA 卡并安装 CUDA 和 NVIDIA 驱动程序。您可以从此处下载 cuda:https://developer.nvidia.com/cuda-downloads

使用此命令确保一切正常:

nvidia-smi

第2步

此时,由于我们正在处理图形卡,我们必须修改 grub 以便以控制台模式启动。

使用您最喜欢的编辑器(在我的情况下是 joe)编辑默认的 grub 配置文件:

sudo joe /etc/default/grub

并修改以下几行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console

对于这些:

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

最后使用此命令更新 grub:

sudo update-grub

步骤3

关闭系统并移除 NVIDIA 卡并插入 AMD 卡。打开计算机并安装最新的 AMD 图形驱动程序。就我而言,我使用以下命令安装驱动程序:

wget https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-16.40-348864.tar.xz
tar -Jxvf amdgpu-pro-16.40-348864.tar.xz
cd amdgpu-pro-16.40-348864/
./amdgpu-pro-install
sudo usermod -a -G video $USER

重启电脑。现在你可以使用以下命令启动 lig​​htdm(用户界面):

sudo service lightdm start

一切都应该按预期工作,现在您可以使用系统设置来设置您的显示。

步骤4

关闭系统,然后添加 NVIDIA 卡,不要移除 AMD(此时您的系统中将有两张显卡)。打开计算机并使用您的用户名登录,但不要启动 LIGHTDM!!

此时,gpu-manager 已自动为控制台模式设置了两个显卡,并为 lightdm 仅设置了 AMD(因为我们在上一步中启动了 lightdm)。如果此时运行 lightdm,gpu-manager 会造成混乱。所以现在我们必须完全禁用 gpu-manager。为此,我们必须再次修改 grub:

sudo joe /etc/default/grub

并将以下几行替换:

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

这些:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nogpumanager"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console

最后使用此命令更新 grub:

sudo update-grub

步骤5

重新启动系统,如果 lightdm 无法正确启动(出现黑屏),则必须按 Ctrl+F1,以控制台模式登录并将此命令添加到 rc.local 文件:

sudo joe /etc/rc.local

在“exit 0”之前添加此行:

service lightdm start

重新启动系统,现在一切都可以正常工作......

在控制台中,您可以使用以下命令检查两个图形 CAD 是否都在使用中:

lspci -nnk | grep -i vga -A3 | grep 'in use'

Kernel driver in use: amdgpu
Kernel driver in use: nvidia

并且 nvidia-smi 应该可以正常工作。显示您正在使用 0 兆字节的内存:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26                 Driver Version: 375.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 970     Off  | 0000:02:00.0     Off |                  N/A |
| 30%   42C    P0    36W / 163W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

相关内容