CUDA依赖Nvidia的驱动,最好先去官网check一下自己的GPU支持的驱动版本和CUDA版本。
下面CUDA的安装方式,会自动寻找合适的依赖,先添加NVIDIA提供的软件库到系统的更新库源,然后在线安装cuda(包括driver),最后下载cuDNN手动安装。
- 删除已经添加的CUDA PPAs和CUDA(如果安装过CUDA)
$ sudo rm /etc/apt/sources.list.d/cuda*
$ sudo apt remove nvidia-cuda-toolkit
- 删除之前安装的驱动(如果安装过驱动)
$ sudo apt remove nvidia-*
- 更新系统
$ sudo apt update
- 添加repo,注意Ubuntu系统版本
# 安装key
$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
# 添加库源
$ sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
需要注意,上面的URL是根据自己Ubuntu系统版本确定的,可以自己把上面网址(http://developer.download.nvidia.com/compute/cuda/repos/)贴到浏览器查看具体支持的操作系统和提供的cuda相关的库。
- 再次更新
$ sudo apt update
- 如果只安装驱动(否则直接下一步安装cuda):
$ sudo apt install nvidia-driver-410
- 安装cuda
$ sudo apt install cuda-10-0
- 添加cuda路径到系统,将如下内容粘贴到
~/.profile
if [ -d "/usr/local/cuda-10.0/bin/" ]; then
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi
- reboot,并查看
$ nvidia-smi
$ nvcc -V
- 下载cuDNN,解压出cuda目录。下载时,注意选择和CUDA匹配的版本
$ tar -zxvf cudnn-
$ cd ./cuda
$ sudo cp ./include/cudnn.h /usr/local/cuda-10/include/
$ sudo cp -P ./lib64/libcudnn* /usr/local/cuda-10/lib64/
$ sudo chmod a+r /usr/local/cuda-10/include/cudnn.h /usr/local/cuda-10/lib64/libcudnn*
$ sudo ldconfig
注意,在复制libcudnn*
文件时,使用了cp -P
,保持符号链接,否则在进行ldconfig
时会出现符号链接的错误。因为libcudnn*
的几个(一般是三个,例如libcudnn.so
、libcudnn.so.7
、libcudnn.so.7.4
)文件其中只有一个是真正的文件,其余是链式指针类似的符号链接,最终指向libcudnn.so
,所以在复制时要保持这种符号链接关系。
只安装nvidia driver的另一种方式
如果你不需要CUDA,只是安装驱动,这里介绍另外一种apt ppa安装方式:
添加graphics-drivers PPA到系统的apt-repo:
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
然后安装NVIDIA GPU的驱动:
$ sudo apt install nvidia-410-dev
注意上述命令安装的是410版本的驱动,更具体的版本号在安装时会显示,需要注意这个版本号,因为可能CUDA会依赖某个具体的版本。