近期因为要学习深度学习相关知识,需要搭建深度学习环境。配置环境过程中,遇到了很多坑,如今记录一下,以备后续参考。
安装环境:
- ubuntu 16.04 64bit
- 显卡:NVIDIA 1660ti + 集成显卡gtx720
- 驱动:nvidia 430.05
- 软件:cuda_10.0.130_410.48_linux.run + cudnn-10.0-linux-x64-v7.6.3.30.solitairetheme8
首先要了解配置深度学习环境所需要的软件版本对应关系。
1)cuda与显卡驱动的版本对应关系:
cuda各版本链接:https://developer.nvidia.com/cuda-toolkit-archive
2.内核版本确认
在安装显卡驱动之前,首先要查看ubuntu16.04对应的内核版本,可以参考https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html。
从上表可以看出是4.4,由于我的是4.15,需要将它降级到4.4。
a.查看当前安装的内核版本dpkg -l|grep linux-image
b.查看可以更新的内核版本sudo apt-cache search linux-image
c.安装新内核sudo apt-get install linux-image-4.4.0-77-generic linux-image-extra-4.4.0-77-generic
d.更新grub引导
sudo update-grub
e.重启按Esc或Shift+Tab选择Ubuntu高级选项,进入4.4的内核
f.卸载不要的内核
sudo apt-get purge linux-image-xx-xx-generic linux-image-extra-xx-xx-generic
g.更新grub引导
sudo update-grub
h. 查询当前gcc版本:
gcc -v
i. 查看glibc版本方法有两种:
第一种为:ldd --version;
第二种方法为:getconf GNU_LIBC_VERSION。
2.显卡驱动安装
1 禁用自带的显卡驱动nouveau
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
在其中加入:
blacklist nouveau option nouveau modeset=0
然后
sudo update-initramfs -u
重启系统(一定要重启)
验证nouveau是否已禁用
lsmod | grep nouveau
没有信息显示,说明nouveau已被禁用,接下来可以安装nvidia的显卡驱动。
2.2 加入环境变量
sudo gedit ~/.bashrc
在其中加入:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
执行
source ~/.bashrc
2.3安装NVIDIA显卡驱动
在英伟达的官网上查找你自己电脑的显卡型号然后下载相应的驱动。网址:http://www.nvidia.cn/page/home.html
我下载的版本:NVIDIA-Linux-x86_64-430.05.run(注意不同的版本最后安装执行的具体选项不同)
下载后的run文件拷贝至home目录下。
查看自己的显卡型号:
sudo lshw -numeric -C display
如果之前安装过nvidia驱动,先卸载:
sudo apt-get remove --purge nvidia-*
Ctrl-Alt+F1 进入命令行界面
cd Downloads
sudo service lightdm stop //这个是关闭图形界面,不执行会出错。
sudo /etc/init.d/lightdm stop #关闭当前图形环境令
sudo chmod a+x NVIDIA-Linux-x86_64-430.05.run #给驱动run文件赋予执行权限
sudo ./NVIDIA-Linux-x86_64-430.05.run --no-x-check--no-nouveau-check --no-opengl-files
# 这句一定要加参数,不然就会循环登录。
如果进入循环登录,要再次Ctrl-Alt+F1 进入命令行界面,卸载驱动:
sudo apt-get remove –purge nvidia-*
后面两个参数可不加(Ps: 没懂 - 与 - - 的区别,貌似都可以,我上面写的是两个- -哦)。
sudo /etc/init.d/lightdm start #重新启动图形环境
sudo service lightdm start
reboot
3. 安装cuda
去官网下载:https://developer.nvidia.com/cuda-downloads
注意一定要下载runfile。
Ctrl-Alt+F1 进入命令行界面
cd Downloads
sudo service lightdm stop #禁用X服务
sudo /etc/init.d/lightdm stop #一样的命令
chmod +x ./
cuda_10.0.130_410.48_linux.run #
给文件添加运行权限:
sudo sh cuda_10.0.130_410.48_linux.run --no-opengl-libs
注:第一条问是否安装nvidia驱动,选择no,后面一直输入yes就行
sudo /etc/init.d/lightdm start #启用服务
reboot
重启之后进入修改环境配置
sudo gedit ~/.bashrc
加入:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
执行:
source ~/.bashrc
1)测试安装是否成功:
cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
显示gpu信息,说明安装成功。
查看显卡情况:nvidia-smi
2)测试是否安装成功
nvcc -V
4. 配置cuDNN
4.1 官网下载:https://developer.nvidia.com/rdp/cudnn-download
注册账号之后,下载对应版本的cudnn
下载完直接解压,解压会出现一个cuda文件夹,里面有两个文件include 和 lib64,把里面的文件copy到/usr/local/cuda/里面相应的目录里。 如果你就在local下解压的就不要移动了。只需要给文件加读权限即可!
cd Downloads
4.2解压
tar -xzvf cudnn-10.0-linux-x64-v7.6.3.30.tgz
43.把include/ 和 lib64/目录下的文件拷贝到cuda的安装目录下的include/ 和 lib64里面
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*
5. 验证cudnn是否安装成功
5.1查看cudnn版本
在终端输入
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果出现版本信息,说明安装成功。
5.2当选择Debian File进行安装时会在/usr/src/cudnn_samples_v7有一些cudnn的例子
编译mnistCUDNN sample进行验证
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN
如果安装成功将会有如下图所示的:Test passed!
(1)卸载CUDA
sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl
(2)卸载CUDNN
删除原来的cudnn文件:
sudo rm -rf /usr/local/cuda-10.0/lib64/libcudnn*
sudo rm -rf /usr/local/cuda-10.0/include/cudnn.h
参考文章:
ubuntu16.04 + NVIDIA驱动 + CUDA + cuDNN + tensorflow-gpu + keras安装https://blog.csdn.net/FYZ530357172/article/details/79207764
ubuntu16.04安装cuDNN的两种方式以及验证
https://blog.csdn.net/dudu815110/article/details/88592558;
Ubuntu 16.04 上 CUDA_10.0及cuDNN的安装,
https://blog.csdn.net/lihe4151021/article/details/90237681
Ubuntu 16.04 下cuda和cudnn的卸载和升级
https://blog.csdn.net/wanzhen4330/article/details/81704474
Ubuntu16.04 + cuda9.0 + cudnn7.1.4 + tensorflow安装
https://www.cnblogs.com/xiaojianliu/p/9312098.html