如何在 Ubuntu 中安装 NVIDIA 和 CUDA 驱动程序?

Ter*_*nce 49 nvidia cuda

编辑:我在下面为 Ubuntu 20.04 LTS 和 CUDA 11.1.1 添加了一个新答案。见下文。


我有一个带有 NVIDIA 卡的系统,与https://developer.nvidia.com/cuda-gpus相比,它的计算支持为 3.5+ 。如何在不从 NVIDIA 下载 .deb 文件的情况下在 Ubuntu 中安装 CUDA 和 NVIDIA 驱动程序?

Ter*_*nce 79

Ubuntu 18.04、CUDA 10.1、libcudnn 7.5.1 和 NVIDIA 418.67 驱动程序


笔记

  • 2021-01-07:请使用下面的 20.04 安装继续前进,因为 18.04 和 20.04 的步骤相同。

  • 2019-06-23:最近更新了 CUDA 10.0 或 10.1 版本的 NVIDIA 418.67 驱动程序,随它安装,不再包含 32 位库,这将导致 Steam 和大多数游戏不再运行。该版本libnvidia-gl-418:i386仅安装 418.56 版本,不适用于 418.67 驱动程序。希望 NVIDIA 会尽快发布更新。我在这个答案的底部添加了信息,.run file install部分是如何只下载 CUDA 安装程序的运行文件,然后你可以使用任何你想要的驱动程序。 运行文件的大小为 2.3GB,因此下载可能需要一些时间。

  • CUDA 9.x 无法通过 NVIDIA 的 ubuntu1804 存储库获得。然而,我确实在https://askubuntu.com/a/1086993/231142 上为 CUDA 9.2 写了一个答案


通过存储库安装 CUDA(而不是.deb安装)

您可以将以下几行复制并粘贴到终端窗口。按Ctrl+ Alt+T打开一个终端窗口。

删除和更新

删除任何可能设置的 CUDA PPA,并删除nvidia-cuda-toolkit如果已安装:

sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
Run Code Online (Sandbox Code Playgroud)

建议在安装新驱动程序之前也删除所有 NVIDIA 驱动程序:

sudo apt remove --autoremove nvidia-*
Run Code Online (Sandbox Code Playgroud)

然后更新系统:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

添加并安装

最近,我刚刚发现 CUDA 安装与 CUDA 一起工作,graphics-drivers ppa所以如果你没有添加它,现在添加它:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装 NVIDIA 驱动程序。为此,我们将使用 440 驱动程序

sudo apt install nvidia-driver-440
Run Code Online (Sandbox Code Playgroud)

现在,安装密钥:

sudo apt-key adv --fetch-keys  http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
Run Code Online (Sandbox Code Playgroud)

添加回购:

sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'

sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda_learn.list'
Run Code Online (Sandbox Code Playgroud)

再次更新系统:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装 CUDA 10.1:

sudo apt install cuda-10-1
Run Code Online (Sandbox Code Playgroud)

它应该安装 NVIDIA 418.40 驱动程序,因为那些是在 repo 中列出的。请参阅:http : //developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/

安装 libcudnn7 7.5.1:

sudo apt install libcudnn7
Run Code Online (Sandbox Code Playgroud)

调整环境并重启

~/.profile将以下行添加到您的 CUDA 10.1 文件中

# set PATH for cuda 10.1 installation
if [ -d "/usr/local/cuda-10.1/bin/" ]; then
    export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi
Run Code Online (Sandbox Code Playgroud)

重新启动计算机。

检查您的设置

检查 NVIDIA Cuda 编译器nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Apr_24_19:10:27_PDT_2019
Cuda compilation tools, release 10.1, V10.1.168
Run Code Online (Sandbox Code Playgroud)

检查 libcudnn 版本/sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

terrance@terrance-ubuntu:~$ /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
    libcudnn.so.7 -> libcudnn.so.7.5.1
Run Code Online (Sandbox Code Playgroud)

检查 NVIDIA 驱动程序nvidia-smi

terrance@terrance-ubuntu:~$ nvidia-smi
Wed Jan 29 12:41:02 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.48.02    Driver Version: 440.48.02    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| 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 750 Ti  Off  | 00000000:02:00.0  On |                  N/A |
| 40%   34C    P0     1W /  38W |    163MiB /  2000MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1993      G   /usr/lib/xorg/Xorg                           158MiB |
|    0      2502      G   compton                                        1MiB |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

.run 文件安装

安装驱动

通过使用,sudo add-apt-repository ppa:graphics-drivers/ppa您可以安装430.26最新的驱动程序或任何适合您的驱动程序。

安装 libcudnn7

添加回购:

sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda_learn.list'
Run Code Online (Sandbox Code Playgroud)

安装密钥:

sudo apt-key adv --fetch-keys  http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
Run Code Online (Sandbox Code Playgroud)

更新系统:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装 libcudnn7.5.1:

sudo apt install libcudnn7
Run Code Online (Sandbox Code Playgroud)

下载.run文件

