UBUNTU成功安装NVIDIA驱动,cuda,cudnn,解决循环登录问题;
前言
装过多次实验室服务器显卡驱动,踩过不少坑,这边觉得有必要记录下一套较为简单的安装方式,在下次遇到问题时可以迅速重装。
一方面:如果你的显卡不是很古老,2019年底了,至少RTX-1060以上了吧,建议都使用较新版本驱动软件;
另一方面:踩到坑,不能烦,心平气和解决问题;
环境
一切关于配置的问题不声明环境都是耍流氓
系统:Ubuntu16.04 64bit
双显卡:Nvidia Quadro 5000 + Nvidia tesla k40c; (我的显卡算老的了,但装的较新版驱动,只要列表里支持就行)
驱动:nvidia 430.14
软件版本:cuda10 + cudnn7.6
NVIDIA驱动,cuda,cudnn下载地址:
https://www.nvidia.cn/Download/index.aspx(这里可看驱动支持哪些显卡)
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/rdp/cudnn-archive(cuda和cudnn版本需要匹配)
问题声明
在ubutnu上配置cuda时需要安装nvidia的驱动,图简单使用ppa源的方式安装驱动后出现了Ubuntu循环登录的问题,后来考虑直接下载.run文件进文本命令行模式安装;
问题解释(大概)
以下属于我的猜测:可能是opengl产生的冲突。
Nvidia驱动正确安装过程
卸载掉原有驱动
sudo apt-get remove –purge nvidia*
sudo apt-get autoremove
安装驱动
进入文本命令行界面
Ctrl-Alt+F1
给驱动run文件赋予执行权限
sudo chmod a+x NVIDIA-Linux-x86_64-430.14.run
安装(注意 参数)
sudo ./NVIDIA-Linux-x86_64-430.14.run –no-x-check –no-nouveau-check –no-opengl-files
- –no-x-check 安装驱动时关闭X服务
- –no-nouveau-check 安装驱动时禁用nouveau
- –no-opengl-files 只安装驱动文件,不安装OpenGL文件
在NVIDIA驱动安装过程中,依次的选项为:
1
accept
2 The distribution-provided pre-install script failed … …
Continue installation
3 Would you like to run the nvidia-xconfig utility to automatically update your X Configuration file so set the NVIDIA X driver will be used when you restart X?
NO
4 Install 32-Bit compatibility libraries?
NO
安装完成后重启,并不会出现循环登录的问题
按ctrl+alt+T打开终端,输入nvidia-smi命令,显示如下,表示驱动安装成功:
安装cuda
首先下载CUDA,下载完成后进入文件下载的地址
然后赋予权限
sudo chmod 777 X # X为你下载的文件名,".run"后缀
在运行以下代码前,一定要先知道当选择选项 Install NVIDIA Accelerated Graphics Driver for nvidia*时候选择取消,其他选项选择yes,或则回车,并且查看协议时候有快捷键CART + D 进行翻页,其中X是你下载的CUDA9的文件名
sudo sh X # 如果需要安装下载文件中自带的驱动,使用sudo,否则可以使用普通用户
##配置环境变量
进入环境变量
sudo gedit ~/.bashrc
添加,下面内容到文件末尾,保存并关闭。
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
- 测试cuda,最后输出有PASS,即为正确安装。
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
安装cudnn
下载完成后直接解压,然后进入其include目录
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include #复制头文件
进入lib目录,注意 -rf 参数一定不要沈略,并且再进入lib64之前,先看一下其中文件有哪些,并且操作目录一定要找出对应的操作目录,libcudnn.so后面的数字一定要做出相应的更改。下面这一步一定要看懂了逻辑之后操作。
cd cuda/lib64
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.3 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
然后使用命令,可以看到输出相应的信息
nvcc -V
查看cuda版本:
cat /usr/local/cuda/version.txt
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
参考博文
https://blog.csdn.net/u010159842/article/details/54344683
https://blog.csdn.net/lernering/article/details/78615464#commentBox