安装CUDA和cuDNN
升级驱动
首先将显卡驱动升级到最新版本。(如果没有安装驱动,可能这一步会失败,请先到Nvidia的驱动官网下载。)在shell中输入
sudo apt-get update
sudo apt-get upgrade
安装CUDA
下载CUDA,这里CUDA10.1为例子。首先进入Nvidia的CUDA官网,选择CUDA10.1版本。
也可以复制下载的链接,直接在Google Chrome里面下载。下载好以后进入到文件所在的路径下面,输入如下命令
sudo sh cuda_10.1.243_418.87.00_linux.run --override --silent --toolkit
安装cuDNN
进入到cuDNN官网,选择和CUDA版本相匹配的版本,这里以cuDNN v8.0.5为例,选择cuDNN Library for Linux下载。注意这里需要登录,没有账号的需要注册一个。
下载完成后会得到一个.tgz的压缩包,解压得到一个名为cuda的目录,进入目录所在路径,执行以下命令
sudo cp cuda/include/* /usr/local/cuda-10.1/include
sudo cp cuda/lib64/* /usr/local/cuda-10.1/lib64
sudo chmod a+r -R /usr/local/cuda-10.1/include/* /usr/local/cuda-10.1/lib64/*
添加环境变量
输入以下命令
vim ~/.bashrc
在末尾添加如下内容
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
保存后退出,在terminal中输入如下命令,使得添加的内容生效
source ~/.bashrc
sudo ldconfig
在terminal中输入如下命令,查看是否添加成功。
echo $CUDA_HOME
如果成功输出路径,则表明添加成功。
添加链接
一般情况下,安装CUDA的时候,会在cuda-10.1文件夹同级的路径下面添加其链接文件,也就是在/etc/local/下会有名为cuda的链接文件。我们在环境变量中添加的路径也就是链接文件的路径。环境变量设置为链接文件的路径有一些好处。首先链接文件只是一个链接,需要制定指向的内容,其本身不占据什么硬盘的空间。其次,我们只需修改链接文件,即可实现CUDA版本的切换。
在相同的路径下我们新建一个脚本,用于创建cuda链接文件。代码如下
#!/bin/bash
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
命名为install_cuda_10_1.sh。以后执行该脚本即可完成cuda链接文件的创建。
如果安装了别的版本的CUDA,可以编写其它的链接文件,此时只需将上面代码中的cuda-10.1改为别的cuda文件夹名称,然后保存为另外的脚本即可。需要切换CUDA版本时只需要执行相应的脚本。
在terminal中输入
nvcc --version
输出
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
则表示CUDA已经安装成功
卸载CUDA
进入cuda-10.1文件夹,进入bin目录,找到带有uninstall名称的文件执行即可,本人为cuda-10.1/bin/cuda-uninstaller。进入后勾选卸载的内容,执行即可。
执行完成后,可能保留有cuDNN和其它的残余文件,直接将cuda-10.1目录都删除即可。此时会发现,cuda的链接文件已经被删除了,否则自己手动删除该链接文件。
安装时遇到空间不够问题
安装CUDA时空间不够
如果安装CUDA时显示
terminate called after throwing an instance of ‘boost::filesystem::filesystem_error’ what(): boost::filesystem::copy_file: No such file or directory: “./builds/cuda-toolkit/nvml/example/supportedVgpus.c”, “/usr/local/cuda-10.1/nvml/example/supportedVgpus.c” Aborted (core dumped)
则表明根目录不够大,则无法安装。可以删除一些系统日志文件或者安装在/opt下没用的应用,以扩大空间,最后保证起码有8G的空间。
安装cuDNN时发现空间不够
此时不会报错,只是你的根目录已经没有多余的空间了,此时很可能tab键的补全都用不了了。此时如果贸然重启电脑,会陷入开不了机的情况。
如果没有重启,则于上一种情况一样,将cuda卸载,然后清理一些空间再安装。
如果真的重启了,此时不能正确启动,因为没有空间留给系统需要创建的临时文件。解决方法是在grub页面进入recovery mode,选择root。在安全模式下可以进入/usr/local/,卸载CUDA,就能成功启动啦 ~(≧▽≦)/~