学习CNN需要搭建新环境,于是在原本Window 10系统下安装了双系统。
由于网上给的参考过程大都比较老,失去了一些时效性,并且有些参考过程在尝试后发现并不适用于我的情况。
因此整个过程踩了不少坑,特别是NVIDIA相关的安装。
这里有个小插曲,本来我是想利用VMware虚拟机安装Ubuntu。但是直到装好之后才发现,VMware的虚拟机下原来无法安装NVIDIA驱动,更不用说CUDA以及CUDNN了,较新的VMware为了稳定性无法让显卡发挥出应有的能力。
目标:Ubuntu18.04 + NVIDIA 410.48 + CUDA10.0 + CUDNN7.5 的环境搭建
一.完成Ubuntu18.04的安装
1.先从Ubuntu官网(https://www.ubuntu.com/download/desktop)下载安装包
2.使用Ultraiso制作U盘启动盘,同时分出一部分硬盘空间留给Ubuntu
3.重启进入BIOS,将U盘启动设为第一项,同时将BIOS中的Secure Boot关掉。
这是由于后续使用的第三方模块有可能没有数字签名,为了避免后续不必要的问题因此我们将其关闭。
4.加载U盘进入安装界面。分区时需要注意,只需分出三个区即可。
/ 主分区,放置系统
swap 逻辑分区,相当于虚拟内存
/home 用户存储空间
具体大小根据本机的情况来定,本机留给Ubuntu 2.3T 硬盘空间,实际内存128G。
考虑到实际需要,上面三区依次分配了 200G,128G,剩余空间 。
二.完成 NVIDIA 410.48 + CUDA 10.0 的安装
1.了解显卡的型号选用合适的驱动版本以及CUDA版本,本机为RTX 2080Ti 。考虑到之前测试项目的兼容稳定性,没有选用最新版本。选择了NVIDIA 410.48 + CUDA 10.0的组合。
2.在NVIDIA官网(https://developer.nvidia.com/cuda-toolkit)中找到合适自己的版本下载
由于该CUDA包里本身自带了配套的显卡驱动,因此可以直接下载,准备打包安装。
这里之前我是先安装好的驱动,再下的CUDA,确定了版本配套一致,却怎么也装不上。原因在于CUDA安装时NVIDIA的进程正在被使用,于是报错。在网上找了很多方法尝试了几次均不奏效,最后选择了卸载掉原先的驱动。现在回过头看,直接安装CUDA + 驱动合理地避开了这个问题。
3.禁用Nouveau驱动
这时Ubuntu系统自带的显卡驱动,不卸载会对NVIDIA驱动的安装产生影响,以及后续循环开机进不了系统等问题。
Open Terminal
输入
lsmod | grep -i nouveau
有输出说明nouveau驱动正在运行。
打开黑名单
sudo vim /etc/modprobe.d/blacklist.conf
在文件末尾加上
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
刷新后重启
sudo update-initramfs -u
重启后发现移动窗口的过程很钝,说明禁用成功,也可再次输出上面的命令看是否有输出。
4.按官网上述指令输入,同时安装驱动与CUDA。安装完后重启,发现分辨率变高,说明安装成功。也可输入
nvidia-smi
nvcc -V
查看输出结果,确定安装成功。
三.完成CuDNN的安装
1.进入NVIDIA官网(https://developer.nvidia.com/rdp/cudnn-download)下载,CuDNN的下载需要注册。
2.选择自己需要的版本
这里有个问题,起初我下载的是cuDNN Runtime Library for Ubuntu18.04 (Deb)和cuDNN Developer Library for Ubuntu18.04 (Deb)两个.deb安装包,按官网给出的教程安装。但是安装结束后发现放置的位置出现了偏差。
输入
sudo dpkg -c libcudnn7_7.5.1.10-1+cuda10.0_amd64.deb
查看包的配置位置,发现配置位置并没有放在/usr/local/cuda10.0下面的目录。
并且网上几乎都是清一色的用.tgz安装,没有相关的原因和解决办法。同时我发现官网给出的指南上居然写着:For example, the tar file installation applies to all Linux platforms, and the debian installation package applies to Ubuntu 14.04 and 16.04.
我觉得既然官方有18.04的deb包当然可以用deb安装,但是怎么用到现在我也还没弄清楚。有知道的大佬希望能解释一下。。
官方给出的指南:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux
3.选用.tgz安装
最后我选用了cuDNN Library for Linux这个版本。
下载后依照上述官方指南即可安装完毕,安装后打开cuda-10.0目录。出现相关文件,运行测试程序,成功。
安装结束
四.小结
全过程花了不少时间,当然其中还包括pytorch的安装等其他事。
过程中主要问题在于网上的参考教程有些陈旧,并且转载来转载去,可能会出现一些偏差。因此许多问题给出的解决办法不见得适用,并且有些教程中极其有可能给你引导一个不怎么明智的方向,更有甚者可能是一个错误方向。
配置环境总是会踩坑的,本文以一个相对简单的流程完成了环境的配置,实际这只是我走了一遍后整理的整个流程。不同情况可能也会有所不同,仅供参考。