现在cuda_10.1.105_418.39_linux.runhttps://developer.nvidia.com/cuda-10.1-download-archive-base?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal下载

如果你想要 CUDA 10.2,下载说明在这里:https : //developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal 然后按照下面相同的步骤进行操作,但一定要更新到 10.2 而不是 10.1。

然后运行安装程序:

sudo sh cuda_10.1.105_418.39_linux.run
Run Code Online (Sandbox Code Playgroud)

在此屏幕上输入接受并按回车键:

????????????????????????????????????????????????????????????????????????????????
?  End User License Agreement                                                  ?
?  --------------------------                                                  ?
?                                                                              ?
?                                                                              ?
?  Preface                                                                     ?
?  -------                                                                     ?
?                                                                              ?
?  The Software License Agreement in Chapter 1 and the Supplement              ?
?  in Chapter 2 contain license terms and conditions that govern               ?
?  the use of NVIDIA software. By accepting this agreement, you                ?
?  agree to comply with all the terms and conditions applicable                ?
?  to the product(s) included herein.                                          ?
?                                                                              ?
?                                                                              ?
?  NVIDIA Driver                                                               ?
?                                                                              ?
?                                                                              ?
?  Description                                                                 ?
?                                                                              ?
?  This package contains the operating system driver and                       ?
????????????????????????????????????????????????????????????????????????????????
? Do you accept the above EULA? (accept/decline/quit):                         ?
? accept                                                                       
Run Code Online (Sandbox Code Playgroud)

取消选择驱动程序,然后使用箭头键和空格键移动并选择或取消选择安装:

????????????????????????????????????????????????????????????????????????????????
? CUDA Installer                                                               ?
? - [ ] Driver                                                                 ?
?      [ ] 418.39                                                              ?
? + [X] CUDA Toolkit 10.1                                                      ?
?   [X] CUDA Samples 10.1                                                      ?
?   [X] CUDA Demo Suite 10.1                                                   ?
?   [X] CUDA Documentation 10.1                                                ?
?   Install                                                                    ?
?   Options                                                                    ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
? Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options ?
Run Code Online (Sandbox Code Playgroud)

等待安装完成,期间可能会提示错误,但不用担心。

调整环境并重启

~/.profile将以下行添加到您的 CUDA 10.1 文件中

# set PATH for cuda 10.1 installation
if [ -d "/usr/local/cuda-10.1/bin/" ]; then
    export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi
Run Code Online (Sandbox Code Playgroud)

重新启动系统以使更改生效。


Ter*_*nce 12

Ubuntu 16.04、CUDA 9.2 和 NVIDIA 396 驱动程序:

注意:此处 NVIDIA 的 repo 已决定推送 410 驱动程序。我会做一些测试,看看我是否可以将它设置为您要安装的驱动程序。

这些说明用于通过存储库而不是安装来安装 CUDA .deb

您可以将以下几行复制并粘贴到终端窗口。按Ctrl+ Alt+T打开一个终端窗口。

删除任何可能设置的 CUDA PPA,并删除nvidia-cuda-toolkit如果已安装:

sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove nvidia-cuda-toolkit
Run Code Online (Sandbox Code Playgroud)

建议在安装新驱动程序之前也删除所有 NVIDIA 驱动程序:

sudo apt remove nvidia-*
Run Code Online (Sandbox Code Playgroud)

然后更新系统:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装密钥:

sudo apt-key adv --fetch-keys  http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
Run Code Online (Sandbox Code Playgroud)

添加回购:

sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
Run Code Online (Sandbox Code Playgroud)

添加的新存储库的更新:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装 CUDA 9.2:

sudo apt install cuda-9-2
Run Code Online (Sandbox Code Playgroud)

它应该安装 nvidia-396 驱动程序,因为这些驱动程序在 repo 中列出。请参阅:http : //developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/

验证是否安装了 CUDA 9.2:

~$ ls /usr/local/cuda-9.2/
bin     include    libnvvp           nvml    samples  targets
doc     lib64      LICENSE           nvvm    share    tools
extras  libnsight  nsightee_plugins  README  src      version.txt
Run Code Online (Sandbox Code Playgroud)

现在,将以下内容添加到您~/.profilePATHLD_LIBRARY. 您可以使用以下命令gedit ~/.profile进行编辑:

# set PATH for cuda 9.2 installation
if [ -d "/usr/local/cuda-9.2/bin/" ]; then
    export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi
Run Code Online (Sandbox Code Playgroud)

重新启动系统。

sudo reboot
Run Code Online (Sandbox Code Playgroud)

系统启动后,您可以通过键入以下内容来验证安装:

nvcc -V
Run Code Online (Sandbox Code Playgroud)

您应该会看到类似以下内容:

~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
Run Code Online (Sandbox Code Playgroud)

您应该会看到已396.xx安装的驱动程序:

