Ubuntu18.04 配置nvidia 460驱动、cuda10.1和cudnn7.6.5,并在同一系统中配置不同的CUDA版本以满足tensorflow版本的需求。以下源自各位大佬的博客,并进行整理。
1.安装Nvidia驱动
下文主要引自大佬的博客:
装机(三) linux显卡驱动,cuda及cudnn的安装,卸载,查看(https://blog.csdn.net/limiyudianzi/article/details/90751613)
1.1 检查并卸载残留的Nvidia驱动
先把之前的nvidia卸载干净(以下三条指令均可)
sudo apt-get remove --purge nvidia*
sudo apt-get --purge remove "*nvidia*"
sudo nvidia-uninstall
1.2 安装Nvidia驱动
Linux中NVIDIA驱动的下载地址如下:
链接: link
可以通过输入电脑型号筛选可以找到合适的版本;同样亦可通过终端指令筛选:
sudo ubuntu-drivers devices
下载对应的Nvidia驱动版本:
sudo apt install nvidia-driver-460
在快结束的时候会让输入一个secure boot的密码(一定要记住这个密码),在后面会用到。重启电脑(这一步很重要,不重启没有效果):
reboot
重启就会出现一个蓝色的perform mok management 界面:
选择第二个enroll mok,然后选择continue,再选择yes,就会出现让输入密码的界面,准确输入你之前设定的secure boot密码,然后选择reboot。在输入密码时,是暗输入的,因此不必惊慌,确保密码正确即可。
在进入这个界面时,一定不要直接点击continue boot,否则会导致加载nvidia的驱动失败。如果点错后,则需要卸载并重新装一个nvidia驱动,然后再次重启电脑。
重启后,输入命令查看nvidia驱动是否安装成功:
nvidia-smi
GPU状态监测,可以输出gpu个数,温度,显存,在执行的任务等纤细信息,该命令正确通常就标志着显卡驱动安装无误。其中右上角CUDA Version:11.4表示可接受cuda的最高版本为11.4.
1.3参考链接及常见错误解决办法:
同时可能存在的问题也可以参见以下博客:
https://blog.csdn.net/qq_43744723/article/details/123959160
https://blog.csdn.net/qq_43744723/article/details/119111928
2.安装CUDA
cuda可以简单理解为一个能够使用GPU进行特定运算的运算平台。可以根据自己的需求,选择适合的版本。值得注意的是ubuntu系统驱动与cuda、cudnn以及tensorflow版本需要兼容才行!!!
pytorch版本,cuda版本,系统cuda版本查询和对应关系(https://www.cnblogs.com/Wanggcong/p/12625540.html)
2.1卸载残存的CUDA
验证系统内部是否已经安装cuda:
nvcc -V
若出现以下输出,则系统内部没有安装cuda。
如果需要卸载已有的cuda,官方卸载驱动方法如下:
sudo apt-get --purge remove "*cublas*" "cuda*"
2.2安装CUDA10.1
以下文章主要引自博客:
查看linux环境下cudnn是否安装,Linux下安装cuda和对应版本的cudnn
(https://blog.csdn.net/weixin_42303107/article/details/116812245?spm=1001.2014.3001.5506)
cuda下载的官网链接:
链接: cuda官网链接
在官网中查找适合自己电脑的cuda进行安装;在这里本文系统是Ubuntu18.04,选用的CUDA 10.1版本 。
在进行cuda安装之前,需要先安装cuda的相关依赖库,防止cuda安装出现错误。命令行输入以下命令,进行相关依赖库的安装:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
随后可以安装官网教程进行cuda的安装;
推荐选择run文件安装,比较简洁;推荐用axel多线程下载安装包,速度更快, 10表示线程数。
axel -n 10 https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
# wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
sudo sh cuda_10.1.243_418.87.00_linux.run
输入上述命令后,稍有卡顿,随后出现以下界面:
输入accept进行后续操作,随即出现以下界面:
因为在安装cuda之前已经安装了Nvidia的驱动,因此这里的第一项取消勾选,选择不安装驱动,随后选择Install进行后续操作。后续出现的一系列选项都可以选择yes,最终出现以下界面:
随后开始进行环境变量的配置:
打开命令行输入以下命令进行~/.bashrc文件的修改:
vim ~/.bashrc
在文件的末尾加入下面三行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
注意此处的环境变量路径指定为cuda,无需添加具体的cuda版本,以便于其他版本的cuda地安装与切换。
随后命令行输入以下命令保存并退出:
:wq!
在添加完环境变量后,需要更新一下环境变量,命令行输入以下命令进行环境变量的更新:
source ~/.bashrc
2.3 cuda查看
查看cuda的版本,如果nvcc方法输出正确则说明cuda已经成功安装cuda10.1
nvcc -V
3.安装cudnn7.6.5
Cudnn是建立在cuda之上,用于加速深度学习运算的库,其对运算的加速程度是肉眼可见的,所以虽然只有cuda就可以进行深度学习的运算,但是如果想要进一步的加速运算,cudnn是非常值得安装的。
3.1 卸载残存的cudnn
如果有之前的残留版本最好卸载干净
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
同时路径中的cuda字样,要根据现实来定,cuda有可能需要替换为cuda-10.0或者其他相应的版本。
3.2 安装cudnn7.6.5
cudnn官网
链接: cudnn官网
找到与cudn版本相匹配的cudnn压缩包进行下载。此处需要注册一个nvidia的账号,登陆之后才能正常的下载cudnn。
进入到cudnn下载的安装路径下,命令行输入以下命令进行解压操作:
cp cudnn-10.1-linux-x64-v7.solitairetheme8 cudnn-10.1-linux-x64-v7.tgz #重命名
tar -xvf cudnn-10.1-linux-x64-v7.tgz #解压
cd cuda #进入cudnn解压后的文件夹
随后在当前路径的命令行终端输入以下三条命令进行cudnn的安装:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
安装,其实就是复制进去,这里路径的cuda为设定的软链接。当如果安装多个版本的cuda时,环境路径最好设置为对应版本的cuda,如cuda10.1。
至此cuda与cudnn全部安装成功。
3.3查看cudnn版本
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
4. 安装多个CUDA版本并实现自由切换
4.1 安装第二个版本的cuda和cudnn
多个版本的cudn安装方法可以参见以下两篇博客:
如何在ubuntu系统上安装多个cudn环境(及对应cudnn、pytorch 、torchvision安装方法 )(https://blog.csdn.net/qq_44776613/article/details/116997774/)
Ubuntu16.04下安装多版本CUDA和cuDNN
(https://blog.csdn.net/elegantoo/article/details/105574133)
按照本文所引用的安装方式,是将/usr/local的cuda文件链接到了对应cuda版本的根目录。输入以下命令可以查看当前cuda文件的链接情况:
cd /usr/local/
stat cuda
随后输出以下信息:
在/usr/local目录下,可以安装多个版本的cuda,这里列出我电脑内的cuda版本:
其中cuda文件包含安装过程中设置的链接库,如果需要更换cuda版本,只需要删除之前创建的软链接,然后创建所更换版本的cuda的链接。终端操作如下:
sudo rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda #创建新 cuda-10.0 的软链接
此时查看cuda版本,已经更改成功。
4.2 验证是否安装成功:
#编译并测试设备deviceQuery
cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
##编译并测试带宽bandwidthTest
cd ../bandwidthTest
sudo make
./bandwidthTest