跳到主要内容

Ubuntu深度学习CUDA环境安装配置指南

· 阅读需 6 分钟

查看显卡信息

要使用CUDA,必须要有NVIDIA显卡,可以使用lspci命令来查看:

$ lspci | grep NVIDIA
02:00.0 VGA compatible controller: NVIDIA Corporation Device 1b06 (rev a1)
02:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)
03:00.0 VGA compatible controller: NVIDIA Corporation Device 1b06 (rev a1)
03:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1

例如,上面显示显卡是NVIDIA的,1b06是deviceID,是厂商给自己某个型号的产品分配的ID。那么,如何通过deviceID来查询产品型号呢?网上有一些deviceID的数据库,例如:envytools。在此页面可查得1b06的产品型号为GeForce GTX 1080 Ti。

安装显卡驱动

以Ubuntu为例,可以使用命令ubuntu-drivers list来查看合适的显卡驱动,安装较新的驱动即可:

$ ubuntu-drivers list
nvidia-390
nvidia-384
nvidia-387
nvidia-396
nvidia-410
$ sudo apt update
$ sudo apt install nvidia-410

如果输出为空,可以尝试换apt的软件源或添加ppa。另外,也可以到NVIDIA 驱动程序下载下载驱动并安装:

以Ubuntu为例,在选择操作系统时,如果有Ubuntu的选项就选Ubuntu而不是Linux,前者下载的是deb格式的安装包,后者是run格式。

对于deb格式,使用如下命令进行安装:

$ sudo dpkg -i xxx.deb

对于run格式,需要屏蔽Ubuntu自带的开源显卡驱动nouveau,关闭X环境(不带图形界面,仅有字符界面),然后安装。由于这种安装方式较为繁琐,且容易出错,因此尽量采用前面的安装方式。详细安装方法见「安装CUDA」一节的“官方安装指南”。

安装CUDA

CUDA官方下载可以下载最新版本的cuda,也可以到CUDA Toolkit Archive | NVIDIA Developer下载各版本cuda。

选择合适的操作系统,安装类别推荐network,不推荐runfile

如果选择deb(local),需要注意本地repo的概念。安装了本地repo实际上并没有安装该repo里的包,需要先进行apt update,然后仍然需要使用apt install进行安装。

然后按照Installation Instructions安装即可

需要注意的是,最后一步

$ sudo apt install cuda

会安装最新版本的cuda,且有新版本时可升级到最新。如果想装某个版本的cuda,可以指定版本,并且会保持该版本,除非后续又安装了其它版本。例如指定版本cuda 9.0:

$ sudo apt install cuda-9-0

然后设置PATHLD_LIBRARY_PATH

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH

可以写入到/etc/profile.d/cuda-env.sh,然后运行source使之生效:

$ source /etc/profile.d/cuda-env.sh

这样就可以使得这两个环境变量对所有用户生效,而不需要服务器上的用户一一配置。

采用deb方式的安装非常简单,推荐。如果要手动安装,可以参考下面的官方安装指南。

官方安装指南

Installation Guide Linux :: CUDA Toolkit Documentation

安装cuDNN

到cuDNN官网下载NVIDIA cuDNN | NVIDIA Developer最新版本cuDNN,可以到cuDNN Archive | NVIDIA Developer下载各版本cuDNN。下载需要登录,选择cuda所对应的版本,Runtime Library和Developer Library都安装。

推荐使用deb格式的安装文件。注意要和CUDA版本对应!

例如,前面我选择安装 CUDA 9.0,这里以 cuDNN v7.4.2 为例,可以看到它对应 CUDA 版本就是9.0:

有 Runtime 和 Developer Library,建议都安装。

然后使用dpkg安装(安装顺序无所谓):

$ sudo dpkg -i ./libcudnn7_7.4.2.24-1+cuda9.0_amd64.deb
$ sudo dpkg -i ./libcudnn7-dev_7.4.2.24-1+cuda9.0_amd64.deb

如果想手动安装(没这个必要,不推荐),需要注意:cuDNN包含cuDNN的库和头文件,需要确保库位于默认位置或LD_LIBRARY_PATH;头文件位于默认位置或C_INCLUDE_PATHCPLUS_INCLUDE_PATH

除了设置LD_LIBRARY_PATH,也可以使用ldconfig来管理动态链接库的路径。

NCCL、TensorRT

可以到NVIDIA Collective Communications Library (NCCL) | NVIDIA Developer下载安装NCCL。

TensorRT官方安装指南: TensorRT Installation Guide :: Deep Learning SDK Documentation

安装比较简单,在此不赘述。