Ubuntu 16.04下安装NVIDIA驱动程序 + CUDA 8.0 + cuDNN 6.0

安装其他版本的CUDA与cuDNN步骤一样!!

  • Ubuntu 16.04下安装NVIDIA驱动程序 + CUDA 8.0 + cuDNN 6.0
  • Ubuntu 16.04下安装NVIDIA驱动程序 + CUDA 9.0 + cuDNN 7.0

吃鸡总有吃腻的那天,看着屏幕前倒在我枪口下的队友,我毅然决然的决定在自己的PC机上装个Ubuntu,开始步入深度调参这条不归路…

原本PC上只有一块M.2的固态硬盘,为了搭建深度学习环境,搞了一块500G的古董机械硬盘,首先分出来100G在Win下用装GTAV,剩下不到400G用来装Ubuntu。

我看着手中的U盘微微一笑?,熟练的把他插进了机箱上的USB口。如题目所讲,我装了一个Ubuntu16.04 LTS,台式机硬件配置见这里

安装NVIDIA驱动程序

刚装完系统会发现屏幕的分辨率不对,这是因为独显驱动的问题,首先在官网找到自己显卡对应的驱动,官网

http://www.nvidia.com/Download/index.aspx?lang=cn

我下载的是NVIDIA-Linux-x86_64-384.111.run,我的Ubuntu用户名为pizi,在/home/pizi/下创建了driver目录,之后用到的安装包全放在这里,路径里最好不要有中文名

我的安装过程很暴力:

cd /home/pizi/driver
sudo chmod 777 NVIDIA-Linux-x86_64-384.111.run

然后CTRL+ALT+F1登录控制台,输入账户和密码,之后:

扫描二维码关注公众号,回复: 9859800 查看本文章
sudo service lightdm stop

在这里因为用到sudo,所以会提示输入密码,如果看到乱码不要慌张,默默的输入密码然后回车就是了,后面如果出现也一样。接着:

sudo init 3
cd /home/pizi/driver
# 进入安装程序
sudo ./NVIDIA-Linux-x86_64-384.111.run

安装第一部会提示协议条款,accept即可;之后按照提示进行安装,中间会提示警告32-bit文件无法安装,忽略即可,接着下一步;接下来根据提示一步一步安装即可…(我记得有一步提示有个什么文件用不用安装,都装了呗)
安装完成后,重启:

sudo reboot

重启后会发现分辨率已经自动改正好了,在命令行输入:

nvidia-smi

提示:

恭喜,显卡驱动装好了。

可以sudo ./NVIDIA-Linux-x86_64-384.111.run --uninstall进行卸载

在PC上装了SSH-Service,在实验室可以远程继续装环境了,以下过程全在远程SSH(本地应该也没问题)下完成。

安装CUDA 8.0

为什么装CUDA8.0?应为这个版本即支持TensorFlow,又可以用MXNet,还可以用Matlabcaffe等。
在这里找下载地址,需要注册一个帐号:

https://developer.nvidia.com/cuda-release-candidate-download

我下载了cuda_8.0.61_375.26_linux.run,并把它放到了/home/pizi/driver。接下来开始安装:

cd /home/pizi/driver
sudo chmod 777 cuda_8.0.61_375.26_linux.run
sudo ./cuda_8.0.61_375.26_linux.run

会提示安装协议,accept即可:

Do you accept the previously read EULA?
accept/decline/quit: accept

提示是否安装显卡驱动,因为第一步已经装过了,所以这里n

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n

然后选择安装目录,默认就好(直接回车):

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]:

接着是否创建链接,y创建即可:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

接下来提示是否安装Sample,程序示例,以及保存位置,最好进行安装,一会测试是否安装成功用,保存位置默认即可:

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
 [ default is /home/pizi ]: 

其实到现在CUDA 8.0已经安装好了,它的提示中有一段:

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

倒着看,首先说可以在/usr/local/cuda-8.0/bin运行卸载程序,看了一下,里面有perl脚本uninstall_cuda_8.0.pl用来卸载,就算之前没有安装Sample页面关系,里面有cuda-install-samples-8.0.sh脚本可以安装,目录如下图:

