Ubuntu深度学习CUDA环境安装配置指南
查看显卡信息
要使用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
然后设置PATH
和LD_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_PATH
与CPLUS_INCLUDE_PATH
。
除了设置
LD_LIBRARY_PATH
,也可以使用ldconfig
来管理动态链接库的路径。
NCCL、TensorRT
可以到NVIDIA Collective Communications Library (NCCL) | NVIDIA Developer下载安装NCCL。
TensorRT官方安装指南: TensorRT Installation Guide :: Deep Learning SDK Documentation
安装比较简单,在此不赘述。