Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装
--------------------------------------------@20190726---------------------------------------------------------------------------------------------
上接《Ubuntu系统---NVIDIA 驱动安装》。预配置环境:Ubuntu16.04 + GTX2080Ti + CUDA10.0 + yolo v3+Opencv3.4.2
这一步,紧接着“NVIDIA 驱动已安完”后的“CUDA安装”。根据Ubuntu16.04 + GTX2080T 在英伟达官网上选择合适的驱动,有很多版本可选这里选择了NVIDIA-Linux-x86_64-410.78.run 。没安装之前踩了很多坑,觉得有点难度,装完之后发现很简单,只是方法没找对。
首先,在强调一下NVIDIA 驱动安装过程:
第一步:下载NVIDIA-Linux-x86_64-410.78.run
第二步,禁用nouveau
安装NVIDIA需要把系统自带的驱动禁用,打开文件:
sudo gedit/etc/modprobe.d/blacklist.conf
在文本最后添加以下内容:
blacklist nouveau
option nouveau modeset=0命令窗口会提示warn,无视之。
保存退出,执行以下命令生效:
sudo update-initramfs -u
重启电脑后输入:
lsmod|grep nouveau
没有任何输出说明禁用成功。
第三步,进入tty。
按住CTRL+ALT+F2 进入命令行界面
Login : 安装ubuntu的用户名
紧接着输入密码
sudo service lightdm stop
sudo init3cd setup//进入NVIDIA的.run文件目录下
sudo ./NVIDIA-Linux-x86_64-410.93.run
sudo service lightdm start
然后按Ctrl-Alt+F7即可恢复到图形界面。
sudo reboot//按照提示安装完成,简单方法重启就好了
另外,nouveau也可以这样禁用。
用vim编辑器打开(vim使用方法自行百度):
sudo vim/etc/modprobe.d/blacklist.conf
在该文件后添加以下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
并执行:
sudo update-initramfs -u
重启后执行:
lsmod|grep nouveau
Ubuntu系统登录界面变大,并且循环输入正确密码无法进入桌面的解决方案@https://blog.csdn.net/qq_36427732/article/details/80914653
第二步,CUDA安装
首先也是去官网上 下载和驱动对应的cuda文件https://developer.nvidia.com/cuda-toolkit-archive,需要注册一个账号。
一定要选择runfile.下载完成之后进入放runfile的文件夹,执行:sudo sh cuda_10.0.1.130_410.48_linux.run
然后,疯狂按空格/Enter键, 直到 100%。如果不按,它会一直保持0%。
第一次,傻傻不知道,就在那里等,然后重装两遍,试了其他方法无效,意外狂按就出来了。
还以为是GCC内核的问题,查的版本和说明文档不一致,掉坑里好久。目前先跳过了这一步,后续真用起来才知道与这一步有没有关系。
上步骤完成后,进行环境配置:
环境变量的配置:sudo gedit ~/.bashrc
末尾添加:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
重启计算机
测试CUDA安装结果:
nvcc--version
cd NVIDIA_CUDA-10.0_Samples
make
cd/NVIDIA_CUDA-10.0_Samples/bin/x84_64/linux/release
执行./deviceQuery #如果显示的是一些关于GPU的信息,则说明安装成功了。
第三步,cuDNN安装
网上的教程,五花八门,这里选其中一个尝试,好用。
@https://blog.csdn.net/qq_39418067/article/details/87978848 下载1个文件
cuDNN Libary for Linux
@https://blog.csdn.net/qq_33427431/article/details/89235639 下载4个文件
cuDNN Library for Linux(Power)
cuDNN Runtime Library for Ubuntu16.04 (Deb)
cuDNN Developer Library for Ubuntu16.04 (Deb)
cuDNN Code Samples and User Guide for Ubuntu16.04 (Deb)
@https://blog.csdn.net/wangzi11111111/article/details/90447326 下载2个文件
cuDNN Runtime Library for Ubuntu16.04 (Deb)、
cuDNN Developer Library for Ubuntu16.04 (Deb)
本文参照@https://blog.csdn.net/qq_36362060/article/details/80739573
下载完成之后解压到/home目录下,文件夹重命名为cudnn7,然后执行下面的命令进行安装:
#set_cuDnn.sh
#!/bin/bash
echo"remove libcudnn* file of /usr/local/cuda/lib64"sudo rm-rf /usr/local/cuda/lib64/libcudnn.s*#删除旧版本cudnn
echo"copy cudnn.h to usr/local/cuda/include"#sudo cp/home/user_name/cudnn6/include/cudnn.h /usr/local/cuda/include #复制cudnn.h文件到/usr/local/cuda/include目录下,这里的user_name改为自己的用户名
sudo cp/home/u/cuda10.0/cuDNN/include/cudnn.h /usr/local/cuda/include #复制cudnn.h文件到/usr
sudo chmod777 -R /usr/local/cuda/include #对复制后的文件解除权限
echo"copy lib* to usr/local/cuda/lib64"sudo cp/home/u/cuda10.0/cuDNN/lib64/lib* /usr/local/cuda/lib64 #同上
sudo chmod777 -R /usr/local/cuda/lib64 #同上
sudo ldconfig #对所有的复制和解除权限操作执行生效
# vim setupcudnn.sh #新建一个shell脚本文件,文件里面复制下面的内容进去
# 然后保存setupcudnn.sh文件的内容,并执行下面的命令进行安装:
# sudo bash set_cuDnn.sh #执行setupcudnn.sh脚本中的命令,安装cudnn
#**注意:**这里将安装命令写成脚本文件的好处是,后面如果要进行其他cudnn版本的安装,只要稍加修改这个脚本,然后运行就可以迅速完成安装。例如要安装cudnn7版本,下载cudnn7,解压文件重命名为cudnn7,把脚本文件里的cudnn6修改为cudnn7,然后执行sudo bash setupcudnn.sh 就完成了安装。
如何查看CUDA版本和CUDNN版本
cuda一般安装在/usr/local/cuda/路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息:
cat/usr/local/cuda/version.txt 即可查询
cudnn的信息在其头文件里:
cat/usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 即可查询
综上,基本环境算是完事儿了。接下来配置OpenCV3.4.2。
记一下,每重装一次Ubuntu系统,等待过程大概是45分钟左右。-----> 设置网络------->装驱动------>别的
--------------------------------------------@20190802更新---------------------------------------------------------------------------------------------
---------------------------------------------解决“Ubuntu 系统循环登陆”问题--------------------------------------------------------------------
刚开始装好ubuntu系统后,装完驱动重启进入系统,有出现过“进入Ubuntu 系统 停留在循环登陆界面”。因为刚装好系统,又是刚装完英伟达驱动重启出现的问题,所以毋庸置疑是安装英伟达驱动出现了问题。当时的解决方式是:重装系统+重装英伟达驱动。虽然解决了当时的问题,用了不几天,刚把其他环境搭好。昨天用系统,一切安好,下班正常关机了,一早开机又出现了“进入Ubuntu 系统 停留在循环登陆界面”。我合计昨日是正常工作,并没安装什么东西,这几天开关机也正常,首先排除应该不是驱动的问题。
这次,先是网上搜罗了一圈解决方法,尝试了几个没解决问题,本能的反应是再重装系统,但是已经装好了好多环境,不愿意重装啊。借来了U盘,想把重要文件拷贝出来(PS时刻备份很重要)。还好,这时候我吱声了一句,资深人建议了一点,加上又在网上搜罗,多数都说是驱动问题,合计试试。卸载驱动,在重装驱动试试,万一好使,就不用重装系统了。结果OK OK OK。
后面做详细的记录,这里略。