~$ nvidia-smi
Thu May 17 07:38:54 2018        
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.44                 Driver Version: 396.44                    |
|-------------------------------+----------------------+----------------------+
| 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 760     Off  | 00000000:02:00.0 N/A |                  N/A |
| 49%   53C    P0    N/A /  N/A |    187MiB /  1999MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0                    Not Supported                                       |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)


Ter*_*nce 6

Ubuntu 20.04 LTS、CUDA 11.2.0、NVIDIA 455 和 libcudnn 8.0.4


我不建议安装 CUDA 附带的 NVIDIA 驱动程序,因为它们不包含可用于新内核升级的 dkms 驱动程序。

如果您尚未设置`graphics-drivers` PPA,请立即将其添加到您的系统并删除所有以前的 NVIDIA 驱动程序。

Ubuntu 存储库现在包含与graphics-driversPPA相同的驱动程序。所以请随意安装460.39驱动程序。

sudo apt install nvidia-driver-460
Run Code Online (Sandbox Code Playgroud)

现在,从 NVIDIA 下载 CUDA 11.2.0 .run 文件:

wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run
Run Code Online (Sandbox Code Playgroud)

我喜欢让它可执行:

chmod +x cuda_11.2.0_460.27.04_linux.run
Run Code Online (Sandbox Code Playgroud)

现在安装CUDA:

sudo ./cuda_11.2.0_460.27.04_linux.run 
Run Code Online (Sandbox Code Playgroud)

接受 EULA:

????????????????????????????????????????????????????????????????????????????????
?  End User License Agreement                                                  ?
?  --------------------------                                                  ?
?                                                                              ?
?  NVIDIA Software License Agreement and CUDA Supplement to                    ?
?  Software License Agreement.                                                 ?
?                                                                              ?
?                                                                              ?
?  Preface                                                                     ?
?  -------                                                                     ?
?                                                                              ?
?  The Software License Agreement in Chapter 1 and the Supplement              ?
?  in Chapter 2 contain license terms and conditions that govern               ?
?  the use of NVIDIA software. By accepting this agreement, you                ?
?  agree to comply with all the terms and conditions applicable                ?
?  to the product(s) included herein.                                          ?
?                                                                              ?
?                                                                              ?
?  NVIDIA Driver                                                               ?
?                                                                              ?
?                                                                              ?
????????????????????????????????????????????????????????????????????????????????
? Do you accept the above EULA? (accept/decline/quit):                         ?
? accept                                                                            
Run Code Online (Sandbox Code Playgroud)

[X] Driver突出显示时按空格键取消选择驱动程序:

????????????????????????????????????????????????????????????????????????????????
? CUDA Installer                                                               ?
? - [ ] Driver                                                                 ?
?      [ ] 460.27.04                                                           ?
? + [X] CUDA Toolkit 11.2                                                      ?
?   [X] CUDA Samples 11.2                                                      ?
?   [X] CUDA Demo Suite 11.2                                                   ?
?   [X] CUDA Documentation 11.2                                             ?
?   Options                                                                    ?
?   Install                                                                    ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
?                                                                              ?
? Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options ?
Run Code Online (Sandbox Code Playgroud)

然后按向下箭头Install。按Enter然后等待安装完成。

安装完成后,将以下内容添加到您的底部~/.profile或将其添加到/etc/profile.d/cuda.sh您可能必须为所有用户(全局)创建的文件中:

# set PATH for cuda 11.2 installation
if [ -d "/usr/local/cuda-11.2/bin/" ]; then
    export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi
Run Code Online (Sandbox Code Playgroud)

安装 libcudnn8

添加回购:

注意来自 NVIDIA 的 20.04 存储库不提供 libcudnn,但 18.04 存储库提供并安装到 20.04 中。

echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda_learn.list
Run Code Online (Sandbox Code Playgroud)

安装密钥:

sudo apt-key adv --fetch-keys  http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
Run Code Online (Sandbox Code Playgroud)

更新系统:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

安装 libcudnn 8.0.4:

sudo apt install libcudnn8
Run Code Online (Sandbox Code Playgroud)

我建议现在重新启动系统以使更改生效。

重新启动后检查安装:

   $ nvidia-smi
Sat Apr 10 15:13:48 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 750 Ti  On   | 00000000:01:00.0  On |                  N/A |
| 42%   50C    P0     2W /  38W |    153MiB /  2000MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      4976      G   /usr/lib/xorg/Xorg                129MiB |
|    0   N/A  N/A      5393      G   compton                             1MiB |
|    0   N/A  N/A    672363      G   ...AAAAAAAAA= --shared-files       17MiB |
+-----------------------------------------------------------------------------+
                                                                        


~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:08:53_PST_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293


~$ /sbin/ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
    libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.0.4
    libcudnn.so.8 -> libcudnn.so.8.0.4
    libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.0.4
    libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.0.4
    libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.0.4
    libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.0.4
    libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.0.4
Run Code Online (Sandbox Code Playgroud)

  • 这也适用于 Ubuntu 22.04、CUDA 11.8 和 NVIDIA 515 驱动程序。 (2认同)