然后又提示需要添加环境变量和设置,这样操作(我感觉nano比较好用,也可以用vim/vi/gedit):

sudo nano /etc/profile
# 在最后加入
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
# ctrl + x 保存
source /etc/profile
sudo nano /etc/ld.so.conf 
# 在最后加入
/usr/local/cuda-8.0/lib64
# ctrl + x 保存
sudo ldconfig

大功告成,输入ldconfig -v|grep cuda,如果看到:

libicudata.so.55 -> libicudata.so.55.1
	libcuda.so.1 -> libcuda.so.384.111
	libcudart.so.8.0 -> libcudart.so.8.0.61

就算设置好动态链接库了。接下来为编译Sample安装必须的开发工具:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

安装完成后你可以选择编译全部Samples(速度慢):

cd /usr/local/cuda-8.0/NVIDIA_CUDA-8.0_Samples
# 多线程编译
sudo make -j8

编译完成后在NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release目录里可以看到变好的二进制文件,可以随便选择一个运行测试,比如./deviceQuery,当然,在可以NVIDIA_CUDA-8.0_Samples目录里进入1_Utilities/deviceQuery进行make,在输出二进制目录里运行编译好的程序。

如果安装过程中提示toolkit installation failed using unsupported compiler。这是因为GCC版本不合适所导致的。试试sudo ./cuda_8.0.61_375.26_linux.run -override

安装cuDNN 6.0

其实CUDA和cuDNN都是编译好的二进制文件,把他们放到自己的系统目录,设置好环境变量就可以使用了,对于cuDNN,选择6.0是因为TensorFlow官方的推荐,MXNet也可以使用。在下面地址下载:

https://developer.nvidia.com/cudnn

我下载了cudnn-8.0-linux-x64-v6.0.tgz,依然放入了home/pizi/driver,接下来进行安装:

tar -xvf cudnn-8.0-linux-x64-v5.1.tgz
# 解压到了cuda文件夹
cd cuda
sudo cp ./include/cudnn.h /usr/local/cuda-8.0/include
sudo cp -a ./lib64/libcudnn* /usr/local/cuda-8.0/lib64

至此,全部安装完成?。

后记

  • sudo apt upgrade后发现无法找到显卡驱动,nvidia-smi无法显示,不要慌张,重新安装一下显卡驱动就行了,其他环境不用动。
  • 如需安装其他版本CUDA与cuDNN,下载相应的安装包即可,安装步骤和上述步骤基本一致,可参考上述步骤。

补充:分开安装CUDN与cuDNN

看完文章后你会发现CUDNN与cuDNN都是编译好的二进制文件及头文件,完全可以分开放,分开放的好处是可以自由的组合不同版本的CUDNN与cuDNN,比如我再搭建GPU容器那篇文章里,在共享文件夹里放了不同版本的CUDA与cuDNN,每个容器可以自由选择,只需要在/etc/profileldconfig中配置相应的路径即可。

比如/etc/profile

# CUDN配置
export PATH=$PATH:/A-pool/cuda/cuda-9.0/bin:/A-pool/cuda/cuda-9.0/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/A-pool/cuda/cuda-9.0/lib64
export CUDA_HOME=/A-pool/cuda/cuda-9.0
# cuDNN配置
export PATH=$PATH:/A-pool/cudnn/cuda-9.0-cudnn-7.0/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/A-pool/cudnn/cuda-9.0-cudnn-7.0/lib6

/etc/ld.so.conf:

/A-pool/cuda/cuda-9.0/lib64
/A-pool/cudnn/cuda-9.0-cudnn-7.0/lib64

参考

[1] http://blog.csdn.net/u012581999/article/details/52433609
[2] http://blog.csdn.net/Suodislie/article/details/70228138
[3]原文来自我的个人博客 https://feelncut.com/2018/01/09/46.html

发布了11 篇原创文章 · 获赞 18 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/wangke0809/article/details/85114202